github.com/aavshr/aws-sdk-go@v1.41.3/service/wafv2/api.go (about) 1 // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3 package wafv2 4 5 import ( 6 "fmt" 7 "time" 8 9 "github.com/aavshr/aws-sdk-go/aws" 10 "github.com/aavshr/aws-sdk-go/aws/awsutil" 11 "github.com/aavshr/aws-sdk-go/aws/request" 12 "github.com/aavshr/aws-sdk-go/private/protocol" 13 "github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc" 14 ) 15 16 const opAssociateWebACL = "AssociateWebACL" 17 18 // AssociateWebACLRequest generates a "aws/request.Request" representing the 19 // client's request for the AssociateWebACL operation. The "output" return 20 // value will be populated with the request's response once the request completes 21 // successfully. 22 // 23 // Use "Send" method on the returned Request to send the API call to the service. 24 // the "output" return value is not valid until after Send returns without error. 25 // 26 // See AssociateWebACL for more information on using the AssociateWebACL 27 // API call, and error handling. 28 // 29 // This method is useful when you want to inject custom logic or configuration 30 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 31 // 32 // 33 // // Example sending a request using the AssociateWebACLRequest method. 34 // req, resp := client.AssociateWebACLRequest(params) 35 // 36 // err := req.Send() 37 // if err == nil { // resp is now filled 38 // fmt.Println(resp) 39 // } 40 // 41 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AssociateWebACL 42 func (c *WAFV2) AssociateWebACLRequest(input *AssociateWebACLInput) (req *request.Request, output *AssociateWebACLOutput) { 43 op := &request.Operation{ 44 Name: opAssociateWebACL, 45 HTTPMethod: "POST", 46 HTTPPath: "/", 47 } 48 49 if input == nil { 50 input = &AssociateWebACLInput{} 51 } 52 53 output = &AssociateWebACLOutput{} 54 req = c.newRequest(op, input, output) 55 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 56 return 57 } 58 59 // AssociateWebACL API operation for AWS WAFV2. 60 // 61 // Associates a web ACL with a regional application resource, to protect the 62 // resource. A regional application can be an Application Load Balancer (ALB), 63 // an Amazon API Gateway REST API, or an AppSync GraphQL API. 64 // 65 // For Amazon CloudFront, don't use this call. Instead, use your CloudFront 66 // distribution configuration. To associate a web ACL, in the CloudFront call 67 // UpdateDistribution, set the web ACL ID to the Amazon Resource Name (ARN) 68 // of the web ACL. For information, see UpdateDistribution (https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html). 69 // 70 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 71 // with awserr.Error's Code and Message methods to get detailed information about 72 // the error. 73 // 74 // See the AWS API reference guide for AWS WAFV2's 75 // API operation AssociateWebACL for usage and error information. 76 // 77 // Returned Error Types: 78 // * WAFInternalErrorException 79 // Your request is valid, but WAF couldn’t perform the operation because of 80 // a system problem. Retry your request. 81 // 82 // * WAFInvalidParameterException 83 // The operation failed because WAF didn't recognize a parameter in the request. 84 // For example: 85 // 86 // * You specified a parameter name or value that isn't valid. 87 // 88 // * Your nested statement isn't valid. You might have tried to nest a statement 89 // that can’t be nested. 90 // 91 // * You tried to update a WebACL with a DefaultAction that isn't among the 92 // types available at DefaultAction. 93 // 94 // * Your request references an ARN that is malformed, or corresponds to 95 // a resource with which a web ACL can't be associated. 96 // 97 // * WAFNonexistentItemException 98 // WAF couldn’t perform the operation because your resource doesn’t exist. 99 // 100 // * WAFUnavailableEntityException 101 // WAF couldn’t retrieve the resource that you requested. Retry your request. 102 // 103 // * WAFInvalidOperationException 104 // The operation isn't valid. 105 // 106 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/AssociateWebACL 107 func (c *WAFV2) AssociateWebACL(input *AssociateWebACLInput) (*AssociateWebACLOutput, error) { 108 req, out := c.AssociateWebACLRequest(input) 109 return out, req.Send() 110 } 111 112 // AssociateWebACLWithContext is the same as AssociateWebACL with the addition of 113 // the ability to pass a context and additional request options. 114 // 115 // See AssociateWebACL for details on how to use this API operation. 116 // 117 // The context must be non-nil and will be used for request cancellation. If 118 // the context is nil a panic will occur. In the future the SDK may create 119 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 120 // for more information on using Contexts. 121 func (c *WAFV2) AssociateWebACLWithContext(ctx aws.Context, input *AssociateWebACLInput, opts ...request.Option) (*AssociateWebACLOutput, error) { 122 req, out := c.AssociateWebACLRequest(input) 123 req.SetContext(ctx) 124 req.ApplyOptions(opts...) 125 return out, req.Send() 126 } 127 128 const opCheckCapacity = "CheckCapacity" 129 130 // CheckCapacityRequest generates a "aws/request.Request" representing the 131 // client's request for the CheckCapacity operation. The "output" return 132 // value will be populated with the request's response once the request completes 133 // successfully. 134 // 135 // Use "Send" method on the returned Request to send the API call to the service. 136 // the "output" return value is not valid until after Send returns without error. 137 // 138 // See CheckCapacity for more information on using the CheckCapacity 139 // API call, and error handling. 140 // 141 // This method is useful when you want to inject custom logic or configuration 142 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 143 // 144 // 145 // // Example sending a request using the CheckCapacityRequest method. 146 // req, resp := client.CheckCapacityRequest(params) 147 // 148 // err := req.Send() 149 // if err == nil { // resp is now filled 150 // fmt.Println(resp) 151 // } 152 // 153 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CheckCapacity 154 func (c *WAFV2) CheckCapacityRequest(input *CheckCapacityInput) (req *request.Request, output *CheckCapacityOutput) { 155 op := &request.Operation{ 156 Name: opCheckCapacity, 157 HTTPMethod: "POST", 158 HTTPPath: "/", 159 } 160 161 if input == nil { 162 input = &CheckCapacityInput{} 163 } 164 165 output = &CheckCapacityOutput{} 166 req = c.newRequest(op, input, output) 167 return 168 } 169 170 // CheckCapacity API operation for AWS WAFV2. 171 // 172 // Returns the web ACL capacity unit (WCU) requirements for a specified scope 173 // and set of rules. You can use this to check the capacity requirements for 174 // the rules you want to use in a RuleGroup or WebACL. 175 // 176 // WAF uses WCUs to calculate and control the operating resources that are used 177 // to run your rules, rule groups, and web ACLs. WAF calculates capacity differently 178 // for each rule type, to reflect the relative cost of each rule. Simple rules 179 // that cost little to run use fewer WCUs than more complex rules that use more 180 // processing power. Rule group capacity is fixed at creation, which helps users 181 // plan their web ACL WCU usage when they use a rule group. The WCU limit for 182 // web ACLs is 1,500. 183 // 184 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 185 // with awserr.Error's Code and Message methods to get detailed information about 186 // the error. 187 // 188 // See the AWS API reference guide for AWS WAFV2's 189 // API operation CheckCapacity for usage and error information. 190 // 191 // Returned Error Types: 192 // * WAFInternalErrorException 193 // Your request is valid, but WAF couldn’t perform the operation because of 194 // a system problem. Retry your request. 195 // 196 // * WAFInvalidParameterException 197 // The operation failed because WAF didn't recognize a parameter in the request. 198 // For example: 199 // 200 // * You specified a parameter name or value that isn't valid. 201 // 202 // * Your nested statement isn't valid. You might have tried to nest a statement 203 // that can’t be nested. 204 // 205 // * You tried to update a WebACL with a DefaultAction that isn't among the 206 // types available at DefaultAction. 207 // 208 // * Your request references an ARN that is malformed, or corresponds to 209 // a resource with which a web ACL can't be associated. 210 // 211 // * WAFNonexistentItemException 212 // WAF couldn’t perform the operation because your resource doesn’t exist. 213 // 214 // * WAFLimitsExceededException 215 // WAF couldn’t perform the operation because you exceeded your resource limit. 216 // For example, the maximum number of WebACL objects that you can create for 217 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 218 // in the WAF Developer Guide. 219 // 220 // * WAFInvalidResourceException 221 // WAF couldn’t perform the operation because the resource that you requested 222 // isn’t valid. Check the resource, and try again. 223 // 224 // * WAFUnavailableEntityException 225 // WAF couldn’t retrieve the resource that you requested. Retry your request. 226 // 227 // * WAFSubscriptionNotFoundException 228 // You tried to use a managed rule group that's available by subscription, but 229 // you aren't subscribed to it yet. 230 // 231 // * WAFExpiredManagedRuleGroupVersionException 232 // The operation failed because the specified version for the managed rule group 233 // has expired. You can retrieve the available versions for the managed rule 234 // group by calling ListAvailableManagedRuleGroupVersions. 235 // 236 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CheckCapacity 237 func (c *WAFV2) CheckCapacity(input *CheckCapacityInput) (*CheckCapacityOutput, error) { 238 req, out := c.CheckCapacityRequest(input) 239 return out, req.Send() 240 } 241 242 // CheckCapacityWithContext is the same as CheckCapacity with the addition of 243 // the ability to pass a context and additional request options. 244 // 245 // See CheckCapacity for details on how to use this API operation. 246 // 247 // The context must be non-nil and will be used for request cancellation. If 248 // the context is nil a panic will occur. In the future the SDK may create 249 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 250 // for more information on using Contexts. 251 func (c *WAFV2) CheckCapacityWithContext(ctx aws.Context, input *CheckCapacityInput, opts ...request.Option) (*CheckCapacityOutput, error) { 252 req, out := c.CheckCapacityRequest(input) 253 req.SetContext(ctx) 254 req.ApplyOptions(opts...) 255 return out, req.Send() 256 } 257 258 const opCreateIPSet = "CreateIPSet" 259 260 // CreateIPSetRequest generates a "aws/request.Request" representing the 261 // client's request for the CreateIPSet operation. The "output" return 262 // value will be populated with the request's response once the request completes 263 // successfully. 264 // 265 // Use "Send" method on the returned Request to send the API call to the service. 266 // the "output" return value is not valid until after Send returns without error. 267 // 268 // See CreateIPSet for more information on using the CreateIPSet 269 // API call, and error handling. 270 // 271 // This method is useful when you want to inject custom logic or configuration 272 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 273 // 274 // 275 // // Example sending a request using the CreateIPSetRequest method. 276 // req, resp := client.CreateIPSetRequest(params) 277 // 278 // err := req.Send() 279 // if err == nil { // resp is now filled 280 // fmt.Println(resp) 281 // } 282 // 283 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateIPSet 284 func (c *WAFV2) CreateIPSetRequest(input *CreateIPSetInput) (req *request.Request, output *CreateIPSetOutput) { 285 op := &request.Operation{ 286 Name: opCreateIPSet, 287 HTTPMethod: "POST", 288 HTTPPath: "/", 289 } 290 291 if input == nil { 292 input = &CreateIPSetInput{} 293 } 294 295 output = &CreateIPSetOutput{} 296 req = c.newRequest(op, input, output) 297 return 298 } 299 300 // CreateIPSet API operation for AWS WAFV2. 301 // 302 // Creates an IPSet, which you use to identify web requests that originate from 303 // specific IP addresses or ranges of IP addresses. For example, if you're receiving 304 // a lot of requests from a ranges of IP addresses, you can configure WAF to 305 // block them using an IPSet that lists those IP addresses. 306 // 307 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 308 // with awserr.Error's Code and Message methods to get detailed information about 309 // the error. 310 // 311 // See the AWS API reference guide for AWS WAFV2's 312 // API operation CreateIPSet for usage and error information. 313 // 314 // Returned Error Types: 315 // * WAFInternalErrorException 316 // Your request is valid, but WAF couldn’t perform the operation because of 317 // a system problem. Retry your request. 318 // 319 // * WAFInvalidParameterException 320 // The operation failed because WAF didn't recognize a parameter in the request. 321 // For example: 322 // 323 // * You specified a parameter name or value that isn't valid. 324 // 325 // * Your nested statement isn't valid. You might have tried to nest a statement 326 // that can’t be nested. 327 // 328 // * You tried to update a WebACL with a DefaultAction that isn't among the 329 // types available at DefaultAction. 330 // 331 // * Your request references an ARN that is malformed, or corresponds to 332 // a resource with which a web ACL can't be associated. 333 // 334 // * WAFDuplicateItemException 335 // WAF couldn’t perform the operation because the resource that you tried 336 // to save is a duplicate of an existing one. 337 // 338 // * WAFOptimisticLockException 339 // WAF couldn’t save your changes because you tried to update or delete a 340 // resource that has changed since you last retrieved it. Get the resource again, 341 // make any changes you need to make to the new copy, and retry your operation. 342 // 343 // * WAFLimitsExceededException 344 // WAF couldn’t perform the operation because you exceeded your resource limit. 345 // For example, the maximum number of WebACL objects that you can create for 346 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 347 // in the WAF Developer Guide. 348 // 349 // * WAFTagOperationException 350 // An error occurred during the tagging operation. Retry your request. 351 // 352 // * WAFTagOperationInternalErrorException 353 // WAF couldn’t perform your tagging operation because of an internal error. 354 // Retry your request. 355 // 356 // * WAFInvalidOperationException 357 // The operation isn't valid. 358 // 359 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateIPSet 360 func (c *WAFV2) CreateIPSet(input *CreateIPSetInput) (*CreateIPSetOutput, error) { 361 req, out := c.CreateIPSetRequest(input) 362 return out, req.Send() 363 } 364 365 // CreateIPSetWithContext is the same as CreateIPSet with the addition of 366 // the ability to pass a context and additional request options. 367 // 368 // See CreateIPSet for details on how to use this API operation. 369 // 370 // The context must be non-nil and will be used for request cancellation. If 371 // the context is nil a panic will occur. In the future the SDK may create 372 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 373 // for more information on using Contexts. 374 func (c *WAFV2) CreateIPSetWithContext(ctx aws.Context, input *CreateIPSetInput, opts ...request.Option) (*CreateIPSetOutput, error) { 375 req, out := c.CreateIPSetRequest(input) 376 req.SetContext(ctx) 377 req.ApplyOptions(opts...) 378 return out, req.Send() 379 } 380 381 const opCreateRegexPatternSet = "CreateRegexPatternSet" 382 383 // CreateRegexPatternSetRequest generates a "aws/request.Request" representing the 384 // client's request for the CreateRegexPatternSet operation. The "output" return 385 // value will be populated with the request's response once the request completes 386 // successfully. 387 // 388 // Use "Send" method on the returned Request to send the API call to the service. 389 // the "output" return value is not valid until after Send returns without error. 390 // 391 // See CreateRegexPatternSet for more information on using the CreateRegexPatternSet 392 // API call, and error handling. 393 // 394 // This method is useful when you want to inject custom logic or configuration 395 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 396 // 397 // 398 // // Example sending a request using the CreateRegexPatternSetRequest method. 399 // req, resp := client.CreateRegexPatternSetRequest(params) 400 // 401 // err := req.Send() 402 // if err == nil { // resp is now filled 403 // fmt.Println(resp) 404 // } 405 // 406 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRegexPatternSet 407 func (c *WAFV2) CreateRegexPatternSetRequest(input *CreateRegexPatternSetInput) (req *request.Request, output *CreateRegexPatternSetOutput) { 408 op := &request.Operation{ 409 Name: opCreateRegexPatternSet, 410 HTTPMethod: "POST", 411 HTTPPath: "/", 412 } 413 414 if input == nil { 415 input = &CreateRegexPatternSetInput{} 416 } 417 418 output = &CreateRegexPatternSetOutput{} 419 req = c.newRequest(op, input, output) 420 return 421 } 422 423 // CreateRegexPatternSet API operation for AWS WAFV2. 424 // 425 // Creates a RegexPatternSet, which you reference in a RegexPatternSetReferenceStatement, 426 // to have WAF inspect a web request component for the specified patterns. 427 // 428 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 429 // with awserr.Error's Code and Message methods to get detailed information about 430 // the error. 431 // 432 // See the AWS API reference guide for AWS WAFV2's 433 // API operation CreateRegexPatternSet for usage and error information. 434 // 435 // Returned Error Types: 436 // * WAFInternalErrorException 437 // Your request is valid, but WAF couldn’t perform the operation because of 438 // a system problem. Retry your request. 439 // 440 // * WAFInvalidParameterException 441 // The operation failed because WAF didn't recognize a parameter in the request. 442 // For example: 443 // 444 // * You specified a parameter name or value that isn't valid. 445 // 446 // * Your nested statement isn't valid. You might have tried to nest a statement 447 // that can’t be nested. 448 // 449 // * You tried to update a WebACL with a DefaultAction that isn't among the 450 // types available at DefaultAction. 451 // 452 // * Your request references an ARN that is malformed, or corresponds to 453 // a resource with which a web ACL can't be associated. 454 // 455 // * WAFDuplicateItemException 456 // WAF couldn’t perform the operation because the resource that you tried 457 // to save is a duplicate of an existing one. 458 // 459 // * WAFOptimisticLockException 460 // WAF couldn’t save your changes because you tried to update or delete a 461 // resource that has changed since you last retrieved it. Get the resource again, 462 // make any changes you need to make to the new copy, and retry your operation. 463 // 464 // * WAFLimitsExceededException 465 // WAF couldn’t perform the operation because you exceeded your resource limit. 466 // For example, the maximum number of WebACL objects that you can create for 467 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 468 // in the WAF Developer Guide. 469 // 470 // * WAFTagOperationException 471 // An error occurred during the tagging operation. Retry your request. 472 // 473 // * WAFTagOperationInternalErrorException 474 // WAF couldn’t perform your tagging operation because of an internal error. 475 // Retry your request. 476 // 477 // * WAFInvalidOperationException 478 // The operation isn't valid. 479 // 480 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRegexPatternSet 481 func (c *WAFV2) CreateRegexPatternSet(input *CreateRegexPatternSetInput) (*CreateRegexPatternSetOutput, error) { 482 req, out := c.CreateRegexPatternSetRequest(input) 483 return out, req.Send() 484 } 485 486 // CreateRegexPatternSetWithContext is the same as CreateRegexPatternSet with the addition of 487 // the ability to pass a context and additional request options. 488 // 489 // See CreateRegexPatternSet for details on how to use this API operation. 490 // 491 // The context must be non-nil and will be used for request cancellation. If 492 // the context is nil a panic will occur. In the future the SDK may create 493 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 494 // for more information on using Contexts. 495 func (c *WAFV2) CreateRegexPatternSetWithContext(ctx aws.Context, input *CreateRegexPatternSetInput, opts ...request.Option) (*CreateRegexPatternSetOutput, error) { 496 req, out := c.CreateRegexPatternSetRequest(input) 497 req.SetContext(ctx) 498 req.ApplyOptions(opts...) 499 return out, req.Send() 500 } 501 502 const opCreateRuleGroup = "CreateRuleGroup" 503 504 // CreateRuleGroupRequest generates a "aws/request.Request" representing the 505 // client's request for the CreateRuleGroup operation. The "output" return 506 // value will be populated with the request's response once the request completes 507 // successfully. 508 // 509 // Use "Send" method on the returned Request to send the API call to the service. 510 // the "output" return value is not valid until after Send returns without error. 511 // 512 // See CreateRuleGroup for more information on using the CreateRuleGroup 513 // API call, and error handling. 514 // 515 // This method is useful when you want to inject custom logic or configuration 516 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 517 // 518 // 519 // // Example sending a request using the CreateRuleGroupRequest method. 520 // req, resp := client.CreateRuleGroupRequest(params) 521 // 522 // err := req.Send() 523 // if err == nil { // resp is now filled 524 // fmt.Println(resp) 525 // } 526 // 527 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRuleGroup 528 func (c *WAFV2) CreateRuleGroupRequest(input *CreateRuleGroupInput) (req *request.Request, output *CreateRuleGroupOutput) { 529 op := &request.Operation{ 530 Name: opCreateRuleGroup, 531 HTTPMethod: "POST", 532 HTTPPath: "/", 533 } 534 535 if input == nil { 536 input = &CreateRuleGroupInput{} 537 } 538 539 output = &CreateRuleGroupOutput{} 540 req = c.newRequest(op, input, output) 541 return 542 } 543 544 // CreateRuleGroup API operation for AWS WAFV2. 545 // 546 // Creates a RuleGroup per the specifications provided. 547 // 548 // A rule group defines a collection of rules to inspect and control web requests 549 // that you can use in a WebACL. When you create a rule group, you define an 550 // immutable capacity limit. If you update a rule group, you must stay within 551 // the capacity. This allows others to reuse the rule group with confidence 552 // in its capacity requirements. 553 // 554 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 555 // with awserr.Error's Code and Message methods to get detailed information about 556 // the error. 557 // 558 // See the AWS API reference guide for AWS WAFV2's 559 // API operation CreateRuleGroup for usage and error information. 560 // 561 // Returned Error Types: 562 // * WAFInternalErrorException 563 // Your request is valid, but WAF couldn’t perform the operation because of 564 // a system problem. Retry your request. 565 // 566 // * WAFInvalidParameterException 567 // The operation failed because WAF didn't recognize a parameter in the request. 568 // For example: 569 // 570 // * You specified a parameter name or value that isn't valid. 571 // 572 // * Your nested statement isn't valid. You might have tried to nest a statement 573 // that can’t be nested. 574 // 575 // * You tried to update a WebACL with a DefaultAction that isn't among the 576 // types available at DefaultAction. 577 // 578 // * Your request references an ARN that is malformed, or corresponds to 579 // a resource with which a web ACL can't be associated. 580 // 581 // * WAFDuplicateItemException 582 // WAF couldn’t perform the operation because the resource that you tried 583 // to save is a duplicate of an existing one. 584 // 585 // * WAFOptimisticLockException 586 // WAF couldn’t save your changes because you tried to update or delete a 587 // resource that has changed since you last retrieved it. Get the resource again, 588 // make any changes you need to make to the new copy, and retry your operation. 589 // 590 // * WAFLimitsExceededException 591 // WAF couldn’t perform the operation because you exceeded your resource limit. 592 // For example, the maximum number of WebACL objects that you can create for 593 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 594 // in the WAF Developer Guide. 595 // 596 // * WAFUnavailableEntityException 597 // WAF couldn’t retrieve the resource that you requested. Retry your request. 598 // 599 // * WAFTagOperationException 600 // An error occurred during the tagging operation. Retry your request. 601 // 602 // * WAFTagOperationInternalErrorException 603 // WAF couldn’t perform your tagging operation because of an internal error. 604 // Retry your request. 605 // 606 // * WAFSubscriptionNotFoundException 607 // You tried to use a managed rule group that's available by subscription, but 608 // you aren't subscribed to it yet. 609 // 610 // * WAFNonexistentItemException 611 // WAF couldn’t perform the operation because your resource doesn’t exist. 612 // 613 // * WAFInvalidOperationException 614 // The operation isn't valid. 615 // 616 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateRuleGroup 617 func (c *WAFV2) CreateRuleGroup(input *CreateRuleGroupInput) (*CreateRuleGroupOutput, error) { 618 req, out := c.CreateRuleGroupRequest(input) 619 return out, req.Send() 620 } 621 622 // CreateRuleGroupWithContext is the same as CreateRuleGroup with the addition of 623 // the ability to pass a context and additional request options. 624 // 625 // See CreateRuleGroup for details on how to use this API operation. 626 // 627 // The context must be non-nil and will be used for request cancellation. If 628 // the context is nil a panic will occur. In the future the SDK may create 629 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 630 // for more information on using Contexts. 631 func (c *WAFV2) CreateRuleGroupWithContext(ctx aws.Context, input *CreateRuleGroupInput, opts ...request.Option) (*CreateRuleGroupOutput, error) { 632 req, out := c.CreateRuleGroupRequest(input) 633 req.SetContext(ctx) 634 req.ApplyOptions(opts...) 635 return out, req.Send() 636 } 637 638 const opCreateWebACL = "CreateWebACL" 639 640 // CreateWebACLRequest generates a "aws/request.Request" representing the 641 // client's request for the CreateWebACL operation. The "output" return 642 // value will be populated with the request's response once the request completes 643 // successfully. 644 // 645 // Use "Send" method on the returned Request to send the API call to the service. 646 // the "output" return value is not valid until after Send returns without error. 647 // 648 // See CreateWebACL for more information on using the CreateWebACL 649 // API call, and error handling. 650 // 651 // This method is useful when you want to inject custom logic or configuration 652 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 653 // 654 // 655 // // Example sending a request using the CreateWebACLRequest method. 656 // req, resp := client.CreateWebACLRequest(params) 657 // 658 // err := req.Send() 659 // if err == nil { // resp is now filled 660 // fmt.Println(resp) 661 // } 662 // 663 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACL 664 func (c *WAFV2) CreateWebACLRequest(input *CreateWebACLInput) (req *request.Request, output *CreateWebACLOutput) { 665 op := &request.Operation{ 666 Name: opCreateWebACL, 667 HTTPMethod: "POST", 668 HTTPPath: "/", 669 } 670 671 if input == nil { 672 input = &CreateWebACLInput{} 673 } 674 675 output = &CreateWebACLOutput{} 676 req = c.newRequest(op, input, output) 677 return 678 } 679 680 // CreateWebACL API operation for AWS WAFV2. 681 // 682 // Creates a WebACL per the specifications provided. 683 // 684 // A web ACL defines a collection of rules to use to inspect and control web 685 // requests. Each rule has an action defined (allow, block, or count) for requests 686 // that match the statement of the rule. In the web ACL, you assign a default 687 // action to take (allow, block) for any request that does not match any of 688 // the rules. The rules in a web ACL can be a combination of the types Rule, 689 // RuleGroup, and managed rule group. You can associate a web ACL with one or 690 // more Amazon Web Services resources to protect. The resources can be an Amazon 691 // CloudFront distribution, an Amazon API Gateway REST API, an Application Load 692 // Balancer, or an AppSync GraphQL API. 693 // 694 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 695 // with awserr.Error's Code and Message methods to get detailed information about 696 // the error. 697 // 698 // See the AWS API reference guide for AWS WAFV2's 699 // API operation CreateWebACL for usage and error information. 700 // 701 // Returned Error Types: 702 // * WAFInternalErrorException 703 // Your request is valid, but WAF couldn’t perform the operation because of 704 // a system problem. Retry your request. 705 // 706 // * WAFInvalidParameterException 707 // The operation failed because WAF didn't recognize a parameter in the request. 708 // For example: 709 // 710 // * You specified a parameter name or value that isn't valid. 711 // 712 // * Your nested statement isn't valid. You might have tried to nest a statement 713 // that can’t be nested. 714 // 715 // * You tried to update a WebACL with a DefaultAction that isn't among the 716 // types available at DefaultAction. 717 // 718 // * Your request references an ARN that is malformed, or corresponds to 719 // a resource with which a web ACL can't be associated. 720 // 721 // * WAFDuplicateItemException 722 // WAF couldn’t perform the operation because the resource that you tried 723 // to save is a duplicate of an existing one. 724 // 725 // * WAFOptimisticLockException 726 // WAF couldn’t save your changes because you tried to update or delete a 727 // resource that has changed since you last retrieved it. Get the resource again, 728 // make any changes you need to make to the new copy, and retry your operation. 729 // 730 // * WAFLimitsExceededException 731 // WAF couldn’t perform the operation because you exceeded your resource limit. 732 // For example, the maximum number of WebACL objects that you can create for 733 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 734 // in the WAF Developer Guide. 735 // 736 // * WAFInvalidResourceException 737 // WAF couldn’t perform the operation because the resource that you requested 738 // isn’t valid. Check the resource, and try again. 739 // 740 // * WAFUnavailableEntityException 741 // WAF couldn’t retrieve the resource that you requested. Retry your request. 742 // 743 // * WAFNonexistentItemException 744 // WAF couldn’t perform the operation because your resource doesn’t exist. 745 // 746 // * WAFTagOperationException 747 // An error occurred during the tagging operation. Retry your request. 748 // 749 // * WAFTagOperationInternalErrorException 750 // WAF couldn’t perform your tagging operation because of an internal error. 751 // Retry your request. 752 // 753 // * WAFSubscriptionNotFoundException 754 // You tried to use a managed rule group that's available by subscription, but 755 // you aren't subscribed to it yet. 756 // 757 // * WAFInvalidOperationException 758 // The operation isn't valid. 759 // 760 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/CreateWebACL 761 func (c *WAFV2) CreateWebACL(input *CreateWebACLInput) (*CreateWebACLOutput, error) { 762 req, out := c.CreateWebACLRequest(input) 763 return out, req.Send() 764 } 765 766 // CreateWebACLWithContext is the same as CreateWebACL with the addition of 767 // the ability to pass a context and additional request options. 768 // 769 // See CreateWebACL for details on how to use this API operation. 770 // 771 // The context must be non-nil and will be used for request cancellation. If 772 // the context is nil a panic will occur. In the future the SDK may create 773 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 774 // for more information on using Contexts. 775 func (c *WAFV2) CreateWebACLWithContext(ctx aws.Context, input *CreateWebACLInput, opts ...request.Option) (*CreateWebACLOutput, error) { 776 req, out := c.CreateWebACLRequest(input) 777 req.SetContext(ctx) 778 req.ApplyOptions(opts...) 779 return out, req.Send() 780 } 781 782 const opDeleteFirewallManagerRuleGroups = "DeleteFirewallManagerRuleGroups" 783 784 // DeleteFirewallManagerRuleGroupsRequest generates a "aws/request.Request" representing the 785 // client's request for the DeleteFirewallManagerRuleGroups operation. The "output" return 786 // value will be populated with the request's response once the request completes 787 // successfully. 788 // 789 // Use "Send" method on the returned Request to send the API call to the service. 790 // the "output" return value is not valid until after Send returns without error. 791 // 792 // See DeleteFirewallManagerRuleGroups for more information on using the DeleteFirewallManagerRuleGroups 793 // API call, and error handling. 794 // 795 // This method is useful when you want to inject custom logic or configuration 796 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 797 // 798 // 799 // // Example sending a request using the DeleteFirewallManagerRuleGroupsRequest method. 800 // req, resp := client.DeleteFirewallManagerRuleGroupsRequest(params) 801 // 802 // err := req.Send() 803 // if err == nil { // resp is now filled 804 // fmt.Println(resp) 805 // } 806 // 807 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroups 808 func (c *WAFV2) DeleteFirewallManagerRuleGroupsRequest(input *DeleteFirewallManagerRuleGroupsInput) (req *request.Request, output *DeleteFirewallManagerRuleGroupsOutput) { 809 op := &request.Operation{ 810 Name: opDeleteFirewallManagerRuleGroups, 811 HTTPMethod: "POST", 812 HTTPPath: "/", 813 } 814 815 if input == nil { 816 input = &DeleteFirewallManagerRuleGroupsInput{} 817 } 818 819 output = &DeleteFirewallManagerRuleGroupsOutput{} 820 req = c.newRequest(op, input, output) 821 return 822 } 823 824 // DeleteFirewallManagerRuleGroups API operation for AWS WAFV2. 825 // 826 // Deletes all rule groups that are managed by Firewall Manager for the specified 827 // web ACL. 828 // 829 // You can only use this if ManagedByFirewallManager is false in the specified 830 // WebACL. 831 // 832 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 833 // with awserr.Error's Code and Message methods to get detailed information about 834 // the error. 835 // 836 // See the AWS API reference guide for AWS WAFV2's 837 // API operation DeleteFirewallManagerRuleGroups for usage and error information. 838 // 839 // Returned Error Types: 840 // * WAFInternalErrorException 841 // Your request is valid, but WAF couldn’t perform the operation because of 842 // a system problem. Retry your request. 843 // 844 // * WAFInvalidParameterException 845 // The operation failed because WAF didn't recognize a parameter in the request. 846 // For example: 847 // 848 // * You specified a parameter name or value that isn't valid. 849 // 850 // * Your nested statement isn't valid. You might have tried to nest a statement 851 // that can’t be nested. 852 // 853 // * You tried to update a WebACL with a DefaultAction that isn't among the 854 // types available at DefaultAction. 855 // 856 // * Your request references an ARN that is malformed, or corresponds to 857 // a resource with which a web ACL can't be associated. 858 // 859 // * WAFNonexistentItemException 860 // WAF couldn’t perform the operation because your resource doesn’t exist. 861 // 862 // * WAFOptimisticLockException 863 // WAF couldn’t save your changes because you tried to update or delete a 864 // resource that has changed since you last retrieved it. Get the resource again, 865 // make any changes you need to make to the new copy, and retry your operation. 866 // 867 // * WAFInvalidOperationException 868 // The operation isn't valid. 869 // 870 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteFirewallManagerRuleGroups 871 func (c *WAFV2) DeleteFirewallManagerRuleGroups(input *DeleteFirewallManagerRuleGroupsInput) (*DeleteFirewallManagerRuleGroupsOutput, error) { 872 req, out := c.DeleteFirewallManagerRuleGroupsRequest(input) 873 return out, req.Send() 874 } 875 876 // DeleteFirewallManagerRuleGroupsWithContext is the same as DeleteFirewallManagerRuleGroups with the addition of 877 // the ability to pass a context and additional request options. 878 // 879 // See DeleteFirewallManagerRuleGroups for details on how to use this API operation. 880 // 881 // The context must be non-nil and will be used for request cancellation. If 882 // the context is nil a panic will occur. In the future the SDK may create 883 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 884 // for more information on using Contexts. 885 func (c *WAFV2) DeleteFirewallManagerRuleGroupsWithContext(ctx aws.Context, input *DeleteFirewallManagerRuleGroupsInput, opts ...request.Option) (*DeleteFirewallManagerRuleGroupsOutput, error) { 886 req, out := c.DeleteFirewallManagerRuleGroupsRequest(input) 887 req.SetContext(ctx) 888 req.ApplyOptions(opts...) 889 return out, req.Send() 890 } 891 892 const opDeleteIPSet = "DeleteIPSet" 893 894 // DeleteIPSetRequest generates a "aws/request.Request" representing the 895 // client's request for the DeleteIPSet operation. The "output" return 896 // value will be populated with the request's response once the request completes 897 // successfully. 898 // 899 // Use "Send" method on the returned Request to send the API call to the service. 900 // the "output" return value is not valid until after Send returns without error. 901 // 902 // See DeleteIPSet for more information on using the DeleteIPSet 903 // API call, and error handling. 904 // 905 // This method is useful when you want to inject custom logic or configuration 906 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 907 // 908 // 909 // // Example sending a request using the DeleteIPSetRequest method. 910 // req, resp := client.DeleteIPSetRequest(params) 911 // 912 // err := req.Send() 913 // if err == nil { // resp is now filled 914 // fmt.Println(resp) 915 // } 916 // 917 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteIPSet 918 func (c *WAFV2) DeleteIPSetRequest(input *DeleteIPSetInput) (req *request.Request, output *DeleteIPSetOutput) { 919 op := &request.Operation{ 920 Name: opDeleteIPSet, 921 HTTPMethod: "POST", 922 HTTPPath: "/", 923 } 924 925 if input == nil { 926 input = &DeleteIPSetInput{} 927 } 928 929 output = &DeleteIPSetOutput{} 930 req = c.newRequest(op, input, output) 931 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 932 return 933 } 934 935 // DeleteIPSet API operation for AWS WAFV2. 936 // 937 // Deletes the specified IPSet. 938 // 939 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 940 // with awserr.Error's Code and Message methods to get detailed information about 941 // the error. 942 // 943 // See the AWS API reference guide for AWS WAFV2's 944 // API operation DeleteIPSet for usage and error information. 945 // 946 // Returned Error Types: 947 // * WAFInternalErrorException 948 // Your request is valid, but WAF couldn’t perform the operation because of 949 // a system problem. Retry your request. 950 // 951 // * WAFInvalidParameterException 952 // The operation failed because WAF didn't recognize a parameter in the request. 953 // For example: 954 // 955 // * You specified a parameter name or value that isn't valid. 956 // 957 // * Your nested statement isn't valid. You might have tried to nest a statement 958 // that can’t be nested. 959 // 960 // * You tried to update a WebACL with a DefaultAction that isn't among the 961 // types available at DefaultAction. 962 // 963 // * Your request references an ARN that is malformed, or corresponds to 964 // a resource with which a web ACL can't be associated. 965 // 966 // * WAFNonexistentItemException 967 // WAF couldn’t perform the operation because your resource doesn’t exist. 968 // 969 // * WAFOptimisticLockException 970 // WAF couldn’t save your changes because you tried to update or delete a 971 // resource that has changed since you last retrieved it. Get the resource again, 972 // make any changes you need to make to the new copy, and retry your operation. 973 // 974 // * WAFAssociatedItemException 975 // WAF couldn’t perform the operation because your resource is being used 976 // by another resource or it’s associated with another resource. 977 // 978 // * WAFTagOperationException 979 // An error occurred during the tagging operation. Retry your request. 980 // 981 // * WAFTagOperationInternalErrorException 982 // WAF couldn’t perform your tagging operation because of an internal error. 983 // Retry your request. 984 // 985 // * WAFInvalidOperationException 986 // The operation isn't valid. 987 // 988 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteIPSet 989 func (c *WAFV2) DeleteIPSet(input *DeleteIPSetInput) (*DeleteIPSetOutput, error) { 990 req, out := c.DeleteIPSetRequest(input) 991 return out, req.Send() 992 } 993 994 // DeleteIPSetWithContext is the same as DeleteIPSet with the addition of 995 // the ability to pass a context and additional request options. 996 // 997 // See DeleteIPSet for details on how to use this API operation. 998 // 999 // The context must be non-nil and will be used for request cancellation. If 1000 // the context is nil a panic will occur. In the future the SDK may create 1001 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1002 // for more information on using Contexts. 1003 func (c *WAFV2) DeleteIPSetWithContext(ctx aws.Context, input *DeleteIPSetInput, opts ...request.Option) (*DeleteIPSetOutput, error) { 1004 req, out := c.DeleteIPSetRequest(input) 1005 req.SetContext(ctx) 1006 req.ApplyOptions(opts...) 1007 return out, req.Send() 1008 } 1009 1010 const opDeleteLoggingConfiguration = "DeleteLoggingConfiguration" 1011 1012 // DeleteLoggingConfigurationRequest generates a "aws/request.Request" representing the 1013 // client's request for the DeleteLoggingConfiguration operation. The "output" return 1014 // value will be populated with the request's response once the request completes 1015 // successfully. 1016 // 1017 // Use "Send" method on the returned Request to send the API call to the service. 1018 // the "output" return value is not valid until after Send returns without error. 1019 // 1020 // See DeleteLoggingConfiguration for more information on using the DeleteLoggingConfiguration 1021 // API call, and error handling. 1022 // 1023 // This method is useful when you want to inject custom logic or configuration 1024 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1025 // 1026 // 1027 // // Example sending a request using the DeleteLoggingConfigurationRequest method. 1028 // req, resp := client.DeleteLoggingConfigurationRequest(params) 1029 // 1030 // err := req.Send() 1031 // if err == nil { // resp is now filled 1032 // fmt.Println(resp) 1033 // } 1034 // 1035 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteLoggingConfiguration 1036 func (c *WAFV2) DeleteLoggingConfigurationRequest(input *DeleteLoggingConfigurationInput) (req *request.Request, output *DeleteLoggingConfigurationOutput) { 1037 op := &request.Operation{ 1038 Name: opDeleteLoggingConfiguration, 1039 HTTPMethod: "POST", 1040 HTTPPath: "/", 1041 } 1042 1043 if input == nil { 1044 input = &DeleteLoggingConfigurationInput{} 1045 } 1046 1047 output = &DeleteLoggingConfigurationOutput{} 1048 req = c.newRequest(op, input, output) 1049 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1050 return 1051 } 1052 1053 // DeleteLoggingConfiguration API operation for AWS WAFV2. 1054 // 1055 // Deletes the LoggingConfiguration from the specified web ACL. 1056 // 1057 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1058 // with awserr.Error's Code and Message methods to get detailed information about 1059 // the error. 1060 // 1061 // See the AWS API reference guide for AWS WAFV2's 1062 // API operation DeleteLoggingConfiguration for usage and error information. 1063 // 1064 // Returned Error Types: 1065 // * WAFInternalErrorException 1066 // Your request is valid, but WAF couldn’t perform the operation because of 1067 // a system problem. Retry your request. 1068 // 1069 // * WAFNonexistentItemException 1070 // WAF couldn’t perform the operation because your resource doesn’t exist. 1071 // 1072 // * WAFOptimisticLockException 1073 // WAF couldn’t save your changes because you tried to update or delete a 1074 // resource that has changed since you last retrieved it. Get the resource again, 1075 // make any changes you need to make to the new copy, and retry your operation. 1076 // 1077 // * WAFInvalidParameterException 1078 // The operation failed because WAF didn't recognize a parameter in the request. 1079 // For example: 1080 // 1081 // * You specified a parameter name or value that isn't valid. 1082 // 1083 // * Your nested statement isn't valid. You might have tried to nest a statement 1084 // that can’t be nested. 1085 // 1086 // * You tried to update a WebACL with a DefaultAction that isn't among the 1087 // types available at DefaultAction. 1088 // 1089 // * Your request references an ARN that is malformed, or corresponds to 1090 // a resource with which a web ACL can't be associated. 1091 // 1092 // * WAFInvalidOperationException 1093 // The operation isn't valid. 1094 // 1095 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteLoggingConfiguration 1096 func (c *WAFV2) DeleteLoggingConfiguration(input *DeleteLoggingConfigurationInput) (*DeleteLoggingConfigurationOutput, error) { 1097 req, out := c.DeleteLoggingConfigurationRequest(input) 1098 return out, req.Send() 1099 } 1100 1101 // DeleteLoggingConfigurationWithContext is the same as DeleteLoggingConfiguration with the addition of 1102 // the ability to pass a context and additional request options. 1103 // 1104 // See DeleteLoggingConfiguration for details on how to use this API operation. 1105 // 1106 // The context must be non-nil and will be used for request cancellation. If 1107 // the context is nil a panic will occur. In the future the SDK may create 1108 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1109 // for more information on using Contexts. 1110 func (c *WAFV2) DeleteLoggingConfigurationWithContext(ctx aws.Context, input *DeleteLoggingConfigurationInput, opts ...request.Option) (*DeleteLoggingConfigurationOutput, error) { 1111 req, out := c.DeleteLoggingConfigurationRequest(input) 1112 req.SetContext(ctx) 1113 req.ApplyOptions(opts...) 1114 return out, req.Send() 1115 } 1116 1117 const opDeletePermissionPolicy = "DeletePermissionPolicy" 1118 1119 // DeletePermissionPolicyRequest generates a "aws/request.Request" representing the 1120 // client's request for the DeletePermissionPolicy operation. The "output" return 1121 // value will be populated with the request's response once the request completes 1122 // successfully. 1123 // 1124 // Use "Send" method on the returned Request to send the API call to the service. 1125 // the "output" return value is not valid until after Send returns without error. 1126 // 1127 // See DeletePermissionPolicy for more information on using the DeletePermissionPolicy 1128 // API call, and error handling. 1129 // 1130 // This method is useful when you want to inject custom logic or configuration 1131 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1132 // 1133 // 1134 // // Example sending a request using the DeletePermissionPolicyRequest method. 1135 // req, resp := client.DeletePermissionPolicyRequest(params) 1136 // 1137 // err := req.Send() 1138 // if err == nil { // resp is now filled 1139 // fmt.Println(resp) 1140 // } 1141 // 1142 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeletePermissionPolicy 1143 func (c *WAFV2) DeletePermissionPolicyRequest(input *DeletePermissionPolicyInput) (req *request.Request, output *DeletePermissionPolicyOutput) { 1144 op := &request.Operation{ 1145 Name: opDeletePermissionPolicy, 1146 HTTPMethod: "POST", 1147 HTTPPath: "/", 1148 } 1149 1150 if input == nil { 1151 input = &DeletePermissionPolicyInput{} 1152 } 1153 1154 output = &DeletePermissionPolicyOutput{} 1155 req = c.newRequest(op, input, output) 1156 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1157 return 1158 } 1159 1160 // DeletePermissionPolicy API operation for AWS WAFV2. 1161 // 1162 // Permanently deletes an IAM policy from the specified rule group. 1163 // 1164 // You must be the owner of the rule group to perform this operation. 1165 // 1166 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1167 // with awserr.Error's Code and Message methods to get detailed information about 1168 // the error. 1169 // 1170 // See the AWS API reference guide for AWS WAFV2's 1171 // API operation DeletePermissionPolicy for usage and error information. 1172 // 1173 // Returned Error Types: 1174 // * WAFNonexistentItemException 1175 // WAF couldn’t perform the operation because your resource doesn’t exist. 1176 // 1177 // * WAFInternalErrorException 1178 // Your request is valid, but WAF couldn’t perform the operation because of 1179 // a system problem. Retry your request. 1180 // 1181 // * WAFInvalidParameterException 1182 // The operation failed because WAF didn't recognize a parameter in the request. 1183 // For example: 1184 // 1185 // * You specified a parameter name or value that isn't valid. 1186 // 1187 // * Your nested statement isn't valid. You might have tried to nest a statement 1188 // that can’t be nested. 1189 // 1190 // * You tried to update a WebACL with a DefaultAction that isn't among the 1191 // types available at DefaultAction. 1192 // 1193 // * Your request references an ARN that is malformed, or corresponds to 1194 // a resource with which a web ACL can't be associated. 1195 // 1196 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeletePermissionPolicy 1197 func (c *WAFV2) DeletePermissionPolicy(input *DeletePermissionPolicyInput) (*DeletePermissionPolicyOutput, error) { 1198 req, out := c.DeletePermissionPolicyRequest(input) 1199 return out, req.Send() 1200 } 1201 1202 // DeletePermissionPolicyWithContext is the same as DeletePermissionPolicy with the addition of 1203 // the ability to pass a context and additional request options. 1204 // 1205 // See DeletePermissionPolicy for details on how to use this API operation. 1206 // 1207 // The context must be non-nil and will be used for request cancellation. If 1208 // the context is nil a panic will occur. In the future the SDK may create 1209 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1210 // for more information on using Contexts. 1211 func (c *WAFV2) DeletePermissionPolicyWithContext(ctx aws.Context, input *DeletePermissionPolicyInput, opts ...request.Option) (*DeletePermissionPolicyOutput, error) { 1212 req, out := c.DeletePermissionPolicyRequest(input) 1213 req.SetContext(ctx) 1214 req.ApplyOptions(opts...) 1215 return out, req.Send() 1216 } 1217 1218 const opDeleteRegexPatternSet = "DeleteRegexPatternSet" 1219 1220 // DeleteRegexPatternSetRequest generates a "aws/request.Request" representing the 1221 // client's request for the DeleteRegexPatternSet operation. The "output" return 1222 // value will be populated with the request's response once the request completes 1223 // successfully. 1224 // 1225 // Use "Send" method on the returned Request to send the API call to the service. 1226 // the "output" return value is not valid until after Send returns without error. 1227 // 1228 // See DeleteRegexPatternSet for more information on using the DeleteRegexPatternSet 1229 // API call, and error handling. 1230 // 1231 // This method is useful when you want to inject custom logic or configuration 1232 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1233 // 1234 // 1235 // // Example sending a request using the DeleteRegexPatternSetRequest method. 1236 // req, resp := client.DeleteRegexPatternSetRequest(params) 1237 // 1238 // err := req.Send() 1239 // if err == nil { // resp is now filled 1240 // fmt.Println(resp) 1241 // } 1242 // 1243 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRegexPatternSet 1244 func (c *WAFV2) DeleteRegexPatternSetRequest(input *DeleteRegexPatternSetInput) (req *request.Request, output *DeleteRegexPatternSetOutput) { 1245 op := &request.Operation{ 1246 Name: opDeleteRegexPatternSet, 1247 HTTPMethod: "POST", 1248 HTTPPath: "/", 1249 } 1250 1251 if input == nil { 1252 input = &DeleteRegexPatternSetInput{} 1253 } 1254 1255 output = &DeleteRegexPatternSetOutput{} 1256 req = c.newRequest(op, input, output) 1257 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1258 return 1259 } 1260 1261 // DeleteRegexPatternSet API operation for AWS WAFV2. 1262 // 1263 // Deletes the specified RegexPatternSet. 1264 // 1265 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1266 // with awserr.Error's Code and Message methods to get detailed information about 1267 // the error. 1268 // 1269 // See the AWS API reference guide for AWS WAFV2's 1270 // API operation DeleteRegexPatternSet for usage and error information. 1271 // 1272 // Returned Error Types: 1273 // * WAFInternalErrorException 1274 // Your request is valid, but WAF couldn’t perform the operation because of 1275 // a system problem. Retry your request. 1276 // 1277 // * WAFInvalidParameterException 1278 // The operation failed because WAF didn't recognize a parameter in the request. 1279 // For example: 1280 // 1281 // * You specified a parameter name or value that isn't valid. 1282 // 1283 // * Your nested statement isn't valid. You might have tried to nest a statement 1284 // that can’t be nested. 1285 // 1286 // * You tried to update a WebACL with a DefaultAction that isn't among the 1287 // types available at DefaultAction. 1288 // 1289 // * Your request references an ARN that is malformed, or corresponds to 1290 // a resource with which a web ACL can't be associated. 1291 // 1292 // * WAFNonexistentItemException 1293 // WAF couldn’t perform the operation because your resource doesn’t exist. 1294 // 1295 // * WAFOptimisticLockException 1296 // WAF couldn’t save your changes because you tried to update or delete a 1297 // resource that has changed since you last retrieved it. Get the resource again, 1298 // make any changes you need to make to the new copy, and retry your operation. 1299 // 1300 // * WAFAssociatedItemException 1301 // WAF couldn’t perform the operation because your resource is being used 1302 // by another resource or it’s associated with another resource. 1303 // 1304 // * WAFTagOperationException 1305 // An error occurred during the tagging operation. Retry your request. 1306 // 1307 // * WAFTagOperationInternalErrorException 1308 // WAF couldn’t perform your tagging operation because of an internal error. 1309 // Retry your request. 1310 // 1311 // * WAFInvalidOperationException 1312 // The operation isn't valid. 1313 // 1314 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRegexPatternSet 1315 func (c *WAFV2) DeleteRegexPatternSet(input *DeleteRegexPatternSetInput) (*DeleteRegexPatternSetOutput, error) { 1316 req, out := c.DeleteRegexPatternSetRequest(input) 1317 return out, req.Send() 1318 } 1319 1320 // DeleteRegexPatternSetWithContext is the same as DeleteRegexPatternSet with the addition of 1321 // the ability to pass a context and additional request options. 1322 // 1323 // See DeleteRegexPatternSet for details on how to use this API operation. 1324 // 1325 // The context must be non-nil and will be used for request cancellation. If 1326 // the context is nil a panic will occur. In the future the SDK may create 1327 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1328 // for more information on using Contexts. 1329 func (c *WAFV2) DeleteRegexPatternSetWithContext(ctx aws.Context, input *DeleteRegexPatternSetInput, opts ...request.Option) (*DeleteRegexPatternSetOutput, error) { 1330 req, out := c.DeleteRegexPatternSetRequest(input) 1331 req.SetContext(ctx) 1332 req.ApplyOptions(opts...) 1333 return out, req.Send() 1334 } 1335 1336 const opDeleteRuleGroup = "DeleteRuleGroup" 1337 1338 // DeleteRuleGroupRequest generates a "aws/request.Request" representing the 1339 // client's request for the DeleteRuleGroup operation. The "output" return 1340 // value will be populated with the request's response once the request completes 1341 // successfully. 1342 // 1343 // Use "Send" method on the returned Request to send the API call to the service. 1344 // the "output" return value is not valid until after Send returns without error. 1345 // 1346 // See DeleteRuleGroup for more information on using the DeleteRuleGroup 1347 // API call, and error handling. 1348 // 1349 // This method is useful when you want to inject custom logic or configuration 1350 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1351 // 1352 // 1353 // // Example sending a request using the DeleteRuleGroupRequest method. 1354 // req, resp := client.DeleteRuleGroupRequest(params) 1355 // 1356 // err := req.Send() 1357 // if err == nil { // resp is now filled 1358 // fmt.Println(resp) 1359 // } 1360 // 1361 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRuleGroup 1362 func (c *WAFV2) DeleteRuleGroupRequest(input *DeleteRuleGroupInput) (req *request.Request, output *DeleteRuleGroupOutput) { 1363 op := &request.Operation{ 1364 Name: opDeleteRuleGroup, 1365 HTTPMethod: "POST", 1366 HTTPPath: "/", 1367 } 1368 1369 if input == nil { 1370 input = &DeleteRuleGroupInput{} 1371 } 1372 1373 output = &DeleteRuleGroupOutput{} 1374 req = c.newRequest(op, input, output) 1375 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1376 return 1377 } 1378 1379 // DeleteRuleGroup API operation for AWS WAFV2. 1380 // 1381 // Deletes the specified RuleGroup. 1382 // 1383 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1384 // with awserr.Error's Code and Message methods to get detailed information about 1385 // the error. 1386 // 1387 // See the AWS API reference guide for AWS WAFV2's 1388 // API operation DeleteRuleGroup for usage and error information. 1389 // 1390 // Returned Error Types: 1391 // * WAFInternalErrorException 1392 // Your request is valid, but WAF couldn’t perform the operation because of 1393 // a system problem. Retry your request. 1394 // 1395 // * WAFInvalidParameterException 1396 // The operation failed because WAF didn't recognize a parameter in the request. 1397 // For example: 1398 // 1399 // * You specified a parameter name or value that isn't valid. 1400 // 1401 // * Your nested statement isn't valid. You might have tried to nest a statement 1402 // that can’t be nested. 1403 // 1404 // * You tried to update a WebACL with a DefaultAction that isn't among the 1405 // types available at DefaultAction. 1406 // 1407 // * Your request references an ARN that is malformed, or corresponds to 1408 // a resource with which a web ACL can't be associated. 1409 // 1410 // * WAFNonexistentItemException 1411 // WAF couldn’t perform the operation because your resource doesn’t exist. 1412 // 1413 // * WAFOptimisticLockException 1414 // WAF couldn’t save your changes because you tried to update or delete a 1415 // resource that has changed since you last retrieved it. Get the resource again, 1416 // make any changes you need to make to the new copy, and retry your operation. 1417 // 1418 // * WAFAssociatedItemException 1419 // WAF couldn’t perform the operation because your resource is being used 1420 // by another resource or it’s associated with another resource. 1421 // 1422 // * WAFTagOperationException 1423 // An error occurred during the tagging operation. Retry your request. 1424 // 1425 // * WAFTagOperationInternalErrorException 1426 // WAF couldn’t perform your tagging operation because of an internal error. 1427 // Retry your request. 1428 // 1429 // * WAFInvalidOperationException 1430 // The operation isn't valid. 1431 // 1432 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteRuleGroup 1433 func (c *WAFV2) DeleteRuleGroup(input *DeleteRuleGroupInput) (*DeleteRuleGroupOutput, error) { 1434 req, out := c.DeleteRuleGroupRequest(input) 1435 return out, req.Send() 1436 } 1437 1438 // DeleteRuleGroupWithContext is the same as DeleteRuleGroup with the addition of 1439 // the ability to pass a context and additional request options. 1440 // 1441 // See DeleteRuleGroup for details on how to use this API operation. 1442 // 1443 // The context must be non-nil and will be used for request cancellation. If 1444 // the context is nil a panic will occur. In the future the SDK may create 1445 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1446 // for more information on using Contexts. 1447 func (c *WAFV2) DeleteRuleGroupWithContext(ctx aws.Context, input *DeleteRuleGroupInput, opts ...request.Option) (*DeleteRuleGroupOutput, error) { 1448 req, out := c.DeleteRuleGroupRequest(input) 1449 req.SetContext(ctx) 1450 req.ApplyOptions(opts...) 1451 return out, req.Send() 1452 } 1453 1454 const opDeleteWebACL = "DeleteWebACL" 1455 1456 // DeleteWebACLRequest generates a "aws/request.Request" representing the 1457 // client's request for the DeleteWebACL operation. The "output" return 1458 // value will be populated with the request's response once the request completes 1459 // successfully. 1460 // 1461 // Use "Send" method on the returned Request to send the API call to the service. 1462 // the "output" return value is not valid until after Send returns without error. 1463 // 1464 // See DeleteWebACL for more information on using the DeleteWebACL 1465 // API call, and error handling. 1466 // 1467 // This method is useful when you want to inject custom logic or configuration 1468 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1469 // 1470 // 1471 // // Example sending a request using the DeleteWebACLRequest method. 1472 // req, resp := client.DeleteWebACLRequest(params) 1473 // 1474 // err := req.Send() 1475 // if err == nil { // resp is now filled 1476 // fmt.Println(resp) 1477 // } 1478 // 1479 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACL 1480 func (c *WAFV2) DeleteWebACLRequest(input *DeleteWebACLInput) (req *request.Request, output *DeleteWebACLOutput) { 1481 op := &request.Operation{ 1482 Name: opDeleteWebACL, 1483 HTTPMethod: "POST", 1484 HTTPPath: "/", 1485 } 1486 1487 if input == nil { 1488 input = &DeleteWebACLInput{} 1489 } 1490 1491 output = &DeleteWebACLOutput{} 1492 req = c.newRequest(op, input, output) 1493 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1494 return 1495 } 1496 1497 // DeleteWebACL API operation for AWS WAFV2. 1498 // 1499 // Deletes the specified WebACL. 1500 // 1501 // You can only use this if ManagedByFirewallManager is false in the specified 1502 // WebACL. 1503 // 1504 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1505 // with awserr.Error's Code and Message methods to get detailed information about 1506 // the error. 1507 // 1508 // See the AWS API reference guide for AWS WAFV2's 1509 // API operation DeleteWebACL for usage and error information. 1510 // 1511 // Returned Error Types: 1512 // * WAFInternalErrorException 1513 // Your request is valid, but WAF couldn’t perform the operation because of 1514 // a system problem. Retry your request. 1515 // 1516 // * WAFInvalidParameterException 1517 // The operation failed because WAF didn't recognize a parameter in the request. 1518 // For example: 1519 // 1520 // * You specified a parameter name or value that isn't valid. 1521 // 1522 // * Your nested statement isn't valid. You might have tried to nest a statement 1523 // that can’t be nested. 1524 // 1525 // * You tried to update a WebACL with a DefaultAction that isn't among the 1526 // types available at DefaultAction. 1527 // 1528 // * Your request references an ARN that is malformed, or corresponds to 1529 // a resource with which a web ACL can't be associated. 1530 // 1531 // * WAFNonexistentItemException 1532 // WAF couldn’t perform the operation because your resource doesn’t exist. 1533 // 1534 // * WAFOptimisticLockException 1535 // WAF couldn’t save your changes because you tried to update or delete a 1536 // resource that has changed since you last retrieved it. Get the resource again, 1537 // make any changes you need to make to the new copy, and retry your operation. 1538 // 1539 // * WAFAssociatedItemException 1540 // WAF couldn’t perform the operation because your resource is being used 1541 // by another resource or it’s associated with another resource. 1542 // 1543 // * WAFTagOperationException 1544 // An error occurred during the tagging operation. Retry your request. 1545 // 1546 // * WAFTagOperationInternalErrorException 1547 // WAF couldn’t perform your tagging operation because of an internal error. 1548 // Retry your request. 1549 // 1550 // * WAFInvalidOperationException 1551 // The operation isn't valid. 1552 // 1553 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DeleteWebACL 1554 func (c *WAFV2) DeleteWebACL(input *DeleteWebACLInput) (*DeleteWebACLOutput, error) { 1555 req, out := c.DeleteWebACLRequest(input) 1556 return out, req.Send() 1557 } 1558 1559 // DeleteWebACLWithContext is the same as DeleteWebACL with the addition of 1560 // the ability to pass a context and additional request options. 1561 // 1562 // See DeleteWebACL for details on how to use this API operation. 1563 // 1564 // The context must be non-nil and will be used for request cancellation. If 1565 // the context is nil a panic will occur. In the future the SDK may create 1566 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1567 // for more information on using Contexts. 1568 func (c *WAFV2) DeleteWebACLWithContext(ctx aws.Context, input *DeleteWebACLInput, opts ...request.Option) (*DeleteWebACLOutput, error) { 1569 req, out := c.DeleteWebACLRequest(input) 1570 req.SetContext(ctx) 1571 req.ApplyOptions(opts...) 1572 return out, req.Send() 1573 } 1574 1575 const opDescribeManagedRuleGroup = "DescribeManagedRuleGroup" 1576 1577 // DescribeManagedRuleGroupRequest generates a "aws/request.Request" representing the 1578 // client's request for the DescribeManagedRuleGroup operation. The "output" return 1579 // value will be populated with the request's response once the request completes 1580 // successfully. 1581 // 1582 // Use "Send" method on the returned Request to send the API call to the service. 1583 // the "output" return value is not valid until after Send returns without error. 1584 // 1585 // See DescribeManagedRuleGroup for more information on using the DescribeManagedRuleGroup 1586 // API call, and error handling. 1587 // 1588 // This method is useful when you want to inject custom logic or configuration 1589 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1590 // 1591 // 1592 // // Example sending a request using the DescribeManagedRuleGroupRequest method. 1593 // req, resp := client.DescribeManagedRuleGroupRequest(params) 1594 // 1595 // err := req.Send() 1596 // if err == nil { // resp is now filled 1597 // fmt.Println(resp) 1598 // } 1599 // 1600 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroup 1601 func (c *WAFV2) DescribeManagedRuleGroupRequest(input *DescribeManagedRuleGroupInput) (req *request.Request, output *DescribeManagedRuleGroupOutput) { 1602 op := &request.Operation{ 1603 Name: opDescribeManagedRuleGroup, 1604 HTTPMethod: "POST", 1605 HTTPPath: "/", 1606 } 1607 1608 if input == nil { 1609 input = &DescribeManagedRuleGroupInput{} 1610 } 1611 1612 output = &DescribeManagedRuleGroupOutput{} 1613 req = c.newRequest(op, input, output) 1614 return 1615 } 1616 1617 // DescribeManagedRuleGroup API operation for AWS WAFV2. 1618 // 1619 // Provides high-level information for a managed rule group, including descriptions 1620 // of the rules. 1621 // 1622 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1623 // with awserr.Error's Code and Message methods to get detailed information about 1624 // the error. 1625 // 1626 // See the AWS API reference guide for AWS WAFV2's 1627 // API operation DescribeManagedRuleGroup for usage and error information. 1628 // 1629 // Returned Error Types: 1630 // * WAFInternalErrorException 1631 // Your request is valid, but WAF couldn’t perform the operation because of 1632 // a system problem. Retry your request. 1633 // 1634 // * WAFInvalidParameterException 1635 // The operation failed because WAF didn't recognize a parameter in the request. 1636 // For example: 1637 // 1638 // * You specified a parameter name or value that isn't valid. 1639 // 1640 // * Your nested statement isn't valid. You might have tried to nest a statement 1641 // that can’t be nested. 1642 // 1643 // * You tried to update a WebACL with a DefaultAction that isn't among the 1644 // types available at DefaultAction. 1645 // 1646 // * Your request references an ARN that is malformed, or corresponds to 1647 // a resource with which a web ACL can't be associated. 1648 // 1649 // * WAFInvalidResourceException 1650 // WAF couldn’t perform the operation because the resource that you requested 1651 // isn’t valid. Check the resource, and try again. 1652 // 1653 // * WAFNonexistentItemException 1654 // WAF couldn’t perform the operation because your resource doesn’t exist. 1655 // 1656 // * WAFInvalidOperationException 1657 // The operation isn't valid. 1658 // 1659 // * WAFExpiredManagedRuleGroupVersionException 1660 // The operation failed because the specified version for the managed rule group 1661 // has expired. You can retrieve the available versions for the managed rule 1662 // group by calling ListAvailableManagedRuleGroupVersions. 1663 // 1664 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DescribeManagedRuleGroup 1665 func (c *WAFV2) DescribeManagedRuleGroup(input *DescribeManagedRuleGroupInput) (*DescribeManagedRuleGroupOutput, error) { 1666 req, out := c.DescribeManagedRuleGroupRequest(input) 1667 return out, req.Send() 1668 } 1669 1670 // DescribeManagedRuleGroupWithContext is the same as DescribeManagedRuleGroup with the addition of 1671 // the ability to pass a context and additional request options. 1672 // 1673 // See DescribeManagedRuleGroup for details on how to use this API operation. 1674 // 1675 // The context must be non-nil and will be used for request cancellation. If 1676 // the context is nil a panic will occur. In the future the SDK may create 1677 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1678 // for more information on using Contexts. 1679 func (c *WAFV2) DescribeManagedRuleGroupWithContext(ctx aws.Context, input *DescribeManagedRuleGroupInput, opts ...request.Option) (*DescribeManagedRuleGroupOutput, error) { 1680 req, out := c.DescribeManagedRuleGroupRequest(input) 1681 req.SetContext(ctx) 1682 req.ApplyOptions(opts...) 1683 return out, req.Send() 1684 } 1685 1686 const opDisassociateWebACL = "DisassociateWebACL" 1687 1688 // DisassociateWebACLRequest generates a "aws/request.Request" representing the 1689 // client's request for the DisassociateWebACL operation. The "output" return 1690 // value will be populated with the request's response once the request completes 1691 // successfully. 1692 // 1693 // Use "Send" method on the returned Request to send the API call to the service. 1694 // the "output" return value is not valid until after Send returns without error. 1695 // 1696 // See DisassociateWebACL for more information on using the DisassociateWebACL 1697 // API call, and error handling. 1698 // 1699 // This method is useful when you want to inject custom logic or configuration 1700 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1701 // 1702 // 1703 // // Example sending a request using the DisassociateWebACLRequest method. 1704 // req, resp := client.DisassociateWebACLRequest(params) 1705 // 1706 // err := req.Send() 1707 // if err == nil { // resp is now filled 1708 // fmt.Println(resp) 1709 // } 1710 // 1711 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DisassociateWebACL 1712 func (c *WAFV2) DisassociateWebACLRequest(input *DisassociateWebACLInput) (req *request.Request, output *DisassociateWebACLOutput) { 1713 op := &request.Operation{ 1714 Name: opDisassociateWebACL, 1715 HTTPMethod: "POST", 1716 HTTPPath: "/", 1717 } 1718 1719 if input == nil { 1720 input = &DisassociateWebACLInput{} 1721 } 1722 1723 output = &DisassociateWebACLOutput{} 1724 req = c.newRequest(op, input, output) 1725 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 1726 return 1727 } 1728 1729 // DisassociateWebACL API operation for AWS WAFV2. 1730 // 1731 // Disassociates a web ACL from a regional application resource. A regional 1732 // application can be an Application Load Balancer (ALB), an Amazon API Gateway 1733 // REST API, or an AppSync GraphQL API. 1734 // 1735 // For Amazon CloudFront, don't use this call. Instead, use your CloudFront 1736 // distribution configuration. To disassociate a web ACL, provide an empty web 1737 // ACL ID in the CloudFront call UpdateDistribution. For information, see UpdateDistribution 1738 // (https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html). 1739 // 1740 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1741 // with awserr.Error's Code and Message methods to get detailed information about 1742 // the error. 1743 // 1744 // See the AWS API reference guide for AWS WAFV2's 1745 // API operation DisassociateWebACL for usage and error information. 1746 // 1747 // Returned Error Types: 1748 // * WAFInternalErrorException 1749 // Your request is valid, but WAF couldn’t perform the operation because of 1750 // a system problem. Retry your request. 1751 // 1752 // * WAFInvalidParameterException 1753 // The operation failed because WAF didn't recognize a parameter in the request. 1754 // For example: 1755 // 1756 // * You specified a parameter name or value that isn't valid. 1757 // 1758 // * Your nested statement isn't valid. You might have tried to nest a statement 1759 // that can’t be nested. 1760 // 1761 // * You tried to update a WebACL with a DefaultAction that isn't among the 1762 // types available at DefaultAction. 1763 // 1764 // * Your request references an ARN that is malformed, or corresponds to 1765 // a resource with which a web ACL can't be associated. 1766 // 1767 // * WAFNonexistentItemException 1768 // WAF couldn’t perform the operation because your resource doesn’t exist. 1769 // 1770 // * WAFInvalidOperationException 1771 // The operation isn't valid. 1772 // 1773 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/DisassociateWebACL 1774 func (c *WAFV2) DisassociateWebACL(input *DisassociateWebACLInput) (*DisassociateWebACLOutput, error) { 1775 req, out := c.DisassociateWebACLRequest(input) 1776 return out, req.Send() 1777 } 1778 1779 // DisassociateWebACLWithContext is the same as DisassociateWebACL with the addition of 1780 // the ability to pass a context and additional request options. 1781 // 1782 // See DisassociateWebACL for details on how to use this API operation. 1783 // 1784 // The context must be non-nil and will be used for request cancellation. If 1785 // the context is nil a panic will occur. In the future the SDK may create 1786 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1787 // for more information on using Contexts. 1788 func (c *WAFV2) DisassociateWebACLWithContext(ctx aws.Context, input *DisassociateWebACLInput, opts ...request.Option) (*DisassociateWebACLOutput, error) { 1789 req, out := c.DisassociateWebACLRequest(input) 1790 req.SetContext(ctx) 1791 req.ApplyOptions(opts...) 1792 return out, req.Send() 1793 } 1794 1795 const opGetIPSet = "GetIPSet" 1796 1797 // GetIPSetRequest generates a "aws/request.Request" representing the 1798 // client's request for the GetIPSet operation. The "output" return 1799 // value will be populated with the request's response once the request completes 1800 // successfully. 1801 // 1802 // Use "Send" method on the returned Request to send the API call to the service. 1803 // the "output" return value is not valid until after Send returns without error. 1804 // 1805 // See GetIPSet for more information on using the GetIPSet 1806 // API call, and error handling. 1807 // 1808 // This method is useful when you want to inject custom logic or configuration 1809 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1810 // 1811 // 1812 // // Example sending a request using the GetIPSetRequest method. 1813 // req, resp := client.GetIPSetRequest(params) 1814 // 1815 // err := req.Send() 1816 // if err == nil { // resp is now filled 1817 // fmt.Println(resp) 1818 // } 1819 // 1820 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetIPSet 1821 func (c *WAFV2) GetIPSetRequest(input *GetIPSetInput) (req *request.Request, output *GetIPSetOutput) { 1822 op := &request.Operation{ 1823 Name: opGetIPSet, 1824 HTTPMethod: "POST", 1825 HTTPPath: "/", 1826 } 1827 1828 if input == nil { 1829 input = &GetIPSetInput{} 1830 } 1831 1832 output = &GetIPSetOutput{} 1833 req = c.newRequest(op, input, output) 1834 return 1835 } 1836 1837 // GetIPSet API operation for AWS WAFV2. 1838 // 1839 // Retrieves the specified IPSet. 1840 // 1841 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1842 // with awserr.Error's Code and Message methods to get detailed information about 1843 // the error. 1844 // 1845 // See the AWS API reference guide for AWS WAFV2's 1846 // API operation GetIPSet for usage and error information. 1847 // 1848 // Returned Error Types: 1849 // * WAFInternalErrorException 1850 // Your request is valid, but WAF couldn’t perform the operation because of 1851 // a system problem. Retry your request. 1852 // 1853 // * WAFInvalidParameterException 1854 // The operation failed because WAF didn't recognize a parameter in the request. 1855 // For example: 1856 // 1857 // * You specified a parameter name or value that isn't valid. 1858 // 1859 // * Your nested statement isn't valid. You might have tried to nest a statement 1860 // that can’t be nested. 1861 // 1862 // * You tried to update a WebACL with a DefaultAction that isn't among the 1863 // types available at DefaultAction. 1864 // 1865 // * Your request references an ARN that is malformed, or corresponds to 1866 // a resource with which a web ACL can't be associated. 1867 // 1868 // * WAFNonexistentItemException 1869 // WAF couldn’t perform the operation because your resource doesn’t exist. 1870 // 1871 // * WAFInvalidOperationException 1872 // The operation isn't valid. 1873 // 1874 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetIPSet 1875 func (c *WAFV2) GetIPSet(input *GetIPSetInput) (*GetIPSetOutput, error) { 1876 req, out := c.GetIPSetRequest(input) 1877 return out, req.Send() 1878 } 1879 1880 // GetIPSetWithContext is the same as GetIPSet with the addition of 1881 // the ability to pass a context and additional request options. 1882 // 1883 // See GetIPSet for details on how to use this API operation. 1884 // 1885 // The context must be non-nil and will be used for request cancellation. If 1886 // the context is nil a panic will occur. In the future the SDK may create 1887 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1888 // for more information on using Contexts. 1889 func (c *WAFV2) GetIPSetWithContext(ctx aws.Context, input *GetIPSetInput, opts ...request.Option) (*GetIPSetOutput, error) { 1890 req, out := c.GetIPSetRequest(input) 1891 req.SetContext(ctx) 1892 req.ApplyOptions(opts...) 1893 return out, req.Send() 1894 } 1895 1896 const opGetLoggingConfiguration = "GetLoggingConfiguration" 1897 1898 // GetLoggingConfigurationRequest generates a "aws/request.Request" representing the 1899 // client's request for the GetLoggingConfiguration operation. The "output" return 1900 // value will be populated with the request's response once the request completes 1901 // successfully. 1902 // 1903 // Use "Send" method on the returned Request to send the API call to the service. 1904 // the "output" return value is not valid until after Send returns without error. 1905 // 1906 // See GetLoggingConfiguration for more information on using the GetLoggingConfiguration 1907 // API call, and error handling. 1908 // 1909 // This method is useful when you want to inject custom logic or configuration 1910 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 1911 // 1912 // 1913 // // Example sending a request using the GetLoggingConfigurationRequest method. 1914 // req, resp := client.GetLoggingConfigurationRequest(params) 1915 // 1916 // err := req.Send() 1917 // if err == nil { // resp is now filled 1918 // fmt.Println(resp) 1919 // } 1920 // 1921 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetLoggingConfiguration 1922 func (c *WAFV2) GetLoggingConfigurationRequest(input *GetLoggingConfigurationInput) (req *request.Request, output *GetLoggingConfigurationOutput) { 1923 op := &request.Operation{ 1924 Name: opGetLoggingConfiguration, 1925 HTTPMethod: "POST", 1926 HTTPPath: "/", 1927 } 1928 1929 if input == nil { 1930 input = &GetLoggingConfigurationInput{} 1931 } 1932 1933 output = &GetLoggingConfigurationOutput{} 1934 req = c.newRequest(op, input, output) 1935 return 1936 } 1937 1938 // GetLoggingConfiguration API operation for AWS WAFV2. 1939 // 1940 // Returns the LoggingConfiguration for the specified web ACL. 1941 // 1942 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1943 // with awserr.Error's Code and Message methods to get detailed information about 1944 // the error. 1945 // 1946 // See the AWS API reference guide for AWS WAFV2's 1947 // API operation GetLoggingConfiguration for usage and error information. 1948 // 1949 // Returned Error Types: 1950 // * WAFInternalErrorException 1951 // Your request is valid, but WAF couldn’t perform the operation because of 1952 // a system problem. Retry your request. 1953 // 1954 // * WAFNonexistentItemException 1955 // WAF couldn’t perform the operation because your resource doesn’t exist. 1956 // 1957 // * WAFInvalidParameterException 1958 // The operation failed because WAF didn't recognize a parameter in the request. 1959 // For example: 1960 // 1961 // * You specified a parameter name or value that isn't valid. 1962 // 1963 // * Your nested statement isn't valid. You might have tried to nest a statement 1964 // that can’t be nested. 1965 // 1966 // * You tried to update a WebACL with a DefaultAction that isn't among the 1967 // types available at DefaultAction. 1968 // 1969 // * Your request references an ARN that is malformed, or corresponds to 1970 // a resource with which a web ACL can't be associated. 1971 // 1972 // * WAFInvalidOperationException 1973 // The operation isn't valid. 1974 // 1975 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetLoggingConfiguration 1976 func (c *WAFV2) GetLoggingConfiguration(input *GetLoggingConfigurationInput) (*GetLoggingConfigurationOutput, error) { 1977 req, out := c.GetLoggingConfigurationRequest(input) 1978 return out, req.Send() 1979 } 1980 1981 // GetLoggingConfigurationWithContext is the same as GetLoggingConfiguration with the addition of 1982 // the ability to pass a context and additional request options. 1983 // 1984 // See GetLoggingConfiguration for details on how to use this API operation. 1985 // 1986 // The context must be non-nil and will be used for request cancellation. If 1987 // the context is nil a panic will occur. In the future the SDK may create 1988 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1989 // for more information on using Contexts. 1990 func (c *WAFV2) GetLoggingConfigurationWithContext(ctx aws.Context, input *GetLoggingConfigurationInput, opts ...request.Option) (*GetLoggingConfigurationOutput, error) { 1991 req, out := c.GetLoggingConfigurationRequest(input) 1992 req.SetContext(ctx) 1993 req.ApplyOptions(opts...) 1994 return out, req.Send() 1995 } 1996 1997 const opGetManagedRuleSet = "GetManagedRuleSet" 1998 1999 // GetManagedRuleSetRequest generates a "aws/request.Request" representing the 2000 // client's request for the GetManagedRuleSet operation. The "output" return 2001 // value will be populated with the request's response once the request completes 2002 // successfully. 2003 // 2004 // Use "Send" method on the returned Request to send the API call to the service. 2005 // the "output" return value is not valid until after Send returns without error. 2006 // 2007 // See GetManagedRuleSet for more information on using the GetManagedRuleSet 2008 // API call, and error handling. 2009 // 2010 // This method is useful when you want to inject custom logic or configuration 2011 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2012 // 2013 // 2014 // // Example sending a request using the GetManagedRuleSetRequest method. 2015 // req, resp := client.GetManagedRuleSetRequest(params) 2016 // 2017 // err := req.Send() 2018 // if err == nil { // resp is now filled 2019 // fmt.Println(resp) 2020 // } 2021 // 2022 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSet 2023 func (c *WAFV2) GetManagedRuleSetRequest(input *GetManagedRuleSetInput) (req *request.Request, output *GetManagedRuleSetOutput) { 2024 op := &request.Operation{ 2025 Name: opGetManagedRuleSet, 2026 HTTPMethod: "POST", 2027 HTTPPath: "/", 2028 } 2029 2030 if input == nil { 2031 input = &GetManagedRuleSetInput{} 2032 } 2033 2034 output = &GetManagedRuleSetOutput{} 2035 req = c.newRequest(op, input, output) 2036 return 2037 } 2038 2039 // GetManagedRuleSet API operation for AWS WAFV2. 2040 // 2041 // Retrieves the specified managed rule set. 2042 // 2043 // This is intended for use only by vendors of managed rule sets. Vendors are 2044 // Amazon Web Services and Amazon Web Services Marketplace sellers. 2045 // 2046 // Vendors, you can use the managed rule set APIs to provide controlled rollout 2047 // of your versioned managed rule group offerings for your customers. The APIs 2048 // are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and 2049 // UpdateManagedRuleSetVersionExpiryDate. 2050 // 2051 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2052 // with awserr.Error's Code and Message methods to get detailed information about 2053 // the error. 2054 // 2055 // See the AWS API reference guide for AWS WAFV2's 2056 // API operation GetManagedRuleSet for usage and error information. 2057 // 2058 // Returned Error Types: 2059 // * WAFInternalErrorException 2060 // Your request is valid, but WAF couldn’t perform the operation because of 2061 // a system problem. Retry your request. 2062 // 2063 // * WAFInvalidParameterException 2064 // The operation failed because WAF didn't recognize a parameter in the request. 2065 // For example: 2066 // 2067 // * You specified a parameter name or value that isn't valid. 2068 // 2069 // * Your nested statement isn't valid. You might have tried to nest a statement 2070 // that can’t be nested. 2071 // 2072 // * You tried to update a WebACL with a DefaultAction that isn't among the 2073 // types available at DefaultAction. 2074 // 2075 // * Your request references an ARN that is malformed, or corresponds to 2076 // a resource with which a web ACL can't be associated. 2077 // 2078 // * WAFNonexistentItemException 2079 // WAF couldn’t perform the operation because your resource doesn’t exist. 2080 // 2081 // * WAFInvalidOperationException 2082 // The operation isn't valid. 2083 // 2084 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetManagedRuleSet 2085 func (c *WAFV2) GetManagedRuleSet(input *GetManagedRuleSetInput) (*GetManagedRuleSetOutput, error) { 2086 req, out := c.GetManagedRuleSetRequest(input) 2087 return out, req.Send() 2088 } 2089 2090 // GetManagedRuleSetWithContext is the same as GetManagedRuleSet with the addition of 2091 // the ability to pass a context and additional request options. 2092 // 2093 // See GetManagedRuleSet for details on how to use this API operation. 2094 // 2095 // The context must be non-nil and will be used for request cancellation. If 2096 // the context is nil a panic will occur. In the future the SDK may create 2097 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2098 // for more information on using Contexts. 2099 func (c *WAFV2) GetManagedRuleSetWithContext(ctx aws.Context, input *GetManagedRuleSetInput, opts ...request.Option) (*GetManagedRuleSetOutput, error) { 2100 req, out := c.GetManagedRuleSetRequest(input) 2101 req.SetContext(ctx) 2102 req.ApplyOptions(opts...) 2103 return out, req.Send() 2104 } 2105 2106 const opGetPermissionPolicy = "GetPermissionPolicy" 2107 2108 // GetPermissionPolicyRequest generates a "aws/request.Request" representing the 2109 // client's request for the GetPermissionPolicy operation. The "output" return 2110 // value will be populated with the request's response once the request completes 2111 // successfully. 2112 // 2113 // Use "Send" method on the returned Request to send the API call to the service. 2114 // the "output" return value is not valid until after Send returns without error. 2115 // 2116 // See GetPermissionPolicy for more information on using the GetPermissionPolicy 2117 // API call, and error handling. 2118 // 2119 // This method is useful when you want to inject custom logic or configuration 2120 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2121 // 2122 // 2123 // // Example sending a request using the GetPermissionPolicyRequest method. 2124 // req, resp := client.GetPermissionPolicyRequest(params) 2125 // 2126 // err := req.Send() 2127 // if err == nil { // resp is now filled 2128 // fmt.Println(resp) 2129 // } 2130 // 2131 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetPermissionPolicy 2132 func (c *WAFV2) GetPermissionPolicyRequest(input *GetPermissionPolicyInput) (req *request.Request, output *GetPermissionPolicyOutput) { 2133 op := &request.Operation{ 2134 Name: opGetPermissionPolicy, 2135 HTTPMethod: "POST", 2136 HTTPPath: "/", 2137 } 2138 2139 if input == nil { 2140 input = &GetPermissionPolicyInput{} 2141 } 2142 2143 output = &GetPermissionPolicyOutput{} 2144 req = c.newRequest(op, input, output) 2145 return 2146 } 2147 2148 // GetPermissionPolicy API operation for AWS WAFV2. 2149 // 2150 // Returns the IAM policy that is attached to the specified rule group. 2151 // 2152 // You must be the owner of the rule group to perform this operation. 2153 // 2154 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2155 // with awserr.Error's Code and Message methods to get detailed information about 2156 // the error. 2157 // 2158 // See the AWS API reference guide for AWS WAFV2's 2159 // API operation GetPermissionPolicy for usage and error information. 2160 // 2161 // Returned Error Types: 2162 // * WAFNonexistentItemException 2163 // WAF couldn’t perform the operation because your resource doesn’t exist. 2164 // 2165 // * WAFInternalErrorException 2166 // Your request is valid, but WAF couldn’t perform the operation because of 2167 // a system problem. Retry your request. 2168 // 2169 // * WAFInvalidParameterException 2170 // The operation failed because WAF didn't recognize a parameter in the request. 2171 // For example: 2172 // 2173 // * You specified a parameter name or value that isn't valid. 2174 // 2175 // * Your nested statement isn't valid. You might have tried to nest a statement 2176 // that can’t be nested. 2177 // 2178 // * You tried to update a WebACL with a DefaultAction that isn't among the 2179 // types available at DefaultAction. 2180 // 2181 // * Your request references an ARN that is malformed, or corresponds to 2182 // a resource with which a web ACL can't be associated. 2183 // 2184 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetPermissionPolicy 2185 func (c *WAFV2) GetPermissionPolicy(input *GetPermissionPolicyInput) (*GetPermissionPolicyOutput, error) { 2186 req, out := c.GetPermissionPolicyRequest(input) 2187 return out, req.Send() 2188 } 2189 2190 // GetPermissionPolicyWithContext is the same as GetPermissionPolicy with the addition of 2191 // the ability to pass a context and additional request options. 2192 // 2193 // See GetPermissionPolicy for details on how to use this API operation. 2194 // 2195 // The context must be non-nil and will be used for request cancellation. If 2196 // the context is nil a panic will occur. In the future the SDK may create 2197 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2198 // for more information on using Contexts. 2199 func (c *WAFV2) GetPermissionPolicyWithContext(ctx aws.Context, input *GetPermissionPolicyInput, opts ...request.Option) (*GetPermissionPolicyOutput, error) { 2200 req, out := c.GetPermissionPolicyRequest(input) 2201 req.SetContext(ctx) 2202 req.ApplyOptions(opts...) 2203 return out, req.Send() 2204 } 2205 2206 const opGetRateBasedStatementManagedKeys = "GetRateBasedStatementManagedKeys" 2207 2208 // GetRateBasedStatementManagedKeysRequest generates a "aws/request.Request" representing the 2209 // client's request for the GetRateBasedStatementManagedKeys operation. The "output" return 2210 // value will be populated with the request's response once the request completes 2211 // successfully. 2212 // 2213 // Use "Send" method on the returned Request to send the API call to the service. 2214 // the "output" return value is not valid until after Send returns without error. 2215 // 2216 // See GetRateBasedStatementManagedKeys for more information on using the GetRateBasedStatementManagedKeys 2217 // API call, and error handling. 2218 // 2219 // This method is useful when you want to inject custom logic or configuration 2220 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2221 // 2222 // 2223 // // Example sending a request using the GetRateBasedStatementManagedKeysRequest method. 2224 // req, resp := client.GetRateBasedStatementManagedKeysRequest(params) 2225 // 2226 // err := req.Send() 2227 // if err == nil { // resp is now filled 2228 // fmt.Println(resp) 2229 // } 2230 // 2231 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRateBasedStatementManagedKeys 2232 func (c *WAFV2) GetRateBasedStatementManagedKeysRequest(input *GetRateBasedStatementManagedKeysInput) (req *request.Request, output *GetRateBasedStatementManagedKeysOutput) { 2233 op := &request.Operation{ 2234 Name: opGetRateBasedStatementManagedKeys, 2235 HTTPMethod: "POST", 2236 HTTPPath: "/", 2237 } 2238 2239 if input == nil { 2240 input = &GetRateBasedStatementManagedKeysInput{} 2241 } 2242 2243 output = &GetRateBasedStatementManagedKeysOutput{} 2244 req = c.newRequest(op, input, output) 2245 return 2246 } 2247 2248 // GetRateBasedStatementManagedKeys API operation for AWS WAFV2. 2249 // 2250 // Retrieves the keys that are currently blocked by a rate-based rule instance. 2251 // The maximum number of managed keys that can be blocked for a single rate-based 2252 // rule instance is 10,000. If more than 10,000 addresses exceed the rate limit, 2253 // those with the highest rates are blocked. 2254 // 2255 // For a rate-based rule that you've defined inside a rule group, provide the 2256 // name of the rule group reference statement in your request, in addition to 2257 // the rate-based rule name and the web ACL name. 2258 // 2259 // WAF monitors web requests and manages keys independently for each unique 2260 // combination of web ACL, optional rule group, and rate-based rule. For example, 2261 // if you define a rate-based rule inside a rule group, and then use the rule 2262 // group in a web ACL, WAF monitors web requests and manages keys for that web 2263 // ACL, rule group reference statement, and rate-based rule instance. If you 2264 // use the same rule group in a second web ACL, WAF monitors web requests and 2265 // manages keys for this second usage completely independent of your first. 2266 // 2267 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2268 // with awserr.Error's Code and Message methods to get detailed information about 2269 // the error. 2270 // 2271 // See the AWS API reference guide for AWS WAFV2's 2272 // API operation GetRateBasedStatementManagedKeys for usage and error information. 2273 // 2274 // Returned Error Types: 2275 // * WAFInternalErrorException 2276 // Your request is valid, but WAF couldn’t perform the operation because of 2277 // a system problem. Retry your request. 2278 // 2279 // * WAFInvalidParameterException 2280 // The operation failed because WAF didn't recognize a parameter in the request. 2281 // For example: 2282 // 2283 // * You specified a parameter name or value that isn't valid. 2284 // 2285 // * Your nested statement isn't valid. You might have tried to nest a statement 2286 // that can’t be nested. 2287 // 2288 // * You tried to update a WebACL with a DefaultAction that isn't among the 2289 // types available at DefaultAction. 2290 // 2291 // * Your request references an ARN that is malformed, or corresponds to 2292 // a resource with which a web ACL can't be associated. 2293 // 2294 // * WAFNonexistentItemException 2295 // WAF couldn’t perform the operation because your resource doesn’t exist. 2296 // 2297 // * WAFInvalidOperationException 2298 // The operation isn't valid. 2299 // 2300 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRateBasedStatementManagedKeys 2301 func (c *WAFV2) GetRateBasedStatementManagedKeys(input *GetRateBasedStatementManagedKeysInput) (*GetRateBasedStatementManagedKeysOutput, error) { 2302 req, out := c.GetRateBasedStatementManagedKeysRequest(input) 2303 return out, req.Send() 2304 } 2305 2306 // GetRateBasedStatementManagedKeysWithContext is the same as GetRateBasedStatementManagedKeys with the addition of 2307 // the ability to pass a context and additional request options. 2308 // 2309 // See GetRateBasedStatementManagedKeys for details on how to use this API operation. 2310 // 2311 // The context must be non-nil and will be used for request cancellation. If 2312 // the context is nil a panic will occur. In the future the SDK may create 2313 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2314 // for more information on using Contexts. 2315 func (c *WAFV2) GetRateBasedStatementManagedKeysWithContext(ctx aws.Context, input *GetRateBasedStatementManagedKeysInput, opts ...request.Option) (*GetRateBasedStatementManagedKeysOutput, error) { 2316 req, out := c.GetRateBasedStatementManagedKeysRequest(input) 2317 req.SetContext(ctx) 2318 req.ApplyOptions(opts...) 2319 return out, req.Send() 2320 } 2321 2322 const opGetRegexPatternSet = "GetRegexPatternSet" 2323 2324 // GetRegexPatternSetRequest generates a "aws/request.Request" representing the 2325 // client's request for the GetRegexPatternSet operation. The "output" return 2326 // value will be populated with the request's response once the request completes 2327 // successfully. 2328 // 2329 // Use "Send" method on the returned Request to send the API call to the service. 2330 // the "output" return value is not valid until after Send returns without error. 2331 // 2332 // See GetRegexPatternSet for more information on using the GetRegexPatternSet 2333 // API call, and error handling. 2334 // 2335 // This method is useful when you want to inject custom logic or configuration 2336 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2337 // 2338 // 2339 // // Example sending a request using the GetRegexPatternSetRequest method. 2340 // req, resp := client.GetRegexPatternSetRequest(params) 2341 // 2342 // err := req.Send() 2343 // if err == nil { // resp is now filled 2344 // fmt.Println(resp) 2345 // } 2346 // 2347 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRegexPatternSet 2348 func (c *WAFV2) GetRegexPatternSetRequest(input *GetRegexPatternSetInput) (req *request.Request, output *GetRegexPatternSetOutput) { 2349 op := &request.Operation{ 2350 Name: opGetRegexPatternSet, 2351 HTTPMethod: "POST", 2352 HTTPPath: "/", 2353 } 2354 2355 if input == nil { 2356 input = &GetRegexPatternSetInput{} 2357 } 2358 2359 output = &GetRegexPatternSetOutput{} 2360 req = c.newRequest(op, input, output) 2361 return 2362 } 2363 2364 // GetRegexPatternSet API operation for AWS WAFV2. 2365 // 2366 // Retrieves the specified RegexPatternSet. 2367 // 2368 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2369 // with awserr.Error's Code and Message methods to get detailed information about 2370 // the error. 2371 // 2372 // See the AWS API reference guide for AWS WAFV2's 2373 // API operation GetRegexPatternSet for usage and error information. 2374 // 2375 // Returned Error Types: 2376 // * WAFInternalErrorException 2377 // Your request is valid, but WAF couldn’t perform the operation because of 2378 // a system problem. Retry your request. 2379 // 2380 // * WAFInvalidParameterException 2381 // The operation failed because WAF didn't recognize a parameter in the request. 2382 // For example: 2383 // 2384 // * You specified a parameter name or value that isn't valid. 2385 // 2386 // * Your nested statement isn't valid. You might have tried to nest a statement 2387 // that can’t be nested. 2388 // 2389 // * You tried to update a WebACL with a DefaultAction that isn't among the 2390 // types available at DefaultAction. 2391 // 2392 // * Your request references an ARN that is malformed, or corresponds to 2393 // a resource with which a web ACL can't be associated. 2394 // 2395 // * WAFNonexistentItemException 2396 // WAF couldn’t perform the operation because your resource doesn’t exist. 2397 // 2398 // * WAFInvalidOperationException 2399 // The operation isn't valid. 2400 // 2401 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRegexPatternSet 2402 func (c *WAFV2) GetRegexPatternSet(input *GetRegexPatternSetInput) (*GetRegexPatternSetOutput, error) { 2403 req, out := c.GetRegexPatternSetRequest(input) 2404 return out, req.Send() 2405 } 2406 2407 // GetRegexPatternSetWithContext is the same as GetRegexPatternSet with the addition of 2408 // the ability to pass a context and additional request options. 2409 // 2410 // See GetRegexPatternSet for details on how to use this API operation. 2411 // 2412 // The context must be non-nil and will be used for request cancellation. If 2413 // the context is nil a panic will occur. In the future the SDK may create 2414 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2415 // for more information on using Contexts. 2416 func (c *WAFV2) GetRegexPatternSetWithContext(ctx aws.Context, input *GetRegexPatternSetInput, opts ...request.Option) (*GetRegexPatternSetOutput, error) { 2417 req, out := c.GetRegexPatternSetRequest(input) 2418 req.SetContext(ctx) 2419 req.ApplyOptions(opts...) 2420 return out, req.Send() 2421 } 2422 2423 const opGetRuleGroup = "GetRuleGroup" 2424 2425 // GetRuleGroupRequest generates a "aws/request.Request" representing the 2426 // client's request for the GetRuleGroup operation. The "output" return 2427 // value will be populated with the request's response once the request completes 2428 // successfully. 2429 // 2430 // Use "Send" method on the returned Request to send the API call to the service. 2431 // the "output" return value is not valid until after Send returns without error. 2432 // 2433 // See GetRuleGroup for more information on using the GetRuleGroup 2434 // API call, and error handling. 2435 // 2436 // This method is useful when you want to inject custom logic or configuration 2437 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2438 // 2439 // 2440 // // Example sending a request using the GetRuleGroupRequest method. 2441 // req, resp := client.GetRuleGroupRequest(params) 2442 // 2443 // err := req.Send() 2444 // if err == nil { // resp is now filled 2445 // fmt.Println(resp) 2446 // } 2447 // 2448 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroup 2449 func (c *WAFV2) GetRuleGroupRequest(input *GetRuleGroupInput) (req *request.Request, output *GetRuleGroupOutput) { 2450 op := &request.Operation{ 2451 Name: opGetRuleGroup, 2452 HTTPMethod: "POST", 2453 HTTPPath: "/", 2454 } 2455 2456 if input == nil { 2457 input = &GetRuleGroupInput{} 2458 } 2459 2460 output = &GetRuleGroupOutput{} 2461 req = c.newRequest(op, input, output) 2462 return 2463 } 2464 2465 // GetRuleGroup API operation for AWS WAFV2. 2466 // 2467 // Retrieves the specified RuleGroup. 2468 // 2469 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2470 // with awserr.Error's Code and Message methods to get detailed information about 2471 // the error. 2472 // 2473 // See the AWS API reference guide for AWS WAFV2's 2474 // API operation GetRuleGroup for usage and error information. 2475 // 2476 // Returned Error Types: 2477 // * WAFInternalErrorException 2478 // Your request is valid, but WAF couldn’t perform the operation because of 2479 // a system problem. Retry your request. 2480 // 2481 // * WAFInvalidParameterException 2482 // The operation failed because WAF didn't recognize a parameter in the request. 2483 // For example: 2484 // 2485 // * You specified a parameter name or value that isn't valid. 2486 // 2487 // * Your nested statement isn't valid. You might have tried to nest a statement 2488 // that can’t be nested. 2489 // 2490 // * You tried to update a WebACL with a DefaultAction that isn't among the 2491 // types available at DefaultAction. 2492 // 2493 // * Your request references an ARN that is malformed, or corresponds to 2494 // a resource with which a web ACL can't be associated. 2495 // 2496 // * WAFNonexistentItemException 2497 // WAF couldn’t perform the operation because your resource doesn’t exist. 2498 // 2499 // * WAFInvalidOperationException 2500 // The operation isn't valid. 2501 // 2502 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetRuleGroup 2503 func (c *WAFV2) GetRuleGroup(input *GetRuleGroupInput) (*GetRuleGroupOutput, error) { 2504 req, out := c.GetRuleGroupRequest(input) 2505 return out, req.Send() 2506 } 2507 2508 // GetRuleGroupWithContext is the same as GetRuleGroup with the addition of 2509 // the ability to pass a context and additional request options. 2510 // 2511 // See GetRuleGroup for details on how to use this API operation. 2512 // 2513 // The context must be non-nil and will be used for request cancellation. If 2514 // the context is nil a panic will occur. In the future the SDK may create 2515 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2516 // for more information on using Contexts. 2517 func (c *WAFV2) GetRuleGroupWithContext(ctx aws.Context, input *GetRuleGroupInput, opts ...request.Option) (*GetRuleGroupOutput, error) { 2518 req, out := c.GetRuleGroupRequest(input) 2519 req.SetContext(ctx) 2520 req.ApplyOptions(opts...) 2521 return out, req.Send() 2522 } 2523 2524 const opGetSampledRequests = "GetSampledRequests" 2525 2526 // GetSampledRequestsRequest generates a "aws/request.Request" representing the 2527 // client's request for the GetSampledRequests operation. The "output" return 2528 // value will be populated with the request's response once the request completes 2529 // successfully. 2530 // 2531 // Use "Send" method on the returned Request to send the API call to the service. 2532 // the "output" return value is not valid until after Send returns without error. 2533 // 2534 // See GetSampledRequests for more information on using the GetSampledRequests 2535 // API call, and error handling. 2536 // 2537 // This method is useful when you want to inject custom logic or configuration 2538 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2539 // 2540 // 2541 // // Example sending a request using the GetSampledRequestsRequest method. 2542 // req, resp := client.GetSampledRequestsRequest(params) 2543 // 2544 // err := req.Send() 2545 // if err == nil { // resp is now filled 2546 // fmt.Println(resp) 2547 // } 2548 // 2549 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetSampledRequests 2550 func (c *WAFV2) GetSampledRequestsRequest(input *GetSampledRequestsInput) (req *request.Request, output *GetSampledRequestsOutput) { 2551 op := &request.Operation{ 2552 Name: opGetSampledRequests, 2553 HTTPMethod: "POST", 2554 HTTPPath: "/", 2555 } 2556 2557 if input == nil { 2558 input = &GetSampledRequestsInput{} 2559 } 2560 2561 output = &GetSampledRequestsOutput{} 2562 req = c.newRequest(op, input, output) 2563 return 2564 } 2565 2566 // GetSampledRequests API operation for AWS WAFV2. 2567 // 2568 // Gets detailed information about a specified number of requests--a sample--that 2569 // WAF randomly selects from among the first 5,000 requests that your Amazon 2570 // Web Services resource received during a time range that you choose. You can 2571 // specify a sample size of up to 500 requests, and you can specify any time 2572 // range in the previous three hours. 2573 // 2574 // GetSampledRequests returns a time range, which is usually the time range 2575 // that you specified. However, if your resource (such as a CloudFront distribution) 2576 // received 5,000 requests before the specified time range elapsed, GetSampledRequests 2577 // returns an updated time range. This new time range indicates the actual period 2578 // during which WAF selected the requests in the sample. 2579 // 2580 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2581 // with awserr.Error's Code and Message methods to get detailed information about 2582 // the error. 2583 // 2584 // See the AWS API reference guide for AWS WAFV2's 2585 // API operation GetSampledRequests for usage and error information. 2586 // 2587 // Returned Error Types: 2588 // * WAFNonexistentItemException 2589 // WAF couldn’t perform the operation because your resource doesn’t exist. 2590 // 2591 // * WAFInternalErrorException 2592 // Your request is valid, but WAF couldn’t perform the operation because of 2593 // a system problem. Retry your request. 2594 // 2595 // * WAFInvalidParameterException 2596 // The operation failed because WAF didn't recognize a parameter in the request. 2597 // For example: 2598 // 2599 // * You specified a parameter name or value that isn't valid. 2600 // 2601 // * Your nested statement isn't valid. You might have tried to nest a statement 2602 // that can’t be nested. 2603 // 2604 // * You tried to update a WebACL with a DefaultAction that isn't among the 2605 // types available at DefaultAction. 2606 // 2607 // * Your request references an ARN that is malformed, or corresponds to 2608 // a resource with which a web ACL can't be associated. 2609 // 2610 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetSampledRequests 2611 func (c *WAFV2) GetSampledRequests(input *GetSampledRequestsInput) (*GetSampledRequestsOutput, error) { 2612 req, out := c.GetSampledRequestsRequest(input) 2613 return out, req.Send() 2614 } 2615 2616 // GetSampledRequestsWithContext is the same as GetSampledRequests with the addition of 2617 // the ability to pass a context and additional request options. 2618 // 2619 // See GetSampledRequests for details on how to use this API operation. 2620 // 2621 // The context must be non-nil and will be used for request cancellation. If 2622 // the context is nil a panic will occur. In the future the SDK may create 2623 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2624 // for more information on using Contexts. 2625 func (c *WAFV2) GetSampledRequestsWithContext(ctx aws.Context, input *GetSampledRequestsInput, opts ...request.Option) (*GetSampledRequestsOutput, error) { 2626 req, out := c.GetSampledRequestsRequest(input) 2627 req.SetContext(ctx) 2628 req.ApplyOptions(opts...) 2629 return out, req.Send() 2630 } 2631 2632 const opGetWebACL = "GetWebACL" 2633 2634 // GetWebACLRequest generates a "aws/request.Request" representing the 2635 // client's request for the GetWebACL operation. The "output" return 2636 // value will be populated with the request's response once the request completes 2637 // successfully. 2638 // 2639 // Use "Send" method on the returned Request to send the API call to the service. 2640 // the "output" return value is not valid until after Send returns without error. 2641 // 2642 // See GetWebACL for more information on using the GetWebACL 2643 // API call, and error handling. 2644 // 2645 // This method is useful when you want to inject custom logic or configuration 2646 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2647 // 2648 // 2649 // // Example sending a request using the GetWebACLRequest method. 2650 // req, resp := client.GetWebACLRequest(params) 2651 // 2652 // err := req.Send() 2653 // if err == nil { // resp is now filled 2654 // fmt.Println(resp) 2655 // } 2656 // 2657 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL 2658 func (c *WAFV2) GetWebACLRequest(input *GetWebACLInput) (req *request.Request, output *GetWebACLOutput) { 2659 op := &request.Operation{ 2660 Name: opGetWebACL, 2661 HTTPMethod: "POST", 2662 HTTPPath: "/", 2663 } 2664 2665 if input == nil { 2666 input = &GetWebACLInput{} 2667 } 2668 2669 output = &GetWebACLOutput{} 2670 req = c.newRequest(op, input, output) 2671 return 2672 } 2673 2674 // GetWebACL API operation for AWS WAFV2. 2675 // 2676 // Retrieves the specified WebACL. 2677 // 2678 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2679 // with awserr.Error's Code and Message methods to get detailed information about 2680 // the error. 2681 // 2682 // See the AWS API reference guide for AWS WAFV2's 2683 // API operation GetWebACL for usage and error information. 2684 // 2685 // Returned Error Types: 2686 // * WAFInternalErrorException 2687 // Your request is valid, but WAF couldn’t perform the operation because of 2688 // a system problem. Retry your request. 2689 // 2690 // * WAFInvalidParameterException 2691 // The operation failed because WAF didn't recognize a parameter in the request. 2692 // For example: 2693 // 2694 // * You specified a parameter name or value that isn't valid. 2695 // 2696 // * Your nested statement isn't valid. You might have tried to nest a statement 2697 // that can’t be nested. 2698 // 2699 // * You tried to update a WebACL with a DefaultAction that isn't among the 2700 // types available at DefaultAction. 2701 // 2702 // * Your request references an ARN that is malformed, or corresponds to 2703 // a resource with which a web ACL can't be associated. 2704 // 2705 // * WAFNonexistentItemException 2706 // WAF couldn’t perform the operation because your resource doesn’t exist. 2707 // 2708 // * WAFInvalidOperationException 2709 // The operation isn't valid. 2710 // 2711 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACL 2712 func (c *WAFV2) GetWebACL(input *GetWebACLInput) (*GetWebACLOutput, error) { 2713 req, out := c.GetWebACLRequest(input) 2714 return out, req.Send() 2715 } 2716 2717 // GetWebACLWithContext is the same as GetWebACL with the addition of 2718 // the ability to pass a context and additional request options. 2719 // 2720 // See GetWebACL for details on how to use this API operation. 2721 // 2722 // The context must be non-nil and will be used for request cancellation. If 2723 // the context is nil a panic will occur. In the future the SDK may create 2724 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2725 // for more information on using Contexts. 2726 func (c *WAFV2) GetWebACLWithContext(ctx aws.Context, input *GetWebACLInput, opts ...request.Option) (*GetWebACLOutput, error) { 2727 req, out := c.GetWebACLRequest(input) 2728 req.SetContext(ctx) 2729 req.ApplyOptions(opts...) 2730 return out, req.Send() 2731 } 2732 2733 const opGetWebACLForResource = "GetWebACLForResource" 2734 2735 // GetWebACLForResourceRequest generates a "aws/request.Request" representing the 2736 // client's request for the GetWebACLForResource operation. The "output" return 2737 // value will be populated with the request's response once the request completes 2738 // successfully. 2739 // 2740 // Use "Send" method on the returned Request to send the API call to the service. 2741 // the "output" return value is not valid until after Send returns without error. 2742 // 2743 // See GetWebACLForResource for more information on using the GetWebACLForResource 2744 // API call, and error handling. 2745 // 2746 // This method is useful when you want to inject custom logic or configuration 2747 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2748 // 2749 // 2750 // // Example sending a request using the GetWebACLForResourceRequest method. 2751 // req, resp := client.GetWebACLForResourceRequest(params) 2752 // 2753 // err := req.Send() 2754 // if err == nil { // resp is now filled 2755 // fmt.Println(resp) 2756 // } 2757 // 2758 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource 2759 func (c *WAFV2) GetWebACLForResourceRequest(input *GetWebACLForResourceInput) (req *request.Request, output *GetWebACLForResourceOutput) { 2760 op := &request.Operation{ 2761 Name: opGetWebACLForResource, 2762 HTTPMethod: "POST", 2763 HTTPPath: "/", 2764 } 2765 2766 if input == nil { 2767 input = &GetWebACLForResourceInput{} 2768 } 2769 2770 output = &GetWebACLForResourceOutput{} 2771 req = c.newRequest(op, input, output) 2772 return 2773 } 2774 2775 // GetWebACLForResource API operation for AWS WAFV2. 2776 // 2777 // Retrieves the WebACL for the specified resource. 2778 // 2779 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2780 // with awserr.Error's Code and Message methods to get detailed information about 2781 // the error. 2782 // 2783 // See the AWS API reference guide for AWS WAFV2's 2784 // API operation GetWebACLForResource for usage and error information. 2785 // 2786 // Returned Error Types: 2787 // * WAFInternalErrorException 2788 // Your request is valid, but WAF couldn’t perform the operation because of 2789 // a system problem. Retry your request. 2790 // 2791 // * WAFNonexistentItemException 2792 // WAF couldn’t perform the operation because your resource doesn’t exist. 2793 // 2794 // * WAFInvalidParameterException 2795 // The operation failed because WAF didn't recognize a parameter in the request. 2796 // For example: 2797 // 2798 // * You specified a parameter name or value that isn't valid. 2799 // 2800 // * Your nested statement isn't valid. You might have tried to nest a statement 2801 // that can’t be nested. 2802 // 2803 // * You tried to update a WebACL with a DefaultAction that isn't among the 2804 // types available at DefaultAction. 2805 // 2806 // * Your request references an ARN that is malformed, or corresponds to 2807 // a resource with which a web ACL can't be associated. 2808 // 2809 // * WAFUnavailableEntityException 2810 // WAF couldn’t retrieve the resource that you requested. Retry your request. 2811 // 2812 // * WAFInvalidOperationException 2813 // The operation isn't valid. 2814 // 2815 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetWebACLForResource 2816 func (c *WAFV2) GetWebACLForResource(input *GetWebACLForResourceInput) (*GetWebACLForResourceOutput, error) { 2817 req, out := c.GetWebACLForResourceRequest(input) 2818 return out, req.Send() 2819 } 2820 2821 // GetWebACLForResourceWithContext is the same as GetWebACLForResource with the addition of 2822 // the ability to pass a context and additional request options. 2823 // 2824 // See GetWebACLForResource for details on how to use this API operation. 2825 // 2826 // The context must be non-nil and will be used for request cancellation. If 2827 // the context is nil a panic will occur. In the future the SDK may create 2828 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2829 // for more information on using Contexts. 2830 func (c *WAFV2) GetWebACLForResourceWithContext(ctx aws.Context, input *GetWebACLForResourceInput, opts ...request.Option) (*GetWebACLForResourceOutput, error) { 2831 req, out := c.GetWebACLForResourceRequest(input) 2832 req.SetContext(ctx) 2833 req.ApplyOptions(opts...) 2834 return out, req.Send() 2835 } 2836 2837 const opListAvailableManagedRuleGroupVersions = "ListAvailableManagedRuleGroupVersions" 2838 2839 // ListAvailableManagedRuleGroupVersionsRequest generates a "aws/request.Request" representing the 2840 // client's request for the ListAvailableManagedRuleGroupVersions operation. The "output" return 2841 // value will be populated with the request's response once the request completes 2842 // successfully. 2843 // 2844 // Use "Send" method on the returned Request to send the API call to the service. 2845 // the "output" return value is not valid until after Send returns without error. 2846 // 2847 // See ListAvailableManagedRuleGroupVersions for more information on using the ListAvailableManagedRuleGroupVersions 2848 // API call, and error handling. 2849 // 2850 // This method is useful when you want to inject custom logic or configuration 2851 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2852 // 2853 // 2854 // // Example sending a request using the ListAvailableManagedRuleGroupVersionsRequest method. 2855 // req, resp := client.ListAvailableManagedRuleGroupVersionsRequest(params) 2856 // 2857 // err := req.Send() 2858 // if err == nil { // resp is now filled 2859 // fmt.Println(resp) 2860 // } 2861 // 2862 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersions 2863 func (c *WAFV2) ListAvailableManagedRuleGroupVersionsRequest(input *ListAvailableManagedRuleGroupVersionsInput) (req *request.Request, output *ListAvailableManagedRuleGroupVersionsOutput) { 2864 op := &request.Operation{ 2865 Name: opListAvailableManagedRuleGroupVersions, 2866 HTTPMethod: "POST", 2867 HTTPPath: "/", 2868 } 2869 2870 if input == nil { 2871 input = &ListAvailableManagedRuleGroupVersionsInput{} 2872 } 2873 2874 output = &ListAvailableManagedRuleGroupVersionsOutput{} 2875 req = c.newRequest(op, input, output) 2876 return 2877 } 2878 2879 // ListAvailableManagedRuleGroupVersions API operation for AWS WAFV2. 2880 // 2881 // Returns a list of the available versions for the specified managed rule group. 2882 // 2883 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2884 // with awserr.Error's Code and Message methods to get detailed information about 2885 // the error. 2886 // 2887 // See the AWS API reference guide for AWS WAFV2's 2888 // API operation ListAvailableManagedRuleGroupVersions for usage and error information. 2889 // 2890 // Returned Error Types: 2891 // * WAFInternalErrorException 2892 // Your request is valid, but WAF couldn’t perform the operation because of 2893 // a system problem. Retry your request. 2894 // 2895 // * WAFInvalidParameterException 2896 // The operation failed because WAF didn't recognize a parameter in the request. 2897 // For example: 2898 // 2899 // * You specified a parameter name or value that isn't valid. 2900 // 2901 // * Your nested statement isn't valid. You might have tried to nest a statement 2902 // that can’t be nested. 2903 // 2904 // * You tried to update a WebACL with a DefaultAction that isn't among the 2905 // types available at DefaultAction. 2906 // 2907 // * Your request references an ARN that is malformed, or corresponds to 2908 // a resource with which a web ACL can't be associated. 2909 // 2910 // * WAFInvalidOperationException 2911 // The operation isn't valid. 2912 // 2913 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroupVersions 2914 func (c *WAFV2) ListAvailableManagedRuleGroupVersions(input *ListAvailableManagedRuleGroupVersionsInput) (*ListAvailableManagedRuleGroupVersionsOutput, error) { 2915 req, out := c.ListAvailableManagedRuleGroupVersionsRequest(input) 2916 return out, req.Send() 2917 } 2918 2919 // ListAvailableManagedRuleGroupVersionsWithContext is the same as ListAvailableManagedRuleGroupVersions with the addition of 2920 // the ability to pass a context and additional request options. 2921 // 2922 // See ListAvailableManagedRuleGroupVersions for details on how to use this API operation. 2923 // 2924 // The context must be non-nil and will be used for request cancellation. If 2925 // the context is nil a panic will occur. In the future the SDK may create 2926 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2927 // for more information on using Contexts. 2928 func (c *WAFV2) ListAvailableManagedRuleGroupVersionsWithContext(ctx aws.Context, input *ListAvailableManagedRuleGroupVersionsInput, opts ...request.Option) (*ListAvailableManagedRuleGroupVersionsOutput, error) { 2929 req, out := c.ListAvailableManagedRuleGroupVersionsRequest(input) 2930 req.SetContext(ctx) 2931 req.ApplyOptions(opts...) 2932 return out, req.Send() 2933 } 2934 2935 const opListAvailableManagedRuleGroups = "ListAvailableManagedRuleGroups" 2936 2937 // ListAvailableManagedRuleGroupsRequest generates a "aws/request.Request" representing the 2938 // client's request for the ListAvailableManagedRuleGroups operation. The "output" return 2939 // value will be populated with the request's response once the request completes 2940 // successfully. 2941 // 2942 // Use "Send" method on the returned Request to send the API call to the service. 2943 // the "output" return value is not valid until after Send returns without error. 2944 // 2945 // See ListAvailableManagedRuleGroups for more information on using the ListAvailableManagedRuleGroups 2946 // API call, and error handling. 2947 // 2948 // This method is useful when you want to inject custom logic or configuration 2949 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 2950 // 2951 // 2952 // // Example sending a request using the ListAvailableManagedRuleGroupsRequest method. 2953 // req, resp := client.ListAvailableManagedRuleGroupsRequest(params) 2954 // 2955 // err := req.Send() 2956 // if err == nil { // resp is now filled 2957 // fmt.Println(resp) 2958 // } 2959 // 2960 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroups 2961 func (c *WAFV2) ListAvailableManagedRuleGroupsRequest(input *ListAvailableManagedRuleGroupsInput) (req *request.Request, output *ListAvailableManagedRuleGroupsOutput) { 2962 op := &request.Operation{ 2963 Name: opListAvailableManagedRuleGroups, 2964 HTTPMethod: "POST", 2965 HTTPPath: "/", 2966 } 2967 2968 if input == nil { 2969 input = &ListAvailableManagedRuleGroupsInput{} 2970 } 2971 2972 output = &ListAvailableManagedRuleGroupsOutput{} 2973 req = c.newRequest(op, input, output) 2974 return 2975 } 2976 2977 // ListAvailableManagedRuleGroups API operation for AWS WAFV2. 2978 // 2979 // Retrieves an array of managed rule groups that are available for you to use. 2980 // This list includes all Amazon Web Services Managed Rules rule groups and 2981 // all of the Amazon Web Services Marketplace managed rule groups that you're 2982 // subscribed to. 2983 // 2984 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2985 // with awserr.Error's Code and Message methods to get detailed information about 2986 // the error. 2987 // 2988 // See the AWS API reference guide for AWS WAFV2's 2989 // API operation ListAvailableManagedRuleGroups for usage and error information. 2990 // 2991 // Returned Error Types: 2992 // * WAFInternalErrorException 2993 // Your request is valid, but WAF couldn’t perform the operation because of 2994 // a system problem. Retry your request. 2995 // 2996 // * WAFInvalidParameterException 2997 // The operation failed because WAF didn't recognize a parameter in the request. 2998 // For example: 2999 // 3000 // * You specified a parameter name or value that isn't valid. 3001 // 3002 // * Your nested statement isn't valid. You might have tried to nest a statement 3003 // that can’t be nested. 3004 // 3005 // * You tried to update a WebACL with a DefaultAction that isn't among the 3006 // types available at DefaultAction. 3007 // 3008 // * Your request references an ARN that is malformed, or corresponds to 3009 // a resource with which a web ACL can't be associated. 3010 // 3011 // * WAFInvalidOperationException 3012 // The operation isn't valid. 3013 // 3014 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListAvailableManagedRuleGroups 3015 func (c *WAFV2) ListAvailableManagedRuleGroups(input *ListAvailableManagedRuleGroupsInput) (*ListAvailableManagedRuleGroupsOutput, error) { 3016 req, out := c.ListAvailableManagedRuleGroupsRequest(input) 3017 return out, req.Send() 3018 } 3019 3020 // ListAvailableManagedRuleGroupsWithContext is the same as ListAvailableManagedRuleGroups with the addition of 3021 // the ability to pass a context and additional request options. 3022 // 3023 // See ListAvailableManagedRuleGroups for details on how to use this API operation. 3024 // 3025 // The context must be non-nil and will be used for request cancellation. If 3026 // the context is nil a panic will occur. In the future the SDK may create 3027 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3028 // for more information on using Contexts. 3029 func (c *WAFV2) ListAvailableManagedRuleGroupsWithContext(ctx aws.Context, input *ListAvailableManagedRuleGroupsInput, opts ...request.Option) (*ListAvailableManagedRuleGroupsOutput, error) { 3030 req, out := c.ListAvailableManagedRuleGroupsRequest(input) 3031 req.SetContext(ctx) 3032 req.ApplyOptions(opts...) 3033 return out, req.Send() 3034 } 3035 3036 const opListIPSets = "ListIPSets" 3037 3038 // ListIPSetsRequest generates a "aws/request.Request" representing the 3039 // client's request for the ListIPSets operation. The "output" return 3040 // value will be populated with the request's response once the request completes 3041 // successfully. 3042 // 3043 // Use "Send" method on the returned Request to send the API call to the service. 3044 // the "output" return value is not valid until after Send returns without error. 3045 // 3046 // See ListIPSets for more information on using the ListIPSets 3047 // API call, and error handling. 3048 // 3049 // This method is useful when you want to inject custom logic or configuration 3050 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3051 // 3052 // 3053 // // Example sending a request using the ListIPSetsRequest method. 3054 // req, resp := client.ListIPSetsRequest(params) 3055 // 3056 // err := req.Send() 3057 // if err == nil { // resp is now filled 3058 // fmt.Println(resp) 3059 // } 3060 // 3061 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSets 3062 func (c *WAFV2) ListIPSetsRequest(input *ListIPSetsInput) (req *request.Request, output *ListIPSetsOutput) { 3063 op := &request.Operation{ 3064 Name: opListIPSets, 3065 HTTPMethod: "POST", 3066 HTTPPath: "/", 3067 } 3068 3069 if input == nil { 3070 input = &ListIPSetsInput{} 3071 } 3072 3073 output = &ListIPSetsOutput{} 3074 req = c.newRequest(op, input, output) 3075 return 3076 } 3077 3078 // ListIPSets API operation for AWS WAFV2. 3079 // 3080 // Retrieves an array of IPSetSummary objects for the IP sets that you manage. 3081 // 3082 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3083 // with awserr.Error's Code and Message methods to get detailed information about 3084 // the error. 3085 // 3086 // See the AWS API reference guide for AWS WAFV2's 3087 // API operation ListIPSets for usage and error information. 3088 // 3089 // Returned Error Types: 3090 // * WAFInternalErrorException 3091 // Your request is valid, but WAF couldn’t perform the operation because of 3092 // a system problem. Retry your request. 3093 // 3094 // * WAFInvalidParameterException 3095 // The operation failed because WAF didn't recognize a parameter in the request. 3096 // For example: 3097 // 3098 // * You specified a parameter name or value that isn't valid. 3099 // 3100 // * Your nested statement isn't valid. You might have tried to nest a statement 3101 // that can’t be nested. 3102 // 3103 // * You tried to update a WebACL with a DefaultAction that isn't among the 3104 // types available at DefaultAction. 3105 // 3106 // * Your request references an ARN that is malformed, or corresponds to 3107 // a resource with which a web ACL can't be associated. 3108 // 3109 // * WAFInvalidOperationException 3110 // The operation isn't valid. 3111 // 3112 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListIPSets 3113 func (c *WAFV2) ListIPSets(input *ListIPSetsInput) (*ListIPSetsOutput, error) { 3114 req, out := c.ListIPSetsRequest(input) 3115 return out, req.Send() 3116 } 3117 3118 // ListIPSetsWithContext is the same as ListIPSets with the addition of 3119 // the ability to pass a context and additional request options. 3120 // 3121 // See ListIPSets for details on how to use this API operation. 3122 // 3123 // The context must be non-nil and will be used for request cancellation. If 3124 // the context is nil a panic will occur. In the future the SDK may create 3125 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3126 // for more information on using Contexts. 3127 func (c *WAFV2) ListIPSetsWithContext(ctx aws.Context, input *ListIPSetsInput, opts ...request.Option) (*ListIPSetsOutput, error) { 3128 req, out := c.ListIPSetsRequest(input) 3129 req.SetContext(ctx) 3130 req.ApplyOptions(opts...) 3131 return out, req.Send() 3132 } 3133 3134 const opListLoggingConfigurations = "ListLoggingConfigurations" 3135 3136 // ListLoggingConfigurationsRequest generates a "aws/request.Request" representing the 3137 // client's request for the ListLoggingConfigurations operation. The "output" return 3138 // value will be populated with the request's response once the request completes 3139 // successfully. 3140 // 3141 // Use "Send" method on the returned Request to send the API call to the service. 3142 // the "output" return value is not valid until after Send returns without error. 3143 // 3144 // See ListLoggingConfigurations for more information on using the ListLoggingConfigurations 3145 // API call, and error handling. 3146 // 3147 // This method is useful when you want to inject custom logic or configuration 3148 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3149 // 3150 // 3151 // // Example sending a request using the ListLoggingConfigurationsRequest method. 3152 // req, resp := client.ListLoggingConfigurationsRequest(params) 3153 // 3154 // err := req.Send() 3155 // if err == nil { // resp is now filled 3156 // fmt.Println(resp) 3157 // } 3158 // 3159 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListLoggingConfigurations 3160 func (c *WAFV2) ListLoggingConfigurationsRequest(input *ListLoggingConfigurationsInput) (req *request.Request, output *ListLoggingConfigurationsOutput) { 3161 op := &request.Operation{ 3162 Name: opListLoggingConfigurations, 3163 HTTPMethod: "POST", 3164 HTTPPath: "/", 3165 } 3166 3167 if input == nil { 3168 input = &ListLoggingConfigurationsInput{} 3169 } 3170 3171 output = &ListLoggingConfigurationsOutput{} 3172 req = c.newRequest(op, input, output) 3173 return 3174 } 3175 3176 // ListLoggingConfigurations API operation for AWS WAFV2. 3177 // 3178 // Retrieves an array of your LoggingConfiguration objects. 3179 // 3180 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3181 // with awserr.Error's Code and Message methods to get detailed information about 3182 // the error. 3183 // 3184 // See the AWS API reference guide for AWS WAFV2's 3185 // API operation ListLoggingConfigurations for usage and error information. 3186 // 3187 // Returned Error Types: 3188 // * WAFInternalErrorException 3189 // Your request is valid, but WAF couldn’t perform the operation because of 3190 // a system problem. Retry your request. 3191 // 3192 // * WAFInvalidParameterException 3193 // The operation failed because WAF didn't recognize a parameter in the request. 3194 // For example: 3195 // 3196 // * You specified a parameter name or value that isn't valid. 3197 // 3198 // * Your nested statement isn't valid. You might have tried to nest a statement 3199 // that can’t be nested. 3200 // 3201 // * You tried to update a WebACL with a DefaultAction that isn't among the 3202 // types available at DefaultAction. 3203 // 3204 // * Your request references an ARN that is malformed, or corresponds to 3205 // a resource with which a web ACL can't be associated. 3206 // 3207 // * WAFInvalidOperationException 3208 // The operation isn't valid. 3209 // 3210 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListLoggingConfigurations 3211 func (c *WAFV2) ListLoggingConfigurations(input *ListLoggingConfigurationsInput) (*ListLoggingConfigurationsOutput, error) { 3212 req, out := c.ListLoggingConfigurationsRequest(input) 3213 return out, req.Send() 3214 } 3215 3216 // ListLoggingConfigurationsWithContext is the same as ListLoggingConfigurations with the addition of 3217 // the ability to pass a context and additional request options. 3218 // 3219 // See ListLoggingConfigurations for details on how to use this API operation. 3220 // 3221 // The context must be non-nil and will be used for request cancellation. If 3222 // the context is nil a panic will occur. In the future the SDK may create 3223 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3224 // for more information on using Contexts. 3225 func (c *WAFV2) ListLoggingConfigurationsWithContext(ctx aws.Context, input *ListLoggingConfigurationsInput, opts ...request.Option) (*ListLoggingConfigurationsOutput, error) { 3226 req, out := c.ListLoggingConfigurationsRequest(input) 3227 req.SetContext(ctx) 3228 req.ApplyOptions(opts...) 3229 return out, req.Send() 3230 } 3231 3232 const opListManagedRuleSets = "ListManagedRuleSets" 3233 3234 // ListManagedRuleSetsRequest generates a "aws/request.Request" representing the 3235 // client's request for the ListManagedRuleSets operation. The "output" return 3236 // value will be populated with the request's response once the request completes 3237 // successfully. 3238 // 3239 // Use "Send" method on the returned Request to send the API call to the service. 3240 // the "output" return value is not valid until after Send returns without error. 3241 // 3242 // See ListManagedRuleSets for more information on using the ListManagedRuleSets 3243 // API call, and error handling. 3244 // 3245 // This method is useful when you want to inject custom logic or configuration 3246 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3247 // 3248 // 3249 // // Example sending a request using the ListManagedRuleSetsRequest method. 3250 // req, resp := client.ListManagedRuleSetsRequest(params) 3251 // 3252 // err := req.Send() 3253 // if err == nil { // resp is now filled 3254 // fmt.Println(resp) 3255 // } 3256 // 3257 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSets 3258 func (c *WAFV2) ListManagedRuleSetsRequest(input *ListManagedRuleSetsInput) (req *request.Request, output *ListManagedRuleSetsOutput) { 3259 op := &request.Operation{ 3260 Name: opListManagedRuleSets, 3261 HTTPMethod: "POST", 3262 HTTPPath: "/", 3263 } 3264 3265 if input == nil { 3266 input = &ListManagedRuleSetsInput{} 3267 } 3268 3269 output = &ListManagedRuleSetsOutput{} 3270 req = c.newRequest(op, input, output) 3271 return 3272 } 3273 3274 // ListManagedRuleSets API operation for AWS WAFV2. 3275 // 3276 // Retrieves the managed rule sets that you own. 3277 // 3278 // This is intended for use only by vendors of managed rule sets. Vendors are 3279 // Amazon Web Services and Amazon Web Services Marketplace sellers. 3280 // 3281 // Vendors, you can use the managed rule set APIs to provide controlled rollout 3282 // of your versioned managed rule group offerings for your customers. The APIs 3283 // are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and 3284 // UpdateManagedRuleSetVersionExpiryDate. 3285 // 3286 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3287 // with awserr.Error's Code and Message methods to get detailed information about 3288 // the error. 3289 // 3290 // See the AWS API reference guide for AWS WAFV2's 3291 // API operation ListManagedRuleSets for usage and error information. 3292 // 3293 // Returned Error Types: 3294 // * WAFInternalErrorException 3295 // Your request is valid, but WAF couldn’t perform the operation because of 3296 // a system problem. Retry your request. 3297 // 3298 // * WAFInvalidParameterException 3299 // The operation failed because WAF didn't recognize a parameter in the request. 3300 // For example: 3301 // 3302 // * You specified a parameter name or value that isn't valid. 3303 // 3304 // * Your nested statement isn't valid. You might have tried to nest a statement 3305 // that can’t be nested. 3306 // 3307 // * You tried to update a WebACL with a DefaultAction that isn't among the 3308 // types available at DefaultAction. 3309 // 3310 // * Your request references an ARN that is malformed, or corresponds to 3311 // a resource with which a web ACL can't be associated. 3312 // 3313 // * WAFInvalidOperationException 3314 // The operation isn't valid. 3315 // 3316 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListManagedRuleSets 3317 func (c *WAFV2) ListManagedRuleSets(input *ListManagedRuleSetsInput) (*ListManagedRuleSetsOutput, error) { 3318 req, out := c.ListManagedRuleSetsRequest(input) 3319 return out, req.Send() 3320 } 3321 3322 // ListManagedRuleSetsWithContext is the same as ListManagedRuleSets with the addition of 3323 // the ability to pass a context and additional request options. 3324 // 3325 // See ListManagedRuleSets for details on how to use this API operation. 3326 // 3327 // The context must be non-nil and will be used for request cancellation. If 3328 // the context is nil a panic will occur. In the future the SDK may create 3329 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3330 // for more information on using Contexts. 3331 func (c *WAFV2) ListManagedRuleSetsWithContext(ctx aws.Context, input *ListManagedRuleSetsInput, opts ...request.Option) (*ListManagedRuleSetsOutput, error) { 3332 req, out := c.ListManagedRuleSetsRequest(input) 3333 req.SetContext(ctx) 3334 req.ApplyOptions(opts...) 3335 return out, req.Send() 3336 } 3337 3338 const opListRegexPatternSets = "ListRegexPatternSets" 3339 3340 // ListRegexPatternSetsRequest generates a "aws/request.Request" representing the 3341 // client's request for the ListRegexPatternSets operation. The "output" return 3342 // value will be populated with the request's response once the request completes 3343 // successfully. 3344 // 3345 // Use "Send" method on the returned Request to send the API call to the service. 3346 // the "output" return value is not valid until after Send returns without error. 3347 // 3348 // See ListRegexPatternSets for more information on using the ListRegexPatternSets 3349 // API call, and error handling. 3350 // 3351 // This method is useful when you want to inject custom logic or configuration 3352 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3353 // 3354 // 3355 // // Example sending a request using the ListRegexPatternSetsRequest method. 3356 // req, resp := client.ListRegexPatternSetsRequest(params) 3357 // 3358 // err := req.Send() 3359 // if err == nil { // resp is now filled 3360 // fmt.Println(resp) 3361 // } 3362 // 3363 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRegexPatternSets 3364 func (c *WAFV2) ListRegexPatternSetsRequest(input *ListRegexPatternSetsInput) (req *request.Request, output *ListRegexPatternSetsOutput) { 3365 op := &request.Operation{ 3366 Name: opListRegexPatternSets, 3367 HTTPMethod: "POST", 3368 HTTPPath: "/", 3369 } 3370 3371 if input == nil { 3372 input = &ListRegexPatternSetsInput{} 3373 } 3374 3375 output = &ListRegexPatternSetsOutput{} 3376 req = c.newRequest(op, input, output) 3377 return 3378 } 3379 3380 // ListRegexPatternSets API operation for AWS WAFV2. 3381 // 3382 // Retrieves an array of RegexPatternSetSummary objects for the regex pattern 3383 // sets that you manage. 3384 // 3385 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3386 // with awserr.Error's Code and Message methods to get detailed information about 3387 // the error. 3388 // 3389 // See the AWS API reference guide for AWS WAFV2's 3390 // API operation ListRegexPatternSets for usage and error information. 3391 // 3392 // Returned Error Types: 3393 // * WAFInternalErrorException 3394 // Your request is valid, but WAF couldn’t perform the operation because of 3395 // a system problem. Retry your request. 3396 // 3397 // * WAFInvalidParameterException 3398 // The operation failed because WAF didn't recognize a parameter in the request. 3399 // For example: 3400 // 3401 // * You specified a parameter name or value that isn't valid. 3402 // 3403 // * Your nested statement isn't valid. You might have tried to nest a statement 3404 // that can’t be nested. 3405 // 3406 // * You tried to update a WebACL with a DefaultAction that isn't among the 3407 // types available at DefaultAction. 3408 // 3409 // * Your request references an ARN that is malformed, or corresponds to 3410 // a resource with which a web ACL can't be associated. 3411 // 3412 // * WAFInvalidOperationException 3413 // The operation isn't valid. 3414 // 3415 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRegexPatternSets 3416 func (c *WAFV2) ListRegexPatternSets(input *ListRegexPatternSetsInput) (*ListRegexPatternSetsOutput, error) { 3417 req, out := c.ListRegexPatternSetsRequest(input) 3418 return out, req.Send() 3419 } 3420 3421 // ListRegexPatternSetsWithContext is the same as ListRegexPatternSets with the addition of 3422 // the ability to pass a context and additional request options. 3423 // 3424 // See ListRegexPatternSets for details on how to use this API operation. 3425 // 3426 // The context must be non-nil and will be used for request cancellation. If 3427 // the context is nil a panic will occur. In the future the SDK may create 3428 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3429 // for more information on using Contexts. 3430 func (c *WAFV2) ListRegexPatternSetsWithContext(ctx aws.Context, input *ListRegexPatternSetsInput, opts ...request.Option) (*ListRegexPatternSetsOutput, error) { 3431 req, out := c.ListRegexPatternSetsRequest(input) 3432 req.SetContext(ctx) 3433 req.ApplyOptions(opts...) 3434 return out, req.Send() 3435 } 3436 3437 const opListResourcesForWebACL = "ListResourcesForWebACL" 3438 3439 // ListResourcesForWebACLRequest generates a "aws/request.Request" representing the 3440 // client's request for the ListResourcesForWebACL operation. The "output" return 3441 // value will be populated with the request's response once the request completes 3442 // successfully. 3443 // 3444 // Use "Send" method on the returned Request to send the API call to the service. 3445 // the "output" return value is not valid until after Send returns without error. 3446 // 3447 // See ListResourcesForWebACL for more information on using the ListResourcesForWebACL 3448 // API call, and error handling. 3449 // 3450 // This method is useful when you want to inject custom logic or configuration 3451 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3452 // 3453 // 3454 // // Example sending a request using the ListResourcesForWebACLRequest method. 3455 // req, resp := client.ListResourcesForWebACLRequest(params) 3456 // 3457 // err := req.Send() 3458 // if err == nil { // resp is now filled 3459 // fmt.Println(resp) 3460 // } 3461 // 3462 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListResourcesForWebACL 3463 func (c *WAFV2) ListResourcesForWebACLRequest(input *ListResourcesForWebACLInput) (req *request.Request, output *ListResourcesForWebACLOutput) { 3464 op := &request.Operation{ 3465 Name: opListResourcesForWebACL, 3466 HTTPMethod: "POST", 3467 HTTPPath: "/", 3468 } 3469 3470 if input == nil { 3471 input = &ListResourcesForWebACLInput{} 3472 } 3473 3474 output = &ListResourcesForWebACLOutput{} 3475 req = c.newRequest(op, input, output) 3476 return 3477 } 3478 3479 // ListResourcesForWebACL API operation for AWS WAFV2. 3480 // 3481 // Retrieves an array of the Amazon Resource Names (ARNs) for the regional resources 3482 // that are associated with the specified web ACL. If you want the list of Amazon 3483 // CloudFront resources, use the CloudFront call ListDistributionsByWebACLId. 3484 // 3485 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3486 // with awserr.Error's Code and Message methods to get detailed information about 3487 // the error. 3488 // 3489 // See the AWS API reference guide for AWS WAFV2's 3490 // API operation ListResourcesForWebACL for usage and error information. 3491 // 3492 // Returned Error Types: 3493 // * WAFInternalErrorException 3494 // Your request is valid, but WAF couldn’t perform the operation because of 3495 // a system problem. Retry your request. 3496 // 3497 // * WAFNonexistentItemException 3498 // WAF couldn’t perform the operation because your resource doesn’t exist. 3499 // 3500 // * WAFInvalidParameterException 3501 // The operation failed because WAF didn't recognize a parameter in the request. 3502 // For example: 3503 // 3504 // * You specified a parameter name or value that isn't valid. 3505 // 3506 // * Your nested statement isn't valid. You might have tried to nest a statement 3507 // that can’t be nested. 3508 // 3509 // * You tried to update a WebACL with a DefaultAction that isn't among the 3510 // types available at DefaultAction. 3511 // 3512 // * Your request references an ARN that is malformed, or corresponds to 3513 // a resource with which a web ACL can't be associated. 3514 // 3515 // * WAFInvalidOperationException 3516 // The operation isn't valid. 3517 // 3518 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListResourcesForWebACL 3519 func (c *WAFV2) ListResourcesForWebACL(input *ListResourcesForWebACLInput) (*ListResourcesForWebACLOutput, error) { 3520 req, out := c.ListResourcesForWebACLRequest(input) 3521 return out, req.Send() 3522 } 3523 3524 // ListResourcesForWebACLWithContext is the same as ListResourcesForWebACL with the addition of 3525 // the ability to pass a context and additional request options. 3526 // 3527 // See ListResourcesForWebACL for details on how to use this API operation. 3528 // 3529 // The context must be non-nil and will be used for request cancellation. If 3530 // the context is nil a panic will occur. In the future the SDK may create 3531 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3532 // for more information on using Contexts. 3533 func (c *WAFV2) ListResourcesForWebACLWithContext(ctx aws.Context, input *ListResourcesForWebACLInput, opts ...request.Option) (*ListResourcesForWebACLOutput, error) { 3534 req, out := c.ListResourcesForWebACLRequest(input) 3535 req.SetContext(ctx) 3536 req.ApplyOptions(opts...) 3537 return out, req.Send() 3538 } 3539 3540 const opListRuleGroups = "ListRuleGroups" 3541 3542 // ListRuleGroupsRequest generates a "aws/request.Request" representing the 3543 // client's request for the ListRuleGroups operation. The "output" return 3544 // value will be populated with the request's response once the request completes 3545 // successfully. 3546 // 3547 // Use "Send" method on the returned Request to send the API call to the service. 3548 // the "output" return value is not valid until after Send returns without error. 3549 // 3550 // See ListRuleGroups for more information on using the ListRuleGroups 3551 // API call, and error handling. 3552 // 3553 // This method is useful when you want to inject custom logic or configuration 3554 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3555 // 3556 // 3557 // // Example sending a request using the ListRuleGroupsRequest method. 3558 // req, resp := client.ListRuleGroupsRequest(params) 3559 // 3560 // err := req.Send() 3561 // if err == nil { // resp is now filled 3562 // fmt.Println(resp) 3563 // } 3564 // 3565 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRuleGroups 3566 func (c *WAFV2) ListRuleGroupsRequest(input *ListRuleGroupsInput) (req *request.Request, output *ListRuleGroupsOutput) { 3567 op := &request.Operation{ 3568 Name: opListRuleGroups, 3569 HTTPMethod: "POST", 3570 HTTPPath: "/", 3571 } 3572 3573 if input == nil { 3574 input = &ListRuleGroupsInput{} 3575 } 3576 3577 output = &ListRuleGroupsOutput{} 3578 req = c.newRequest(op, input, output) 3579 return 3580 } 3581 3582 // ListRuleGroups API operation for AWS WAFV2. 3583 // 3584 // Retrieves an array of RuleGroupSummary objects for the rule groups that you 3585 // manage. 3586 // 3587 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3588 // with awserr.Error's Code and Message methods to get detailed information about 3589 // the error. 3590 // 3591 // See the AWS API reference guide for AWS WAFV2's 3592 // API operation ListRuleGroups for usage and error information. 3593 // 3594 // Returned Error Types: 3595 // * WAFInternalErrorException 3596 // Your request is valid, but WAF couldn’t perform the operation because of 3597 // a system problem. Retry your request. 3598 // 3599 // * WAFInvalidParameterException 3600 // The operation failed because WAF didn't recognize a parameter in the request. 3601 // For example: 3602 // 3603 // * You specified a parameter name or value that isn't valid. 3604 // 3605 // * Your nested statement isn't valid. You might have tried to nest a statement 3606 // that can’t be nested. 3607 // 3608 // * You tried to update a WebACL with a DefaultAction that isn't among the 3609 // types available at DefaultAction. 3610 // 3611 // * Your request references an ARN that is malformed, or corresponds to 3612 // a resource with which a web ACL can't be associated. 3613 // 3614 // * WAFInvalidOperationException 3615 // The operation isn't valid. 3616 // 3617 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListRuleGroups 3618 func (c *WAFV2) ListRuleGroups(input *ListRuleGroupsInput) (*ListRuleGroupsOutput, error) { 3619 req, out := c.ListRuleGroupsRequest(input) 3620 return out, req.Send() 3621 } 3622 3623 // ListRuleGroupsWithContext is the same as ListRuleGroups with the addition of 3624 // the ability to pass a context and additional request options. 3625 // 3626 // See ListRuleGroups for details on how to use this API operation. 3627 // 3628 // The context must be non-nil and will be used for request cancellation. If 3629 // the context is nil a panic will occur. In the future the SDK may create 3630 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3631 // for more information on using Contexts. 3632 func (c *WAFV2) ListRuleGroupsWithContext(ctx aws.Context, input *ListRuleGroupsInput, opts ...request.Option) (*ListRuleGroupsOutput, error) { 3633 req, out := c.ListRuleGroupsRequest(input) 3634 req.SetContext(ctx) 3635 req.ApplyOptions(opts...) 3636 return out, req.Send() 3637 } 3638 3639 const opListTagsForResource = "ListTagsForResource" 3640 3641 // ListTagsForResourceRequest generates a "aws/request.Request" representing the 3642 // client's request for the ListTagsForResource operation. The "output" return 3643 // value will be populated with the request's response once the request completes 3644 // successfully. 3645 // 3646 // Use "Send" method on the returned Request to send the API call to the service. 3647 // the "output" return value is not valid until after Send returns without error. 3648 // 3649 // See ListTagsForResource for more information on using the ListTagsForResource 3650 // API call, and error handling. 3651 // 3652 // This method is useful when you want to inject custom logic or configuration 3653 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3654 // 3655 // 3656 // // Example sending a request using the ListTagsForResourceRequest method. 3657 // req, resp := client.ListTagsForResourceRequest(params) 3658 // 3659 // err := req.Send() 3660 // if err == nil { // resp is now filled 3661 // fmt.Println(resp) 3662 // } 3663 // 3664 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListTagsForResource 3665 func (c *WAFV2) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) { 3666 op := &request.Operation{ 3667 Name: opListTagsForResource, 3668 HTTPMethod: "POST", 3669 HTTPPath: "/", 3670 } 3671 3672 if input == nil { 3673 input = &ListTagsForResourceInput{} 3674 } 3675 3676 output = &ListTagsForResourceOutput{} 3677 req = c.newRequest(op, input, output) 3678 return 3679 } 3680 3681 // ListTagsForResource API operation for AWS WAFV2. 3682 // 3683 // Retrieves the TagInfoForResource for the specified resource. Tags are key:value 3684 // pairs that you can use to categorize and manage your resources, for purposes 3685 // like billing. For example, you might set the tag key to "customer" and the 3686 // value to the customer name or ID. You can specify one or more tags to add 3687 // to each Amazon Web Services resource, up to 50 tags for a resource. 3688 // 3689 // You can tag the Amazon Web Services resources that you manage through WAF: 3690 // web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage 3691 // or view tags through the WAF console. 3692 // 3693 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3694 // with awserr.Error's Code and Message methods to get detailed information about 3695 // the error. 3696 // 3697 // See the AWS API reference guide for AWS WAFV2's 3698 // API operation ListTagsForResource for usage and error information. 3699 // 3700 // Returned Error Types: 3701 // * WAFInternalErrorException 3702 // Your request is valid, but WAF couldn’t perform the operation because of 3703 // a system problem. Retry your request. 3704 // 3705 // * WAFInvalidParameterException 3706 // The operation failed because WAF didn't recognize a parameter in the request. 3707 // For example: 3708 // 3709 // * You specified a parameter name or value that isn't valid. 3710 // 3711 // * Your nested statement isn't valid. You might have tried to nest a statement 3712 // that can’t be nested. 3713 // 3714 // * You tried to update a WebACL with a DefaultAction that isn't among the 3715 // types available at DefaultAction. 3716 // 3717 // * Your request references an ARN that is malformed, or corresponds to 3718 // a resource with which a web ACL can't be associated. 3719 // 3720 // * WAFNonexistentItemException 3721 // WAF couldn’t perform the operation because your resource doesn’t exist. 3722 // 3723 // * WAFTagOperationException 3724 // An error occurred during the tagging operation. Retry your request. 3725 // 3726 // * WAFTagOperationInternalErrorException 3727 // WAF couldn’t perform your tagging operation because of an internal error. 3728 // Retry your request. 3729 // 3730 // * WAFInvalidOperationException 3731 // The operation isn't valid. 3732 // 3733 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListTagsForResource 3734 func (c *WAFV2) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) { 3735 req, out := c.ListTagsForResourceRequest(input) 3736 return out, req.Send() 3737 } 3738 3739 // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of 3740 // the ability to pass a context and additional request options. 3741 // 3742 // See ListTagsForResource for details on how to use this API operation. 3743 // 3744 // The context must be non-nil and will be used for request cancellation. If 3745 // the context is nil a panic will occur. In the future the SDK may create 3746 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3747 // for more information on using Contexts. 3748 func (c *WAFV2) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) { 3749 req, out := c.ListTagsForResourceRequest(input) 3750 req.SetContext(ctx) 3751 req.ApplyOptions(opts...) 3752 return out, req.Send() 3753 } 3754 3755 const opListWebACLs = "ListWebACLs" 3756 3757 // ListWebACLsRequest generates a "aws/request.Request" representing the 3758 // client's request for the ListWebACLs operation. The "output" return 3759 // value will be populated with the request's response once the request completes 3760 // successfully. 3761 // 3762 // Use "Send" method on the returned Request to send the API call to the service. 3763 // the "output" return value is not valid until after Send returns without error. 3764 // 3765 // See ListWebACLs for more information on using the ListWebACLs 3766 // API call, and error handling. 3767 // 3768 // This method is useful when you want to inject custom logic or configuration 3769 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3770 // 3771 // 3772 // // Example sending a request using the ListWebACLsRequest method. 3773 // req, resp := client.ListWebACLsRequest(params) 3774 // 3775 // err := req.Send() 3776 // if err == nil { // resp is now filled 3777 // fmt.Println(resp) 3778 // } 3779 // 3780 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListWebACLs 3781 func (c *WAFV2) ListWebACLsRequest(input *ListWebACLsInput) (req *request.Request, output *ListWebACLsOutput) { 3782 op := &request.Operation{ 3783 Name: opListWebACLs, 3784 HTTPMethod: "POST", 3785 HTTPPath: "/", 3786 } 3787 3788 if input == nil { 3789 input = &ListWebACLsInput{} 3790 } 3791 3792 output = &ListWebACLsOutput{} 3793 req = c.newRequest(op, input, output) 3794 return 3795 } 3796 3797 // ListWebACLs API operation for AWS WAFV2. 3798 // 3799 // Retrieves an array of WebACLSummary objects for the web ACLs that you manage. 3800 // 3801 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3802 // with awserr.Error's Code and Message methods to get detailed information about 3803 // the error. 3804 // 3805 // See the AWS API reference guide for AWS WAFV2's 3806 // API operation ListWebACLs for usage and error information. 3807 // 3808 // Returned Error Types: 3809 // * WAFInternalErrorException 3810 // Your request is valid, but WAF couldn’t perform the operation because of 3811 // a system problem. Retry your request. 3812 // 3813 // * WAFInvalidParameterException 3814 // The operation failed because WAF didn't recognize a parameter in the request. 3815 // For example: 3816 // 3817 // * You specified a parameter name or value that isn't valid. 3818 // 3819 // * Your nested statement isn't valid. You might have tried to nest a statement 3820 // that can’t be nested. 3821 // 3822 // * You tried to update a WebACL with a DefaultAction that isn't among the 3823 // types available at DefaultAction. 3824 // 3825 // * Your request references an ARN that is malformed, or corresponds to 3826 // a resource with which a web ACL can't be associated. 3827 // 3828 // * WAFInvalidOperationException 3829 // The operation isn't valid. 3830 // 3831 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/ListWebACLs 3832 func (c *WAFV2) ListWebACLs(input *ListWebACLsInput) (*ListWebACLsOutput, error) { 3833 req, out := c.ListWebACLsRequest(input) 3834 return out, req.Send() 3835 } 3836 3837 // ListWebACLsWithContext is the same as ListWebACLs with the addition of 3838 // the ability to pass a context and additional request options. 3839 // 3840 // See ListWebACLs for details on how to use this API operation. 3841 // 3842 // The context must be non-nil and will be used for request cancellation. If 3843 // the context is nil a panic will occur. In the future the SDK may create 3844 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3845 // for more information on using Contexts. 3846 func (c *WAFV2) ListWebACLsWithContext(ctx aws.Context, input *ListWebACLsInput, opts ...request.Option) (*ListWebACLsOutput, error) { 3847 req, out := c.ListWebACLsRequest(input) 3848 req.SetContext(ctx) 3849 req.ApplyOptions(opts...) 3850 return out, req.Send() 3851 } 3852 3853 const opPutLoggingConfiguration = "PutLoggingConfiguration" 3854 3855 // PutLoggingConfigurationRequest generates a "aws/request.Request" representing the 3856 // client's request for the PutLoggingConfiguration operation. The "output" return 3857 // value will be populated with the request's response once the request completes 3858 // successfully. 3859 // 3860 // Use "Send" method on the returned Request to send the API call to the service. 3861 // the "output" return value is not valid until after Send returns without error. 3862 // 3863 // See PutLoggingConfiguration for more information on using the PutLoggingConfiguration 3864 // API call, and error handling. 3865 // 3866 // This method is useful when you want to inject custom logic or configuration 3867 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 3868 // 3869 // 3870 // // Example sending a request using the PutLoggingConfigurationRequest method. 3871 // req, resp := client.PutLoggingConfigurationRequest(params) 3872 // 3873 // err := req.Send() 3874 // if err == nil { // resp is now filled 3875 // fmt.Println(resp) 3876 // } 3877 // 3878 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutLoggingConfiguration 3879 func (c *WAFV2) PutLoggingConfigurationRequest(input *PutLoggingConfigurationInput) (req *request.Request, output *PutLoggingConfigurationOutput) { 3880 op := &request.Operation{ 3881 Name: opPutLoggingConfiguration, 3882 HTTPMethod: "POST", 3883 HTTPPath: "/", 3884 } 3885 3886 if input == nil { 3887 input = &PutLoggingConfigurationInput{} 3888 } 3889 3890 output = &PutLoggingConfigurationOutput{} 3891 req = c.newRequest(op, input, output) 3892 return 3893 } 3894 3895 // PutLoggingConfiguration API operation for AWS WAFV2. 3896 // 3897 // Enables the specified LoggingConfiguration, to start logging from a web ACL, 3898 // according to the configuration provided. 3899 // 3900 // You can access information about all traffic that WAF inspects using the 3901 // following steps: 3902 // 3903 // Create an Amazon Kinesis Data Firehose. 3904 // 3905 // Create the data firehose with a PUT source and in the Region that you are 3906 // operating. If you are capturing logs for Amazon CloudFront, always create 3907 // the firehose in US East (N. Virginia). 3908 // 3909 // Give the data firehose a name that starts with the prefix aws-waf-logs-. 3910 // For example, aws-waf-logs-us-east-2-analytics. 3911 // 3912 // Do not create the data firehose using a Kinesis stream as your source. 3913 // 3914 // Associate that firehose to your web ACL using a PutLoggingConfiguration request. 3915 // 3916 // When you successfully enable logging using a PutLoggingConfiguration request, 3917 // WAF will create a service linked role with the necessary permissions to write 3918 // logs to the Amazon Kinesis Data Firehose. For more information, see Logging 3919 // Web ACL Traffic Information (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html) 3920 // in the WAF Developer Guide. 3921 // 3922 // This operation completely replaces the mutable specifications that you already 3923 // have for the logging configuration with the ones that you provide to this 3924 // call. To modify the logging configuration, retrieve it by calling GetLoggingConfiguration, 3925 // update the settings as needed, and then provide the complete logging configuration 3926 // specification to this call. 3927 // 3928 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3929 // with awserr.Error's Code and Message methods to get detailed information about 3930 // the error. 3931 // 3932 // See the AWS API reference guide for AWS WAFV2's 3933 // API operation PutLoggingConfiguration for usage and error information. 3934 // 3935 // Returned Error Types: 3936 // * WAFInternalErrorException 3937 // Your request is valid, but WAF couldn’t perform the operation because of 3938 // a system problem. Retry your request. 3939 // 3940 // * WAFNonexistentItemException 3941 // WAF couldn’t perform the operation because your resource doesn’t exist. 3942 // 3943 // * WAFOptimisticLockException 3944 // WAF couldn’t save your changes because you tried to update or delete a 3945 // resource that has changed since you last retrieved it. Get the resource again, 3946 // make any changes you need to make to the new copy, and retry your operation. 3947 // 3948 // * WAFServiceLinkedRoleErrorException 3949 // WAF is not able to access the service linked role. This can be caused by 3950 // a previous PutLoggingConfiguration request, which can lock the service linked 3951 // role for about 20 seconds. Please try your request again. The service linked 3952 // role can also be locked by a previous DeleteServiceLinkedRole request, which 3953 // can lock the role for 15 minutes or more. If you recently made a call to 3954 // DeleteServiceLinkedRole, wait at least 15 minutes and try the request again. 3955 // If you receive this same exception again, you will have to wait additional 3956 // time until the role is unlocked. 3957 // 3958 // * WAFInvalidParameterException 3959 // The operation failed because WAF didn't recognize a parameter in the request. 3960 // For example: 3961 // 3962 // * You specified a parameter name or value that isn't valid. 3963 // 3964 // * Your nested statement isn't valid. You might have tried to nest a statement 3965 // that can’t be nested. 3966 // 3967 // * You tried to update a WebACL with a DefaultAction that isn't among the 3968 // types available at DefaultAction. 3969 // 3970 // * Your request references an ARN that is malformed, or corresponds to 3971 // a resource with which a web ACL can't be associated. 3972 // 3973 // * WAFInvalidOperationException 3974 // The operation isn't valid. 3975 // 3976 // * WAFLimitsExceededException 3977 // WAF couldn’t perform the operation because you exceeded your resource limit. 3978 // For example, the maximum number of WebACL objects that you can create for 3979 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 3980 // in the WAF Developer Guide. 3981 // 3982 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutLoggingConfiguration 3983 func (c *WAFV2) PutLoggingConfiguration(input *PutLoggingConfigurationInput) (*PutLoggingConfigurationOutput, error) { 3984 req, out := c.PutLoggingConfigurationRequest(input) 3985 return out, req.Send() 3986 } 3987 3988 // PutLoggingConfigurationWithContext is the same as PutLoggingConfiguration with the addition of 3989 // the ability to pass a context and additional request options. 3990 // 3991 // See PutLoggingConfiguration for details on how to use this API operation. 3992 // 3993 // The context must be non-nil and will be used for request cancellation. If 3994 // the context is nil a panic will occur. In the future the SDK may create 3995 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3996 // for more information on using Contexts. 3997 func (c *WAFV2) PutLoggingConfigurationWithContext(ctx aws.Context, input *PutLoggingConfigurationInput, opts ...request.Option) (*PutLoggingConfigurationOutput, error) { 3998 req, out := c.PutLoggingConfigurationRequest(input) 3999 req.SetContext(ctx) 4000 req.ApplyOptions(opts...) 4001 return out, req.Send() 4002 } 4003 4004 const opPutManagedRuleSetVersions = "PutManagedRuleSetVersions" 4005 4006 // PutManagedRuleSetVersionsRequest generates a "aws/request.Request" representing the 4007 // client's request for the PutManagedRuleSetVersions operation. The "output" return 4008 // value will be populated with the request's response once the request completes 4009 // successfully. 4010 // 4011 // Use "Send" method on the returned Request to send the API call to the service. 4012 // the "output" return value is not valid until after Send returns without error. 4013 // 4014 // See PutManagedRuleSetVersions for more information on using the PutManagedRuleSetVersions 4015 // API call, and error handling. 4016 // 4017 // This method is useful when you want to inject custom logic or configuration 4018 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4019 // 4020 // 4021 // // Example sending a request using the PutManagedRuleSetVersionsRequest method. 4022 // req, resp := client.PutManagedRuleSetVersionsRequest(params) 4023 // 4024 // err := req.Send() 4025 // if err == nil { // resp is now filled 4026 // fmt.Println(resp) 4027 // } 4028 // 4029 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersions 4030 func (c *WAFV2) PutManagedRuleSetVersionsRequest(input *PutManagedRuleSetVersionsInput) (req *request.Request, output *PutManagedRuleSetVersionsOutput) { 4031 op := &request.Operation{ 4032 Name: opPutManagedRuleSetVersions, 4033 HTTPMethod: "POST", 4034 HTTPPath: "/", 4035 } 4036 4037 if input == nil { 4038 input = &PutManagedRuleSetVersionsInput{} 4039 } 4040 4041 output = &PutManagedRuleSetVersionsOutput{} 4042 req = c.newRequest(op, input, output) 4043 return 4044 } 4045 4046 // PutManagedRuleSetVersions API operation for AWS WAFV2. 4047 // 4048 // Defines the versions of your managed rule set that you are offering to the 4049 // customers. Customers see your offerings as managed rule groups with versioning. 4050 // 4051 // This is intended for use only by vendors of managed rule sets. Vendors are 4052 // Amazon Web Services and Amazon Web Services Marketplace sellers. 4053 // 4054 // Vendors, you can use the managed rule set APIs to provide controlled rollout 4055 // of your versioned managed rule group offerings for your customers. The APIs 4056 // are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and 4057 // UpdateManagedRuleSetVersionExpiryDate. 4058 // 4059 // Customers retrieve their managed rule group list by calling ListAvailableManagedRuleGroups. 4060 // The name that you provide here for your managed rule set is the name the 4061 // customer sees for the corresponding managed rule group. Customers can retrieve 4062 // the available versions for a managed rule group by calling ListAvailableManagedRuleGroupVersions. 4063 // You provide a rule group specification for each version. For each managed 4064 // rule set, you must specify a version that you recommend using. 4065 // 4066 // To initiate the expiration of a managed rule group version, use UpdateManagedRuleSetVersionExpiryDate. 4067 // 4068 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4069 // with awserr.Error's Code and Message methods to get detailed information about 4070 // the error. 4071 // 4072 // See the AWS API reference guide for AWS WAFV2's 4073 // API operation PutManagedRuleSetVersions for usage and error information. 4074 // 4075 // Returned Error Types: 4076 // * WAFInternalErrorException 4077 // Your request is valid, but WAF couldn’t perform the operation because of 4078 // a system problem. Retry your request. 4079 // 4080 // * WAFInvalidParameterException 4081 // The operation failed because WAF didn't recognize a parameter in the request. 4082 // For example: 4083 // 4084 // * You specified a parameter name or value that isn't valid. 4085 // 4086 // * Your nested statement isn't valid. You might have tried to nest a statement 4087 // that can’t be nested. 4088 // 4089 // * You tried to update a WebACL with a DefaultAction that isn't among the 4090 // types available at DefaultAction. 4091 // 4092 // * Your request references an ARN that is malformed, or corresponds to 4093 // a resource with which a web ACL can't be associated. 4094 // 4095 // * WAFNonexistentItemException 4096 // WAF couldn’t perform the operation because your resource doesn’t exist. 4097 // 4098 // * WAFOptimisticLockException 4099 // WAF couldn’t save your changes because you tried to update or delete a 4100 // resource that has changed since you last retrieved it. Get the resource again, 4101 // make any changes you need to make to the new copy, and retry your operation. 4102 // 4103 // * WAFInvalidOperationException 4104 // The operation isn't valid. 4105 // 4106 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutManagedRuleSetVersions 4107 func (c *WAFV2) PutManagedRuleSetVersions(input *PutManagedRuleSetVersionsInput) (*PutManagedRuleSetVersionsOutput, error) { 4108 req, out := c.PutManagedRuleSetVersionsRequest(input) 4109 return out, req.Send() 4110 } 4111 4112 // PutManagedRuleSetVersionsWithContext is the same as PutManagedRuleSetVersions with the addition of 4113 // the ability to pass a context and additional request options. 4114 // 4115 // See PutManagedRuleSetVersions for details on how to use this API operation. 4116 // 4117 // The context must be non-nil and will be used for request cancellation. If 4118 // the context is nil a panic will occur. In the future the SDK may create 4119 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4120 // for more information on using Contexts. 4121 func (c *WAFV2) PutManagedRuleSetVersionsWithContext(ctx aws.Context, input *PutManagedRuleSetVersionsInput, opts ...request.Option) (*PutManagedRuleSetVersionsOutput, error) { 4122 req, out := c.PutManagedRuleSetVersionsRequest(input) 4123 req.SetContext(ctx) 4124 req.ApplyOptions(opts...) 4125 return out, req.Send() 4126 } 4127 4128 const opPutPermissionPolicy = "PutPermissionPolicy" 4129 4130 // PutPermissionPolicyRequest generates a "aws/request.Request" representing the 4131 // client's request for the PutPermissionPolicy operation. The "output" return 4132 // value will be populated with the request's response once the request completes 4133 // successfully. 4134 // 4135 // Use "Send" method on the returned Request to send the API call to the service. 4136 // the "output" return value is not valid until after Send returns without error. 4137 // 4138 // See PutPermissionPolicy for more information on using the PutPermissionPolicy 4139 // API call, and error handling. 4140 // 4141 // This method is useful when you want to inject custom logic or configuration 4142 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4143 // 4144 // 4145 // // Example sending a request using the PutPermissionPolicyRequest method. 4146 // req, resp := client.PutPermissionPolicyRequest(params) 4147 // 4148 // err := req.Send() 4149 // if err == nil { // resp is now filled 4150 // fmt.Println(resp) 4151 // } 4152 // 4153 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutPermissionPolicy 4154 func (c *WAFV2) PutPermissionPolicyRequest(input *PutPermissionPolicyInput) (req *request.Request, output *PutPermissionPolicyOutput) { 4155 op := &request.Operation{ 4156 Name: opPutPermissionPolicy, 4157 HTTPMethod: "POST", 4158 HTTPPath: "/", 4159 } 4160 4161 if input == nil { 4162 input = &PutPermissionPolicyInput{} 4163 } 4164 4165 output = &PutPermissionPolicyOutput{} 4166 req = c.newRequest(op, input, output) 4167 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 4168 return 4169 } 4170 4171 // PutPermissionPolicy API operation for AWS WAFV2. 4172 // 4173 // Attaches an IAM policy to the specified resource. Use this to share a rule 4174 // group across accounts. 4175 // 4176 // You must be the owner of the rule group to perform this operation. 4177 // 4178 // This action is subject to the following restrictions: 4179 // 4180 // * You can attach only one policy with each PutPermissionPolicy request. 4181 // 4182 // * The ARN in the request must be a valid WAF RuleGroup ARN and the rule 4183 // group must exist in the same Region. 4184 // 4185 // * The user making the request must be the owner of the rule group. 4186 // 4187 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4188 // with awserr.Error's Code and Message methods to get detailed information about 4189 // the error. 4190 // 4191 // See the AWS API reference guide for AWS WAFV2's 4192 // API operation PutPermissionPolicy for usage and error information. 4193 // 4194 // Returned Error Types: 4195 // * WAFNonexistentItemException 4196 // WAF couldn’t perform the operation because your resource doesn’t exist. 4197 // 4198 // * WAFInternalErrorException 4199 // Your request is valid, but WAF couldn’t perform the operation because of 4200 // a system problem. Retry your request. 4201 // 4202 // * WAFInvalidParameterException 4203 // The operation failed because WAF didn't recognize a parameter in the request. 4204 // For example: 4205 // 4206 // * You specified a parameter name or value that isn't valid. 4207 // 4208 // * Your nested statement isn't valid. You might have tried to nest a statement 4209 // that can’t be nested. 4210 // 4211 // * You tried to update a WebACL with a DefaultAction that isn't among the 4212 // types available at DefaultAction. 4213 // 4214 // * Your request references an ARN that is malformed, or corresponds to 4215 // a resource with which a web ACL can't be associated. 4216 // 4217 // * WAFInvalidPermissionPolicyException 4218 // The operation failed because the specified policy isn't in the proper format. 4219 // 4220 // The policy specifications must conform to the following: 4221 // 4222 // * The policy must be composed using IAM Policy version 2012-10-17 or version 4223 // 2015-01-01. 4224 // 4225 // * The policy must include specifications for Effect, Action, and Principal. 4226 // 4227 // * Effect must specify Allow. 4228 // 4229 // * Action must specify wafv2:CreateWebACL, wafv2:UpdateWebACL, and wafv2:PutFirewallManagerRuleGroups. 4230 // WAF rejects any extra actions or wildcard actions in the policy. 4231 // 4232 // * The policy must not include a Resource parameter. 4233 // 4234 // For more information, see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html). 4235 // 4236 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PutPermissionPolicy 4237 func (c *WAFV2) PutPermissionPolicy(input *PutPermissionPolicyInput) (*PutPermissionPolicyOutput, error) { 4238 req, out := c.PutPermissionPolicyRequest(input) 4239 return out, req.Send() 4240 } 4241 4242 // PutPermissionPolicyWithContext is the same as PutPermissionPolicy with the addition of 4243 // the ability to pass a context and additional request options. 4244 // 4245 // See PutPermissionPolicy for details on how to use this API operation. 4246 // 4247 // The context must be non-nil and will be used for request cancellation. If 4248 // the context is nil a panic will occur. In the future the SDK may create 4249 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4250 // for more information on using Contexts. 4251 func (c *WAFV2) PutPermissionPolicyWithContext(ctx aws.Context, input *PutPermissionPolicyInput, opts ...request.Option) (*PutPermissionPolicyOutput, error) { 4252 req, out := c.PutPermissionPolicyRequest(input) 4253 req.SetContext(ctx) 4254 req.ApplyOptions(opts...) 4255 return out, req.Send() 4256 } 4257 4258 const opTagResource = "TagResource" 4259 4260 // TagResourceRequest generates a "aws/request.Request" representing the 4261 // client's request for the TagResource operation. The "output" return 4262 // value will be populated with the request's response once the request completes 4263 // successfully. 4264 // 4265 // Use "Send" method on the returned Request to send the API call to the service. 4266 // the "output" return value is not valid until after Send returns without error. 4267 // 4268 // See TagResource for more information on using the TagResource 4269 // API call, and error handling. 4270 // 4271 // This method is useful when you want to inject custom logic or configuration 4272 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4273 // 4274 // 4275 // // Example sending a request using the TagResourceRequest method. 4276 // req, resp := client.TagResourceRequest(params) 4277 // 4278 // err := req.Send() 4279 // if err == nil { // resp is now filled 4280 // fmt.Println(resp) 4281 // } 4282 // 4283 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/TagResource 4284 func (c *WAFV2) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) { 4285 op := &request.Operation{ 4286 Name: opTagResource, 4287 HTTPMethod: "POST", 4288 HTTPPath: "/", 4289 } 4290 4291 if input == nil { 4292 input = &TagResourceInput{} 4293 } 4294 4295 output = &TagResourceOutput{} 4296 req = c.newRequest(op, input, output) 4297 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 4298 return 4299 } 4300 4301 // TagResource API operation for AWS WAFV2. 4302 // 4303 // Associates tags with the specified Amazon Web Services resource. Tags are 4304 // key:value pairs that you can use to categorize and manage your resources, 4305 // for purposes like billing. For example, you might set the tag key to "customer" 4306 // and the value to the customer name or ID. You can specify one or more tags 4307 // to add to each Amazon Web Services resource, up to 50 tags for a resource. 4308 // 4309 // You can tag the Amazon Web Services resources that you manage through WAF: 4310 // web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage 4311 // or view tags through the WAF console. 4312 // 4313 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4314 // with awserr.Error's Code and Message methods to get detailed information about 4315 // the error. 4316 // 4317 // See the AWS API reference guide for AWS WAFV2's 4318 // API operation TagResource for usage and error information. 4319 // 4320 // Returned Error Types: 4321 // * WAFInternalErrorException 4322 // Your request is valid, but WAF couldn’t perform the operation because of 4323 // a system problem. Retry your request. 4324 // 4325 // * WAFInvalidParameterException 4326 // The operation failed because WAF didn't recognize a parameter in the request. 4327 // For example: 4328 // 4329 // * You specified a parameter name or value that isn't valid. 4330 // 4331 // * Your nested statement isn't valid. You might have tried to nest a statement 4332 // that can’t be nested. 4333 // 4334 // * You tried to update a WebACL with a DefaultAction that isn't among the 4335 // types available at DefaultAction. 4336 // 4337 // * Your request references an ARN that is malformed, or corresponds to 4338 // a resource with which a web ACL can't be associated. 4339 // 4340 // * WAFLimitsExceededException 4341 // WAF couldn’t perform the operation because you exceeded your resource limit. 4342 // For example, the maximum number of WebACL objects that you can create for 4343 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 4344 // in the WAF Developer Guide. 4345 // 4346 // * WAFNonexistentItemException 4347 // WAF couldn’t perform the operation because your resource doesn’t exist. 4348 // 4349 // * WAFTagOperationException 4350 // An error occurred during the tagging operation. Retry your request. 4351 // 4352 // * WAFTagOperationInternalErrorException 4353 // WAF couldn’t perform your tagging operation because of an internal error. 4354 // Retry your request. 4355 // 4356 // * WAFInvalidOperationException 4357 // The operation isn't valid. 4358 // 4359 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/TagResource 4360 func (c *WAFV2) TagResource(input *TagResourceInput) (*TagResourceOutput, error) { 4361 req, out := c.TagResourceRequest(input) 4362 return out, req.Send() 4363 } 4364 4365 // TagResourceWithContext is the same as TagResource with the addition of 4366 // the ability to pass a context and additional request options. 4367 // 4368 // See TagResource for details on how to use this API operation. 4369 // 4370 // The context must be non-nil and will be used for request cancellation. If 4371 // the context is nil a panic will occur. In the future the SDK may create 4372 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4373 // for more information on using Contexts. 4374 func (c *WAFV2) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) { 4375 req, out := c.TagResourceRequest(input) 4376 req.SetContext(ctx) 4377 req.ApplyOptions(opts...) 4378 return out, req.Send() 4379 } 4380 4381 const opUntagResource = "UntagResource" 4382 4383 // UntagResourceRequest generates a "aws/request.Request" representing the 4384 // client's request for the UntagResource operation. The "output" return 4385 // value will be populated with the request's response once the request completes 4386 // successfully. 4387 // 4388 // Use "Send" method on the returned Request to send the API call to the service. 4389 // the "output" return value is not valid until after Send returns without error. 4390 // 4391 // See UntagResource for more information on using the UntagResource 4392 // API call, and error handling. 4393 // 4394 // This method is useful when you want to inject custom logic or configuration 4395 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4396 // 4397 // 4398 // // Example sending a request using the UntagResourceRequest method. 4399 // req, resp := client.UntagResourceRequest(params) 4400 // 4401 // err := req.Send() 4402 // if err == nil { // resp is now filled 4403 // fmt.Println(resp) 4404 // } 4405 // 4406 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UntagResource 4407 func (c *WAFV2) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) { 4408 op := &request.Operation{ 4409 Name: opUntagResource, 4410 HTTPMethod: "POST", 4411 HTTPPath: "/", 4412 } 4413 4414 if input == nil { 4415 input = &UntagResourceInput{} 4416 } 4417 4418 output = &UntagResourceOutput{} 4419 req = c.newRequest(op, input, output) 4420 req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler) 4421 return 4422 } 4423 4424 // UntagResource API operation for AWS WAFV2. 4425 // 4426 // Disassociates tags from an Amazon Web Services resource. Tags are key:value 4427 // pairs that you can associate with Amazon Web Services resources. For example, 4428 // the tag key might be "customer" and the tag value might be "companyA." You 4429 // can specify one or more tags to add to each container. You can add up to 4430 // 50 tags to each Amazon Web Services resource. 4431 // 4432 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4433 // with awserr.Error's Code and Message methods to get detailed information about 4434 // the error. 4435 // 4436 // See the AWS API reference guide for AWS WAFV2's 4437 // API operation UntagResource for usage and error information. 4438 // 4439 // Returned Error Types: 4440 // * WAFInternalErrorException 4441 // Your request is valid, but WAF couldn’t perform the operation because of 4442 // a system problem. Retry your request. 4443 // 4444 // * WAFInvalidParameterException 4445 // The operation failed because WAF didn't recognize a parameter in the request. 4446 // For example: 4447 // 4448 // * You specified a parameter name or value that isn't valid. 4449 // 4450 // * Your nested statement isn't valid. You might have tried to nest a statement 4451 // that can’t be nested. 4452 // 4453 // * You tried to update a WebACL with a DefaultAction that isn't among the 4454 // types available at DefaultAction. 4455 // 4456 // * Your request references an ARN that is malformed, or corresponds to 4457 // a resource with which a web ACL can't be associated. 4458 // 4459 // * WAFNonexistentItemException 4460 // WAF couldn’t perform the operation because your resource doesn’t exist. 4461 // 4462 // * WAFTagOperationException 4463 // An error occurred during the tagging operation. Retry your request. 4464 // 4465 // * WAFTagOperationInternalErrorException 4466 // WAF couldn’t perform your tagging operation because of an internal error. 4467 // Retry your request. 4468 // 4469 // * WAFInvalidOperationException 4470 // The operation isn't valid. 4471 // 4472 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UntagResource 4473 func (c *WAFV2) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) { 4474 req, out := c.UntagResourceRequest(input) 4475 return out, req.Send() 4476 } 4477 4478 // UntagResourceWithContext is the same as UntagResource with the addition of 4479 // the ability to pass a context and additional request options. 4480 // 4481 // See UntagResource for details on how to use this API operation. 4482 // 4483 // The context must be non-nil and will be used for request cancellation. If 4484 // the context is nil a panic will occur. In the future the SDK may create 4485 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4486 // for more information on using Contexts. 4487 func (c *WAFV2) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) { 4488 req, out := c.UntagResourceRequest(input) 4489 req.SetContext(ctx) 4490 req.ApplyOptions(opts...) 4491 return out, req.Send() 4492 } 4493 4494 const opUpdateIPSet = "UpdateIPSet" 4495 4496 // UpdateIPSetRequest generates a "aws/request.Request" representing the 4497 // client's request for the UpdateIPSet operation. The "output" return 4498 // value will be populated with the request's response once the request completes 4499 // successfully. 4500 // 4501 // Use "Send" method on the returned Request to send the API call to the service. 4502 // the "output" return value is not valid until after Send returns without error. 4503 // 4504 // See UpdateIPSet for more information on using the UpdateIPSet 4505 // API call, and error handling. 4506 // 4507 // This method is useful when you want to inject custom logic or configuration 4508 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4509 // 4510 // 4511 // // Example sending a request using the UpdateIPSetRequest method. 4512 // req, resp := client.UpdateIPSetRequest(params) 4513 // 4514 // err := req.Send() 4515 // if err == nil { // resp is now filled 4516 // fmt.Println(resp) 4517 // } 4518 // 4519 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateIPSet 4520 func (c *WAFV2) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request, output *UpdateIPSetOutput) { 4521 op := &request.Operation{ 4522 Name: opUpdateIPSet, 4523 HTTPMethod: "POST", 4524 HTTPPath: "/", 4525 } 4526 4527 if input == nil { 4528 input = &UpdateIPSetInput{} 4529 } 4530 4531 output = &UpdateIPSetOutput{} 4532 req = c.newRequest(op, input, output) 4533 return 4534 } 4535 4536 // UpdateIPSet API operation for AWS WAFV2. 4537 // 4538 // Updates the specified IPSet. 4539 // 4540 // This operation completely replaces the mutable specifications that you already 4541 // have for the IP set with the ones that you provide to this call. To modify 4542 // the IP set, retrieve it by calling GetIPSet, update the settings as needed, 4543 // and then provide the complete IP set specification to this call. 4544 // 4545 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4546 // with awserr.Error's Code and Message methods to get detailed information about 4547 // the error. 4548 // 4549 // See the AWS API reference guide for AWS WAFV2's 4550 // API operation UpdateIPSet for usage and error information. 4551 // 4552 // Returned Error Types: 4553 // * WAFInternalErrorException 4554 // Your request is valid, but WAF couldn’t perform the operation because of 4555 // a system problem. Retry your request. 4556 // 4557 // * WAFInvalidParameterException 4558 // The operation failed because WAF didn't recognize a parameter in the request. 4559 // For example: 4560 // 4561 // * You specified a parameter name or value that isn't valid. 4562 // 4563 // * Your nested statement isn't valid. You might have tried to nest a statement 4564 // that can’t be nested. 4565 // 4566 // * You tried to update a WebACL with a DefaultAction that isn't among the 4567 // types available at DefaultAction. 4568 // 4569 // * Your request references an ARN that is malformed, or corresponds to 4570 // a resource with which a web ACL can't be associated. 4571 // 4572 // * WAFNonexistentItemException 4573 // WAF couldn’t perform the operation because your resource doesn’t exist. 4574 // 4575 // * WAFDuplicateItemException 4576 // WAF couldn’t perform the operation because the resource that you tried 4577 // to save is a duplicate of an existing one. 4578 // 4579 // * WAFOptimisticLockException 4580 // WAF couldn’t save your changes because you tried to update or delete a 4581 // resource that has changed since you last retrieved it. Get the resource again, 4582 // make any changes you need to make to the new copy, and retry your operation. 4583 // 4584 // * WAFLimitsExceededException 4585 // WAF couldn’t perform the operation because you exceeded your resource limit. 4586 // For example, the maximum number of WebACL objects that you can create for 4587 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 4588 // in the WAF Developer Guide. 4589 // 4590 // * WAFInvalidOperationException 4591 // The operation isn't valid. 4592 // 4593 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateIPSet 4594 func (c *WAFV2) UpdateIPSet(input *UpdateIPSetInput) (*UpdateIPSetOutput, error) { 4595 req, out := c.UpdateIPSetRequest(input) 4596 return out, req.Send() 4597 } 4598 4599 // UpdateIPSetWithContext is the same as UpdateIPSet with the addition of 4600 // the ability to pass a context and additional request options. 4601 // 4602 // See UpdateIPSet for details on how to use this API operation. 4603 // 4604 // The context must be non-nil and will be used for request cancellation. If 4605 // the context is nil a panic will occur. In the future the SDK may create 4606 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4607 // for more information on using Contexts. 4608 func (c *WAFV2) UpdateIPSetWithContext(ctx aws.Context, input *UpdateIPSetInput, opts ...request.Option) (*UpdateIPSetOutput, error) { 4609 req, out := c.UpdateIPSetRequest(input) 4610 req.SetContext(ctx) 4611 req.ApplyOptions(opts...) 4612 return out, req.Send() 4613 } 4614 4615 const opUpdateManagedRuleSetVersionExpiryDate = "UpdateManagedRuleSetVersionExpiryDate" 4616 4617 // UpdateManagedRuleSetVersionExpiryDateRequest generates a "aws/request.Request" representing the 4618 // client's request for the UpdateManagedRuleSetVersionExpiryDate operation. The "output" return 4619 // value will be populated with the request's response once the request completes 4620 // successfully. 4621 // 4622 // Use "Send" method on the returned Request to send the API call to the service. 4623 // the "output" return value is not valid until after Send returns without error. 4624 // 4625 // See UpdateManagedRuleSetVersionExpiryDate for more information on using the UpdateManagedRuleSetVersionExpiryDate 4626 // API call, and error handling. 4627 // 4628 // This method is useful when you want to inject custom logic or configuration 4629 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4630 // 4631 // 4632 // // Example sending a request using the UpdateManagedRuleSetVersionExpiryDateRequest method. 4633 // req, resp := client.UpdateManagedRuleSetVersionExpiryDateRequest(params) 4634 // 4635 // err := req.Send() 4636 // if err == nil { // resp is now filled 4637 // fmt.Println(resp) 4638 // } 4639 // 4640 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDate 4641 func (c *WAFV2) UpdateManagedRuleSetVersionExpiryDateRequest(input *UpdateManagedRuleSetVersionExpiryDateInput) (req *request.Request, output *UpdateManagedRuleSetVersionExpiryDateOutput) { 4642 op := &request.Operation{ 4643 Name: opUpdateManagedRuleSetVersionExpiryDate, 4644 HTTPMethod: "POST", 4645 HTTPPath: "/", 4646 } 4647 4648 if input == nil { 4649 input = &UpdateManagedRuleSetVersionExpiryDateInput{} 4650 } 4651 4652 output = &UpdateManagedRuleSetVersionExpiryDateOutput{} 4653 req = c.newRequest(op, input, output) 4654 return 4655 } 4656 4657 // UpdateManagedRuleSetVersionExpiryDate API operation for AWS WAFV2. 4658 // 4659 // Updates the expiration information for your managed rule set. Use this to 4660 // initiate the expiration of a managed rule group version. After you initiate 4661 // expiration for a version, WAF excludes it from the reponse to ListAvailableManagedRuleGroupVersions 4662 // for the managed rule group. 4663 // 4664 // This is intended for use only by vendors of managed rule sets. Vendors are 4665 // Amazon Web Services and Amazon Web Services Marketplace sellers. 4666 // 4667 // Vendors, you can use the managed rule set APIs to provide controlled rollout 4668 // of your versioned managed rule group offerings for your customers. The APIs 4669 // are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and 4670 // UpdateManagedRuleSetVersionExpiryDate. 4671 // 4672 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4673 // with awserr.Error's Code and Message methods to get detailed information about 4674 // the error. 4675 // 4676 // See the AWS API reference guide for AWS WAFV2's 4677 // API operation UpdateManagedRuleSetVersionExpiryDate for usage and error information. 4678 // 4679 // Returned Error Types: 4680 // * WAFInternalErrorException 4681 // Your request is valid, but WAF couldn’t perform the operation because of 4682 // a system problem. Retry your request. 4683 // 4684 // * WAFInvalidParameterException 4685 // The operation failed because WAF didn't recognize a parameter in the request. 4686 // For example: 4687 // 4688 // * You specified a parameter name or value that isn't valid. 4689 // 4690 // * Your nested statement isn't valid. You might have tried to nest a statement 4691 // that can’t be nested. 4692 // 4693 // * You tried to update a WebACL with a DefaultAction that isn't among the 4694 // types available at DefaultAction. 4695 // 4696 // * Your request references an ARN that is malformed, or corresponds to 4697 // a resource with which a web ACL can't be associated. 4698 // 4699 // * WAFNonexistentItemException 4700 // WAF couldn’t perform the operation because your resource doesn’t exist. 4701 // 4702 // * WAFOptimisticLockException 4703 // WAF couldn’t save your changes because you tried to update or delete a 4704 // resource that has changed since you last retrieved it. Get the resource again, 4705 // make any changes you need to make to the new copy, and retry your operation. 4706 // 4707 // * WAFInvalidOperationException 4708 // The operation isn't valid. 4709 // 4710 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateManagedRuleSetVersionExpiryDate 4711 func (c *WAFV2) UpdateManagedRuleSetVersionExpiryDate(input *UpdateManagedRuleSetVersionExpiryDateInput) (*UpdateManagedRuleSetVersionExpiryDateOutput, error) { 4712 req, out := c.UpdateManagedRuleSetVersionExpiryDateRequest(input) 4713 return out, req.Send() 4714 } 4715 4716 // UpdateManagedRuleSetVersionExpiryDateWithContext is the same as UpdateManagedRuleSetVersionExpiryDate with the addition of 4717 // the ability to pass a context and additional request options. 4718 // 4719 // See UpdateManagedRuleSetVersionExpiryDate for details on how to use this API operation. 4720 // 4721 // The context must be non-nil and will be used for request cancellation. If 4722 // the context is nil a panic will occur. In the future the SDK may create 4723 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4724 // for more information on using Contexts. 4725 func (c *WAFV2) UpdateManagedRuleSetVersionExpiryDateWithContext(ctx aws.Context, input *UpdateManagedRuleSetVersionExpiryDateInput, opts ...request.Option) (*UpdateManagedRuleSetVersionExpiryDateOutput, error) { 4726 req, out := c.UpdateManagedRuleSetVersionExpiryDateRequest(input) 4727 req.SetContext(ctx) 4728 req.ApplyOptions(opts...) 4729 return out, req.Send() 4730 } 4731 4732 const opUpdateRegexPatternSet = "UpdateRegexPatternSet" 4733 4734 // UpdateRegexPatternSetRequest generates a "aws/request.Request" representing the 4735 // client's request for the UpdateRegexPatternSet operation. The "output" return 4736 // value will be populated with the request's response once the request completes 4737 // successfully. 4738 // 4739 // Use "Send" method on the returned Request to send the API call to the service. 4740 // the "output" return value is not valid until after Send returns without error. 4741 // 4742 // See UpdateRegexPatternSet for more information on using the UpdateRegexPatternSet 4743 // API call, and error handling. 4744 // 4745 // This method is useful when you want to inject custom logic or configuration 4746 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4747 // 4748 // 4749 // // Example sending a request using the UpdateRegexPatternSetRequest method. 4750 // req, resp := client.UpdateRegexPatternSetRequest(params) 4751 // 4752 // err := req.Send() 4753 // if err == nil { // resp is now filled 4754 // fmt.Println(resp) 4755 // } 4756 // 4757 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRegexPatternSet 4758 func (c *WAFV2) UpdateRegexPatternSetRequest(input *UpdateRegexPatternSetInput) (req *request.Request, output *UpdateRegexPatternSetOutput) { 4759 op := &request.Operation{ 4760 Name: opUpdateRegexPatternSet, 4761 HTTPMethod: "POST", 4762 HTTPPath: "/", 4763 } 4764 4765 if input == nil { 4766 input = &UpdateRegexPatternSetInput{} 4767 } 4768 4769 output = &UpdateRegexPatternSetOutput{} 4770 req = c.newRequest(op, input, output) 4771 return 4772 } 4773 4774 // UpdateRegexPatternSet API operation for AWS WAFV2. 4775 // 4776 // Updates the specified RegexPatternSet. 4777 // 4778 // This operation completely replaces the mutable specifications that you already 4779 // have for the regex pattern set with the ones that you provide to this call. 4780 // To modify the regex pattern set, retrieve it by calling GetRegexPatternSet, 4781 // update the settings as needed, and then provide the complete regex pattern 4782 // set specification to this call. 4783 // 4784 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4785 // with awserr.Error's Code and Message methods to get detailed information about 4786 // the error. 4787 // 4788 // See the AWS API reference guide for AWS WAFV2's 4789 // API operation UpdateRegexPatternSet for usage and error information. 4790 // 4791 // Returned Error Types: 4792 // * WAFInternalErrorException 4793 // Your request is valid, but WAF couldn’t perform the operation because of 4794 // a system problem. Retry your request. 4795 // 4796 // * WAFInvalidParameterException 4797 // The operation failed because WAF didn't recognize a parameter in the request. 4798 // For example: 4799 // 4800 // * You specified a parameter name or value that isn't valid. 4801 // 4802 // * Your nested statement isn't valid. You might have tried to nest a statement 4803 // that can’t be nested. 4804 // 4805 // * You tried to update a WebACL with a DefaultAction that isn't among the 4806 // types available at DefaultAction. 4807 // 4808 // * Your request references an ARN that is malformed, or corresponds to 4809 // a resource with which a web ACL can't be associated. 4810 // 4811 // * WAFNonexistentItemException 4812 // WAF couldn’t perform the operation because your resource doesn’t exist. 4813 // 4814 // * WAFDuplicateItemException 4815 // WAF couldn’t perform the operation because the resource that you tried 4816 // to save is a duplicate of an existing one. 4817 // 4818 // * WAFOptimisticLockException 4819 // WAF couldn’t save your changes because you tried to update or delete a 4820 // resource that has changed since you last retrieved it. Get the resource again, 4821 // make any changes you need to make to the new copy, and retry your operation. 4822 // 4823 // * WAFLimitsExceededException 4824 // WAF couldn’t perform the operation because you exceeded your resource limit. 4825 // For example, the maximum number of WebACL objects that you can create for 4826 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 4827 // in the WAF Developer Guide. 4828 // 4829 // * WAFInvalidOperationException 4830 // The operation isn't valid. 4831 // 4832 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRegexPatternSet 4833 func (c *WAFV2) UpdateRegexPatternSet(input *UpdateRegexPatternSetInput) (*UpdateRegexPatternSetOutput, error) { 4834 req, out := c.UpdateRegexPatternSetRequest(input) 4835 return out, req.Send() 4836 } 4837 4838 // UpdateRegexPatternSetWithContext is the same as UpdateRegexPatternSet with the addition of 4839 // the ability to pass a context and additional request options. 4840 // 4841 // See UpdateRegexPatternSet for details on how to use this API operation. 4842 // 4843 // The context must be non-nil and will be used for request cancellation. If 4844 // the context is nil a panic will occur. In the future the SDK may create 4845 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4846 // for more information on using Contexts. 4847 func (c *WAFV2) UpdateRegexPatternSetWithContext(ctx aws.Context, input *UpdateRegexPatternSetInput, opts ...request.Option) (*UpdateRegexPatternSetOutput, error) { 4848 req, out := c.UpdateRegexPatternSetRequest(input) 4849 req.SetContext(ctx) 4850 req.ApplyOptions(opts...) 4851 return out, req.Send() 4852 } 4853 4854 const opUpdateRuleGroup = "UpdateRuleGroup" 4855 4856 // UpdateRuleGroupRequest generates a "aws/request.Request" representing the 4857 // client's request for the UpdateRuleGroup operation. The "output" return 4858 // value will be populated with the request's response once the request completes 4859 // successfully. 4860 // 4861 // Use "Send" method on the returned Request to send the API call to the service. 4862 // the "output" return value is not valid until after Send returns without error. 4863 // 4864 // See UpdateRuleGroup for more information on using the UpdateRuleGroup 4865 // API call, and error handling. 4866 // 4867 // This method is useful when you want to inject custom logic or configuration 4868 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 4869 // 4870 // 4871 // // Example sending a request using the UpdateRuleGroupRequest method. 4872 // req, resp := client.UpdateRuleGroupRequest(params) 4873 // 4874 // err := req.Send() 4875 // if err == nil { // resp is now filled 4876 // fmt.Println(resp) 4877 // } 4878 // 4879 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRuleGroup 4880 func (c *WAFV2) UpdateRuleGroupRequest(input *UpdateRuleGroupInput) (req *request.Request, output *UpdateRuleGroupOutput) { 4881 op := &request.Operation{ 4882 Name: opUpdateRuleGroup, 4883 HTTPMethod: "POST", 4884 HTTPPath: "/", 4885 } 4886 4887 if input == nil { 4888 input = &UpdateRuleGroupInput{} 4889 } 4890 4891 output = &UpdateRuleGroupOutput{} 4892 req = c.newRequest(op, input, output) 4893 return 4894 } 4895 4896 // UpdateRuleGroup API operation for AWS WAFV2. 4897 // 4898 // Updates the specified RuleGroup. 4899 // 4900 // This operation completely replaces the mutable specifications that you already 4901 // have for the rule group with the ones that you provide to this call. To modify 4902 // the rule group, retrieve it by calling GetRuleGroup, update the settings 4903 // as needed, and then provide the complete rule group specification to this 4904 // call. 4905 // 4906 // A rule group defines a collection of rules to inspect and control web requests 4907 // that you can use in a WebACL. When you create a rule group, you define an 4908 // immutable capacity limit. If you update a rule group, you must stay within 4909 // the capacity. This allows others to reuse the rule group with confidence 4910 // in its capacity requirements. 4911 // 4912 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4913 // with awserr.Error's Code and Message methods to get detailed information about 4914 // the error. 4915 // 4916 // See the AWS API reference guide for AWS WAFV2's 4917 // API operation UpdateRuleGroup for usage and error information. 4918 // 4919 // Returned Error Types: 4920 // * WAFInternalErrorException 4921 // Your request is valid, but WAF couldn’t perform the operation because of 4922 // a system problem. Retry your request. 4923 // 4924 // * WAFInvalidParameterException 4925 // The operation failed because WAF didn't recognize a parameter in the request. 4926 // For example: 4927 // 4928 // * You specified a parameter name or value that isn't valid. 4929 // 4930 // * Your nested statement isn't valid. You might have tried to nest a statement 4931 // that can’t be nested. 4932 // 4933 // * You tried to update a WebACL with a DefaultAction that isn't among the 4934 // types available at DefaultAction. 4935 // 4936 // * Your request references an ARN that is malformed, or corresponds to 4937 // a resource with which a web ACL can't be associated. 4938 // 4939 // * WAFNonexistentItemException 4940 // WAF couldn’t perform the operation because your resource doesn’t exist. 4941 // 4942 // * WAFDuplicateItemException 4943 // WAF couldn’t perform the operation because the resource that you tried 4944 // to save is a duplicate of an existing one. 4945 // 4946 // * WAFOptimisticLockException 4947 // WAF couldn’t save your changes because you tried to update or delete a 4948 // resource that has changed since you last retrieved it. Get the resource again, 4949 // make any changes you need to make to the new copy, and retry your operation. 4950 // 4951 // * WAFLimitsExceededException 4952 // WAF couldn’t perform the operation because you exceeded your resource limit. 4953 // For example, the maximum number of WebACL objects that you can create for 4954 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 4955 // in the WAF Developer Guide. 4956 // 4957 // * WAFUnavailableEntityException 4958 // WAF couldn’t retrieve the resource that you requested. Retry your request. 4959 // 4960 // * WAFSubscriptionNotFoundException 4961 // You tried to use a managed rule group that's available by subscription, but 4962 // you aren't subscribed to it yet. 4963 // 4964 // * WAFInvalidOperationException 4965 // The operation isn't valid. 4966 // 4967 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateRuleGroup 4968 func (c *WAFV2) UpdateRuleGroup(input *UpdateRuleGroupInput) (*UpdateRuleGroupOutput, error) { 4969 req, out := c.UpdateRuleGroupRequest(input) 4970 return out, req.Send() 4971 } 4972 4973 // UpdateRuleGroupWithContext is the same as UpdateRuleGroup with the addition of 4974 // the ability to pass a context and additional request options. 4975 // 4976 // See UpdateRuleGroup for details on how to use this API operation. 4977 // 4978 // The context must be non-nil and will be used for request cancellation. If 4979 // the context is nil a panic will occur. In the future the SDK may create 4980 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4981 // for more information on using Contexts. 4982 func (c *WAFV2) UpdateRuleGroupWithContext(ctx aws.Context, input *UpdateRuleGroupInput, opts ...request.Option) (*UpdateRuleGroupOutput, error) { 4983 req, out := c.UpdateRuleGroupRequest(input) 4984 req.SetContext(ctx) 4985 req.ApplyOptions(opts...) 4986 return out, req.Send() 4987 } 4988 4989 const opUpdateWebACL = "UpdateWebACL" 4990 4991 // UpdateWebACLRequest generates a "aws/request.Request" representing the 4992 // client's request for the UpdateWebACL operation. The "output" return 4993 // value will be populated with the request's response once the request completes 4994 // successfully. 4995 // 4996 // Use "Send" method on the returned Request to send the API call to the service. 4997 // the "output" return value is not valid until after Send returns without error. 4998 // 4999 // See UpdateWebACL for more information on using the UpdateWebACL 5000 // API call, and error handling. 5001 // 5002 // This method is useful when you want to inject custom logic or configuration 5003 // into the SDK's request lifecycle. Such as custom headers, or retry logic. 5004 // 5005 // 5006 // // Example sending a request using the UpdateWebACLRequest method. 5007 // req, resp := client.UpdateWebACLRequest(params) 5008 // 5009 // err := req.Send() 5010 // if err == nil { // resp is now filled 5011 // fmt.Println(resp) 5012 // } 5013 // 5014 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACL 5015 func (c *WAFV2) UpdateWebACLRequest(input *UpdateWebACLInput) (req *request.Request, output *UpdateWebACLOutput) { 5016 op := &request.Operation{ 5017 Name: opUpdateWebACL, 5018 HTTPMethod: "POST", 5019 HTTPPath: "/", 5020 } 5021 5022 if input == nil { 5023 input = &UpdateWebACLInput{} 5024 } 5025 5026 output = &UpdateWebACLOutput{} 5027 req = c.newRequest(op, input, output) 5028 return 5029 } 5030 5031 // UpdateWebACL API operation for AWS WAFV2. 5032 // 5033 // Updates the specified WebACL. 5034 // 5035 // This operation completely replaces the mutable specifications that you already 5036 // have for the web ACL with the ones that you provide to this call. To modify 5037 // the web ACL, retrieve it by calling GetWebACL, update the settings as needed, 5038 // and then provide the complete web ACL specification to this call. 5039 // 5040 // A web ACL defines a collection of rules to use to inspect and control web 5041 // requests. Each rule has an action defined (allow, block, or count) for requests 5042 // that match the statement of the rule. In the web ACL, you assign a default 5043 // action to take (allow, block) for any request that does not match any of 5044 // the rules. The rules in a web ACL can be a combination of the types Rule, 5045 // RuleGroup, and managed rule group. You can associate a web ACL with one or 5046 // more Amazon Web Services resources to protect. The resources can be an Amazon 5047 // CloudFront distribution, an Amazon API Gateway REST API, an Application Load 5048 // Balancer, or an AppSync GraphQL API. 5049 // 5050 // Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5051 // with awserr.Error's Code and Message methods to get detailed information about 5052 // the error. 5053 // 5054 // See the AWS API reference guide for AWS WAFV2's 5055 // API operation UpdateWebACL for usage and error information. 5056 // 5057 // Returned Error Types: 5058 // * WAFInternalErrorException 5059 // Your request is valid, but WAF couldn’t perform the operation because of 5060 // a system problem. Retry your request. 5061 // 5062 // * WAFInvalidParameterException 5063 // The operation failed because WAF didn't recognize a parameter in the request. 5064 // For example: 5065 // 5066 // * You specified a parameter name or value that isn't valid. 5067 // 5068 // * Your nested statement isn't valid. You might have tried to nest a statement 5069 // that can’t be nested. 5070 // 5071 // * You tried to update a WebACL with a DefaultAction that isn't among the 5072 // types available at DefaultAction. 5073 // 5074 // * Your request references an ARN that is malformed, or corresponds to 5075 // a resource with which a web ACL can't be associated. 5076 // 5077 // * WAFNonexistentItemException 5078 // WAF couldn’t perform the operation because your resource doesn’t exist. 5079 // 5080 // * WAFDuplicateItemException 5081 // WAF couldn’t perform the operation because the resource that you tried 5082 // to save is a duplicate of an existing one. 5083 // 5084 // * WAFOptimisticLockException 5085 // WAF couldn’t save your changes because you tried to update or delete a 5086 // resource that has changed since you last retrieved it. Get the resource again, 5087 // make any changes you need to make to the new copy, and retry your operation. 5088 // 5089 // * WAFLimitsExceededException 5090 // WAF couldn’t perform the operation because you exceeded your resource limit. 5091 // For example, the maximum number of WebACL objects that you can create for 5092 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 5093 // in the WAF Developer Guide. 5094 // 5095 // * WAFInvalidResourceException 5096 // WAF couldn’t perform the operation because the resource that you requested 5097 // isn’t valid. Check the resource, and try again. 5098 // 5099 // * WAFUnavailableEntityException 5100 // WAF couldn’t retrieve the resource that you requested. Retry your request. 5101 // 5102 // * WAFSubscriptionNotFoundException 5103 // You tried to use a managed rule group that's available by subscription, but 5104 // you aren't subscribed to it yet. 5105 // 5106 // * WAFInvalidOperationException 5107 // The operation isn't valid. 5108 // 5109 // * WAFExpiredManagedRuleGroupVersionException 5110 // The operation failed because the specified version for the managed rule group 5111 // has expired. You can retrieve the available versions for the managed rule 5112 // group by calling ListAvailableManagedRuleGroupVersions. 5113 // 5114 // See also, https://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/UpdateWebACL 5115 func (c *WAFV2) UpdateWebACL(input *UpdateWebACLInput) (*UpdateWebACLOutput, error) { 5116 req, out := c.UpdateWebACLRequest(input) 5117 return out, req.Send() 5118 } 5119 5120 // UpdateWebACLWithContext is the same as UpdateWebACL with the addition of 5121 // the ability to pass a context and additional request options. 5122 // 5123 // See UpdateWebACL for details on how to use this API operation. 5124 // 5125 // The context must be non-nil and will be used for request cancellation. If 5126 // the context is nil a panic will occur. In the future the SDK may create 5127 // sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5128 // for more information on using Contexts. 5129 func (c *WAFV2) UpdateWebACLWithContext(ctx aws.Context, input *UpdateWebACLInput, opts ...request.Option) (*UpdateWebACLOutput, error) { 5130 req, out := c.UpdateWebACLRequest(input) 5131 req.SetContext(ctx) 5132 req.ApplyOptions(opts...) 5133 return out, req.Send() 5134 } 5135 5136 // A single action condition for a Condition in a logging filter. 5137 type ActionCondition struct { 5138 _ struct{} `type:"structure"` 5139 5140 // The action setting that a log record must contain in order to meet the condition. 5141 // 5142 // Action is a required field 5143 Action *string `type:"string" required:"true" enum:"ActionValue"` 5144 } 5145 5146 // String returns the string representation. 5147 // 5148 // API parameter values that are decorated as "sensitive" in the API will not 5149 // be included in the string output. The member name will be present, but the 5150 // value will be replaced with "sensitive". 5151 func (s ActionCondition) String() string { 5152 return awsutil.Prettify(s) 5153 } 5154 5155 // GoString returns the string representation. 5156 // 5157 // API parameter values that are decorated as "sensitive" in the API will not 5158 // be included in the string output. The member name will be present, but the 5159 // value will be replaced with "sensitive". 5160 func (s ActionCondition) GoString() string { 5161 return s.String() 5162 } 5163 5164 // Validate inspects the fields of the type to determine if they are valid. 5165 func (s *ActionCondition) Validate() error { 5166 invalidParams := request.ErrInvalidParams{Context: "ActionCondition"} 5167 if s.Action == nil { 5168 invalidParams.Add(request.NewErrParamRequired("Action")) 5169 } 5170 5171 if invalidParams.Len() > 0 { 5172 return invalidParams 5173 } 5174 return nil 5175 } 5176 5177 // SetAction sets the Action field's value. 5178 func (s *ActionCondition) SetAction(v string) *ActionCondition { 5179 s.Action = &v 5180 return s 5181 } 5182 5183 // Inspect all of the elements that WAF has parsed and extracted from the web 5184 // request JSON body that are within the JsonBody MatchScope. This is used with 5185 // the FieldToMatch option JsonBody. 5186 // 5187 // This is used only to indicate the web request component for WAF to inspect, 5188 // in the FieldToMatch specification. 5189 // 5190 // JSON specification: "All": {} 5191 type All struct { 5192 _ struct{} `type:"structure"` 5193 } 5194 5195 // String returns the string representation. 5196 // 5197 // API parameter values that are decorated as "sensitive" in the API will not 5198 // be included in the string output. The member name will be present, but the 5199 // value will be replaced with "sensitive". 5200 func (s All) String() string { 5201 return awsutil.Prettify(s) 5202 } 5203 5204 // GoString returns the string representation. 5205 // 5206 // API parameter values that are decorated as "sensitive" in the API will not 5207 // be included in the string output. The member name will be present, but the 5208 // value will be replaced with "sensitive". 5209 func (s All) GoString() string { 5210 return s.String() 5211 } 5212 5213 // All query arguments of a web request. 5214 // 5215 // This is used only to indicate the web request component for WAF to inspect, 5216 // in the FieldToMatch specification. 5217 // 5218 // JSON specification: "AllQueryArguments": {} 5219 type AllQueryArguments struct { 5220 _ struct{} `type:"structure"` 5221 } 5222 5223 // String returns the string representation. 5224 // 5225 // API parameter values that are decorated as "sensitive" in the API will not 5226 // be included in the string output. The member name will be present, but the 5227 // value will be replaced with "sensitive". 5228 func (s AllQueryArguments) String() string { 5229 return awsutil.Prettify(s) 5230 } 5231 5232 // GoString returns the string representation. 5233 // 5234 // API parameter values that are decorated as "sensitive" in the API will not 5235 // be included in the string output. The member name will be present, but the 5236 // value will be replaced with "sensitive". 5237 func (s AllQueryArguments) GoString() string { 5238 return s.String() 5239 } 5240 5241 // Specifies that WAF should allow the request and optionally defines additional 5242 // custom handling for the request. 5243 // 5244 // This is used in the context of other settings, for example to specify values 5245 // for RuleAction and web ACL DefaultAction. 5246 type AllowAction struct { 5247 _ struct{} `type:"structure"` 5248 5249 // Defines custom handling for the web request. 5250 // 5251 // For information about customizing web requests and responses, see Customizing 5252 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 5253 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 5254 CustomRequestHandling *CustomRequestHandling `type:"structure"` 5255 } 5256 5257 // String returns the string representation. 5258 // 5259 // API parameter values that are decorated as "sensitive" in the API will not 5260 // be included in the string output. The member name will be present, but the 5261 // value will be replaced with "sensitive". 5262 func (s AllowAction) String() string { 5263 return awsutil.Prettify(s) 5264 } 5265 5266 // GoString returns the string representation. 5267 // 5268 // API parameter values that are decorated as "sensitive" in the API will not 5269 // be included in the string output. The member name will be present, but the 5270 // value will be replaced with "sensitive". 5271 func (s AllowAction) GoString() string { 5272 return s.String() 5273 } 5274 5275 // Validate inspects the fields of the type to determine if they are valid. 5276 func (s *AllowAction) Validate() error { 5277 invalidParams := request.ErrInvalidParams{Context: "AllowAction"} 5278 if s.CustomRequestHandling != nil { 5279 if err := s.CustomRequestHandling.Validate(); err != nil { 5280 invalidParams.AddNested("CustomRequestHandling", err.(request.ErrInvalidParams)) 5281 } 5282 } 5283 5284 if invalidParams.Len() > 0 { 5285 return invalidParams 5286 } 5287 return nil 5288 } 5289 5290 // SetCustomRequestHandling sets the CustomRequestHandling field's value. 5291 func (s *AllowAction) SetCustomRequestHandling(v *CustomRequestHandling) *AllowAction { 5292 s.CustomRequestHandling = v 5293 return s 5294 } 5295 5296 // A logical rule statement used to combine other rule statements with AND logic. 5297 // You provide more than one Statement within the AndStatement. 5298 type AndStatement struct { 5299 _ struct{} `type:"structure"` 5300 5301 // The statements to combine with AND logic. You can use any statements that 5302 // can be nested. 5303 // 5304 // Statements is a required field 5305 Statements []*Statement `type:"list" required:"true"` 5306 } 5307 5308 // String returns the string representation. 5309 // 5310 // API parameter values that are decorated as "sensitive" in the API will not 5311 // be included in the string output. The member name will be present, but the 5312 // value will be replaced with "sensitive". 5313 func (s AndStatement) String() string { 5314 return awsutil.Prettify(s) 5315 } 5316 5317 // GoString returns the string representation. 5318 // 5319 // API parameter values that are decorated as "sensitive" in the API will not 5320 // be included in the string output. The member name will be present, but the 5321 // value will be replaced with "sensitive". 5322 func (s AndStatement) GoString() string { 5323 return s.String() 5324 } 5325 5326 // Validate inspects the fields of the type to determine if they are valid. 5327 func (s *AndStatement) Validate() error { 5328 invalidParams := request.ErrInvalidParams{Context: "AndStatement"} 5329 if s.Statements == nil { 5330 invalidParams.Add(request.NewErrParamRequired("Statements")) 5331 } 5332 5333 if invalidParams.Len() > 0 { 5334 return invalidParams 5335 } 5336 return nil 5337 } 5338 5339 // SetStatements sets the Statements field's value. 5340 func (s *AndStatement) SetStatements(v []*Statement) *AndStatement { 5341 s.Statements = v 5342 return s 5343 } 5344 5345 type AssociateWebACLInput struct { 5346 _ struct{} `type:"structure"` 5347 5348 // The Amazon Resource Name (ARN) of the resource to associate with the web 5349 // ACL. 5350 // 5351 // The ARN must be in one of the following formats: 5352 // 5353 // * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id 5354 // 5355 // * For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name 5356 // 5357 // * For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId 5358 // 5359 // ResourceArn is a required field 5360 ResourceArn *string `min:"20" type:"string" required:"true"` 5361 5362 // The Amazon Resource Name (ARN) of the web ACL that you want to associate 5363 // with the resource. 5364 // 5365 // WebACLArn is a required field 5366 WebACLArn *string `min:"20" type:"string" required:"true"` 5367 } 5368 5369 // String returns the string representation. 5370 // 5371 // API parameter values that are decorated as "sensitive" in the API will not 5372 // be included in the string output. The member name will be present, but the 5373 // value will be replaced with "sensitive". 5374 func (s AssociateWebACLInput) String() string { 5375 return awsutil.Prettify(s) 5376 } 5377 5378 // GoString returns the string representation. 5379 // 5380 // API parameter values that are decorated as "sensitive" in the API will not 5381 // be included in the string output. The member name will be present, but the 5382 // value will be replaced with "sensitive". 5383 func (s AssociateWebACLInput) GoString() string { 5384 return s.String() 5385 } 5386 5387 // Validate inspects the fields of the type to determine if they are valid. 5388 func (s *AssociateWebACLInput) Validate() error { 5389 invalidParams := request.ErrInvalidParams{Context: "AssociateWebACLInput"} 5390 if s.ResourceArn == nil { 5391 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 5392 } 5393 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 5394 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 5395 } 5396 if s.WebACLArn == nil { 5397 invalidParams.Add(request.NewErrParamRequired("WebACLArn")) 5398 } 5399 if s.WebACLArn != nil && len(*s.WebACLArn) < 20 { 5400 invalidParams.Add(request.NewErrParamMinLen("WebACLArn", 20)) 5401 } 5402 5403 if invalidParams.Len() > 0 { 5404 return invalidParams 5405 } 5406 return nil 5407 } 5408 5409 // SetResourceArn sets the ResourceArn field's value. 5410 func (s *AssociateWebACLInput) SetResourceArn(v string) *AssociateWebACLInput { 5411 s.ResourceArn = &v 5412 return s 5413 } 5414 5415 // SetWebACLArn sets the WebACLArn field's value. 5416 func (s *AssociateWebACLInput) SetWebACLArn(v string) *AssociateWebACLInput { 5417 s.WebACLArn = &v 5418 return s 5419 } 5420 5421 type AssociateWebACLOutput struct { 5422 _ struct{} `type:"structure"` 5423 } 5424 5425 // String returns the string representation. 5426 // 5427 // API parameter values that are decorated as "sensitive" in the API will not 5428 // be included in the string output. The member name will be present, but the 5429 // value will be replaced with "sensitive". 5430 func (s AssociateWebACLOutput) String() string { 5431 return awsutil.Prettify(s) 5432 } 5433 5434 // GoString returns the string representation. 5435 // 5436 // API parameter values that are decorated as "sensitive" in the API will not 5437 // be included in the string output. The member name will be present, but the 5438 // value will be replaced with "sensitive". 5439 func (s AssociateWebACLOutput) GoString() string { 5440 return s.String() 5441 } 5442 5443 // Specifies that WAF should block the request and optionally defines additional 5444 // custom handling for the response to the web request. 5445 // 5446 // This is used in the context of other settings, for example to specify values 5447 // for RuleAction and web ACL DefaultAction. 5448 type BlockAction struct { 5449 _ struct{} `type:"structure"` 5450 5451 // Defines a custom response for the web request. 5452 // 5453 // For information about customizing web requests and responses, see Customizing 5454 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 5455 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 5456 CustomResponse *CustomResponse `type:"structure"` 5457 } 5458 5459 // String returns the string representation. 5460 // 5461 // API parameter values that are decorated as "sensitive" in the API will not 5462 // be included in the string output. The member name will be present, but the 5463 // value will be replaced with "sensitive". 5464 func (s BlockAction) String() string { 5465 return awsutil.Prettify(s) 5466 } 5467 5468 // GoString returns the string representation. 5469 // 5470 // API parameter values that are decorated as "sensitive" in the API will not 5471 // be included in the string output. The member name will be present, but the 5472 // value will be replaced with "sensitive". 5473 func (s BlockAction) GoString() string { 5474 return s.String() 5475 } 5476 5477 // Validate inspects the fields of the type to determine if they are valid. 5478 func (s *BlockAction) Validate() error { 5479 invalidParams := request.ErrInvalidParams{Context: "BlockAction"} 5480 if s.CustomResponse != nil { 5481 if err := s.CustomResponse.Validate(); err != nil { 5482 invalidParams.AddNested("CustomResponse", err.(request.ErrInvalidParams)) 5483 } 5484 } 5485 5486 if invalidParams.Len() > 0 { 5487 return invalidParams 5488 } 5489 return nil 5490 } 5491 5492 // SetCustomResponse sets the CustomResponse field's value. 5493 func (s *BlockAction) SetCustomResponse(v *CustomResponse) *BlockAction { 5494 s.CustomResponse = v 5495 return s 5496 } 5497 5498 // The body of a web request. This immediately follows the request headers. 5499 // 5500 // This is used only to indicate the web request component for WAF to inspect, 5501 // in the FieldToMatch specification. 5502 // 5503 // JSON specification: "Body": {} 5504 type Body struct { 5505 _ struct{} `type:"structure"` 5506 } 5507 5508 // String returns the string representation. 5509 // 5510 // API parameter values that are decorated as "sensitive" in the API will not 5511 // be included in the string output. The member name will be present, but the 5512 // value will be replaced with "sensitive". 5513 func (s Body) String() string { 5514 return awsutil.Prettify(s) 5515 } 5516 5517 // GoString returns the string representation. 5518 // 5519 // API parameter values that are decorated as "sensitive" in the API will not 5520 // be included in the string output. The member name will be present, but the 5521 // value will be replaced with "sensitive". 5522 func (s Body) GoString() string { 5523 return s.String() 5524 } 5525 5526 // A rule statement that defines a string match search for WAF to apply to web 5527 // requests. The byte match statement provides the bytes to search for, the 5528 // location in requests that you want WAF to search, and other settings. The 5529 // bytes to search for are typically a string that corresponds with ASCII characters. 5530 // In the WAF console and the developer guide, this is refered to as a string 5531 // match statement. 5532 type ByteMatchStatement struct { 5533 _ struct{} `type:"structure"` 5534 5535 // The part of a web request that you want WAF to inspect. For more information, 5536 // see FieldToMatch. 5537 // 5538 // FieldToMatch is a required field 5539 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 5540 5541 // The area within the portion of a web request that you want WAF to search 5542 // for SearchString. Valid values include the following: 5543 // 5544 // CONTAINS 5545 // 5546 // The specified part of the web request must include the value of SearchString, 5547 // but the location doesn't matter. 5548 // 5549 // CONTAINS_WORD 5550 // 5551 // The specified part of the web request must include the value of SearchString, 5552 // and SearchString must contain only alphanumeric characters or underscore 5553 // (A-Z, a-z, 0-9, or _). In addition, SearchString must be a word, which means 5554 // that both of the following are true: 5555 // 5556 // * SearchString is at the beginning of the specified part of the web request 5557 // or is preceded by a character other than an alphanumeric character or 5558 // underscore (_). Examples include the value of a header and ;BadBot. 5559 // 5560 // * SearchString is at the end of the specified part of the web request 5561 // or is followed by a character other than an alphanumeric character or 5562 // underscore (_), for example, BadBot; and -BadBot;. 5563 // 5564 // EXACTLY 5565 // 5566 // The value of the specified part of the web request must exactly match the 5567 // value of SearchString. 5568 // 5569 // STARTS_WITH 5570 // 5571 // The value of SearchString must appear at the beginning of the specified part 5572 // of the web request. 5573 // 5574 // ENDS_WITH 5575 // 5576 // The value of SearchString must appear at the end of the specified part of 5577 // the web request. 5578 // 5579 // PositionalConstraint is a required field 5580 PositionalConstraint *string `type:"string" required:"true" enum:"PositionalConstraint"` 5581 5582 // A string value that you want WAF to search for. WAF searches only in the 5583 // part of web requests that you designate for inspection in FieldToMatch. The 5584 // maximum length of the value is 50 bytes. 5585 // 5586 // Valid values depend on the component that you specify for inspection in FieldToMatch: 5587 // 5588 // * Method: The HTTP method that you want WAF to search for. This indicates 5589 // the type of operation specified in the request. 5590 // 5591 // * UriPath: The value that you want WAF to search for in the URI path, 5592 // for example, /images/daily-ad.jpg. 5593 // 5594 // If SearchString includes alphabetic characters A-Z and a-z, note that the 5595 // value is case sensitive. 5596 // 5597 // If you're using the WAF API 5598 // 5599 // Specify a base64-encoded version of the value. The maximum length of the 5600 // value before you base64-encode it is 50 bytes. 5601 // 5602 // For example, suppose the value of Type is HEADER and the value of Data is 5603 // User-Agent. If you want to search the User-Agent header for the value BadBot, 5604 // you base64-encode BadBot using MIME base64-encoding and include the resulting 5605 // value, QmFkQm90, in the value of SearchString. 5606 // 5607 // If you're using the CLI or one of the Amazon Web Services SDKs 5608 // 5609 // The value that you want WAF to search for. The SDK automatically base64 encodes 5610 // the value. 5611 // SearchString is automatically base64 encoded/decoded by the SDK. 5612 // 5613 // SearchString is a required field 5614 SearchString []byte `type:"blob" required:"true"` 5615 5616 // Text transformations eliminate some of the unusual formatting that attackers 5617 // use in web requests in an effort to bypass detection. If you specify one 5618 // or more transformations in a rule statement, WAF performs all transformations 5619 // on the content of the request component identified by FieldToMatch, starting 5620 // from the lowest priority setting, before inspecting the content for a match. 5621 // 5622 // TextTransformations is a required field 5623 TextTransformations []*TextTransformation `min:"1" type:"list" required:"true"` 5624 } 5625 5626 // String returns the string representation. 5627 // 5628 // API parameter values that are decorated as "sensitive" in the API will not 5629 // be included in the string output. The member name will be present, but the 5630 // value will be replaced with "sensitive". 5631 func (s ByteMatchStatement) String() string { 5632 return awsutil.Prettify(s) 5633 } 5634 5635 // GoString returns the string representation. 5636 // 5637 // API parameter values that are decorated as "sensitive" in the API will not 5638 // be included in the string output. The member name will be present, but the 5639 // value will be replaced with "sensitive". 5640 func (s ByteMatchStatement) GoString() string { 5641 return s.String() 5642 } 5643 5644 // Validate inspects the fields of the type to determine if they are valid. 5645 func (s *ByteMatchStatement) Validate() error { 5646 invalidParams := request.ErrInvalidParams{Context: "ByteMatchStatement"} 5647 if s.FieldToMatch == nil { 5648 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 5649 } 5650 if s.PositionalConstraint == nil { 5651 invalidParams.Add(request.NewErrParamRequired("PositionalConstraint")) 5652 } 5653 if s.SearchString == nil { 5654 invalidParams.Add(request.NewErrParamRequired("SearchString")) 5655 } 5656 if s.TextTransformations == nil { 5657 invalidParams.Add(request.NewErrParamRequired("TextTransformations")) 5658 } 5659 if s.TextTransformations != nil && len(s.TextTransformations) < 1 { 5660 invalidParams.Add(request.NewErrParamMinLen("TextTransformations", 1)) 5661 } 5662 if s.FieldToMatch != nil { 5663 if err := s.FieldToMatch.Validate(); err != nil { 5664 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 5665 } 5666 } 5667 if s.TextTransformations != nil { 5668 for i, v := range s.TextTransformations { 5669 if v == nil { 5670 continue 5671 } 5672 if err := v.Validate(); err != nil { 5673 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(request.ErrInvalidParams)) 5674 } 5675 } 5676 } 5677 5678 if invalidParams.Len() > 0 { 5679 return invalidParams 5680 } 5681 return nil 5682 } 5683 5684 // SetFieldToMatch sets the FieldToMatch field's value. 5685 func (s *ByteMatchStatement) SetFieldToMatch(v *FieldToMatch) *ByteMatchStatement { 5686 s.FieldToMatch = v 5687 return s 5688 } 5689 5690 // SetPositionalConstraint sets the PositionalConstraint field's value. 5691 func (s *ByteMatchStatement) SetPositionalConstraint(v string) *ByteMatchStatement { 5692 s.PositionalConstraint = &v 5693 return s 5694 } 5695 5696 // SetSearchString sets the SearchString field's value. 5697 func (s *ByteMatchStatement) SetSearchString(v []byte) *ByteMatchStatement { 5698 s.SearchString = v 5699 return s 5700 } 5701 5702 // SetTextTransformations sets the TextTransformations field's value. 5703 func (s *ByteMatchStatement) SetTextTransformations(v []*TextTransformation) *ByteMatchStatement { 5704 s.TextTransformations = v 5705 return s 5706 } 5707 5708 type CheckCapacityInput struct { 5709 _ struct{} `type:"structure"` 5710 5711 // An array of Rule that you're configuring to use in a rule group or web ACL. 5712 // 5713 // Rules is a required field 5714 Rules []*Rule `type:"list" required:"true"` 5715 5716 // Specifies whether this is for an Amazon CloudFront distribution or for a 5717 // regional application. A regional application can be an Application Load Balancer 5718 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 5719 // 5720 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 5721 // as follows: 5722 // 5723 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 5724 // --region=us-east-1. 5725 // 5726 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 5727 // 5728 // Scope is a required field 5729 Scope *string `type:"string" required:"true" enum:"Scope"` 5730 } 5731 5732 // String returns the string representation. 5733 // 5734 // API parameter values that are decorated as "sensitive" in the API will not 5735 // be included in the string output. The member name will be present, but the 5736 // value will be replaced with "sensitive". 5737 func (s CheckCapacityInput) String() string { 5738 return awsutil.Prettify(s) 5739 } 5740 5741 // GoString returns the string representation. 5742 // 5743 // API parameter values that are decorated as "sensitive" in the API will not 5744 // be included in the string output. The member name will be present, but the 5745 // value will be replaced with "sensitive". 5746 func (s CheckCapacityInput) GoString() string { 5747 return s.String() 5748 } 5749 5750 // Validate inspects the fields of the type to determine if they are valid. 5751 func (s *CheckCapacityInput) Validate() error { 5752 invalidParams := request.ErrInvalidParams{Context: "CheckCapacityInput"} 5753 if s.Rules == nil { 5754 invalidParams.Add(request.NewErrParamRequired("Rules")) 5755 } 5756 if s.Scope == nil { 5757 invalidParams.Add(request.NewErrParamRequired("Scope")) 5758 } 5759 if s.Rules != nil { 5760 for i, v := range s.Rules { 5761 if v == nil { 5762 continue 5763 } 5764 if err := v.Validate(); err != nil { 5765 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 5766 } 5767 } 5768 } 5769 5770 if invalidParams.Len() > 0 { 5771 return invalidParams 5772 } 5773 return nil 5774 } 5775 5776 // SetRules sets the Rules field's value. 5777 func (s *CheckCapacityInput) SetRules(v []*Rule) *CheckCapacityInput { 5778 s.Rules = v 5779 return s 5780 } 5781 5782 // SetScope sets the Scope field's value. 5783 func (s *CheckCapacityInput) SetScope(v string) *CheckCapacityInput { 5784 s.Scope = &v 5785 return s 5786 } 5787 5788 type CheckCapacityOutput struct { 5789 _ struct{} `type:"structure"` 5790 5791 // The capacity required by the rules and scope. 5792 Capacity *int64 `type:"long"` 5793 } 5794 5795 // String returns the string representation. 5796 // 5797 // API parameter values that are decorated as "sensitive" in the API will not 5798 // be included in the string output. The member name will be present, but the 5799 // value will be replaced with "sensitive". 5800 func (s CheckCapacityOutput) String() string { 5801 return awsutil.Prettify(s) 5802 } 5803 5804 // GoString returns the string representation. 5805 // 5806 // API parameter values that are decorated as "sensitive" in the API will not 5807 // be included in the string output. The member name will be present, but the 5808 // value will be replaced with "sensitive". 5809 func (s CheckCapacityOutput) GoString() string { 5810 return s.String() 5811 } 5812 5813 // SetCapacity sets the Capacity field's value. 5814 func (s *CheckCapacityOutput) SetCapacity(v int64) *CheckCapacityOutput { 5815 s.Capacity = &v 5816 return s 5817 } 5818 5819 // A single match condition for a Filter. 5820 type Condition struct { 5821 _ struct{} `type:"structure"` 5822 5823 // A single action condition. 5824 ActionCondition *ActionCondition `type:"structure"` 5825 5826 // A single label name condition. 5827 LabelNameCondition *LabelNameCondition `type:"structure"` 5828 } 5829 5830 // String returns the string representation. 5831 // 5832 // API parameter values that are decorated as "sensitive" in the API will not 5833 // be included in the string output. The member name will be present, but the 5834 // value will be replaced with "sensitive". 5835 func (s Condition) String() string { 5836 return awsutil.Prettify(s) 5837 } 5838 5839 // GoString returns the string representation. 5840 // 5841 // API parameter values that are decorated as "sensitive" in the API will not 5842 // be included in the string output. The member name will be present, but the 5843 // value will be replaced with "sensitive". 5844 func (s Condition) GoString() string { 5845 return s.String() 5846 } 5847 5848 // Validate inspects the fields of the type to determine if they are valid. 5849 func (s *Condition) Validate() error { 5850 invalidParams := request.ErrInvalidParams{Context: "Condition"} 5851 if s.ActionCondition != nil { 5852 if err := s.ActionCondition.Validate(); err != nil { 5853 invalidParams.AddNested("ActionCondition", err.(request.ErrInvalidParams)) 5854 } 5855 } 5856 if s.LabelNameCondition != nil { 5857 if err := s.LabelNameCondition.Validate(); err != nil { 5858 invalidParams.AddNested("LabelNameCondition", err.(request.ErrInvalidParams)) 5859 } 5860 } 5861 5862 if invalidParams.Len() > 0 { 5863 return invalidParams 5864 } 5865 return nil 5866 } 5867 5868 // SetActionCondition sets the ActionCondition field's value. 5869 func (s *Condition) SetActionCondition(v *ActionCondition) *Condition { 5870 s.ActionCondition = v 5871 return s 5872 } 5873 5874 // SetLabelNameCondition sets the LabelNameCondition field's value. 5875 func (s *Condition) SetLabelNameCondition(v *LabelNameCondition) *Condition { 5876 s.LabelNameCondition = v 5877 return s 5878 } 5879 5880 // Specifies that WAF should count the request. Optionally defines additional 5881 // custom handling for the request. 5882 // 5883 // This is used in the context of other settings, for example to specify values 5884 // for RuleAction and web ACL DefaultAction. 5885 type CountAction struct { 5886 _ struct{} `type:"structure"` 5887 5888 // Defines custom handling for the web request. 5889 // 5890 // For information about customizing web requests and responses, see Customizing 5891 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 5892 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 5893 CustomRequestHandling *CustomRequestHandling `type:"structure"` 5894 } 5895 5896 // String returns the string representation. 5897 // 5898 // API parameter values that are decorated as "sensitive" in the API will not 5899 // be included in the string output. The member name will be present, but the 5900 // value will be replaced with "sensitive". 5901 func (s CountAction) String() string { 5902 return awsutil.Prettify(s) 5903 } 5904 5905 // GoString returns the string representation. 5906 // 5907 // API parameter values that are decorated as "sensitive" in the API will not 5908 // be included in the string output. The member name will be present, but the 5909 // value will be replaced with "sensitive". 5910 func (s CountAction) GoString() string { 5911 return s.String() 5912 } 5913 5914 // Validate inspects the fields of the type to determine if they are valid. 5915 func (s *CountAction) Validate() error { 5916 invalidParams := request.ErrInvalidParams{Context: "CountAction"} 5917 if s.CustomRequestHandling != nil { 5918 if err := s.CustomRequestHandling.Validate(); err != nil { 5919 invalidParams.AddNested("CustomRequestHandling", err.(request.ErrInvalidParams)) 5920 } 5921 } 5922 5923 if invalidParams.Len() > 0 { 5924 return invalidParams 5925 } 5926 return nil 5927 } 5928 5929 // SetCustomRequestHandling sets the CustomRequestHandling field's value. 5930 func (s *CountAction) SetCustomRequestHandling(v *CustomRequestHandling) *CountAction { 5931 s.CustomRequestHandling = v 5932 return s 5933 } 5934 5935 type CreateIPSetInput struct { 5936 _ struct{} `type:"structure"` 5937 5938 // Contains an array of strings that specify one or more IP addresses or blocks 5939 // of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports 5940 // all IPv4 and IPv6 CIDR ranges except for /0. 5941 // 5942 // Examples: 5943 // 5944 // * To configure WAF to allow, block, or count requests that originated 5945 // from the IP address 192.0.2.44, specify 192.0.2.44/32. 5946 // 5947 // * To configure WAF to allow, block, or count requests that originated 5948 // from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24. 5949 // 5950 // * To configure WAF to allow, block, or count requests that originated 5951 // from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128. 5952 // 5953 // * To configure WAF to allow, block, or count requests that originated 5954 // from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, 5955 // specify 1111:0000:0000:0000:0000:0000:0000:0000/64. 5956 // 5957 // For more information about CIDR notation, see the Wikipedia entry Classless 5958 // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 5959 // 5960 // Addresses is a required field 5961 Addresses []*string `type:"list" required:"true"` 5962 5963 // A description of the IP set that helps with identification. 5964 Description *string `min:"1" type:"string"` 5965 5966 // The version of the IP addresses, either IPV4 or IPV6. 5967 // 5968 // IPAddressVersion is a required field 5969 IPAddressVersion *string `type:"string" required:"true" enum:"IPAddressVersion"` 5970 5971 // The name of the IP set. You cannot change the name of an IPSet after you 5972 // create it. 5973 // 5974 // Name is a required field 5975 Name *string `min:"1" type:"string" required:"true"` 5976 5977 // Specifies whether this is for an Amazon CloudFront distribution or for a 5978 // regional application. A regional application can be an Application Load Balancer 5979 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 5980 // 5981 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 5982 // as follows: 5983 // 5984 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 5985 // --region=us-east-1. 5986 // 5987 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 5988 // 5989 // Scope is a required field 5990 Scope *string `type:"string" required:"true" enum:"Scope"` 5991 5992 // An array of key:value pairs to associate with the resource. 5993 Tags []*Tag `min:"1" type:"list"` 5994 } 5995 5996 // String returns the string representation. 5997 // 5998 // API parameter values that are decorated as "sensitive" in the API will not 5999 // be included in the string output. The member name will be present, but the 6000 // value will be replaced with "sensitive". 6001 func (s CreateIPSetInput) String() string { 6002 return awsutil.Prettify(s) 6003 } 6004 6005 // GoString returns the string representation. 6006 // 6007 // API parameter values that are decorated as "sensitive" in the API will not 6008 // be included in the string output. The member name will be present, but the 6009 // value will be replaced with "sensitive". 6010 func (s CreateIPSetInput) GoString() string { 6011 return s.String() 6012 } 6013 6014 // Validate inspects the fields of the type to determine if they are valid. 6015 func (s *CreateIPSetInput) Validate() error { 6016 invalidParams := request.ErrInvalidParams{Context: "CreateIPSetInput"} 6017 if s.Addresses == nil { 6018 invalidParams.Add(request.NewErrParamRequired("Addresses")) 6019 } 6020 if s.Description != nil && len(*s.Description) < 1 { 6021 invalidParams.Add(request.NewErrParamMinLen("Description", 1)) 6022 } 6023 if s.IPAddressVersion == nil { 6024 invalidParams.Add(request.NewErrParamRequired("IPAddressVersion")) 6025 } 6026 if s.Name == nil { 6027 invalidParams.Add(request.NewErrParamRequired("Name")) 6028 } 6029 if s.Name != nil && len(*s.Name) < 1 { 6030 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6031 } 6032 if s.Scope == nil { 6033 invalidParams.Add(request.NewErrParamRequired("Scope")) 6034 } 6035 if s.Tags != nil && len(s.Tags) < 1 { 6036 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 6037 } 6038 if s.Tags != nil { 6039 for i, v := range s.Tags { 6040 if v == nil { 6041 continue 6042 } 6043 if err := v.Validate(); err != nil { 6044 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 6045 } 6046 } 6047 } 6048 6049 if invalidParams.Len() > 0 { 6050 return invalidParams 6051 } 6052 return nil 6053 } 6054 6055 // SetAddresses sets the Addresses field's value. 6056 func (s *CreateIPSetInput) SetAddresses(v []*string) *CreateIPSetInput { 6057 s.Addresses = v 6058 return s 6059 } 6060 6061 // SetDescription sets the Description field's value. 6062 func (s *CreateIPSetInput) SetDescription(v string) *CreateIPSetInput { 6063 s.Description = &v 6064 return s 6065 } 6066 6067 // SetIPAddressVersion sets the IPAddressVersion field's value. 6068 func (s *CreateIPSetInput) SetIPAddressVersion(v string) *CreateIPSetInput { 6069 s.IPAddressVersion = &v 6070 return s 6071 } 6072 6073 // SetName sets the Name field's value. 6074 func (s *CreateIPSetInput) SetName(v string) *CreateIPSetInput { 6075 s.Name = &v 6076 return s 6077 } 6078 6079 // SetScope sets the Scope field's value. 6080 func (s *CreateIPSetInput) SetScope(v string) *CreateIPSetInput { 6081 s.Scope = &v 6082 return s 6083 } 6084 6085 // SetTags sets the Tags field's value. 6086 func (s *CreateIPSetInput) SetTags(v []*Tag) *CreateIPSetInput { 6087 s.Tags = v 6088 return s 6089 } 6090 6091 type CreateIPSetOutput struct { 6092 _ struct{} `type:"structure"` 6093 6094 // High-level information about an IPSet, returned by operations like create 6095 // and list. This provides information like the ID, that you can use to retrieve 6096 // and manage an IPSet, and the ARN, that you provide to the IPSetReferenceStatement 6097 // to use the address set in a Rule. 6098 Summary *IPSetSummary `type:"structure"` 6099 } 6100 6101 // String returns the string representation. 6102 // 6103 // API parameter values that are decorated as "sensitive" in the API will not 6104 // be included in the string output. The member name will be present, but the 6105 // value will be replaced with "sensitive". 6106 func (s CreateIPSetOutput) String() string { 6107 return awsutil.Prettify(s) 6108 } 6109 6110 // GoString returns the string representation. 6111 // 6112 // API parameter values that are decorated as "sensitive" in the API will not 6113 // be included in the string output. The member name will be present, but the 6114 // value will be replaced with "sensitive". 6115 func (s CreateIPSetOutput) GoString() string { 6116 return s.String() 6117 } 6118 6119 // SetSummary sets the Summary field's value. 6120 func (s *CreateIPSetOutput) SetSummary(v *IPSetSummary) *CreateIPSetOutput { 6121 s.Summary = v 6122 return s 6123 } 6124 6125 type CreateRegexPatternSetInput struct { 6126 _ struct{} `type:"structure"` 6127 6128 // A description of the set that helps with identification. 6129 Description *string `min:"1" type:"string"` 6130 6131 // The name of the set. You cannot change the name after you create the set. 6132 // 6133 // Name is a required field 6134 Name *string `min:"1" type:"string" required:"true"` 6135 6136 // Array of regular expression strings. 6137 // 6138 // RegularExpressionList is a required field 6139 RegularExpressionList []*Regex `type:"list" required:"true"` 6140 6141 // Specifies whether this is for an Amazon CloudFront distribution or for a 6142 // regional application. A regional application can be an Application Load Balancer 6143 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 6144 // 6145 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 6146 // as follows: 6147 // 6148 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 6149 // --region=us-east-1. 6150 // 6151 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 6152 // 6153 // Scope is a required field 6154 Scope *string `type:"string" required:"true" enum:"Scope"` 6155 6156 // An array of key:value pairs to associate with the resource. 6157 Tags []*Tag `min:"1" type:"list"` 6158 } 6159 6160 // String returns the string representation. 6161 // 6162 // API parameter values that are decorated as "sensitive" in the API will not 6163 // be included in the string output. The member name will be present, but the 6164 // value will be replaced with "sensitive". 6165 func (s CreateRegexPatternSetInput) String() string { 6166 return awsutil.Prettify(s) 6167 } 6168 6169 // GoString returns the string representation. 6170 // 6171 // API parameter values that are decorated as "sensitive" in the API will not 6172 // be included in the string output. The member name will be present, but the 6173 // value will be replaced with "sensitive". 6174 func (s CreateRegexPatternSetInput) GoString() string { 6175 return s.String() 6176 } 6177 6178 // Validate inspects the fields of the type to determine if they are valid. 6179 func (s *CreateRegexPatternSetInput) Validate() error { 6180 invalidParams := request.ErrInvalidParams{Context: "CreateRegexPatternSetInput"} 6181 if s.Description != nil && len(*s.Description) < 1 { 6182 invalidParams.Add(request.NewErrParamMinLen("Description", 1)) 6183 } 6184 if s.Name == nil { 6185 invalidParams.Add(request.NewErrParamRequired("Name")) 6186 } 6187 if s.Name != nil && len(*s.Name) < 1 { 6188 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6189 } 6190 if s.RegularExpressionList == nil { 6191 invalidParams.Add(request.NewErrParamRequired("RegularExpressionList")) 6192 } 6193 if s.Scope == nil { 6194 invalidParams.Add(request.NewErrParamRequired("Scope")) 6195 } 6196 if s.Tags != nil && len(s.Tags) < 1 { 6197 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 6198 } 6199 if s.RegularExpressionList != nil { 6200 for i, v := range s.RegularExpressionList { 6201 if v == nil { 6202 continue 6203 } 6204 if err := v.Validate(); err != nil { 6205 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RegularExpressionList", i), err.(request.ErrInvalidParams)) 6206 } 6207 } 6208 } 6209 if s.Tags != nil { 6210 for i, v := range s.Tags { 6211 if v == nil { 6212 continue 6213 } 6214 if err := v.Validate(); err != nil { 6215 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 6216 } 6217 } 6218 } 6219 6220 if invalidParams.Len() > 0 { 6221 return invalidParams 6222 } 6223 return nil 6224 } 6225 6226 // SetDescription sets the Description field's value. 6227 func (s *CreateRegexPatternSetInput) SetDescription(v string) *CreateRegexPatternSetInput { 6228 s.Description = &v 6229 return s 6230 } 6231 6232 // SetName sets the Name field's value. 6233 func (s *CreateRegexPatternSetInput) SetName(v string) *CreateRegexPatternSetInput { 6234 s.Name = &v 6235 return s 6236 } 6237 6238 // SetRegularExpressionList sets the RegularExpressionList field's value. 6239 func (s *CreateRegexPatternSetInput) SetRegularExpressionList(v []*Regex) *CreateRegexPatternSetInput { 6240 s.RegularExpressionList = v 6241 return s 6242 } 6243 6244 // SetScope sets the Scope field's value. 6245 func (s *CreateRegexPatternSetInput) SetScope(v string) *CreateRegexPatternSetInput { 6246 s.Scope = &v 6247 return s 6248 } 6249 6250 // SetTags sets the Tags field's value. 6251 func (s *CreateRegexPatternSetInput) SetTags(v []*Tag) *CreateRegexPatternSetInput { 6252 s.Tags = v 6253 return s 6254 } 6255 6256 type CreateRegexPatternSetOutput struct { 6257 _ struct{} `type:"structure"` 6258 6259 // High-level information about a RegexPatternSet, returned by operations like 6260 // create and list. This provides information like the ID, that you can use 6261 // to retrieve and manage a RegexPatternSet, and the ARN, that you provide to 6262 // the RegexPatternSetReferenceStatement to use the pattern set in a Rule. 6263 Summary *RegexPatternSetSummary `type:"structure"` 6264 } 6265 6266 // String returns the string representation. 6267 // 6268 // API parameter values that are decorated as "sensitive" in the API will not 6269 // be included in the string output. The member name will be present, but the 6270 // value will be replaced with "sensitive". 6271 func (s CreateRegexPatternSetOutput) String() string { 6272 return awsutil.Prettify(s) 6273 } 6274 6275 // GoString returns the string representation. 6276 // 6277 // API parameter values that are decorated as "sensitive" in the API will not 6278 // be included in the string output. The member name will be present, but the 6279 // value will be replaced with "sensitive". 6280 func (s CreateRegexPatternSetOutput) GoString() string { 6281 return s.String() 6282 } 6283 6284 // SetSummary sets the Summary field's value. 6285 func (s *CreateRegexPatternSetOutput) SetSummary(v *RegexPatternSetSummary) *CreateRegexPatternSetOutput { 6286 s.Summary = v 6287 return s 6288 } 6289 6290 type CreateRuleGroupInput struct { 6291 _ struct{} `type:"structure"` 6292 6293 // The web ACL capacity units (WCUs) required for this rule group. 6294 // 6295 // When you create your own rule group, you define this, and you cannot change 6296 // it after creation. When you add or modify the rules in a rule group, WAF 6297 // enforces this limit. You can check the capacity for a set of rules using 6298 // CheckCapacity. 6299 // 6300 // WAF uses WCUs to calculate and control the operating resources that are used 6301 // to run your rules, rule groups, and web ACLs. WAF calculates capacity differently 6302 // for each rule type, to reflect the relative cost of each rule. Simple rules 6303 // that cost little to run use fewer WCUs than more complex rules that use more 6304 // processing power. Rule group capacity is fixed at creation, which helps users 6305 // plan their web ACL WCU usage when they use a rule group. The WCU limit for 6306 // web ACLs is 1,500. 6307 // 6308 // Capacity is a required field 6309 Capacity *int64 `min:"1" type:"long" required:"true"` 6310 6311 // A map of custom response keys and content bodies. When you create a rule 6312 // with a block action, you can send a custom response to the web request. You 6313 // define these for the rule group, and then use them in the rules that you 6314 // define in the rule group. 6315 // 6316 // For information about customizing web requests and responses, see Customizing 6317 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 6318 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6319 // 6320 // For information about the limits on count and size for custom request and 6321 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 6322 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6323 CustomResponseBodies map[string]*CustomResponseBody `min:"1" type:"map"` 6324 6325 // A description of the rule group that helps with identification. 6326 Description *string `min:"1" type:"string"` 6327 6328 // The name of the rule group. You cannot change the name of a rule group after 6329 // you create it. 6330 // 6331 // Name is a required field 6332 Name *string `min:"1" type:"string" required:"true"` 6333 6334 // The Rule statements used to identify the web requests that you want to allow, 6335 // block, or count. Each rule includes one top-level statement that WAF uses 6336 // to identify matching web requests, and parameters that govern how WAF handles 6337 // them. 6338 Rules []*Rule `type:"list"` 6339 6340 // Specifies whether this is for an Amazon CloudFront distribution or for a 6341 // regional application. A regional application can be an Application Load Balancer 6342 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 6343 // 6344 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 6345 // as follows: 6346 // 6347 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 6348 // --region=us-east-1. 6349 // 6350 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 6351 // 6352 // Scope is a required field 6353 Scope *string `type:"string" required:"true" enum:"Scope"` 6354 6355 // An array of key:value pairs to associate with the resource. 6356 Tags []*Tag `min:"1" type:"list"` 6357 6358 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 6359 // 6360 // VisibilityConfig is a required field 6361 VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` 6362 } 6363 6364 // String returns the string representation. 6365 // 6366 // API parameter values that are decorated as "sensitive" in the API will not 6367 // be included in the string output. The member name will be present, but the 6368 // value will be replaced with "sensitive". 6369 func (s CreateRuleGroupInput) String() string { 6370 return awsutil.Prettify(s) 6371 } 6372 6373 // GoString returns the string representation. 6374 // 6375 // API parameter values that are decorated as "sensitive" in the API will not 6376 // be included in the string output. The member name will be present, but the 6377 // value will be replaced with "sensitive". 6378 func (s CreateRuleGroupInput) GoString() string { 6379 return s.String() 6380 } 6381 6382 // Validate inspects the fields of the type to determine if they are valid. 6383 func (s *CreateRuleGroupInput) Validate() error { 6384 invalidParams := request.ErrInvalidParams{Context: "CreateRuleGroupInput"} 6385 if s.Capacity == nil { 6386 invalidParams.Add(request.NewErrParamRequired("Capacity")) 6387 } 6388 if s.Capacity != nil && *s.Capacity < 1 { 6389 invalidParams.Add(request.NewErrParamMinValue("Capacity", 1)) 6390 } 6391 if s.CustomResponseBodies != nil && len(s.CustomResponseBodies) < 1 { 6392 invalidParams.Add(request.NewErrParamMinLen("CustomResponseBodies", 1)) 6393 } 6394 if s.Description != nil && len(*s.Description) < 1 { 6395 invalidParams.Add(request.NewErrParamMinLen("Description", 1)) 6396 } 6397 if s.Name == nil { 6398 invalidParams.Add(request.NewErrParamRequired("Name")) 6399 } 6400 if s.Name != nil && len(*s.Name) < 1 { 6401 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6402 } 6403 if s.Scope == nil { 6404 invalidParams.Add(request.NewErrParamRequired("Scope")) 6405 } 6406 if s.Tags != nil && len(s.Tags) < 1 { 6407 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 6408 } 6409 if s.VisibilityConfig == nil { 6410 invalidParams.Add(request.NewErrParamRequired("VisibilityConfig")) 6411 } 6412 if s.CustomResponseBodies != nil { 6413 for i, v := range s.CustomResponseBodies { 6414 if v == nil { 6415 continue 6416 } 6417 if err := v.Validate(); err != nil { 6418 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomResponseBodies", i), err.(request.ErrInvalidParams)) 6419 } 6420 } 6421 } 6422 if s.Rules != nil { 6423 for i, v := range s.Rules { 6424 if v == nil { 6425 continue 6426 } 6427 if err := v.Validate(); err != nil { 6428 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 6429 } 6430 } 6431 } 6432 if s.Tags != nil { 6433 for i, v := range s.Tags { 6434 if v == nil { 6435 continue 6436 } 6437 if err := v.Validate(); err != nil { 6438 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 6439 } 6440 } 6441 } 6442 if s.VisibilityConfig != nil { 6443 if err := s.VisibilityConfig.Validate(); err != nil { 6444 invalidParams.AddNested("VisibilityConfig", err.(request.ErrInvalidParams)) 6445 } 6446 } 6447 6448 if invalidParams.Len() > 0 { 6449 return invalidParams 6450 } 6451 return nil 6452 } 6453 6454 // SetCapacity sets the Capacity field's value. 6455 func (s *CreateRuleGroupInput) SetCapacity(v int64) *CreateRuleGroupInput { 6456 s.Capacity = &v 6457 return s 6458 } 6459 6460 // SetCustomResponseBodies sets the CustomResponseBodies field's value. 6461 func (s *CreateRuleGroupInput) SetCustomResponseBodies(v map[string]*CustomResponseBody) *CreateRuleGroupInput { 6462 s.CustomResponseBodies = v 6463 return s 6464 } 6465 6466 // SetDescription sets the Description field's value. 6467 func (s *CreateRuleGroupInput) SetDescription(v string) *CreateRuleGroupInput { 6468 s.Description = &v 6469 return s 6470 } 6471 6472 // SetName sets the Name field's value. 6473 func (s *CreateRuleGroupInput) SetName(v string) *CreateRuleGroupInput { 6474 s.Name = &v 6475 return s 6476 } 6477 6478 // SetRules sets the Rules field's value. 6479 func (s *CreateRuleGroupInput) SetRules(v []*Rule) *CreateRuleGroupInput { 6480 s.Rules = v 6481 return s 6482 } 6483 6484 // SetScope sets the Scope field's value. 6485 func (s *CreateRuleGroupInput) SetScope(v string) *CreateRuleGroupInput { 6486 s.Scope = &v 6487 return s 6488 } 6489 6490 // SetTags sets the Tags field's value. 6491 func (s *CreateRuleGroupInput) SetTags(v []*Tag) *CreateRuleGroupInput { 6492 s.Tags = v 6493 return s 6494 } 6495 6496 // SetVisibilityConfig sets the VisibilityConfig field's value. 6497 func (s *CreateRuleGroupInput) SetVisibilityConfig(v *VisibilityConfig) *CreateRuleGroupInput { 6498 s.VisibilityConfig = v 6499 return s 6500 } 6501 6502 type CreateRuleGroupOutput struct { 6503 _ struct{} `type:"structure"` 6504 6505 // High-level information about a RuleGroup, returned by operations like create 6506 // and list. This provides information like the ID, that you can use to retrieve 6507 // and manage a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement 6508 // to use the rule group in a Rule. 6509 Summary *RuleGroupSummary `type:"structure"` 6510 } 6511 6512 // String returns the string representation. 6513 // 6514 // API parameter values that are decorated as "sensitive" in the API will not 6515 // be included in the string output. The member name will be present, but the 6516 // value will be replaced with "sensitive". 6517 func (s CreateRuleGroupOutput) String() string { 6518 return awsutil.Prettify(s) 6519 } 6520 6521 // GoString returns the string representation. 6522 // 6523 // API parameter values that are decorated as "sensitive" in the API will not 6524 // be included in the string output. The member name will be present, but the 6525 // value will be replaced with "sensitive". 6526 func (s CreateRuleGroupOutput) GoString() string { 6527 return s.String() 6528 } 6529 6530 // SetSummary sets the Summary field's value. 6531 func (s *CreateRuleGroupOutput) SetSummary(v *RuleGroupSummary) *CreateRuleGroupOutput { 6532 s.Summary = v 6533 return s 6534 } 6535 6536 type CreateWebACLInput struct { 6537 _ struct{} `type:"structure"` 6538 6539 // A map of custom response keys and content bodies. When you create a rule 6540 // with a block action, you can send a custom response to the web request. You 6541 // define these for the web ACL, and then use them in the rules and default 6542 // actions that you define in the web ACL. 6543 // 6544 // For information about customizing web requests and responses, see Customizing 6545 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 6546 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6547 // 6548 // For information about the limits on count and size for custom request and 6549 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 6550 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6551 CustomResponseBodies map[string]*CustomResponseBody `min:"1" type:"map"` 6552 6553 // The action to perform if none of the Rules contained in the WebACL match. 6554 // 6555 // DefaultAction is a required field 6556 DefaultAction *DefaultAction `type:"structure" required:"true"` 6557 6558 // A description of the web ACL that helps with identification. 6559 Description *string `min:"1" type:"string"` 6560 6561 // The name of the web ACL. You cannot change the name of a web ACL after you 6562 // create it. 6563 // 6564 // Name is a required field 6565 Name *string `min:"1" type:"string" required:"true"` 6566 6567 // The Rule statements used to identify the web requests that you want to allow, 6568 // block, or count. Each rule includes one top-level statement that WAF uses 6569 // to identify matching web requests, and parameters that govern how WAF handles 6570 // them. 6571 Rules []*Rule `type:"list"` 6572 6573 // Specifies whether this is for an Amazon CloudFront distribution or for a 6574 // regional application. A regional application can be an Application Load Balancer 6575 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 6576 // 6577 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 6578 // as follows: 6579 // 6580 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 6581 // --region=us-east-1. 6582 // 6583 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 6584 // 6585 // Scope is a required field 6586 Scope *string `type:"string" required:"true" enum:"Scope"` 6587 6588 // An array of key:value pairs to associate with the resource. 6589 Tags []*Tag `min:"1" type:"list"` 6590 6591 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 6592 // 6593 // VisibilityConfig is a required field 6594 VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` 6595 } 6596 6597 // String returns the string representation. 6598 // 6599 // API parameter values that are decorated as "sensitive" in the API will not 6600 // be included in the string output. The member name will be present, but the 6601 // value will be replaced with "sensitive". 6602 func (s CreateWebACLInput) String() string { 6603 return awsutil.Prettify(s) 6604 } 6605 6606 // GoString returns the string representation. 6607 // 6608 // API parameter values that are decorated as "sensitive" in the API will not 6609 // be included in the string output. The member name will be present, but the 6610 // value will be replaced with "sensitive". 6611 func (s CreateWebACLInput) GoString() string { 6612 return s.String() 6613 } 6614 6615 // Validate inspects the fields of the type to determine if they are valid. 6616 func (s *CreateWebACLInput) Validate() error { 6617 invalidParams := request.ErrInvalidParams{Context: "CreateWebACLInput"} 6618 if s.CustomResponseBodies != nil && len(s.CustomResponseBodies) < 1 { 6619 invalidParams.Add(request.NewErrParamMinLen("CustomResponseBodies", 1)) 6620 } 6621 if s.DefaultAction == nil { 6622 invalidParams.Add(request.NewErrParamRequired("DefaultAction")) 6623 } 6624 if s.Description != nil && len(*s.Description) < 1 { 6625 invalidParams.Add(request.NewErrParamMinLen("Description", 1)) 6626 } 6627 if s.Name == nil { 6628 invalidParams.Add(request.NewErrParamRequired("Name")) 6629 } 6630 if s.Name != nil && len(*s.Name) < 1 { 6631 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6632 } 6633 if s.Scope == nil { 6634 invalidParams.Add(request.NewErrParamRequired("Scope")) 6635 } 6636 if s.Tags != nil && len(s.Tags) < 1 { 6637 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 6638 } 6639 if s.VisibilityConfig == nil { 6640 invalidParams.Add(request.NewErrParamRequired("VisibilityConfig")) 6641 } 6642 if s.CustomResponseBodies != nil { 6643 for i, v := range s.CustomResponseBodies { 6644 if v == nil { 6645 continue 6646 } 6647 if err := v.Validate(); err != nil { 6648 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomResponseBodies", i), err.(request.ErrInvalidParams)) 6649 } 6650 } 6651 } 6652 if s.DefaultAction != nil { 6653 if err := s.DefaultAction.Validate(); err != nil { 6654 invalidParams.AddNested("DefaultAction", err.(request.ErrInvalidParams)) 6655 } 6656 } 6657 if s.Rules != nil { 6658 for i, v := range s.Rules { 6659 if v == nil { 6660 continue 6661 } 6662 if err := v.Validate(); err != nil { 6663 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 6664 } 6665 } 6666 } 6667 if s.Tags != nil { 6668 for i, v := range s.Tags { 6669 if v == nil { 6670 continue 6671 } 6672 if err := v.Validate(); err != nil { 6673 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 6674 } 6675 } 6676 } 6677 if s.VisibilityConfig != nil { 6678 if err := s.VisibilityConfig.Validate(); err != nil { 6679 invalidParams.AddNested("VisibilityConfig", err.(request.ErrInvalidParams)) 6680 } 6681 } 6682 6683 if invalidParams.Len() > 0 { 6684 return invalidParams 6685 } 6686 return nil 6687 } 6688 6689 // SetCustomResponseBodies sets the CustomResponseBodies field's value. 6690 func (s *CreateWebACLInput) SetCustomResponseBodies(v map[string]*CustomResponseBody) *CreateWebACLInput { 6691 s.CustomResponseBodies = v 6692 return s 6693 } 6694 6695 // SetDefaultAction sets the DefaultAction field's value. 6696 func (s *CreateWebACLInput) SetDefaultAction(v *DefaultAction) *CreateWebACLInput { 6697 s.DefaultAction = v 6698 return s 6699 } 6700 6701 // SetDescription sets the Description field's value. 6702 func (s *CreateWebACLInput) SetDescription(v string) *CreateWebACLInput { 6703 s.Description = &v 6704 return s 6705 } 6706 6707 // SetName sets the Name field's value. 6708 func (s *CreateWebACLInput) SetName(v string) *CreateWebACLInput { 6709 s.Name = &v 6710 return s 6711 } 6712 6713 // SetRules sets the Rules field's value. 6714 func (s *CreateWebACLInput) SetRules(v []*Rule) *CreateWebACLInput { 6715 s.Rules = v 6716 return s 6717 } 6718 6719 // SetScope sets the Scope field's value. 6720 func (s *CreateWebACLInput) SetScope(v string) *CreateWebACLInput { 6721 s.Scope = &v 6722 return s 6723 } 6724 6725 // SetTags sets the Tags field's value. 6726 func (s *CreateWebACLInput) SetTags(v []*Tag) *CreateWebACLInput { 6727 s.Tags = v 6728 return s 6729 } 6730 6731 // SetVisibilityConfig sets the VisibilityConfig field's value. 6732 func (s *CreateWebACLInput) SetVisibilityConfig(v *VisibilityConfig) *CreateWebACLInput { 6733 s.VisibilityConfig = v 6734 return s 6735 } 6736 6737 type CreateWebACLOutput struct { 6738 _ struct{} `type:"structure"` 6739 6740 // High-level information about a WebACL, returned by operations like create 6741 // and list. This provides information like the ID, that you can use to retrieve 6742 // and manage a WebACL, and the ARN, that you provide to operations like AssociateWebACL. 6743 Summary *WebACLSummary `type:"structure"` 6744 } 6745 6746 // String returns the string representation. 6747 // 6748 // API parameter values that are decorated as "sensitive" in the API will not 6749 // be included in the string output. The member name will be present, but the 6750 // value will be replaced with "sensitive". 6751 func (s CreateWebACLOutput) String() string { 6752 return awsutil.Prettify(s) 6753 } 6754 6755 // GoString returns the string representation. 6756 // 6757 // API parameter values that are decorated as "sensitive" in the API will not 6758 // be included in the string output. The member name will be present, but the 6759 // value will be replaced with "sensitive". 6760 func (s CreateWebACLOutput) GoString() string { 6761 return s.String() 6762 } 6763 6764 // SetSummary sets the Summary field's value. 6765 func (s *CreateWebACLOutput) SetSummary(v *WebACLSummary) *CreateWebACLOutput { 6766 s.Summary = v 6767 return s 6768 } 6769 6770 // A custom header for custom request and response handling. This is used in 6771 // CustomResponse and CustomRequestHandling. 6772 type CustomHTTPHeader struct { 6773 _ struct{} `type:"structure"` 6774 6775 // The name of the custom header. 6776 // 6777 // For custom request header insertion, when WAF inserts the header into the 6778 // request, it prefixes this name x-amzn-waf-, to avoid confusion with the headers 6779 // that are already in the request. For example, for the header name sample, 6780 // WAF inserts the header x-amzn-waf-sample. 6781 // 6782 // Name is a required field 6783 Name *string `min:"1" type:"string" required:"true"` 6784 6785 // The value of the custom header. 6786 // 6787 // Value is a required field 6788 Value *string `min:"1" type:"string" required:"true"` 6789 } 6790 6791 // String returns the string representation. 6792 // 6793 // API parameter values that are decorated as "sensitive" in the API will not 6794 // be included in the string output. The member name will be present, but the 6795 // value will be replaced with "sensitive". 6796 func (s CustomHTTPHeader) String() string { 6797 return awsutil.Prettify(s) 6798 } 6799 6800 // GoString returns the string representation. 6801 // 6802 // API parameter values that are decorated as "sensitive" in the API will not 6803 // be included in the string output. The member name will be present, but the 6804 // value will be replaced with "sensitive". 6805 func (s CustomHTTPHeader) GoString() string { 6806 return s.String() 6807 } 6808 6809 // Validate inspects the fields of the type to determine if they are valid. 6810 func (s *CustomHTTPHeader) Validate() error { 6811 invalidParams := request.ErrInvalidParams{Context: "CustomHTTPHeader"} 6812 if s.Name == nil { 6813 invalidParams.Add(request.NewErrParamRequired("Name")) 6814 } 6815 if s.Name != nil && len(*s.Name) < 1 { 6816 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6817 } 6818 if s.Value == nil { 6819 invalidParams.Add(request.NewErrParamRequired("Value")) 6820 } 6821 if s.Value != nil && len(*s.Value) < 1 { 6822 invalidParams.Add(request.NewErrParamMinLen("Value", 1)) 6823 } 6824 6825 if invalidParams.Len() > 0 { 6826 return invalidParams 6827 } 6828 return nil 6829 } 6830 6831 // SetName sets the Name field's value. 6832 func (s *CustomHTTPHeader) SetName(v string) *CustomHTTPHeader { 6833 s.Name = &v 6834 return s 6835 } 6836 6837 // SetValue sets the Value field's value. 6838 func (s *CustomHTTPHeader) SetValue(v string) *CustomHTTPHeader { 6839 s.Value = &v 6840 return s 6841 } 6842 6843 // Custom request handling behavior that inserts custom headers into a web request. 6844 // You can add custom request handling for the rule actions allow and count. 6845 // 6846 // For information about customizing web requests and responses, see Customizing 6847 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 6848 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6849 type CustomRequestHandling struct { 6850 _ struct{} `type:"structure"` 6851 6852 // The HTTP headers to insert into the request. Duplicate header names are not 6853 // allowed. 6854 // 6855 // For information about the limits on count and size for custom request and 6856 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 6857 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6858 // 6859 // InsertHeaders is a required field 6860 InsertHeaders []*CustomHTTPHeader `min:"1" type:"list" required:"true"` 6861 } 6862 6863 // String returns the string representation. 6864 // 6865 // API parameter values that are decorated as "sensitive" in the API will not 6866 // be included in the string output. The member name will be present, but the 6867 // value will be replaced with "sensitive". 6868 func (s CustomRequestHandling) String() string { 6869 return awsutil.Prettify(s) 6870 } 6871 6872 // GoString returns the string representation. 6873 // 6874 // API parameter values that are decorated as "sensitive" in the API will not 6875 // be included in the string output. The member name will be present, but the 6876 // value will be replaced with "sensitive". 6877 func (s CustomRequestHandling) GoString() string { 6878 return s.String() 6879 } 6880 6881 // Validate inspects the fields of the type to determine if they are valid. 6882 func (s *CustomRequestHandling) Validate() error { 6883 invalidParams := request.ErrInvalidParams{Context: "CustomRequestHandling"} 6884 if s.InsertHeaders == nil { 6885 invalidParams.Add(request.NewErrParamRequired("InsertHeaders")) 6886 } 6887 if s.InsertHeaders != nil && len(s.InsertHeaders) < 1 { 6888 invalidParams.Add(request.NewErrParamMinLen("InsertHeaders", 1)) 6889 } 6890 if s.InsertHeaders != nil { 6891 for i, v := range s.InsertHeaders { 6892 if v == nil { 6893 continue 6894 } 6895 if err := v.Validate(); err != nil { 6896 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "InsertHeaders", i), err.(request.ErrInvalidParams)) 6897 } 6898 } 6899 } 6900 6901 if invalidParams.Len() > 0 { 6902 return invalidParams 6903 } 6904 return nil 6905 } 6906 6907 // SetInsertHeaders sets the InsertHeaders field's value. 6908 func (s *CustomRequestHandling) SetInsertHeaders(v []*CustomHTTPHeader) *CustomRequestHandling { 6909 s.InsertHeaders = v 6910 return s 6911 } 6912 6913 // A custom response to send to the client. You can define a custom response 6914 // for rule actions and default web ACL actions that are set to BlockAction. 6915 // 6916 // For information about customizing web requests and responses, see Customizing 6917 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 6918 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6919 type CustomResponse struct { 6920 _ struct{} `type:"structure"` 6921 6922 // References the response body that you want WAF to return to the web request 6923 // client. You can define a custom response for a rule action or a default web 6924 // ACL action that is set to block. To do this, you first define the response 6925 // body key and value in the CustomResponseBodies setting for the WebACL or 6926 // RuleGroup where you want to use it. Then, in the rule action or web ACL default 6927 // action BlockAction setting, you reference the response body using this key. 6928 CustomResponseBodyKey *string `min:"1" type:"string"` 6929 6930 // The HTTP status code to return to the client. 6931 // 6932 // For a list of status codes that you can use in your custom reqponses, see 6933 // Supported status codes for custom response (https://docs.aws.amazon.com/waf/latest/developerguide/customizing-the-response-status-codes.html) 6934 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6935 // 6936 // ResponseCode is a required field 6937 ResponseCode *int64 `min:"200" type:"integer" required:"true"` 6938 6939 // The HTTP headers to use in the response. Duplicate header names are not allowed. 6940 // 6941 // For information about the limits on count and size for custom request and 6942 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 6943 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 6944 ResponseHeaders []*CustomHTTPHeader `min:"1" type:"list"` 6945 } 6946 6947 // String returns the string representation. 6948 // 6949 // API parameter values that are decorated as "sensitive" in the API will not 6950 // be included in the string output. The member name will be present, but the 6951 // value will be replaced with "sensitive". 6952 func (s CustomResponse) String() string { 6953 return awsutil.Prettify(s) 6954 } 6955 6956 // GoString returns the string representation. 6957 // 6958 // API parameter values that are decorated as "sensitive" in the API will not 6959 // be included in the string output. The member name will be present, but the 6960 // value will be replaced with "sensitive". 6961 func (s CustomResponse) GoString() string { 6962 return s.String() 6963 } 6964 6965 // Validate inspects the fields of the type to determine if they are valid. 6966 func (s *CustomResponse) Validate() error { 6967 invalidParams := request.ErrInvalidParams{Context: "CustomResponse"} 6968 if s.CustomResponseBodyKey != nil && len(*s.CustomResponseBodyKey) < 1 { 6969 invalidParams.Add(request.NewErrParamMinLen("CustomResponseBodyKey", 1)) 6970 } 6971 if s.ResponseCode == nil { 6972 invalidParams.Add(request.NewErrParamRequired("ResponseCode")) 6973 } 6974 if s.ResponseCode != nil && *s.ResponseCode < 200 { 6975 invalidParams.Add(request.NewErrParamMinValue("ResponseCode", 200)) 6976 } 6977 if s.ResponseHeaders != nil && len(s.ResponseHeaders) < 1 { 6978 invalidParams.Add(request.NewErrParamMinLen("ResponseHeaders", 1)) 6979 } 6980 if s.ResponseHeaders != nil { 6981 for i, v := range s.ResponseHeaders { 6982 if v == nil { 6983 continue 6984 } 6985 if err := v.Validate(); err != nil { 6986 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ResponseHeaders", i), err.(request.ErrInvalidParams)) 6987 } 6988 } 6989 } 6990 6991 if invalidParams.Len() > 0 { 6992 return invalidParams 6993 } 6994 return nil 6995 } 6996 6997 // SetCustomResponseBodyKey sets the CustomResponseBodyKey field's value. 6998 func (s *CustomResponse) SetCustomResponseBodyKey(v string) *CustomResponse { 6999 s.CustomResponseBodyKey = &v 7000 return s 7001 } 7002 7003 // SetResponseCode sets the ResponseCode field's value. 7004 func (s *CustomResponse) SetResponseCode(v int64) *CustomResponse { 7005 s.ResponseCode = &v 7006 return s 7007 } 7008 7009 // SetResponseHeaders sets the ResponseHeaders field's value. 7010 func (s *CustomResponse) SetResponseHeaders(v []*CustomHTTPHeader) *CustomResponse { 7011 s.ResponseHeaders = v 7012 return s 7013 } 7014 7015 // The response body to use in a custom response to a web request. This is referenced 7016 // by key from CustomResponse CustomResponseBodyKey. 7017 type CustomResponseBody struct { 7018 _ struct{} `type:"structure"` 7019 7020 // The payload of the custom response. 7021 // 7022 // You can use JSON escape strings in JSON content. To do this, you must specify 7023 // JSON content in the ContentType setting. 7024 // 7025 // For information about the limits on count and size for custom request and 7026 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 7027 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 7028 // 7029 // Content is a required field 7030 Content *string `min:"1" type:"string" required:"true"` 7031 7032 // The type of content in the payload that you are defining in the Content string. 7033 // 7034 // ContentType is a required field 7035 ContentType *string `type:"string" required:"true" enum:"ResponseContentType"` 7036 } 7037 7038 // String returns the string representation. 7039 // 7040 // API parameter values that are decorated as "sensitive" in the API will not 7041 // be included in the string output. The member name will be present, but the 7042 // value will be replaced with "sensitive". 7043 func (s CustomResponseBody) String() string { 7044 return awsutil.Prettify(s) 7045 } 7046 7047 // GoString returns the string representation. 7048 // 7049 // API parameter values that are decorated as "sensitive" in the API will not 7050 // be included in the string output. The member name will be present, but the 7051 // value will be replaced with "sensitive". 7052 func (s CustomResponseBody) GoString() string { 7053 return s.String() 7054 } 7055 7056 // Validate inspects the fields of the type to determine if they are valid. 7057 func (s *CustomResponseBody) Validate() error { 7058 invalidParams := request.ErrInvalidParams{Context: "CustomResponseBody"} 7059 if s.Content == nil { 7060 invalidParams.Add(request.NewErrParamRequired("Content")) 7061 } 7062 if s.Content != nil && len(*s.Content) < 1 { 7063 invalidParams.Add(request.NewErrParamMinLen("Content", 1)) 7064 } 7065 if s.ContentType == nil { 7066 invalidParams.Add(request.NewErrParamRequired("ContentType")) 7067 } 7068 7069 if invalidParams.Len() > 0 { 7070 return invalidParams 7071 } 7072 return nil 7073 } 7074 7075 // SetContent sets the Content field's value. 7076 func (s *CustomResponseBody) SetContent(v string) *CustomResponseBody { 7077 s.Content = &v 7078 return s 7079 } 7080 7081 // SetContentType sets the ContentType field's value. 7082 func (s *CustomResponseBody) SetContentType(v string) *CustomResponseBody { 7083 s.ContentType = &v 7084 return s 7085 } 7086 7087 // In a WebACL, this is the action that you want WAF to perform when a web request 7088 // doesn't match any of the rules in the WebACL. The default action must be 7089 // a terminating action, so you can't use count. 7090 type DefaultAction struct { 7091 _ struct{} `type:"structure"` 7092 7093 // Specifies that WAF should allow requests by default. 7094 Allow *AllowAction `type:"structure"` 7095 7096 // Specifies that WAF should block requests by default. 7097 Block *BlockAction `type:"structure"` 7098 } 7099 7100 // String returns the string representation. 7101 // 7102 // API parameter values that are decorated as "sensitive" in the API will not 7103 // be included in the string output. The member name will be present, but the 7104 // value will be replaced with "sensitive". 7105 func (s DefaultAction) String() string { 7106 return awsutil.Prettify(s) 7107 } 7108 7109 // GoString returns the string representation. 7110 // 7111 // API parameter values that are decorated as "sensitive" in the API will not 7112 // be included in the string output. The member name will be present, but the 7113 // value will be replaced with "sensitive". 7114 func (s DefaultAction) GoString() string { 7115 return s.String() 7116 } 7117 7118 // Validate inspects the fields of the type to determine if they are valid. 7119 func (s *DefaultAction) Validate() error { 7120 invalidParams := request.ErrInvalidParams{Context: "DefaultAction"} 7121 if s.Allow != nil { 7122 if err := s.Allow.Validate(); err != nil { 7123 invalidParams.AddNested("Allow", err.(request.ErrInvalidParams)) 7124 } 7125 } 7126 if s.Block != nil { 7127 if err := s.Block.Validate(); err != nil { 7128 invalidParams.AddNested("Block", err.(request.ErrInvalidParams)) 7129 } 7130 } 7131 7132 if invalidParams.Len() > 0 { 7133 return invalidParams 7134 } 7135 return nil 7136 } 7137 7138 // SetAllow sets the Allow field's value. 7139 func (s *DefaultAction) SetAllow(v *AllowAction) *DefaultAction { 7140 s.Allow = v 7141 return s 7142 } 7143 7144 // SetBlock sets the Block field's value. 7145 func (s *DefaultAction) SetBlock(v *BlockAction) *DefaultAction { 7146 s.Block = v 7147 return s 7148 } 7149 7150 type DeleteFirewallManagerRuleGroupsInput struct { 7151 _ struct{} `type:"structure"` 7152 7153 // The Amazon Resource Name (ARN) of the web ACL. 7154 // 7155 // WebACLArn is a required field 7156 WebACLArn *string `min:"20" type:"string" required:"true"` 7157 7158 // A token used for optimistic locking. WAF returns a token to your get and 7159 // list requests, to mark the state of the entity at the time of the request. 7160 // To make changes to the entity associated with the token, you provide the 7161 // token to operations like update and delete. WAF uses the token to ensure 7162 // that no changes have been made to the entity since you last retrieved it. 7163 // If a change has been made, the update fails with a WAFOptimisticLockException. 7164 // If this happens, perform another get, and use the new token returned by that 7165 // operation. 7166 // 7167 // WebACLLockToken is a required field 7168 WebACLLockToken *string `min:"1" type:"string" required:"true"` 7169 } 7170 7171 // String returns the string representation. 7172 // 7173 // API parameter values that are decorated as "sensitive" in the API will not 7174 // be included in the string output. The member name will be present, but the 7175 // value will be replaced with "sensitive". 7176 func (s DeleteFirewallManagerRuleGroupsInput) String() string { 7177 return awsutil.Prettify(s) 7178 } 7179 7180 // GoString returns the string representation. 7181 // 7182 // API parameter values that are decorated as "sensitive" in the API will not 7183 // be included in the string output. The member name will be present, but the 7184 // value will be replaced with "sensitive". 7185 func (s DeleteFirewallManagerRuleGroupsInput) GoString() string { 7186 return s.String() 7187 } 7188 7189 // Validate inspects the fields of the type to determine if they are valid. 7190 func (s *DeleteFirewallManagerRuleGroupsInput) Validate() error { 7191 invalidParams := request.ErrInvalidParams{Context: "DeleteFirewallManagerRuleGroupsInput"} 7192 if s.WebACLArn == nil { 7193 invalidParams.Add(request.NewErrParamRequired("WebACLArn")) 7194 } 7195 if s.WebACLArn != nil && len(*s.WebACLArn) < 20 { 7196 invalidParams.Add(request.NewErrParamMinLen("WebACLArn", 20)) 7197 } 7198 if s.WebACLLockToken == nil { 7199 invalidParams.Add(request.NewErrParamRequired("WebACLLockToken")) 7200 } 7201 if s.WebACLLockToken != nil && len(*s.WebACLLockToken) < 1 { 7202 invalidParams.Add(request.NewErrParamMinLen("WebACLLockToken", 1)) 7203 } 7204 7205 if invalidParams.Len() > 0 { 7206 return invalidParams 7207 } 7208 return nil 7209 } 7210 7211 // SetWebACLArn sets the WebACLArn field's value. 7212 func (s *DeleteFirewallManagerRuleGroupsInput) SetWebACLArn(v string) *DeleteFirewallManagerRuleGroupsInput { 7213 s.WebACLArn = &v 7214 return s 7215 } 7216 7217 // SetWebACLLockToken sets the WebACLLockToken field's value. 7218 func (s *DeleteFirewallManagerRuleGroupsInput) SetWebACLLockToken(v string) *DeleteFirewallManagerRuleGroupsInput { 7219 s.WebACLLockToken = &v 7220 return s 7221 } 7222 7223 type DeleteFirewallManagerRuleGroupsOutput struct { 7224 _ struct{} `type:"structure"` 7225 7226 // A token used for optimistic locking. WAF returns a token to your get and 7227 // list requests, to mark the state of the entity at the time of the request. 7228 // To make changes to the entity associated with the token, you provide the 7229 // token to operations like update and delete. WAF uses the token to ensure 7230 // that no changes have been made to the entity since you last retrieved it. 7231 // If a change has been made, the update fails with a WAFOptimisticLockException. 7232 // If this happens, perform another get, and use the new token returned by that 7233 // operation. 7234 NextWebACLLockToken *string `min:"1" type:"string"` 7235 } 7236 7237 // String returns the string representation. 7238 // 7239 // API parameter values that are decorated as "sensitive" in the API will not 7240 // be included in the string output. The member name will be present, but the 7241 // value will be replaced with "sensitive". 7242 func (s DeleteFirewallManagerRuleGroupsOutput) String() string { 7243 return awsutil.Prettify(s) 7244 } 7245 7246 // GoString returns the string representation. 7247 // 7248 // API parameter values that are decorated as "sensitive" in the API will not 7249 // be included in the string output. The member name will be present, but the 7250 // value will be replaced with "sensitive". 7251 func (s DeleteFirewallManagerRuleGroupsOutput) GoString() string { 7252 return s.String() 7253 } 7254 7255 // SetNextWebACLLockToken sets the NextWebACLLockToken field's value. 7256 func (s *DeleteFirewallManagerRuleGroupsOutput) SetNextWebACLLockToken(v string) *DeleteFirewallManagerRuleGroupsOutput { 7257 s.NextWebACLLockToken = &v 7258 return s 7259 } 7260 7261 type DeleteIPSetInput struct { 7262 _ struct{} `type:"structure"` 7263 7264 // A unique identifier for the set. This ID is returned in the responses to 7265 // create and list commands. You provide it to operations like update and delete. 7266 // 7267 // Id is a required field 7268 Id *string `min:"1" type:"string" required:"true"` 7269 7270 // A token used for optimistic locking. WAF returns a token to your get and 7271 // list requests, to mark the state of the entity at the time of the request. 7272 // To make changes to the entity associated with the token, you provide the 7273 // token to operations like update and delete. WAF uses the token to ensure 7274 // that no changes have been made to the entity since you last retrieved it. 7275 // If a change has been made, the update fails with a WAFOptimisticLockException. 7276 // If this happens, perform another get, and use the new token returned by that 7277 // operation. 7278 // 7279 // LockToken is a required field 7280 LockToken *string `min:"1" type:"string" required:"true"` 7281 7282 // The name of the IP set. You cannot change the name of an IPSet after you 7283 // create it. 7284 // 7285 // Name is a required field 7286 Name *string `min:"1" type:"string" required:"true"` 7287 7288 // Specifies whether this is for an Amazon CloudFront distribution or for a 7289 // regional application. A regional application can be an Application Load Balancer 7290 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 7291 // 7292 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 7293 // as follows: 7294 // 7295 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 7296 // --region=us-east-1. 7297 // 7298 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 7299 // 7300 // Scope is a required field 7301 Scope *string `type:"string" required:"true" enum:"Scope"` 7302 } 7303 7304 // String returns the string representation. 7305 // 7306 // API parameter values that are decorated as "sensitive" in the API will not 7307 // be included in the string output. The member name will be present, but the 7308 // value will be replaced with "sensitive". 7309 func (s DeleteIPSetInput) String() string { 7310 return awsutil.Prettify(s) 7311 } 7312 7313 // GoString returns the string representation. 7314 // 7315 // API parameter values that are decorated as "sensitive" in the API will not 7316 // be included in the string output. The member name will be present, but the 7317 // value will be replaced with "sensitive". 7318 func (s DeleteIPSetInput) GoString() string { 7319 return s.String() 7320 } 7321 7322 // Validate inspects the fields of the type to determine if they are valid. 7323 func (s *DeleteIPSetInput) Validate() error { 7324 invalidParams := request.ErrInvalidParams{Context: "DeleteIPSetInput"} 7325 if s.Id == nil { 7326 invalidParams.Add(request.NewErrParamRequired("Id")) 7327 } 7328 if s.Id != nil && len(*s.Id) < 1 { 7329 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 7330 } 7331 if s.LockToken == nil { 7332 invalidParams.Add(request.NewErrParamRequired("LockToken")) 7333 } 7334 if s.LockToken != nil && len(*s.LockToken) < 1 { 7335 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 7336 } 7337 if s.Name == nil { 7338 invalidParams.Add(request.NewErrParamRequired("Name")) 7339 } 7340 if s.Name != nil && len(*s.Name) < 1 { 7341 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 7342 } 7343 if s.Scope == nil { 7344 invalidParams.Add(request.NewErrParamRequired("Scope")) 7345 } 7346 7347 if invalidParams.Len() > 0 { 7348 return invalidParams 7349 } 7350 return nil 7351 } 7352 7353 // SetId sets the Id field's value. 7354 func (s *DeleteIPSetInput) SetId(v string) *DeleteIPSetInput { 7355 s.Id = &v 7356 return s 7357 } 7358 7359 // SetLockToken sets the LockToken field's value. 7360 func (s *DeleteIPSetInput) SetLockToken(v string) *DeleteIPSetInput { 7361 s.LockToken = &v 7362 return s 7363 } 7364 7365 // SetName sets the Name field's value. 7366 func (s *DeleteIPSetInput) SetName(v string) *DeleteIPSetInput { 7367 s.Name = &v 7368 return s 7369 } 7370 7371 // SetScope sets the Scope field's value. 7372 func (s *DeleteIPSetInput) SetScope(v string) *DeleteIPSetInput { 7373 s.Scope = &v 7374 return s 7375 } 7376 7377 type DeleteIPSetOutput struct { 7378 _ struct{} `type:"structure"` 7379 } 7380 7381 // String returns the string representation. 7382 // 7383 // API parameter values that are decorated as "sensitive" in the API will not 7384 // be included in the string output. The member name will be present, but the 7385 // value will be replaced with "sensitive". 7386 func (s DeleteIPSetOutput) String() string { 7387 return awsutil.Prettify(s) 7388 } 7389 7390 // GoString returns the string representation. 7391 // 7392 // API parameter values that are decorated as "sensitive" in the API will not 7393 // be included in the string output. The member name will be present, but the 7394 // value will be replaced with "sensitive". 7395 func (s DeleteIPSetOutput) GoString() string { 7396 return s.String() 7397 } 7398 7399 type DeleteLoggingConfigurationInput struct { 7400 _ struct{} `type:"structure"` 7401 7402 // The Amazon Resource Name (ARN) of the web ACL from which you want to delete 7403 // the LoggingConfiguration. 7404 // 7405 // ResourceArn is a required field 7406 ResourceArn *string `min:"20" type:"string" required:"true"` 7407 } 7408 7409 // String returns the string representation. 7410 // 7411 // API parameter values that are decorated as "sensitive" in the API will not 7412 // be included in the string output. The member name will be present, but the 7413 // value will be replaced with "sensitive". 7414 func (s DeleteLoggingConfigurationInput) String() string { 7415 return awsutil.Prettify(s) 7416 } 7417 7418 // GoString returns the string representation. 7419 // 7420 // API parameter values that are decorated as "sensitive" in the API will not 7421 // be included in the string output. The member name will be present, but the 7422 // value will be replaced with "sensitive". 7423 func (s DeleteLoggingConfigurationInput) GoString() string { 7424 return s.String() 7425 } 7426 7427 // Validate inspects the fields of the type to determine if they are valid. 7428 func (s *DeleteLoggingConfigurationInput) Validate() error { 7429 invalidParams := request.ErrInvalidParams{Context: "DeleteLoggingConfigurationInput"} 7430 if s.ResourceArn == nil { 7431 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 7432 } 7433 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 7434 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 7435 } 7436 7437 if invalidParams.Len() > 0 { 7438 return invalidParams 7439 } 7440 return nil 7441 } 7442 7443 // SetResourceArn sets the ResourceArn field's value. 7444 func (s *DeleteLoggingConfigurationInput) SetResourceArn(v string) *DeleteLoggingConfigurationInput { 7445 s.ResourceArn = &v 7446 return s 7447 } 7448 7449 type DeleteLoggingConfigurationOutput struct { 7450 _ struct{} `type:"structure"` 7451 } 7452 7453 // String returns the string representation. 7454 // 7455 // API parameter values that are decorated as "sensitive" in the API will not 7456 // be included in the string output. The member name will be present, but the 7457 // value will be replaced with "sensitive". 7458 func (s DeleteLoggingConfigurationOutput) String() string { 7459 return awsutil.Prettify(s) 7460 } 7461 7462 // GoString returns the string representation. 7463 // 7464 // API parameter values that are decorated as "sensitive" in the API will not 7465 // be included in the string output. The member name will be present, but the 7466 // value will be replaced with "sensitive". 7467 func (s DeleteLoggingConfigurationOutput) GoString() string { 7468 return s.String() 7469 } 7470 7471 type DeletePermissionPolicyInput struct { 7472 _ struct{} `type:"structure"` 7473 7474 // The Amazon Resource Name (ARN) of the rule group from which you want to delete 7475 // the policy. 7476 // 7477 // You must be the owner of the rule group to perform this operation. 7478 // 7479 // ResourceArn is a required field 7480 ResourceArn *string `min:"20" type:"string" required:"true"` 7481 } 7482 7483 // String returns the string representation. 7484 // 7485 // API parameter values that are decorated as "sensitive" in the API will not 7486 // be included in the string output. The member name will be present, but the 7487 // value will be replaced with "sensitive". 7488 func (s DeletePermissionPolicyInput) String() string { 7489 return awsutil.Prettify(s) 7490 } 7491 7492 // GoString returns the string representation. 7493 // 7494 // API parameter values that are decorated as "sensitive" in the API will not 7495 // be included in the string output. The member name will be present, but the 7496 // value will be replaced with "sensitive". 7497 func (s DeletePermissionPolicyInput) GoString() string { 7498 return s.String() 7499 } 7500 7501 // Validate inspects the fields of the type to determine if they are valid. 7502 func (s *DeletePermissionPolicyInput) Validate() error { 7503 invalidParams := request.ErrInvalidParams{Context: "DeletePermissionPolicyInput"} 7504 if s.ResourceArn == nil { 7505 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 7506 } 7507 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 7508 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 7509 } 7510 7511 if invalidParams.Len() > 0 { 7512 return invalidParams 7513 } 7514 return nil 7515 } 7516 7517 // SetResourceArn sets the ResourceArn field's value. 7518 func (s *DeletePermissionPolicyInput) SetResourceArn(v string) *DeletePermissionPolicyInput { 7519 s.ResourceArn = &v 7520 return s 7521 } 7522 7523 type DeletePermissionPolicyOutput struct { 7524 _ struct{} `type:"structure"` 7525 } 7526 7527 // String returns the string representation. 7528 // 7529 // API parameter values that are decorated as "sensitive" in the API will not 7530 // be included in the string output. The member name will be present, but the 7531 // value will be replaced with "sensitive". 7532 func (s DeletePermissionPolicyOutput) String() string { 7533 return awsutil.Prettify(s) 7534 } 7535 7536 // GoString returns the string representation. 7537 // 7538 // API parameter values that are decorated as "sensitive" in the API will not 7539 // be included in the string output. The member name will be present, but the 7540 // value will be replaced with "sensitive". 7541 func (s DeletePermissionPolicyOutput) GoString() string { 7542 return s.String() 7543 } 7544 7545 type DeleteRegexPatternSetInput struct { 7546 _ struct{} `type:"structure"` 7547 7548 // A unique identifier for the set. This ID is returned in the responses to 7549 // create and list commands. You provide it to operations like update and delete. 7550 // 7551 // Id is a required field 7552 Id *string `min:"1" type:"string" required:"true"` 7553 7554 // A token used for optimistic locking. WAF returns a token to your get and 7555 // list requests, to mark the state of the entity at the time of the request. 7556 // To make changes to the entity associated with the token, you provide the 7557 // token to operations like update and delete. WAF uses the token to ensure 7558 // that no changes have been made to the entity since you last retrieved it. 7559 // If a change has been made, the update fails with a WAFOptimisticLockException. 7560 // If this happens, perform another get, and use the new token returned by that 7561 // operation. 7562 // 7563 // LockToken is a required field 7564 LockToken *string `min:"1" type:"string" required:"true"` 7565 7566 // The name of the set. You cannot change the name after you create the set. 7567 // 7568 // Name is a required field 7569 Name *string `min:"1" type:"string" required:"true"` 7570 7571 // Specifies whether this is for an Amazon CloudFront distribution or for a 7572 // regional application. A regional application can be an Application Load Balancer 7573 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 7574 // 7575 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 7576 // as follows: 7577 // 7578 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 7579 // --region=us-east-1. 7580 // 7581 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 7582 // 7583 // Scope is a required field 7584 Scope *string `type:"string" required:"true" enum:"Scope"` 7585 } 7586 7587 // String returns the string representation. 7588 // 7589 // API parameter values that are decorated as "sensitive" in the API will not 7590 // be included in the string output. The member name will be present, but the 7591 // value will be replaced with "sensitive". 7592 func (s DeleteRegexPatternSetInput) String() string { 7593 return awsutil.Prettify(s) 7594 } 7595 7596 // GoString returns the string representation. 7597 // 7598 // API parameter values that are decorated as "sensitive" in the API will not 7599 // be included in the string output. The member name will be present, but the 7600 // value will be replaced with "sensitive". 7601 func (s DeleteRegexPatternSetInput) GoString() string { 7602 return s.String() 7603 } 7604 7605 // Validate inspects the fields of the type to determine if they are valid. 7606 func (s *DeleteRegexPatternSetInput) Validate() error { 7607 invalidParams := request.ErrInvalidParams{Context: "DeleteRegexPatternSetInput"} 7608 if s.Id == nil { 7609 invalidParams.Add(request.NewErrParamRequired("Id")) 7610 } 7611 if s.Id != nil && len(*s.Id) < 1 { 7612 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 7613 } 7614 if s.LockToken == nil { 7615 invalidParams.Add(request.NewErrParamRequired("LockToken")) 7616 } 7617 if s.LockToken != nil && len(*s.LockToken) < 1 { 7618 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 7619 } 7620 if s.Name == nil { 7621 invalidParams.Add(request.NewErrParamRequired("Name")) 7622 } 7623 if s.Name != nil && len(*s.Name) < 1 { 7624 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 7625 } 7626 if s.Scope == nil { 7627 invalidParams.Add(request.NewErrParamRequired("Scope")) 7628 } 7629 7630 if invalidParams.Len() > 0 { 7631 return invalidParams 7632 } 7633 return nil 7634 } 7635 7636 // SetId sets the Id field's value. 7637 func (s *DeleteRegexPatternSetInput) SetId(v string) *DeleteRegexPatternSetInput { 7638 s.Id = &v 7639 return s 7640 } 7641 7642 // SetLockToken sets the LockToken field's value. 7643 func (s *DeleteRegexPatternSetInput) SetLockToken(v string) *DeleteRegexPatternSetInput { 7644 s.LockToken = &v 7645 return s 7646 } 7647 7648 // SetName sets the Name field's value. 7649 func (s *DeleteRegexPatternSetInput) SetName(v string) *DeleteRegexPatternSetInput { 7650 s.Name = &v 7651 return s 7652 } 7653 7654 // SetScope sets the Scope field's value. 7655 func (s *DeleteRegexPatternSetInput) SetScope(v string) *DeleteRegexPatternSetInput { 7656 s.Scope = &v 7657 return s 7658 } 7659 7660 type DeleteRegexPatternSetOutput struct { 7661 _ struct{} `type:"structure"` 7662 } 7663 7664 // String returns the string representation. 7665 // 7666 // API parameter values that are decorated as "sensitive" in the API will not 7667 // be included in the string output. The member name will be present, but the 7668 // value will be replaced with "sensitive". 7669 func (s DeleteRegexPatternSetOutput) String() string { 7670 return awsutil.Prettify(s) 7671 } 7672 7673 // GoString returns the string representation. 7674 // 7675 // API parameter values that are decorated as "sensitive" in the API will not 7676 // be included in the string output. The member name will be present, but the 7677 // value will be replaced with "sensitive". 7678 func (s DeleteRegexPatternSetOutput) GoString() string { 7679 return s.String() 7680 } 7681 7682 type DeleteRuleGroupInput struct { 7683 _ struct{} `type:"structure"` 7684 7685 // A unique identifier for the rule group. This ID is returned in the responses 7686 // to create and list commands. You provide it to operations like update and 7687 // delete. 7688 // 7689 // Id is a required field 7690 Id *string `min:"1" type:"string" required:"true"` 7691 7692 // A token used for optimistic locking. WAF returns a token to your get and 7693 // list requests, to mark the state of the entity at the time of the request. 7694 // To make changes to the entity associated with the token, you provide the 7695 // token to operations like update and delete. WAF uses the token to ensure 7696 // that no changes have been made to the entity since you last retrieved it. 7697 // If a change has been made, the update fails with a WAFOptimisticLockException. 7698 // If this happens, perform another get, and use the new token returned by that 7699 // operation. 7700 // 7701 // LockToken is a required field 7702 LockToken *string `min:"1" type:"string" required:"true"` 7703 7704 // The name of the rule group. You cannot change the name of a rule group after 7705 // you create it. 7706 // 7707 // Name is a required field 7708 Name *string `min:"1" type:"string" required:"true"` 7709 7710 // Specifies whether this is for an Amazon CloudFront distribution or for a 7711 // regional application. A regional application can be an Application Load Balancer 7712 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 7713 // 7714 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 7715 // as follows: 7716 // 7717 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 7718 // --region=us-east-1. 7719 // 7720 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 7721 // 7722 // Scope is a required field 7723 Scope *string `type:"string" required:"true" enum:"Scope"` 7724 } 7725 7726 // String returns the string representation. 7727 // 7728 // API parameter values that are decorated as "sensitive" in the API will not 7729 // be included in the string output. The member name will be present, but the 7730 // value will be replaced with "sensitive". 7731 func (s DeleteRuleGroupInput) String() string { 7732 return awsutil.Prettify(s) 7733 } 7734 7735 // GoString returns the string representation. 7736 // 7737 // API parameter values that are decorated as "sensitive" in the API will not 7738 // be included in the string output. The member name will be present, but the 7739 // value will be replaced with "sensitive". 7740 func (s DeleteRuleGroupInput) GoString() string { 7741 return s.String() 7742 } 7743 7744 // Validate inspects the fields of the type to determine if they are valid. 7745 func (s *DeleteRuleGroupInput) Validate() error { 7746 invalidParams := request.ErrInvalidParams{Context: "DeleteRuleGroupInput"} 7747 if s.Id == nil { 7748 invalidParams.Add(request.NewErrParamRequired("Id")) 7749 } 7750 if s.Id != nil && len(*s.Id) < 1 { 7751 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 7752 } 7753 if s.LockToken == nil { 7754 invalidParams.Add(request.NewErrParamRequired("LockToken")) 7755 } 7756 if s.LockToken != nil && len(*s.LockToken) < 1 { 7757 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 7758 } 7759 if s.Name == nil { 7760 invalidParams.Add(request.NewErrParamRequired("Name")) 7761 } 7762 if s.Name != nil && len(*s.Name) < 1 { 7763 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 7764 } 7765 if s.Scope == nil { 7766 invalidParams.Add(request.NewErrParamRequired("Scope")) 7767 } 7768 7769 if invalidParams.Len() > 0 { 7770 return invalidParams 7771 } 7772 return nil 7773 } 7774 7775 // SetId sets the Id field's value. 7776 func (s *DeleteRuleGroupInput) SetId(v string) *DeleteRuleGroupInput { 7777 s.Id = &v 7778 return s 7779 } 7780 7781 // SetLockToken sets the LockToken field's value. 7782 func (s *DeleteRuleGroupInput) SetLockToken(v string) *DeleteRuleGroupInput { 7783 s.LockToken = &v 7784 return s 7785 } 7786 7787 // SetName sets the Name field's value. 7788 func (s *DeleteRuleGroupInput) SetName(v string) *DeleteRuleGroupInput { 7789 s.Name = &v 7790 return s 7791 } 7792 7793 // SetScope sets the Scope field's value. 7794 func (s *DeleteRuleGroupInput) SetScope(v string) *DeleteRuleGroupInput { 7795 s.Scope = &v 7796 return s 7797 } 7798 7799 type DeleteRuleGroupOutput struct { 7800 _ struct{} `type:"structure"` 7801 } 7802 7803 // String returns the string representation. 7804 // 7805 // API parameter values that are decorated as "sensitive" in the API will not 7806 // be included in the string output. The member name will be present, but the 7807 // value will be replaced with "sensitive". 7808 func (s DeleteRuleGroupOutput) String() string { 7809 return awsutil.Prettify(s) 7810 } 7811 7812 // GoString returns the string representation. 7813 // 7814 // API parameter values that are decorated as "sensitive" in the API will not 7815 // be included in the string output. The member name will be present, but the 7816 // value will be replaced with "sensitive". 7817 func (s DeleteRuleGroupOutput) GoString() string { 7818 return s.String() 7819 } 7820 7821 type DeleteWebACLInput struct { 7822 _ struct{} `type:"structure"` 7823 7824 // The unique identifier for the web ACL. This ID is returned in the responses 7825 // to create and list commands. You provide it to operations like update and 7826 // delete. 7827 // 7828 // Id is a required field 7829 Id *string `min:"1" type:"string" required:"true"` 7830 7831 // A token used for optimistic locking. WAF returns a token to your get and 7832 // list requests, to mark the state of the entity at the time of the request. 7833 // To make changes to the entity associated with the token, you provide the 7834 // token to operations like update and delete. WAF uses the token to ensure 7835 // that no changes have been made to the entity since you last retrieved it. 7836 // If a change has been made, the update fails with a WAFOptimisticLockException. 7837 // If this happens, perform another get, and use the new token returned by that 7838 // operation. 7839 // 7840 // LockToken is a required field 7841 LockToken *string `min:"1" type:"string" required:"true"` 7842 7843 // The name of the web ACL. You cannot change the name of a web ACL after you 7844 // create it. 7845 // 7846 // Name is a required field 7847 Name *string `min:"1" type:"string" required:"true"` 7848 7849 // Specifies whether this is for an Amazon CloudFront distribution or for a 7850 // regional application. A regional application can be an Application Load Balancer 7851 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 7852 // 7853 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 7854 // as follows: 7855 // 7856 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 7857 // --region=us-east-1. 7858 // 7859 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 7860 // 7861 // Scope is a required field 7862 Scope *string `type:"string" required:"true" enum:"Scope"` 7863 } 7864 7865 // String returns the string representation. 7866 // 7867 // API parameter values that are decorated as "sensitive" in the API will not 7868 // be included in the string output. The member name will be present, but the 7869 // value will be replaced with "sensitive". 7870 func (s DeleteWebACLInput) String() string { 7871 return awsutil.Prettify(s) 7872 } 7873 7874 // GoString returns the string representation. 7875 // 7876 // API parameter values that are decorated as "sensitive" in the API will not 7877 // be included in the string output. The member name will be present, but the 7878 // value will be replaced with "sensitive". 7879 func (s DeleteWebACLInput) GoString() string { 7880 return s.String() 7881 } 7882 7883 // Validate inspects the fields of the type to determine if they are valid. 7884 func (s *DeleteWebACLInput) Validate() error { 7885 invalidParams := request.ErrInvalidParams{Context: "DeleteWebACLInput"} 7886 if s.Id == nil { 7887 invalidParams.Add(request.NewErrParamRequired("Id")) 7888 } 7889 if s.Id != nil && len(*s.Id) < 1 { 7890 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 7891 } 7892 if s.LockToken == nil { 7893 invalidParams.Add(request.NewErrParamRequired("LockToken")) 7894 } 7895 if s.LockToken != nil && len(*s.LockToken) < 1 { 7896 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 7897 } 7898 if s.Name == nil { 7899 invalidParams.Add(request.NewErrParamRequired("Name")) 7900 } 7901 if s.Name != nil && len(*s.Name) < 1 { 7902 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 7903 } 7904 if s.Scope == nil { 7905 invalidParams.Add(request.NewErrParamRequired("Scope")) 7906 } 7907 7908 if invalidParams.Len() > 0 { 7909 return invalidParams 7910 } 7911 return nil 7912 } 7913 7914 // SetId sets the Id field's value. 7915 func (s *DeleteWebACLInput) SetId(v string) *DeleteWebACLInput { 7916 s.Id = &v 7917 return s 7918 } 7919 7920 // SetLockToken sets the LockToken field's value. 7921 func (s *DeleteWebACLInput) SetLockToken(v string) *DeleteWebACLInput { 7922 s.LockToken = &v 7923 return s 7924 } 7925 7926 // SetName sets the Name field's value. 7927 func (s *DeleteWebACLInput) SetName(v string) *DeleteWebACLInput { 7928 s.Name = &v 7929 return s 7930 } 7931 7932 // SetScope sets the Scope field's value. 7933 func (s *DeleteWebACLInput) SetScope(v string) *DeleteWebACLInput { 7934 s.Scope = &v 7935 return s 7936 } 7937 7938 type DeleteWebACLOutput struct { 7939 _ struct{} `type:"structure"` 7940 } 7941 7942 // String returns the string representation. 7943 // 7944 // API parameter values that are decorated as "sensitive" in the API will not 7945 // be included in the string output. The member name will be present, but the 7946 // value will be replaced with "sensitive". 7947 func (s DeleteWebACLOutput) String() string { 7948 return awsutil.Prettify(s) 7949 } 7950 7951 // GoString returns the string representation. 7952 // 7953 // API parameter values that are decorated as "sensitive" in the API will not 7954 // be included in the string output. The member name will be present, but the 7955 // value will be replaced with "sensitive". 7956 func (s DeleteWebACLOutput) GoString() string { 7957 return s.String() 7958 } 7959 7960 type DescribeManagedRuleGroupInput struct { 7961 _ struct{} `type:"structure"` 7962 7963 // The name of the managed rule group. You use this, along with the vendor name, 7964 // to identify the rule group. 7965 // 7966 // Name is a required field 7967 Name *string `min:"1" type:"string" required:"true"` 7968 7969 // Specifies whether this is for an Amazon CloudFront distribution or for a 7970 // regional application. A regional application can be an Application Load Balancer 7971 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 7972 // 7973 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 7974 // as follows: 7975 // 7976 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 7977 // --region=us-east-1. 7978 // 7979 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 7980 // 7981 // Scope is a required field 7982 Scope *string `type:"string" required:"true" enum:"Scope"` 7983 7984 // The name of the managed rule group vendor. You use this, along with the rule 7985 // group name, to identify the rule group. 7986 // 7987 // VendorName is a required field 7988 VendorName *string `min:"1" type:"string" required:"true"` 7989 7990 // The version of the rule group. You can only use a version that is not scheduled 7991 // for expiration. If you don't provide this, WAF uses the vendor's default 7992 // version. 7993 VersionName *string `min:"1" type:"string"` 7994 } 7995 7996 // String returns the string representation. 7997 // 7998 // API parameter values that are decorated as "sensitive" in the API will not 7999 // be included in the string output. The member name will be present, but the 8000 // value will be replaced with "sensitive". 8001 func (s DescribeManagedRuleGroupInput) String() string { 8002 return awsutil.Prettify(s) 8003 } 8004 8005 // GoString returns the string representation. 8006 // 8007 // API parameter values that are decorated as "sensitive" in the API will not 8008 // be included in the string output. The member name will be present, but the 8009 // value will be replaced with "sensitive". 8010 func (s DescribeManagedRuleGroupInput) GoString() string { 8011 return s.String() 8012 } 8013 8014 // Validate inspects the fields of the type to determine if they are valid. 8015 func (s *DescribeManagedRuleGroupInput) Validate() error { 8016 invalidParams := request.ErrInvalidParams{Context: "DescribeManagedRuleGroupInput"} 8017 if s.Name == nil { 8018 invalidParams.Add(request.NewErrParamRequired("Name")) 8019 } 8020 if s.Name != nil && len(*s.Name) < 1 { 8021 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 8022 } 8023 if s.Scope == nil { 8024 invalidParams.Add(request.NewErrParamRequired("Scope")) 8025 } 8026 if s.VendorName == nil { 8027 invalidParams.Add(request.NewErrParamRequired("VendorName")) 8028 } 8029 if s.VendorName != nil && len(*s.VendorName) < 1 { 8030 invalidParams.Add(request.NewErrParamMinLen("VendorName", 1)) 8031 } 8032 if s.VersionName != nil && len(*s.VersionName) < 1 { 8033 invalidParams.Add(request.NewErrParamMinLen("VersionName", 1)) 8034 } 8035 8036 if invalidParams.Len() > 0 { 8037 return invalidParams 8038 } 8039 return nil 8040 } 8041 8042 // SetName sets the Name field's value. 8043 func (s *DescribeManagedRuleGroupInput) SetName(v string) *DescribeManagedRuleGroupInput { 8044 s.Name = &v 8045 return s 8046 } 8047 8048 // SetScope sets the Scope field's value. 8049 func (s *DescribeManagedRuleGroupInput) SetScope(v string) *DescribeManagedRuleGroupInput { 8050 s.Scope = &v 8051 return s 8052 } 8053 8054 // SetVendorName sets the VendorName field's value. 8055 func (s *DescribeManagedRuleGroupInput) SetVendorName(v string) *DescribeManagedRuleGroupInput { 8056 s.VendorName = &v 8057 return s 8058 } 8059 8060 // SetVersionName sets the VersionName field's value. 8061 func (s *DescribeManagedRuleGroupInput) SetVersionName(v string) *DescribeManagedRuleGroupInput { 8062 s.VersionName = &v 8063 return s 8064 } 8065 8066 type DescribeManagedRuleGroupOutput struct { 8067 _ struct{} `type:"structure"` 8068 8069 // The labels that one or more rules in this rule group add to matching web 8070 // requests. These labels are defined in the RuleLabels for a Rule. 8071 AvailableLabels []*LabelSummary `type:"list"` 8072 8073 // The web ACL capacity units (WCUs) required for this rule group. WAF uses 8074 // web ACL capacity units (WCU) to calculate and control the operating resources 8075 // that are used to run your rules, rule groups, and web ACLs. WAF calculates 8076 // capacity differently for each rule type, to reflect each rule's relative 8077 // cost. Rule group capacity is fixed at creation, so users can plan their web 8078 // ACL WCU usage when they use a rule group. The WCU limit for web ACLs is 1,500. 8079 Capacity *int64 `min:"1" type:"long"` 8080 8081 // The labels that one or more rules in this rule group match against in label 8082 // match statements. These labels are defined in a LabelMatchStatement specification, 8083 // in the Statement definition of a rule. 8084 ConsumedLabels []*LabelSummary `type:"list"` 8085 8086 // The label namespace prefix for this rule group. All labels added by rules 8087 // in this rule group have this prefix. 8088 // 8089 // * The syntax for the label namespace prefix for a managed rule group is 8090 // the following: awswaf:managed:<vendor>:<rule group name>: 8091 // 8092 // * When a rule with a label matches a web request, WAF adds the fully qualified 8093 // label to the request. A fully qualified label is made up of the label 8094 // namespace from the rule group or web ACL where the rule is defined and 8095 // the label from the rule, separated by a colon: <label namespace>:<label 8096 // from rule> 8097 LabelNamespace *string `min:"1" type:"string"` 8098 8099 Rules []*RuleSummary `type:"list"` 8100 8101 // The Amazon resource name (ARN) of the Amazon Simple Notification Service 8102 // SNS topic that's used to record changes to the managed rule group. You can 8103 // subscribe to the SNS topic to receive notifications when the managed rule 8104 // group is modified, such as for new versions and for version expiration. For 8105 // more information, see the Amazon Simple Notification Service Developer Guide 8106 // (https://docs.aws.amazon.com/sns/latest/dg/welcome.html). 8107 SnsTopicArn *string `min:"20" type:"string"` 8108 8109 // The managed rule group's version. 8110 VersionName *string `min:"1" type:"string"` 8111 } 8112 8113 // String returns the string representation. 8114 // 8115 // API parameter values that are decorated as "sensitive" in the API will not 8116 // be included in the string output. The member name will be present, but the 8117 // value will be replaced with "sensitive". 8118 func (s DescribeManagedRuleGroupOutput) String() string { 8119 return awsutil.Prettify(s) 8120 } 8121 8122 // GoString returns the string representation. 8123 // 8124 // API parameter values that are decorated as "sensitive" in the API will not 8125 // be included in the string output. The member name will be present, but the 8126 // value will be replaced with "sensitive". 8127 func (s DescribeManagedRuleGroupOutput) GoString() string { 8128 return s.String() 8129 } 8130 8131 // SetAvailableLabels sets the AvailableLabels field's value. 8132 func (s *DescribeManagedRuleGroupOutput) SetAvailableLabels(v []*LabelSummary) *DescribeManagedRuleGroupOutput { 8133 s.AvailableLabels = v 8134 return s 8135 } 8136 8137 // SetCapacity sets the Capacity field's value. 8138 func (s *DescribeManagedRuleGroupOutput) SetCapacity(v int64) *DescribeManagedRuleGroupOutput { 8139 s.Capacity = &v 8140 return s 8141 } 8142 8143 // SetConsumedLabels sets the ConsumedLabels field's value. 8144 func (s *DescribeManagedRuleGroupOutput) SetConsumedLabels(v []*LabelSummary) *DescribeManagedRuleGroupOutput { 8145 s.ConsumedLabels = v 8146 return s 8147 } 8148 8149 // SetLabelNamespace sets the LabelNamespace field's value. 8150 func (s *DescribeManagedRuleGroupOutput) SetLabelNamespace(v string) *DescribeManagedRuleGroupOutput { 8151 s.LabelNamespace = &v 8152 return s 8153 } 8154 8155 // SetRules sets the Rules field's value. 8156 func (s *DescribeManagedRuleGroupOutput) SetRules(v []*RuleSummary) *DescribeManagedRuleGroupOutput { 8157 s.Rules = v 8158 return s 8159 } 8160 8161 // SetSnsTopicArn sets the SnsTopicArn field's value. 8162 func (s *DescribeManagedRuleGroupOutput) SetSnsTopicArn(v string) *DescribeManagedRuleGroupOutput { 8163 s.SnsTopicArn = &v 8164 return s 8165 } 8166 8167 // SetVersionName sets the VersionName field's value. 8168 func (s *DescribeManagedRuleGroupOutput) SetVersionName(v string) *DescribeManagedRuleGroupOutput { 8169 s.VersionName = &v 8170 return s 8171 } 8172 8173 type DisassociateWebACLInput struct { 8174 _ struct{} `type:"structure"` 8175 8176 // The Amazon Resource Name (ARN) of the resource to disassociate from the web 8177 // ACL. 8178 // 8179 // The ARN must be in one of the following formats: 8180 // 8181 // * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id 8182 // 8183 // * For an Amazon API Gateway REST API: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name 8184 // 8185 // * For an AppSync GraphQL API: arn:aws:appsync:region:account-id:apis/GraphQLApiId 8186 // 8187 // ResourceArn is a required field 8188 ResourceArn *string `min:"20" type:"string" required:"true"` 8189 } 8190 8191 // String returns the string representation. 8192 // 8193 // API parameter values that are decorated as "sensitive" in the API will not 8194 // be included in the string output. The member name will be present, but the 8195 // value will be replaced with "sensitive". 8196 func (s DisassociateWebACLInput) String() string { 8197 return awsutil.Prettify(s) 8198 } 8199 8200 // GoString returns the string representation. 8201 // 8202 // API parameter values that are decorated as "sensitive" in the API will not 8203 // be included in the string output. The member name will be present, but the 8204 // value will be replaced with "sensitive". 8205 func (s DisassociateWebACLInput) GoString() string { 8206 return s.String() 8207 } 8208 8209 // Validate inspects the fields of the type to determine if they are valid. 8210 func (s *DisassociateWebACLInput) Validate() error { 8211 invalidParams := request.ErrInvalidParams{Context: "DisassociateWebACLInput"} 8212 if s.ResourceArn == nil { 8213 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 8214 } 8215 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 8216 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 8217 } 8218 8219 if invalidParams.Len() > 0 { 8220 return invalidParams 8221 } 8222 return nil 8223 } 8224 8225 // SetResourceArn sets the ResourceArn field's value. 8226 func (s *DisassociateWebACLInput) SetResourceArn(v string) *DisassociateWebACLInput { 8227 s.ResourceArn = &v 8228 return s 8229 } 8230 8231 type DisassociateWebACLOutput struct { 8232 _ struct{} `type:"structure"` 8233 } 8234 8235 // String returns the string representation. 8236 // 8237 // API parameter values that are decorated as "sensitive" in the API will not 8238 // be included in the string output. The member name will be present, but the 8239 // value will be replaced with "sensitive". 8240 func (s DisassociateWebACLOutput) String() string { 8241 return awsutil.Prettify(s) 8242 } 8243 8244 // GoString returns the string representation. 8245 // 8246 // API parameter values that are decorated as "sensitive" in the API will not 8247 // be included in the string output. The member name will be present, but the 8248 // value will be replaced with "sensitive". 8249 func (s DisassociateWebACLOutput) GoString() string { 8250 return s.String() 8251 } 8252 8253 // Specifies a single rule to exclude from the rule group. Excluding a rule 8254 // overrides its action setting for the rule group in the web ACL, setting it 8255 // to COUNT. This effectively excludes the rule from acting on web requests. 8256 type ExcludedRule struct { 8257 _ struct{} `type:"structure"` 8258 8259 // The name of the rule to exclude. 8260 // 8261 // Name is a required field 8262 Name *string `min:"1" type:"string" required:"true"` 8263 } 8264 8265 // String returns the string representation. 8266 // 8267 // API parameter values that are decorated as "sensitive" in the API will not 8268 // be included in the string output. The member name will be present, but the 8269 // value will be replaced with "sensitive". 8270 func (s ExcludedRule) String() string { 8271 return awsutil.Prettify(s) 8272 } 8273 8274 // GoString returns the string representation. 8275 // 8276 // API parameter values that are decorated as "sensitive" in the API will not 8277 // be included in the string output. The member name will be present, but the 8278 // value will be replaced with "sensitive". 8279 func (s ExcludedRule) GoString() string { 8280 return s.String() 8281 } 8282 8283 // Validate inspects the fields of the type to determine if they are valid. 8284 func (s *ExcludedRule) Validate() error { 8285 invalidParams := request.ErrInvalidParams{Context: "ExcludedRule"} 8286 if s.Name == nil { 8287 invalidParams.Add(request.NewErrParamRequired("Name")) 8288 } 8289 if s.Name != nil && len(*s.Name) < 1 { 8290 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 8291 } 8292 8293 if invalidParams.Len() > 0 { 8294 return invalidParams 8295 } 8296 return nil 8297 } 8298 8299 // SetName sets the Name field's value. 8300 func (s *ExcludedRule) SetName(v string) *ExcludedRule { 8301 s.Name = &v 8302 return s 8303 } 8304 8305 // The part of a web request that you want WAF to inspect. Include the single 8306 // FieldToMatch type that you want to inspect, with additional specifications 8307 // as needed, according to the type. You specify a single request component 8308 // in FieldToMatch for each rule statement that requires it. To inspect more 8309 // than one component of a web request, create a separate rule statement for 8310 // each component. 8311 // 8312 // JSON specification for a QueryString field to match: 8313 // 8314 // "FieldToMatch": { "QueryString": {} } 8315 // 8316 // Example JSON for a Method field to match specification: 8317 // 8318 // "FieldToMatch": { "Method": { "Name": "DELETE" } } 8319 type FieldToMatch struct { 8320 _ struct{} `type:"structure"` 8321 8322 // Inspect all query arguments. 8323 AllQueryArguments *AllQueryArguments `type:"structure"` 8324 8325 // Inspect the request body as plain text. The request body immediately follows 8326 // the request headers. This is the part of a request that contains any additional 8327 // data that you want to send to your web server as the HTTP request body, such 8328 // as data from a form. 8329 // 8330 // Note that only the first 8 KB (8192 bytes) of the request body are forwarded 8331 // to WAF for inspection by the underlying host service. If you don't need to 8332 // inspect more than 8 KB, you can guarantee that you don't allow additional 8333 // bytes in by combining a statement that inspects the body of the web request, 8334 // such as ByteMatchStatement or RegexPatternSetReferenceStatement, with a SizeConstraintStatement 8335 // that enforces an 8 KB size limit on the body of the request. WAF doesn't 8336 // support inspecting the entire contents of web requests whose bodies exceed 8337 // the 8 KB limit. 8338 Body *Body `type:"structure"` 8339 8340 // Inspect the request body as JSON. The request body immediately follows the 8341 // request headers. This is the part of a request that contains any additional 8342 // data that you want to send to your web server as the HTTP request body, such 8343 // as data from a form. 8344 // 8345 // Note that only the first 8 KB (8192 bytes) of the request body are forwarded 8346 // to WAF for inspection by the underlying host service. If you don't need to 8347 // inspect more than 8 KB, you can guarantee that you don't allow additional 8348 // bytes in by combining a statement that inspects the body of the web request, 8349 // such as ByteMatchStatement or RegexPatternSetReferenceStatement, with a SizeConstraintStatement 8350 // that enforces an 8 KB size limit on the body of the request. WAF doesn't 8351 // support inspecting the entire contents of web requests whose bodies exceed 8352 // the 8 KB limit. 8353 JsonBody *JsonBody `type:"structure"` 8354 8355 // Inspect the HTTP method. The method indicates the type of operation that 8356 // the request is asking the origin to perform. 8357 Method *Method `type:"structure"` 8358 8359 // Inspect the query string. This is the part of a URL that appears after a 8360 // ? character, if any. 8361 QueryString *QueryString `type:"structure"` 8362 8363 // Inspect a single header. Provide the name of the header to inspect, for example, 8364 // User-Agent or Referer. This setting isn't case sensitive. 8365 // 8366 // Example JSON: "SingleHeader": { "Name": "haystack" } 8367 SingleHeader *SingleHeader `type:"structure"` 8368 8369 // Inspect a single query argument. Provide the name of the query argument to 8370 // inspect, such as UserName or SalesRegion. The name can be up to 30 characters 8371 // long and isn't case sensitive. 8372 // 8373 // This is used only to indicate the web request component for WAF to inspect, 8374 // in the FieldToMatch specification. 8375 // 8376 // Example JSON: "SingleQueryArgument": { "Name": "myArgument" } 8377 SingleQueryArgument *SingleQueryArgument `type:"structure"` 8378 8379 // Inspect the request URI path. This is the part of a web request that identifies 8380 // a resource, for example, /images/daily-ad.jpg. 8381 UriPath *UriPath `type:"structure"` 8382 } 8383 8384 // String returns the string representation. 8385 // 8386 // API parameter values that are decorated as "sensitive" in the API will not 8387 // be included in the string output. The member name will be present, but the 8388 // value will be replaced with "sensitive". 8389 func (s FieldToMatch) String() string { 8390 return awsutil.Prettify(s) 8391 } 8392 8393 // GoString returns the string representation. 8394 // 8395 // API parameter values that are decorated as "sensitive" in the API will not 8396 // be included in the string output. The member name will be present, but the 8397 // value will be replaced with "sensitive". 8398 func (s FieldToMatch) GoString() string { 8399 return s.String() 8400 } 8401 8402 // Validate inspects the fields of the type to determine if they are valid. 8403 func (s *FieldToMatch) Validate() error { 8404 invalidParams := request.ErrInvalidParams{Context: "FieldToMatch"} 8405 if s.JsonBody != nil { 8406 if err := s.JsonBody.Validate(); err != nil { 8407 invalidParams.AddNested("JsonBody", err.(request.ErrInvalidParams)) 8408 } 8409 } 8410 if s.SingleHeader != nil { 8411 if err := s.SingleHeader.Validate(); err != nil { 8412 invalidParams.AddNested("SingleHeader", err.(request.ErrInvalidParams)) 8413 } 8414 } 8415 if s.SingleQueryArgument != nil { 8416 if err := s.SingleQueryArgument.Validate(); err != nil { 8417 invalidParams.AddNested("SingleQueryArgument", err.(request.ErrInvalidParams)) 8418 } 8419 } 8420 8421 if invalidParams.Len() > 0 { 8422 return invalidParams 8423 } 8424 return nil 8425 } 8426 8427 // SetAllQueryArguments sets the AllQueryArguments field's value. 8428 func (s *FieldToMatch) SetAllQueryArguments(v *AllQueryArguments) *FieldToMatch { 8429 s.AllQueryArguments = v 8430 return s 8431 } 8432 8433 // SetBody sets the Body field's value. 8434 func (s *FieldToMatch) SetBody(v *Body) *FieldToMatch { 8435 s.Body = v 8436 return s 8437 } 8438 8439 // SetJsonBody sets the JsonBody field's value. 8440 func (s *FieldToMatch) SetJsonBody(v *JsonBody) *FieldToMatch { 8441 s.JsonBody = v 8442 return s 8443 } 8444 8445 // SetMethod sets the Method field's value. 8446 func (s *FieldToMatch) SetMethod(v *Method) *FieldToMatch { 8447 s.Method = v 8448 return s 8449 } 8450 8451 // SetQueryString sets the QueryString field's value. 8452 func (s *FieldToMatch) SetQueryString(v *QueryString) *FieldToMatch { 8453 s.QueryString = v 8454 return s 8455 } 8456 8457 // SetSingleHeader sets the SingleHeader field's value. 8458 func (s *FieldToMatch) SetSingleHeader(v *SingleHeader) *FieldToMatch { 8459 s.SingleHeader = v 8460 return s 8461 } 8462 8463 // SetSingleQueryArgument sets the SingleQueryArgument field's value. 8464 func (s *FieldToMatch) SetSingleQueryArgument(v *SingleQueryArgument) *FieldToMatch { 8465 s.SingleQueryArgument = v 8466 return s 8467 } 8468 8469 // SetUriPath sets the UriPath field's value. 8470 func (s *FieldToMatch) SetUriPath(v *UriPath) *FieldToMatch { 8471 s.UriPath = v 8472 return s 8473 } 8474 8475 // A single logging filter, used in LoggingFilter. 8476 type Filter struct { 8477 _ struct{} `type:"structure"` 8478 8479 // How to handle logs that satisfy the filter's conditions and requirement. 8480 // 8481 // Behavior is a required field 8482 Behavior *string `type:"string" required:"true" enum:"FilterBehavior"` 8483 8484 // Match conditions for the filter. 8485 // 8486 // Conditions is a required field 8487 Conditions []*Condition `min:"1" type:"list" required:"true"` 8488 8489 // Logic to apply to the filtering conditions. You can specify that, in order 8490 // to satisfy the filter, a log must match all conditions or must match at least 8491 // one condition. 8492 // 8493 // Requirement is a required field 8494 Requirement *string `type:"string" required:"true" enum:"FilterRequirement"` 8495 } 8496 8497 // String returns the string representation. 8498 // 8499 // API parameter values that are decorated as "sensitive" in the API will not 8500 // be included in the string output. The member name will be present, but the 8501 // value will be replaced with "sensitive". 8502 func (s Filter) String() string { 8503 return awsutil.Prettify(s) 8504 } 8505 8506 // GoString returns the string representation. 8507 // 8508 // API parameter values that are decorated as "sensitive" in the API will not 8509 // be included in the string output. The member name will be present, but the 8510 // value will be replaced with "sensitive". 8511 func (s Filter) GoString() string { 8512 return s.String() 8513 } 8514 8515 // Validate inspects the fields of the type to determine if they are valid. 8516 func (s *Filter) Validate() error { 8517 invalidParams := request.ErrInvalidParams{Context: "Filter"} 8518 if s.Behavior == nil { 8519 invalidParams.Add(request.NewErrParamRequired("Behavior")) 8520 } 8521 if s.Conditions == nil { 8522 invalidParams.Add(request.NewErrParamRequired("Conditions")) 8523 } 8524 if s.Conditions != nil && len(s.Conditions) < 1 { 8525 invalidParams.Add(request.NewErrParamMinLen("Conditions", 1)) 8526 } 8527 if s.Requirement == nil { 8528 invalidParams.Add(request.NewErrParamRequired("Requirement")) 8529 } 8530 if s.Conditions != nil { 8531 for i, v := range s.Conditions { 8532 if v == nil { 8533 continue 8534 } 8535 if err := v.Validate(); err != nil { 8536 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Conditions", i), err.(request.ErrInvalidParams)) 8537 } 8538 } 8539 } 8540 8541 if invalidParams.Len() > 0 { 8542 return invalidParams 8543 } 8544 return nil 8545 } 8546 8547 // SetBehavior sets the Behavior field's value. 8548 func (s *Filter) SetBehavior(v string) *Filter { 8549 s.Behavior = &v 8550 return s 8551 } 8552 8553 // SetConditions sets the Conditions field's value. 8554 func (s *Filter) SetConditions(v []*Condition) *Filter { 8555 s.Conditions = v 8556 return s 8557 } 8558 8559 // SetRequirement sets the Requirement field's value. 8560 func (s *Filter) SetRequirement(v string) *Filter { 8561 s.Requirement = &v 8562 return s 8563 } 8564 8565 // A rule group that's defined for an Firewall Manager WAF policy. 8566 type FirewallManagerRuleGroup struct { 8567 _ struct{} `type:"structure"` 8568 8569 // The processing guidance for an Firewall Manager rule. This is like a regular 8570 // rule Statement, but it can only contain a rule group reference. 8571 // 8572 // FirewallManagerStatement is a required field 8573 FirewallManagerStatement *FirewallManagerStatement `type:"structure" required:"true"` 8574 8575 // The name of the rule group. You cannot change the name of a rule group after 8576 // you create it. 8577 // 8578 // Name is a required field 8579 Name *string `min:"1" type:"string" required:"true"` 8580 8581 // The override action to apply to the rules in a rule group. Used only for 8582 // rule statements that reference a rule group, like RuleGroupReferenceStatement 8583 // and ManagedRuleGroupStatement. 8584 // 8585 // Set the override action to none to leave the rule actions in effect. Set 8586 // it to count to only count matches, regardless of the rule action settings. 8587 // 8588 // In a Rule, you must specify either this OverrideAction setting or the rule 8589 // Action setting, but not both: 8590 // 8591 // * If the rule statement references a rule group, use this override action 8592 // setting and not the action setting. 8593 // 8594 // * If the rule statement does not reference a rule group, use the rule 8595 // action setting and not this rule override action setting. 8596 // 8597 // OverrideAction is a required field 8598 OverrideAction *OverrideAction `type:"structure" required:"true"` 8599 8600 // If you define more than one rule group in the first or last Firewall Manager 8601 // rule groups, WAF evaluates each request against the rule groups in order, 8602 // starting from the lowest priority setting. The priorities don't need to be 8603 // consecutive, but they must all be different. 8604 // 8605 // Priority is a required field 8606 Priority *int64 `type:"integer" required:"true"` 8607 8608 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 8609 // 8610 // VisibilityConfig is a required field 8611 VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` 8612 } 8613 8614 // String returns the string representation. 8615 // 8616 // API parameter values that are decorated as "sensitive" in the API will not 8617 // be included in the string output. The member name will be present, but the 8618 // value will be replaced with "sensitive". 8619 func (s FirewallManagerRuleGroup) String() string { 8620 return awsutil.Prettify(s) 8621 } 8622 8623 // GoString returns the string representation. 8624 // 8625 // API parameter values that are decorated as "sensitive" in the API will not 8626 // be included in the string output. The member name will be present, but the 8627 // value will be replaced with "sensitive". 8628 func (s FirewallManagerRuleGroup) GoString() string { 8629 return s.String() 8630 } 8631 8632 // SetFirewallManagerStatement sets the FirewallManagerStatement field's value. 8633 func (s *FirewallManagerRuleGroup) SetFirewallManagerStatement(v *FirewallManagerStatement) *FirewallManagerRuleGroup { 8634 s.FirewallManagerStatement = v 8635 return s 8636 } 8637 8638 // SetName sets the Name field's value. 8639 func (s *FirewallManagerRuleGroup) SetName(v string) *FirewallManagerRuleGroup { 8640 s.Name = &v 8641 return s 8642 } 8643 8644 // SetOverrideAction sets the OverrideAction field's value. 8645 func (s *FirewallManagerRuleGroup) SetOverrideAction(v *OverrideAction) *FirewallManagerRuleGroup { 8646 s.OverrideAction = v 8647 return s 8648 } 8649 8650 // SetPriority sets the Priority field's value. 8651 func (s *FirewallManagerRuleGroup) SetPriority(v int64) *FirewallManagerRuleGroup { 8652 s.Priority = &v 8653 return s 8654 } 8655 8656 // SetVisibilityConfig sets the VisibilityConfig field's value. 8657 func (s *FirewallManagerRuleGroup) SetVisibilityConfig(v *VisibilityConfig) *FirewallManagerRuleGroup { 8658 s.VisibilityConfig = v 8659 return s 8660 } 8661 8662 // The processing guidance for an Firewall Manager rule. This is like a regular 8663 // rule Statement, but it can only contain a rule group reference. 8664 type FirewallManagerStatement struct { 8665 _ struct{} `type:"structure"` 8666 8667 // A rule statement used to run the rules that are defined in a managed rule 8668 // group. To use this, provide the vendor name and the name of the rule group 8669 // in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups. 8670 // 8671 // You cannot nest a ManagedRuleGroupStatement, for example for use inside a 8672 // NotStatement or OrStatement. It can only be referenced as a top-level statement 8673 // within a rule. 8674 ManagedRuleGroupStatement *ManagedRuleGroupStatement `type:"structure"` 8675 8676 // A rule statement used to run the rules that are defined in a RuleGroup. To 8677 // use this, create a rule group with your rules, then provide the ARN of the 8678 // rule group in this statement. 8679 // 8680 // You cannot nest a RuleGroupReferenceStatement, for example for use inside 8681 // a NotStatement or OrStatement. You can only use a rule group reference statement 8682 // at the top level inside a web ACL. 8683 RuleGroupReferenceStatement *RuleGroupReferenceStatement `type:"structure"` 8684 } 8685 8686 // String returns the string representation. 8687 // 8688 // API parameter values that are decorated as "sensitive" in the API will not 8689 // be included in the string output. The member name will be present, but the 8690 // value will be replaced with "sensitive". 8691 func (s FirewallManagerStatement) String() string { 8692 return awsutil.Prettify(s) 8693 } 8694 8695 // GoString returns the string representation. 8696 // 8697 // API parameter values that are decorated as "sensitive" in the API will not 8698 // be included in the string output. The member name will be present, but the 8699 // value will be replaced with "sensitive". 8700 func (s FirewallManagerStatement) GoString() string { 8701 return s.String() 8702 } 8703 8704 // SetManagedRuleGroupStatement sets the ManagedRuleGroupStatement field's value. 8705 func (s *FirewallManagerStatement) SetManagedRuleGroupStatement(v *ManagedRuleGroupStatement) *FirewallManagerStatement { 8706 s.ManagedRuleGroupStatement = v 8707 return s 8708 } 8709 8710 // SetRuleGroupReferenceStatement sets the RuleGroupReferenceStatement field's value. 8711 func (s *FirewallManagerStatement) SetRuleGroupReferenceStatement(v *RuleGroupReferenceStatement) *FirewallManagerStatement { 8712 s.RuleGroupReferenceStatement = v 8713 return s 8714 } 8715 8716 // The configuration for inspecting IP addresses in an HTTP header that you 8717 // specify, instead of using the IP address that's reported by the web request 8718 // origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify 8719 // any header name. 8720 // 8721 // If the specified header isn't present in the request, WAF doesn't apply the 8722 // rule to the web request at all. 8723 // 8724 // This configuration is used for GeoMatchStatement and RateBasedStatement. 8725 // For IPSetReferenceStatement, use IPSetForwardedIPConfig instead. 8726 // 8727 // WAF only evaluates the first IP address found in the specified HTTP header. 8728 type ForwardedIPConfig struct { 8729 _ struct{} `type:"structure"` 8730 8731 // The match status to assign to the web request if the request doesn't have 8732 // a valid IP address in the specified position. 8733 // 8734 // If the specified header isn't present in the request, WAF doesn't apply the 8735 // rule to the web request at all. 8736 // 8737 // You can specify the following fallback behaviors: 8738 // 8739 // * MATCH - Treat the web request as matching the rule statement. WAF applies 8740 // the rule action to the request. 8741 // 8742 // * NO_MATCH - Treat the web request as not matching the rule statement. 8743 // 8744 // FallbackBehavior is a required field 8745 FallbackBehavior *string `type:"string" required:"true" enum:"FallbackBehavior"` 8746 8747 // The name of the HTTP header to use for the IP address. For example, to use 8748 // the X-Forwarded-For (XFF) header, set this to X-Forwarded-For. 8749 // 8750 // If the specified header isn't present in the request, WAF doesn't apply the 8751 // rule to the web request at all. 8752 // 8753 // HeaderName is a required field 8754 HeaderName *string `min:"1" type:"string" required:"true"` 8755 } 8756 8757 // String returns the string representation. 8758 // 8759 // API parameter values that are decorated as "sensitive" in the API will not 8760 // be included in the string output. The member name will be present, but the 8761 // value will be replaced with "sensitive". 8762 func (s ForwardedIPConfig) String() string { 8763 return awsutil.Prettify(s) 8764 } 8765 8766 // GoString returns the string representation. 8767 // 8768 // API parameter values that are decorated as "sensitive" in the API will not 8769 // be included in the string output. The member name will be present, but the 8770 // value will be replaced with "sensitive". 8771 func (s ForwardedIPConfig) GoString() string { 8772 return s.String() 8773 } 8774 8775 // Validate inspects the fields of the type to determine if they are valid. 8776 func (s *ForwardedIPConfig) Validate() error { 8777 invalidParams := request.ErrInvalidParams{Context: "ForwardedIPConfig"} 8778 if s.FallbackBehavior == nil { 8779 invalidParams.Add(request.NewErrParamRequired("FallbackBehavior")) 8780 } 8781 if s.HeaderName == nil { 8782 invalidParams.Add(request.NewErrParamRequired("HeaderName")) 8783 } 8784 if s.HeaderName != nil && len(*s.HeaderName) < 1 { 8785 invalidParams.Add(request.NewErrParamMinLen("HeaderName", 1)) 8786 } 8787 8788 if invalidParams.Len() > 0 { 8789 return invalidParams 8790 } 8791 return nil 8792 } 8793 8794 // SetFallbackBehavior sets the FallbackBehavior field's value. 8795 func (s *ForwardedIPConfig) SetFallbackBehavior(v string) *ForwardedIPConfig { 8796 s.FallbackBehavior = &v 8797 return s 8798 } 8799 8800 // SetHeaderName sets the HeaderName field's value. 8801 func (s *ForwardedIPConfig) SetHeaderName(v string) *ForwardedIPConfig { 8802 s.HeaderName = &v 8803 return s 8804 } 8805 8806 // A rule statement used to identify web requests based on country of origin. 8807 type GeoMatchStatement struct { 8808 _ struct{} `type:"structure"` 8809 8810 // An array of two-character country codes, for example, [ "US", "CN" ], from 8811 // the alpha-2 country ISO codes of the ISO 3166 international standard. 8812 CountryCodes []*string `min:"1" type:"list"` 8813 8814 // The configuration for inspecting IP addresses in an HTTP header that you 8815 // specify, instead of using the IP address that's reported by the web request 8816 // origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify 8817 // any header name. 8818 // 8819 // If the specified header isn't present in the request, WAF doesn't apply the 8820 // rule to the web request at all. 8821 ForwardedIPConfig *ForwardedIPConfig `type:"structure"` 8822 } 8823 8824 // String returns the string representation. 8825 // 8826 // API parameter values that are decorated as "sensitive" in the API will not 8827 // be included in the string output. The member name will be present, but the 8828 // value will be replaced with "sensitive". 8829 func (s GeoMatchStatement) String() string { 8830 return awsutil.Prettify(s) 8831 } 8832 8833 // GoString returns the string representation. 8834 // 8835 // API parameter values that are decorated as "sensitive" in the API will not 8836 // be included in the string output. The member name will be present, but the 8837 // value will be replaced with "sensitive". 8838 func (s GeoMatchStatement) GoString() string { 8839 return s.String() 8840 } 8841 8842 // Validate inspects the fields of the type to determine if they are valid. 8843 func (s *GeoMatchStatement) Validate() error { 8844 invalidParams := request.ErrInvalidParams{Context: "GeoMatchStatement"} 8845 if s.CountryCodes != nil && len(s.CountryCodes) < 1 { 8846 invalidParams.Add(request.NewErrParamMinLen("CountryCodes", 1)) 8847 } 8848 if s.ForwardedIPConfig != nil { 8849 if err := s.ForwardedIPConfig.Validate(); err != nil { 8850 invalidParams.AddNested("ForwardedIPConfig", err.(request.ErrInvalidParams)) 8851 } 8852 } 8853 8854 if invalidParams.Len() > 0 { 8855 return invalidParams 8856 } 8857 return nil 8858 } 8859 8860 // SetCountryCodes sets the CountryCodes field's value. 8861 func (s *GeoMatchStatement) SetCountryCodes(v []*string) *GeoMatchStatement { 8862 s.CountryCodes = v 8863 return s 8864 } 8865 8866 // SetForwardedIPConfig sets the ForwardedIPConfig field's value. 8867 func (s *GeoMatchStatement) SetForwardedIPConfig(v *ForwardedIPConfig) *GeoMatchStatement { 8868 s.ForwardedIPConfig = v 8869 return s 8870 } 8871 8872 type GetIPSetInput struct { 8873 _ struct{} `type:"structure"` 8874 8875 // A unique identifier for the set. This ID is returned in the responses to 8876 // create and list commands. You provide it to operations like update and delete. 8877 // 8878 // Id is a required field 8879 Id *string `min:"1" type:"string" required:"true"` 8880 8881 // The name of the IP set. You cannot change the name of an IPSet after you 8882 // create it. 8883 // 8884 // Name is a required field 8885 Name *string `min:"1" type:"string" required:"true"` 8886 8887 // Specifies whether this is for an Amazon CloudFront distribution or for a 8888 // regional application. A regional application can be an Application Load Balancer 8889 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 8890 // 8891 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 8892 // as follows: 8893 // 8894 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 8895 // --region=us-east-1. 8896 // 8897 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 8898 // 8899 // Scope is a required field 8900 Scope *string `type:"string" required:"true" enum:"Scope"` 8901 } 8902 8903 // String returns the string representation. 8904 // 8905 // API parameter values that are decorated as "sensitive" in the API will not 8906 // be included in the string output. The member name will be present, but the 8907 // value will be replaced with "sensitive". 8908 func (s GetIPSetInput) String() string { 8909 return awsutil.Prettify(s) 8910 } 8911 8912 // GoString returns the string representation. 8913 // 8914 // API parameter values that are decorated as "sensitive" in the API will not 8915 // be included in the string output. The member name will be present, but the 8916 // value will be replaced with "sensitive". 8917 func (s GetIPSetInput) GoString() string { 8918 return s.String() 8919 } 8920 8921 // Validate inspects the fields of the type to determine if they are valid. 8922 func (s *GetIPSetInput) Validate() error { 8923 invalidParams := request.ErrInvalidParams{Context: "GetIPSetInput"} 8924 if s.Id == nil { 8925 invalidParams.Add(request.NewErrParamRequired("Id")) 8926 } 8927 if s.Id != nil && len(*s.Id) < 1 { 8928 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 8929 } 8930 if s.Name == nil { 8931 invalidParams.Add(request.NewErrParamRequired("Name")) 8932 } 8933 if s.Name != nil && len(*s.Name) < 1 { 8934 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 8935 } 8936 if s.Scope == nil { 8937 invalidParams.Add(request.NewErrParamRequired("Scope")) 8938 } 8939 8940 if invalidParams.Len() > 0 { 8941 return invalidParams 8942 } 8943 return nil 8944 } 8945 8946 // SetId sets the Id field's value. 8947 func (s *GetIPSetInput) SetId(v string) *GetIPSetInput { 8948 s.Id = &v 8949 return s 8950 } 8951 8952 // SetName sets the Name field's value. 8953 func (s *GetIPSetInput) SetName(v string) *GetIPSetInput { 8954 s.Name = &v 8955 return s 8956 } 8957 8958 // SetScope sets the Scope field's value. 8959 func (s *GetIPSetInput) SetScope(v string) *GetIPSetInput { 8960 s.Scope = &v 8961 return s 8962 } 8963 8964 type GetIPSetOutput struct { 8965 _ struct{} `type:"structure"` 8966 8967 // Contains one or more IP addresses or blocks of IP addresses specified in 8968 // Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and 8969 // IPv6 CIDR ranges except for /0. For information about CIDR notation, see 8970 // the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 8971 // 8972 // WAF assigns an ARN to each IPSet that you create. To use an IP set in a rule, 8973 // you provide the ARN to the Rule statement IPSetReferenceStatement. 8974 IPSet *IPSet `type:"structure"` 8975 8976 // A token used for optimistic locking. WAF returns a token to your get and 8977 // list requests, to mark the state of the entity at the time of the request. 8978 // To make changes to the entity associated with the token, you provide the 8979 // token to operations like update and delete. WAF uses the token to ensure 8980 // that no changes have been made to the entity since you last retrieved it. 8981 // If a change has been made, the update fails with a WAFOptimisticLockException. 8982 // If this happens, perform another get, and use the new token returned by that 8983 // operation. 8984 LockToken *string `min:"1" type:"string"` 8985 } 8986 8987 // String returns the string representation. 8988 // 8989 // API parameter values that are decorated as "sensitive" in the API will not 8990 // be included in the string output. The member name will be present, but the 8991 // value will be replaced with "sensitive". 8992 func (s GetIPSetOutput) String() string { 8993 return awsutil.Prettify(s) 8994 } 8995 8996 // GoString returns the string representation. 8997 // 8998 // API parameter values that are decorated as "sensitive" in the API will not 8999 // be included in the string output. The member name will be present, but the 9000 // value will be replaced with "sensitive". 9001 func (s GetIPSetOutput) GoString() string { 9002 return s.String() 9003 } 9004 9005 // SetIPSet sets the IPSet field's value. 9006 func (s *GetIPSetOutput) SetIPSet(v *IPSet) *GetIPSetOutput { 9007 s.IPSet = v 9008 return s 9009 } 9010 9011 // SetLockToken sets the LockToken field's value. 9012 func (s *GetIPSetOutput) SetLockToken(v string) *GetIPSetOutput { 9013 s.LockToken = &v 9014 return s 9015 } 9016 9017 type GetLoggingConfigurationInput struct { 9018 _ struct{} `type:"structure"` 9019 9020 // The Amazon Resource Name (ARN) of the web ACL for which you want to get the 9021 // LoggingConfiguration. 9022 // 9023 // ResourceArn is a required field 9024 ResourceArn *string `min:"20" type:"string" required:"true"` 9025 } 9026 9027 // String returns the string representation. 9028 // 9029 // API parameter values that are decorated as "sensitive" in the API will not 9030 // be included in the string output. The member name will be present, but the 9031 // value will be replaced with "sensitive". 9032 func (s GetLoggingConfigurationInput) String() string { 9033 return awsutil.Prettify(s) 9034 } 9035 9036 // GoString returns the string representation. 9037 // 9038 // API parameter values that are decorated as "sensitive" in the API will not 9039 // be included in the string output. The member name will be present, but the 9040 // value will be replaced with "sensitive". 9041 func (s GetLoggingConfigurationInput) GoString() string { 9042 return s.String() 9043 } 9044 9045 // Validate inspects the fields of the type to determine if they are valid. 9046 func (s *GetLoggingConfigurationInput) Validate() error { 9047 invalidParams := request.ErrInvalidParams{Context: "GetLoggingConfigurationInput"} 9048 if s.ResourceArn == nil { 9049 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 9050 } 9051 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 9052 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 9053 } 9054 9055 if invalidParams.Len() > 0 { 9056 return invalidParams 9057 } 9058 return nil 9059 } 9060 9061 // SetResourceArn sets the ResourceArn field's value. 9062 func (s *GetLoggingConfigurationInput) SetResourceArn(v string) *GetLoggingConfigurationInput { 9063 s.ResourceArn = &v 9064 return s 9065 } 9066 9067 type GetLoggingConfigurationOutput struct { 9068 _ struct{} `type:"structure"` 9069 9070 // The LoggingConfiguration for the specified web ACL. 9071 LoggingConfiguration *LoggingConfiguration `type:"structure"` 9072 } 9073 9074 // String returns the string representation. 9075 // 9076 // API parameter values that are decorated as "sensitive" in the API will not 9077 // be included in the string output. The member name will be present, but the 9078 // value will be replaced with "sensitive". 9079 func (s GetLoggingConfigurationOutput) String() string { 9080 return awsutil.Prettify(s) 9081 } 9082 9083 // GoString returns the string representation. 9084 // 9085 // API parameter values that are decorated as "sensitive" in the API will not 9086 // be included in the string output. The member name will be present, but the 9087 // value will be replaced with "sensitive". 9088 func (s GetLoggingConfigurationOutput) GoString() string { 9089 return s.String() 9090 } 9091 9092 // SetLoggingConfiguration sets the LoggingConfiguration field's value. 9093 func (s *GetLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *GetLoggingConfigurationOutput { 9094 s.LoggingConfiguration = v 9095 return s 9096 } 9097 9098 type GetManagedRuleSetInput struct { 9099 _ struct{} `type:"structure"` 9100 9101 // A unique identifier for the managed rule set. The ID is returned in the responses 9102 // to commands like list. You provide it to operations like get and update. 9103 // 9104 // Id is a required field 9105 Id *string `min:"1" type:"string" required:"true"` 9106 9107 // The name of the managed rule set. You use this, along with the rule set ID, 9108 // to identify the rule set. 9109 // 9110 // This name is assigned to the corresponding managed rule group, which your 9111 // customers can access and use. 9112 // 9113 // Name is a required field 9114 Name *string `min:"1" type:"string" required:"true"` 9115 9116 // Specifies whether this is for an Amazon CloudFront distribution or for a 9117 // regional application. A regional application can be an Application Load Balancer 9118 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 9119 // 9120 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 9121 // as follows: 9122 // 9123 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 9124 // --region=us-east-1. 9125 // 9126 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 9127 // 9128 // Scope is a required field 9129 Scope *string `type:"string" required:"true" enum:"Scope"` 9130 } 9131 9132 // String returns the string representation. 9133 // 9134 // API parameter values that are decorated as "sensitive" in the API will not 9135 // be included in the string output. The member name will be present, but the 9136 // value will be replaced with "sensitive". 9137 func (s GetManagedRuleSetInput) String() string { 9138 return awsutil.Prettify(s) 9139 } 9140 9141 // GoString returns the string representation. 9142 // 9143 // API parameter values that are decorated as "sensitive" in the API will not 9144 // be included in the string output. The member name will be present, but the 9145 // value will be replaced with "sensitive". 9146 func (s GetManagedRuleSetInput) GoString() string { 9147 return s.String() 9148 } 9149 9150 // Validate inspects the fields of the type to determine if they are valid. 9151 func (s *GetManagedRuleSetInput) Validate() error { 9152 invalidParams := request.ErrInvalidParams{Context: "GetManagedRuleSetInput"} 9153 if s.Id == nil { 9154 invalidParams.Add(request.NewErrParamRequired("Id")) 9155 } 9156 if s.Id != nil && len(*s.Id) < 1 { 9157 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 9158 } 9159 if s.Name == nil { 9160 invalidParams.Add(request.NewErrParamRequired("Name")) 9161 } 9162 if s.Name != nil && len(*s.Name) < 1 { 9163 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 9164 } 9165 if s.Scope == nil { 9166 invalidParams.Add(request.NewErrParamRequired("Scope")) 9167 } 9168 9169 if invalidParams.Len() > 0 { 9170 return invalidParams 9171 } 9172 return nil 9173 } 9174 9175 // SetId sets the Id field's value. 9176 func (s *GetManagedRuleSetInput) SetId(v string) *GetManagedRuleSetInput { 9177 s.Id = &v 9178 return s 9179 } 9180 9181 // SetName sets the Name field's value. 9182 func (s *GetManagedRuleSetInput) SetName(v string) *GetManagedRuleSetInput { 9183 s.Name = &v 9184 return s 9185 } 9186 9187 // SetScope sets the Scope field's value. 9188 func (s *GetManagedRuleSetInput) SetScope(v string) *GetManagedRuleSetInput { 9189 s.Scope = &v 9190 return s 9191 } 9192 9193 type GetManagedRuleSetOutput struct { 9194 _ struct{} `type:"structure"` 9195 9196 // A token used for optimistic locking. WAF returns a token to your get and 9197 // list requests, to mark the state of the entity at the time of the request. 9198 // To make changes to the entity associated with the token, you provide the 9199 // token to operations like update and delete. WAF uses the token to ensure 9200 // that no changes have been made to the entity since you last retrieved it. 9201 // If a change has been made, the update fails with a WAFOptimisticLockException. 9202 // If this happens, perform another get, and use the new token returned by that 9203 // operation. 9204 LockToken *string `min:"1" type:"string"` 9205 9206 // The managed rule set that you requested. 9207 ManagedRuleSet *ManagedRuleSet `type:"structure"` 9208 } 9209 9210 // String returns the string representation. 9211 // 9212 // API parameter values that are decorated as "sensitive" in the API will not 9213 // be included in the string output. The member name will be present, but the 9214 // value will be replaced with "sensitive". 9215 func (s GetManagedRuleSetOutput) String() string { 9216 return awsutil.Prettify(s) 9217 } 9218 9219 // GoString returns the string representation. 9220 // 9221 // API parameter values that are decorated as "sensitive" in the API will not 9222 // be included in the string output. The member name will be present, but the 9223 // value will be replaced with "sensitive". 9224 func (s GetManagedRuleSetOutput) GoString() string { 9225 return s.String() 9226 } 9227 9228 // SetLockToken sets the LockToken field's value. 9229 func (s *GetManagedRuleSetOutput) SetLockToken(v string) *GetManagedRuleSetOutput { 9230 s.LockToken = &v 9231 return s 9232 } 9233 9234 // SetManagedRuleSet sets the ManagedRuleSet field's value. 9235 func (s *GetManagedRuleSetOutput) SetManagedRuleSet(v *ManagedRuleSet) *GetManagedRuleSetOutput { 9236 s.ManagedRuleSet = v 9237 return s 9238 } 9239 9240 type GetPermissionPolicyInput struct { 9241 _ struct{} `type:"structure"` 9242 9243 // The Amazon Resource Name (ARN) of the rule group for which you want to get 9244 // the policy. 9245 // 9246 // ResourceArn is a required field 9247 ResourceArn *string `min:"20" type:"string" required:"true"` 9248 } 9249 9250 // String returns the string representation. 9251 // 9252 // API parameter values that are decorated as "sensitive" in the API will not 9253 // be included in the string output. The member name will be present, but the 9254 // value will be replaced with "sensitive". 9255 func (s GetPermissionPolicyInput) String() string { 9256 return awsutil.Prettify(s) 9257 } 9258 9259 // GoString returns the string representation. 9260 // 9261 // API parameter values that are decorated as "sensitive" in the API will not 9262 // be included in the string output. The member name will be present, but the 9263 // value will be replaced with "sensitive". 9264 func (s GetPermissionPolicyInput) GoString() string { 9265 return s.String() 9266 } 9267 9268 // Validate inspects the fields of the type to determine if they are valid. 9269 func (s *GetPermissionPolicyInput) Validate() error { 9270 invalidParams := request.ErrInvalidParams{Context: "GetPermissionPolicyInput"} 9271 if s.ResourceArn == nil { 9272 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 9273 } 9274 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 9275 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 9276 } 9277 9278 if invalidParams.Len() > 0 { 9279 return invalidParams 9280 } 9281 return nil 9282 } 9283 9284 // SetResourceArn sets the ResourceArn field's value. 9285 func (s *GetPermissionPolicyInput) SetResourceArn(v string) *GetPermissionPolicyInput { 9286 s.ResourceArn = &v 9287 return s 9288 } 9289 9290 type GetPermissionPolicyOutput struct { 9291 _ struct{} `type:"structure"` 9292 9293 // The IAM policy that is attached to the specified rule group. 9294 Policy *string `min:"1" type:"string"` 9295 } 9296 9297 // String returns the string representation. 9298 // 9299 // API parameter values that are decorated as "sensitive" in the API will not 9300 // be included in the string output. The member name will be present, but the 9301 // value will be replaced with "sensitive". 9302 func (s GetPermissionPolicyOutput) String() string { 9303 return awsutil.Prettify(s) 9304 } 9305 9306 // GoString returns the string representation. 9307 // 9308 // API parameter values that are decorated as "sensitive" in the API will not 9309 // be included in the string output. The member name will be present, but the 9310 // value will be replaced with "sensitive". 9311 func (s GetPermissionPolicyOutput) GoString() string { 9312 return s.String() 9313 } 9314 9315 // SetPolicy sets the Policy field's value. 9316 func (s *GetPermissionPolicyOutput) SetPolicy(v string) *GetPermissionPolicyOutput { 9317 s.Policy = &v 9318 return s 9319 } 9320 9321 type GetRateBasedStatementManagedKeysInput struct { 9322 _ struct{} `type:"structure"` 9323 9324 // The name of the rule group reference statement in your web ACL. This is required 9325 // only when you have the rate-based rule nested inside a rule group. 9326 RuleGroupRuleName *string `min:"1" type:"string"` 9327 9328 // The name of the rate-based rule to get the keys for. If you have the rule 9329 // defined inside a rule group that you're using in your web ACL, also provide 9330 // the name of the rule group reference statement in the request parameter RuleGroupRuleName. 9331 // 9332 // RuleName is a required field 9333 RuleName *string `min:"1" type:"string" required:"true"` 9334 9335 // Specifies whether this is for an Amazon CloudFront distribution or for a 9336 // regional application. A regional application can be an Application Load Balancer 9337 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 9338 // 9339 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 9340 // as follows: 9341 // 9342 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 9343 // --region=us-east-1. 9344 // 9345 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 9346 // 9347 // Scope is a required field 9348 Scope *string `type:"string" required:"true" enum:"Scope"` 9349 9350 // The unique identifier for the web ACL. This ID is returned in the responses 9351 // to create and list commands. You provide it to operations like update and 9352 // delete. 9353 // 9354 // WebACLId is a required field 9355 WebACLId *string `min:"1" type:"string" required:"true"` 9356 9357 // The name of the web ACL. You cannot change the name of a web ACL after you 9358 // create it. 9359 // 9360 // WebACLName is a required field 9361 WebACLName *string `min:"1" type:"string" required:"true"` 9362 } 9363 9364 // String returns the string representation. 9365 // 9366 // API parameter values that are decorated as "sensitive" in the API will not 9367 // be included in the string output. The member name will be present, but the 9368 // value will be replaced with "sensitive". 9369 func (s GetRateBasedStatementManagedKeysInput) String() string { 9370 return awsutil.Prettify(s) 9371 } 9372 9373 // GoString returns the string representation. 9374 // 9375 // API parameter values that are decorated as "sensitive" in the API will not 9376 // be included in the string output. The member name will be present, but the 9377 // value will be replaced with "sensitive". 9378 func (s GetRateBasedStatementManagedKeysInput) GoString() string { 9379 return s.String() 9380 } 9381 9382 // Validate inspects the fields of the type to determine if they are valid. 9383 func (s *GetRateBasedStatementManagedKeysInput) Validate() error { 9384 invalidParams := request.ErrInvalidParams{Context: "GetRateBasedStatementManagedKeysInput"} 9385 if s.RuleGroupRuleName != nil && len(*s.RuleGroupRuleName) < 1 { 9386 invalidParams.Add(request.NewErrParamMinLen("RuleGroupRuleName", 1)) 9387 } 9388 if s.RuleName == nil { 9389 invalidParams.Add(request.NewErrParamRequired("RuleName")) 9390 } 9391 if s.RuleName != nil && len(*s.RuleName) < 1 { 9392 invalidParams.Add(request.NewErrParamMinLen("RuleName", 1)) 9393 } 9394 if s.Scope == nil { 9395 invalidParams.Add(request.NewErrParamRequired("Scope")) 9396 } 9397 if s.WebACLId == nil { 9398 invalidParams.Add(request.NewErrParamRequired("WebACLId")) 9399 } 9400 if s.WebACLId != nil && len(*s.WebACLId) < 1 { 9401 invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1)) 9402 } 9403 if s.WebACLName == nil { 9404 invalidParams.Add(request.NewErrParamRequired("WebACLName")) 9405 } 9406 if s.WebACLName != nil && len(*s.WebACLName) < 1 { 9407 invalidParams.Add(request.NewErrParamMinLen("WebACLName", 1)) 9408 } 9409 9410 if invalidParams.Len() > 0 { 9411 return invalidParams 9412 } 9413 return nil 9414 } 9415 9416 // SetRuleGroupRuleName sets the RuleGroupRuleName field's value. 9417 func (s *GetRateBasedStatementManagedKeysInput) SetRuleGroupRuleName(v string) *GetRateBasedStatementManagedKeysInput { 9418 s.RuleGroupRuleName = &v 9419 return s 9420 } 9421 9422 // SetRuleName sets the RuleName field's value. 9423 func (s *GetRateBasedStatementManagedKeysInput) SetRuleName(v string) *GetRateBasedStatementManagedKeysInput { 9424 s.RuleName = &v 9425 return s 9426 } 9427 9428 // SetScope sets the Scope field's value. 9429 func (s *GetRateBasedStatementManagedKeysInput) SetScope(v string) *GetRateBasedStatementManagedKeysInput { 9430 s.Scope = &v 9431 return s 9432 } 9433 9434 // SetWebACLId sets the WebACLId field's value. 9435 func (s *GetRateBasedStatementManagedKeysInput) SetWebACLId(v string) *GetRateBasedStatementManagedKeysInput { 9436 s.WebACLId = &v 9437 return s 9438 } 9439 9440 // SetWebACLName sets the WebACLName field's value. 9441 func (s *GetRateBasedStatementManagedKeysInput) SetWebACLName(v string) *GetRateBasedStatementManagedKeysInput { 9442 s.WebACLName = &v 9443 return s 9444 } 9445 9446 type GetRateBasedStatementManagedKeysOutput struct { 9447 _ struct{} `type:"structure"` 9448 9449 // The keys that are of Internet Protocol version 4 (IPv4). 9450 ManagedKeysIPV4 *RateBasedStatementManagedKeysIPSet `type:"structure"` 9451 9452 // The keys that are of Internet Protocol version 6 (IPv6). 9453 ManagedKeysIPV6 *RateBasedStatementManagedKeysIPSet `type:"structure"` 9454 } 9455 9456 // String returns the string representation. 9457 // 9458 // API parameter values that are decorated as "sensitive" in the API will not 9459 // be included in the string output. The member name will be present, but the 9460 // value will be replaced with "sensitive". 9461 func (s GetRateBasedStatementManagedKeysOutput) String() string { 9462 return awsutil.Prettify(s) 9463 } 9464 9465 // GoString returns the string representation. 9466 // 9467 // API parameter values that are decorated as "sensitive" in the API will not 9468 // be included in the string output. The member name will be present, but the 9469 // value will be replaced with "sensitive". 9470 func (s GetRateBasedStatementManagedKeysOutput) GoString() string { 9471 return s.String() 9472 } 9473 9474 // SetManagedKeysIPV4 sets the ManagedKeysIPV4 field's value. 9475 func (s *GetRateBasedStatementManagedKeysOutput) SetManagedKeysIPV4(v *RateBasedStatementManagedKeysIPSet) *GetRateBasedStatementManagedKeysOutput { 9476 s.ManagedKeysIPV4 = v 9477 return s 9478 } 9479 9480 // SetManagedKeysIPV6 sets the ManagedKeysIPV6 field's value. 9481 func (s *GetRateBasedStatementManagedKeysOutput) SetManagedKeysIPV6(v *RateBasedStatementManagedKeysIPSet) *GetRateBasedStatementManagedKeysOutput { 9482 s.ManagedKeysIPV6 = v 9483 return s 9484 } 9485 9486 type GetRegexPatternSetInput struct { 9487 _ struct{} `type:"structure"` 9488 9489 // A unique identifier for the set. This ID is returned in the responses to 9490 // create and list commands. You provide it to operations like update and delete. 9491 // 9492 // Id is a required field 9493 Id *string `min:"1" type:"string" required:"true"` 9494 9495 // The name of the set. You cannot change the name after you create the set. 9496 // 9497 // Name is a required field 9498 Name *string `min:"1" type:"string" required:"true"` 9499 9500 // Specifies whether this is for an Amazon CloudFront distribution or for a 9501 // regional application. A regional application can be an Application Load Balancer 9502 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 9503 // 9504 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 9505 // as follows: 9506 // 9507 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 9508 // --region=us-east-1. 9509 // 9510 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 9511 // 9512 // Scope is a required field 9513 Scope *string `type:"string" required:"true" enum:"Scope"` 9514 } 9515 9516 // String returns the string representation. 9517 // 9518 // API parameter values that are decorated as "sensitive" in the API will not 9519 // be included in the string output. The member name will be present, but the 9520 // value will be replaced with "sensitive". 9521 func (s GetRegexPatternSetInput) String() string { 9522 return awsutil.Prettify(s) 9523 } 9524 9525 // GoString returns the string representation. 9526 // 9527 // API parameter values that are decorated as "sensitive" in the API will not 9528 // be included in the string output. The member name will be present, but the 9529 // value will be replaced with "sensitive". 9530 func (s GetRegexPatternSetInput) GoString() string { 9531 return s.String() 9532 } 9533 9534 // Validate inspects the fields of the type to determine if they are valid. 9535 func (s *GetRegexPatternSetInput) Validate() error { 9536 invalidParams := request.ErrInvalidParams{Context: "GetRegexPatternSetInput"} 9537 if s.Id == nil { 9538 invalidParams.Add(request.NewErrParamRequired("Id")) 9539 } 9540 if s.Id != nil && len(*s.Id) < 1 { 9541 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 9542 } 9543 if s.Name == nil { 9544 invalidParams.Add(request.NewErrParamRequired("Name")) 9545 } 9546 if s.Name != nil && len(*s.Name) < 1 { 9547 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 9548 } 9549 if s.Scope == nil { 9550 invalidParams.Add(request.NewErrParamRequired("Scope")) 9551 } 9552 9553 if invalidParams.Len() > 0 { 9554 return invalidParams 9555 } 9556 return nil 9557 } 9558 9559 // SetId sets the Id field's value. 9560 func (s *GetRegexPatternSetInput) SetId(v string) *GetRegexPatternSetInput { 9561 s.Id = &v 9562 return s 9563 } 9564 9565 // SetName sets the Name field's value. 9566 func (s *GetRegexPatternSetInput) SetName(v string) *GetRegexPatternSetInput { 9567 s.Name = &v 9568 return s 9569 } 9570 9571 // SetScope sets the Scope field's value. 9572 func (s *GetRegexPatternSetInput) SetScope(v string) *GetRegexPatternSetInput { 9573 s.Scope = &v 9574 return s 9575 } 9576 9577 type GetRegexPatternSetOutput struct { 9578 _ struct{} `type:"structure"` 9579 9580 // A token used for optimistic locking. WAF returns a token to your get and 9581 // list requests, to mark the state of the entity at the time of the request. 9582 // To make changes to the entity associated with the token, you provide the 9583 // token to operations like update and delete. WAF uses the token to ensure 9584 // that no changes have been made to the entity since you last retrieved it. 9585 // If a change has been made, the update fails with a WAFOptimisticLockException. 9586 // If this happens, perform another get, and use the new token returned by that 9587 // operation. 9588 LockToken *string `min:"1" type:"string"` 9589 9590 // Contains one or more regular expressions. 9591 // 9592 // WAF assigns an ARN to each RegexPatternSet that you create. To use a set 9593 // in a rule, you provide the ARN to the Rule statement RegexPatternSetReferenceStatement. 9594 RegexPatternSet *RegexPatternSet `type:"structure"` 9595 } 9596 9597 // String returns the string representation. 9598 // 9599 // API parameter values that are decorated as "sensitive" in the API will not 9600 // be included in the string output. The member name will be present, but the 9601 // value will be replaced with "sensitive". 9602 func (s GetRegexPatternSetOutput) String() string { 9603 return awsutil.Prettify(s) 9604 } 9605 9606 // GoString returns the string representation. 9607 // 9608 // API parameter values that are decorated as "sensitive" in the API will not 9609 // be included in the string output. The member name will be present, but the 9610 // value will be replaced with "sensitive". 9611 func (s GetRegexPatternSetOutput) GoString() string { 9612 return s.String() 9613 } 9614 9615 // SetLockToken sets the LockToken field's value. 9616 func (s *GetRegexPatternSetOutput) SetLockToken(v string) *GetRegexPatternSetOutput { 9617 s.LockToken = &v 9618 return s 9619 } 9620 9621 // SetRegexPatternSet sets the RegexPatternSet field's value. 9622 func (s *GetRegexPatternSetOutput) SetRegexPatternSet(v *RegexPatternSet) *GetRegexPatternSetOutput { 9623 s.RegexPatternSet = v 9624 return s 9625 } 9626 9627 type GetRuleGroupInput struct { 9628 _ struct{} `type:"structure"` 9629 9630 // The Amazon Resource Name (ARN) of the entity. 9631 ARN *string `min:"20" type:"string"` 9632 9633 // A unique identifier for the rule group. This ID is returned in the responses 9634 // to create and list commands. You provide it to operations like update and 9635 // delete. 9636 Id *string `min:"1" type:"string"` 9637 9638 // The name of the rule group. You cannot change the name of a rule group after 9639 // you create it. 9640 Name *string `min:"1" type:"string"` 9641 9642 // Specifies whether this is for an Amazon CloudFront distribution or for a 9643 // regional application. A regional application can be an Application Load Balancer 9644 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 9645 // 9646 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 9647 // as follows: 9648 // 9649 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 9650 // --region=us-east-1. 9651 // 9652 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 9653 Scope *string `type:"string" enum:"Scope"` 9654 } 9655 9656 // String returns the string representation. 9657 // 9658 // API parameter values that are decorated as "sensitive" in the API will not 9659 // be included in the string output. The member name will be present, but the 9660 // value will be replaced with "sensitive". 9661 func (s GetRuleGroupInput) String() string { 9662 return awsutil.Prettify(s) 9663 } 9664 9665 // GoString returns the string representation. 9666 // 9667 // API parameter values that are decorated as "sensitive" in the API will not 9668 // be included in the string output. The member name will be present, but the 9669 // value will be replaced with "sensitive". 9670 func (s GetRuleGroupInput) GoString() string { 9671 return s.String() 9672 } 9673 9674 // Validate inspects the fields of the type to determine if they are valid. 9675 func (s *GetRuleGroupInput) Validate() error { 9676 invalidParams := request.ErrInvalidParams{Context: "GetRuleGroupInput"} 9677 if s.ARN != nil && len(*s.ARN) < 20 { 9678 invalidParams.Add(request.NewErrParamMinLen("ARN", 20)) 9679 } 9680 if s.Id != nil && len(*s.Id) < 1 { 9681 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 9682 } 9683 if s.Name != nil && len(*s.Name) < 1 { 9684 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 9685 } 9686 9687 if invalidParams.Len() > 0 { 9688 return invalidParams 9689 } 9690 return nil 9691 } 9692 9693 // SetARN sets the ARN field's value. 9694 func (s *GetRuleGroupInput) SetARN(v string) *GetRuleGroupInput { 9695 s.ARN = &v 9696 return s 9697 } 9698 9699 // SetId sets the Id field's value. 9700 func (s *GetRuleGroupInput) SetId(v string) *GetRuleGroupInput { 9701 s.Id = &v 9702 return s 9703 } 9704 9705 // SetName sets the Name field's value. 9706 func (s *GetRuleGroupInput) SetName(v string) *GetRuleGroupInput { 9707 s.Name = &v 9708 return s 9709 } 9710 9711 // SetScope sets the Scope field's value. 9712 func (s *GetRuleGroupInput) SetScope(v string) *GetRuleGroupInput { 9713 s.Scope = &v 9714 return s 9715 } 9716 9717 type GetRuleGroupOutput struct { 9718 _ struct{} `type:"structure"` 9719 9720 // A token used for optimistic locking. WAF returns a token to your get and 9721 // list requests, to mark the state of the entity at the time of the request. 9722 // To make changes to the entity associated with the token, you provide the 9723 // token to operations like update and delete. WAF uses the token to ensure 9724 // that no changes have been made to the entity since you last retrieved it. 9725 // If a change has been made, the update fails with a WAFOptimisticLockException. 9726 // If this happens, perform another get, and use the new token returned by that 9727 // operation. 9728 LockToken *string `min:"1" type:"string"` 9729 9730 // A rule group defines a collection of rules to inspect and control web requests 9731 // that you can use in a WebACL. When you create a rule group, you define an 9732 // immutable capacity limit. If you update a rule group, you must stay within 9733 // the capacity. This allows others to reuse the rule group with confidence 9734 // in its capacity requirements. 9735 RuleGroup *RuleGroup `type:"structure"` 9736 } 9737 9738 // String returns the string representation. 9739 // 9740 // API parameter values that are decorated as "sensitive" in the API will not 9741 // be included in the string output. The member name will be present, but the 9742 // value will be replaced with "sensitive". 9743 func (s GetRuleGroupOutput) String() string { 9744 return awsutil.Prettify(s) 9745 } 9746 9747 // GoString returns the string representation. 9748 // 9749 // API parameter values that are decorated as "sensitive" in the API will not 9750 // be included in the string output. The member name will be present, but the 9751 // value will be replaced with "sensitive". 9752 func (s GetRuleGroupOutput) GoString() string { 9753 return s.String() 9754 } 9755 9756 // SetLockToken sets the LockToken field's value. 9757 func (s *GetRuleGroupOutput) SetLockToken(v string) *GetRuleGroupOutput { 9758 s.LockToken = &v 9759 return s 9760 } 9761 9762 // SetRuleGroup sets the RuleGroup field's value. 9763 func (s *GetRuleGroupOutput) SetRuleGroup(v *RuleGroup) *GetRuleGroupOutput { 9764 s.RuleGroup = v 9765 return s 9766 } 9767 9768 type GetSampledRequestsInput struct { 9769 _ struct{} `type:"structure"` 9770 9771 // The number of requests that you want WAF to return from among the first 5,000 9772 // requests that your Amazon Web Services resource received during the time 9773 // range. If your resource received fewer requests than the value of MaxItems, 9774 // GetSampledRequests returns information about all of them. 9775 // 9776 // MaxItems is a required field 9777 MaxItems *int64 `min:"1" type:"long" required:"true"` 9778 9779 // The metric name assigned to the Rule or RuleGroup for which you want a sample 9780 // of requests. 9781 // 9782 // RuleMetricName is a required field 9783 RuleMetricName *string `min:"1" type:"string" required:"true"` 9784 9785 // Specifies whether this is for an Amazon CloudFront distribution or for a 9786 // regional application. A regional application can be an Application Load Balancer 9787 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 9788 // 9789 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 9790 // as follows: 9791 // 9792 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 9793 // --region=us-east-1. 9794 // 9795 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 9796 // 9797 // Scope is a required field 9798 Scope *string `type:"string" required:"true" enum:"Scope"` 9799 9800 // The start date and time and the end date and time of the range for which 9801 // you want GetSampledRequests to return a sample of requests. You must specify 9802 // the times in Coordinated Universal Time (UTC) format. UTC format includes 9803 // the special designator, Z. For example, "2016-09-27T14:50Z". You can specify 9804 // any time range in the previous three hours. If you specify a start time that's 9805 // earlier than three hours ago, WAF sets it to three hours ago. 9806 // 9807 // TimeWindow is a required field 9808 TimeWindow *TimeWindow `type:"structure" required:"true"` 9809 9810 // The Amazon resource name (ARN) of the WebACL for which you want a sample 9811 // of requests. 9812 // 9813 // WebAclArn is a required field 9814 WebAclArn *string `min:"20" type:"string" required:"true"` 9815 } 9816 9817 // String returns the string representation. 9818 // 9819 // API parameter values that are decorated as "sensitive" in the API will not 9820 // be included in the string output. The member name will be present, but the 9821 // value will be replaced with "sensitive". 9822 func (s GetSampledRequestsInput) String() string { 9823 return awsutil.Prettify(s) 9824 } 9825 9826 // GoString returns the string representation. 9827 // 9828 // API parameter values that are decorated as "sensitive" in the API will not 9829 // be included in the string output. The member name will be present, but the 9830 // value will be replaced with "sensitive". 9831 func (s GetSampledRequestsInput) GoString() string { 9832 return s.String() 9833 } 9834 9835 // Validate inspects the fields of the type to determine if they are valid. 9836 func (s *GetSampledRequestsInput) Validate() error { 9837 invalidParams := request.ErrInvalidParams{Context: "GetSampledRequestsInput"} 9838 if s.MaxItems == nil { 9839 invalidParams.Add(request.NewErrParamRequired("MaxItems")) 9840 } 9841 if s.MaxItems != nil && *s.MaxItems < 1 { 9842 invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1)) 9843 } 9844 if s.RuleMetricName == nil { 9845 invalidParams.Add(request.NewErrParamRequired("RuleMetricName")) 9846 } 9847 if s.RuleMetricName != nil && len(*s.RuleMetricName) < 1 { 9848 invalidParams.Add(request.NewErrParamMinLen("RuleMetricName", 1)) 9849 } 9850 if s.Scope == nil { 9851 invalidParams.Add(request.NewErrParamRequired("Scope")) 9852 } 9853 if s.TimeWindow == nil { 9854 invalidParams.Add(request.NewErrParamRequired("TimeWindow")) 9855 } 9856 if s.WebAclArn == nil { 9857 invalidParams.Add(request.NewErrParamRequired("WebAclArn")) 9858 } 9859 if s.WebAclArn != nil && len(*s.WebAclArn) < 20 { 9860 invalidParams.Add(request.NewErrParamMinLen("WebAclArn", 20)) 9861 } 9862 if s.TimeWindow != nil { 9863 if err := s.TimeWindow.Validate(); err != nil { 9864 invalidParams.AddNested("TimeWindow", err.(request.ErrInvalidParams)) 9865 } 9866 } 9867 9868 if invalidParams.Len() > 0 { 9869 return invalidParams 9870 } 9871 return nil 9872 } 9873 9874 // SetMaxItems sets the MaxItems field's value. 9875 func (s *GetSampledRequestsInput) SetMaxItems(v int64) *GetSampledRequestsInput { 9876 s.MaxItems = &v 9877 return s 9878 } 9879 9880 // SetRuleMetricName sets the RuleMetricName field's value. 9881 func (s *GetSampledRequestsInput) SetRuleMetricName(v string) *GetSampledRequestsInput { 9882 s.RuleMetricName = &v 9883 return s 9884 } 9885 9886 // SetScope sets the Scope field's value. 9887 func (s *GetSampledRequestsInput) SetScope(v string) *GetSampledRequestsInput { 9888 s.Scope = &v 9889 return s 9890 } 9891 9892 // SetTimeWindow sets the TimeWindow field's value. 9893 func (s *GetSampledRequestsInput) SetTimeWindow(v *TimeWindow) *GetSampledRequestsInput { 9894 s.TimeWindow = v 9895 return s 9896 } 9897 9898 // SetWebAclArn sets the WebAclArn field's value. 9899 func (s *GetSampledRequestsInput) SetWebAclArn(v string) *GetSampledRequestsInput { 9900 s.WebAclArn = &v 9901 return s 9902 } 9903 9904 type GetSampledRequestsOutput struct { 9905 _ struct{} `type:"structure"` 9906 9907 // The total number of requests from which GetSampledRequests got a sample of 9908 // MaxItems requests. If PopulationSize is less than MaxItems, the sample includes 9909 // every request that your Amazon Web Services resource received during the 9910 // specified time range. 9911 PopulationSize *int64 `type:"long"` 9912 9913 // A complex type that contains detailed information about each of the requests 9914 // in the sample. 9915 SampledRequests []*SampledHTTPRequest `type:"list"` 9916 9917 // Usually, TimeWindow is the time range that you specified in the GetSampledRequests 9918 // request. However, if your Amazon Web Services resource received more than 9919 // 5,000 requests during the time range that you specified in the request, GetSampledRequests 9920 // returns the time range for the first 5,000 requests. Times are in Coordinated 9921 // Universal Time (UTC) format. 9922 TimeWindow *TimeWindow `type:"structure"` 9923 } 9924 9925 // String returns the string representation. 9926 // 9927 // API parameter values that are decorated as "sensitive" in the API will not 9928 // be included in the string output. The member name will be present, but the 9929 // value will be replaced with "sensitive". 9930 func (s GetSampledRequestsOutput) String() string { 9931 return awsutil.Prettify(s) 9932 } 9933 9934 // GoString returns the string representation. 9935 // 9936 // API parameter values that are decorated as "sensitive" in the API will not 9937 // be included in the string output. The member name will be present, but the 9938 // value will be replaced with "sensitive". 9939 func (s GetSampledRequestsOutput) GoString() string { 9940 return s.String() 9941 } 9942 9943 // SetPopulationSize sets the PopulationSize field's value. 9944 func (s *GetSampledRequestsOutput) SetPopulationSize(v int64) *GetSampledRequestsOutput { 9945 s.PopulationSize = &v 9946 return s 9947 } 9948 9949 // SetSampledRequests sets the SampledRequests field's value. 9950 func (s *GetSampledRequestsOutput) SetSampledRequests(v []*SampledHTTPRequest) *GetSampledRequestsOutput { 9951 s.SampledRequests = v 9952 return s 9953 } 9954 9955 // SetTimeWindow sets the TimeWindow field's value. 9956 func (s *GetSampledRequestsOutput) SetTimeWindow(v *TimeWindow) *GetSampledRequestsOutput { 9957 s.TimeWindow = v 9958 return s 9959 } 9960 9961 type GetWebACLForResourceInput struct { 9962 _ struct{} `type:"structure"` 9963 9964 // The ARN (Amazon Resource Name) of the resource. 9965 // 9966 // ResourceArn is a required field 9967 ResourceArn *string `min:"20" type:"string" required:"true"` 9968 } 9969 9970 // String returns the string representation. 9971 // 9972 // API parameter values that are decorated as "sensitive" in the API will not 9973 // be included in the string output. The member name will be present, but the 9974 // value will be replaced with "sensitive". 9975 func (s GetWebACLForResourceInput) String() string { 9976 return awsutil.Prettify(s) 9977 } 9978 9979 // GoString returns the string representation. 9980 // 9981 // API parameter values that are decorated as "sensitive" in the API will not 9982 // be included in the string output. The member name will be present, but the 9983 // value will be replaced with "sensitive". 9984 func (s GetWebACLForResourceInput) GoString() string { 9985 return s.String() 9986 } 9987 9988 // Validate inspects the fields of the type to determine if they are valid. 9989 func (s *GetWebACLForResourceInput) Validate() error { 9990 invalidParams := request.ErrInvalidParams{Context: "GetWebACLForResourceInput"} 9991 if s.ResourceArn == nil { 9992 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 9993 } 9994 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 9995 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 9996 } 9997 9998 if invalidParams.Len() > 0 { 9999 return invalidParams 10000 } 10001 return nil 10002 } 10003 10004 // SetResourceArn sets the ResourceArn field's value. 10005 func (s *GetWebACLForResourceInput) SetResourceArn(v string) *GetWebACLForResourceInput { 10006 s.ResourceArn = &v 10007 return s 10008 } 10009 10010 type GetWebACLForResourceOutput struct { 10011 _ struct{} `type:"structure"` 10012 10013 // The web ACL that is associated with the resource. If there is no associated 10014 // resource, WAF returns a null web ACL. 10015 WebACL *WebACL `type:"structure"` 10016 } 10017 10018 // String returns the string representation. 10019 // 10020 // API parameter values that are decorated as "sensitive" in the API will not 10021 // be included in the string output. The member name will be present, but the 10022 // value will be replaced with "sensitive". 10023 func (s GetWebACLForResourceOutput) String() string { 10024 return awsutil.Prettify(s) 10025 } 10026 10027 // GoString returns the string representation. 10028 // 10029 // API parameter values that are decorated as "sensitive" in the API will not 10030 // be included in the string output. The member name will be present, but the 10031 // value will be replaced with "sensitive". 10032 func (s GetWebACLForResourceOutput) GoString() string { 10033 return s.String() 10034 } 10035 10036 // SetWebACL sets the WebACL field's value. 10037 func (s *GetWebACLForResourceOutput) SetWebACL(v *WebACL) *GetWebACLForResourceOutput { 10038 s.WebACL = v 10039 return s 10040 } 10041 10042 type GetWebACLInput struct { 10043 _ struct{} `type:"structure"` 10044 10045 // The unique identifier for the web ACL. This ID is returned in the responses 10046 // to create and list commands. You provide it to operations like update and 10047 // delete. 10048 // 10049 // Id is a required field 10050 Id *string `min:"1" type:"string" required:"true"` 10051 10052 // The name of the web ACL. You cannot change the name of a web ACL after you 10053 // create it. 10054 // 10055 // Name is a required field 10056 Name *string `min:"1" type:"string" required:"true"` 10057 10058 // Specifies whether this is for an Amazon CloudFront distribution or for a 10059 // regional application. A regional application can be an Application Load Balancer 10060 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 10061 // 10062 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 10063 // as follows: 10064 // 10065 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 10066 // --region=us-east-1. 10067 // 10068 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 10069 // 10070 // Scope is a required field 10071 Scope *string `type:"string" required:"true" enum:"Scope"` 10072 } 10073 10074 // String returns the string representation. 10075 // 10076 // API parameter values that are decorated as "sensitive" in the API will not 10077 // be included in the string output. The member name will be present, but the 10078 // value will be replaced with "sensitive". 10079 func (s GetWebACLInput) String() string { 10080 return awsutil.Prettify(s) 10081 } 10082 10083 // GoString returns the string representation. 10084 // 10085 // API parameter values that are decorated as "sensitive" in the API will not 10086 // be included in the string output. The member name will be present, but the 10087 // value will be replaced with "sensitive". 10088 func (s GetWebACLInput) GoString() string { 10089 return s.String() 10090 } 10091 10092 // Validate inspects the fields of the type to determine if they are valid. 10093 func (s *GetWebACLInput) Validate() error { 10094 invalidParams := request.ErrInvalidParams{Context: "GetWebACLInput"} 10095 if s.Id == nil { 10096 invalidParams.Add(request.NewErrParamRequired("Id")) 10097 } 10098 if s.Id != nil && len(*s.Id) < 1 { 10099 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 10100 } 10101 if s.Name == nil { 10102 invalidParams.Add(request.NewErrParamRequired("Name")) 10103 } 10104 if s.Name != nil && len(*s.Name) < 1 { 10105 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 10106 } 10107 if s.Scope == nil { 10108 invalidParams.Add(request.NewErrParamRequired("Scope")) 10109 } 10110 10111 if invalidParams.Len() > 0 { 10112 return invalidParams 10113 } 10114 return nil 10115 } 10116 10117 // SetId sets the Id field's value. 10118 func (s *GetWebACLInput) SetId(v string) *GetWebACLInput { 10119 s.Id = &v 10120 return s 10121 } 10122 10123 // SetName sets the Name field's value. 10124 func (s *GetWebACLInput) SetName(v string) *GetWebACLInput { 10125 s.Name = &v 10126 return s 10127 } 10128 10129 // SetScope sets the Scope field's value. 10130 func (s *GetWebACLInput) SetScope(v string) *GetWebACLInput { 10131 s.Scope = &v 10132 return s 10133 } 10134 10135 type GetWebACLOutput struct { 10136 _ struct{} `type:"structure"` 10137 10138 // A token used for optimistic locking. WAF returns a token to your get and 10139 // list requests, to mark the state of the entity at the time of the request. 10140 // To make changes to the entity associated with the token, you provide the 10141 // token to operations like update and delete. WAF uses the token to ensure 10142 // that no changes have been made to the entity since you last retrieved it. 10143 // If a change has been made, the update fails with a WAFOptimisticLockException. 10144 // If this happens, perform another get, and use the new token returned by that 10145 // operation. 10146 LockToken *string `min:"1" type:"string"` 10147 10148 // The web ACL specification. You can modify the settings in this web ACL and 10149 // use it to update this web ACL or create a new one. 10150 WebACL *WebACL `type:"structure"` 10151 } 10152 10153 // String returns the string representation. 10154 // 10155 // API parameter values that are decorated as "sensitive" in the API will not 10156 // be included in the string output. The member name will be present, but the 10157 // value will be replaced with "sensitive". 10158 func (s GetWebACLOutput) String() string { 10159 return awsutil.Prettify(s) 10160 } 10161 10162 // GoString returns the string representation. 10163 // 10164 // API parameter values that are decorated as "sensitive" in the API will not 10165 // be included in the string output. The member name will be present, but the 10166 // value will be replaced with "sensitive". 10167 func (s GetWebACLOutput) GoString() string { 10168 return s.String() 10169 } 10170 10171 // SetLockToken sets the LockToken field's value. 10172 func (s *GetWebACLOutput) SetLockToken(v string) *GetWebACLOutput { 10173 s.LockToken = &v 10174 return s 10175 } 10176 10177 // SetWebACL sets the WebACL field's value. 10178 func (s *GetWebACLOutput) SetWebACL(v *WebACL) *GetWebACLOutput { 10179 s.WebACL = v 10180 return s 10181 } 10182 10183 // Part of the response from GetSampledRequests. This is a complex type that 10184 // appears as Headers in the response syntax. HTTPHeader contains the names 10185 // and values of all of the headers that appear in one of the web requests. 10186 type HTTPHeader struct { 10187 _ struct{} `type:"structure"` 10188 10189 // The name of the HTTP header. 10190 Name *string `type:"string"` 10191 10192 // The value of the HTTP header. 10193 Value *string `type:"string"` 10194 } 10195 10196 // String returns the string representation. 10197 // 10198 // API parameter values that are decorated as "sensitive" in the API will not 10199 // be included in the string output. The member name will be present, but the 10200 // value will be replaced with "sensitive". 10201 func (s HTTPHeader) String() string { 10202 return awsutil.Prettify(s) 10203 } 10204 10205 // GoString returns the string representation. 10206 // 10207 // API parameter values that are decorated as "sensitive" in the API will not 10208 // be included in the string output. The member name will be present, but the 10209 // value will be replaced with "sensitive". 10210 func (s HTTPHeader) GoString() string { 10211 return s.String() 10212 } 10213 10214 // SetName sets the Name field's value. 10215 func (s *HTTPHeader) SetName(v string) *HTTPHeader { 10216 s.Name = &v 10217 return s 10218 } 10219 10220 // SetValue sets the Value field's value. 10221 func (s *HTTPHeader) SetValue(v string) *HTTPHeader { 10222 s.Value = &v 10223 return s 10224 } 10225 10226 // Part of the response from GetSampledRequests. This is a complex type that 10227 // appears as Request in the response syntax. HTTPRequest contains information 10228 // about one of the web requests. 10229 type HTTPRequest struct { 10230 _ struct{} `type:"structure"` 10231 10232 // The IP address that the request originated from. If the web ACL is associated 10233 // with a CloudFront distribution, this is the value of one of the following 10234 // fields in CloudFront access logs: 10235 // 10236 // * c-ip, if the viewer did not use an HTTP proxy or a load balancer to 10237 // send the request 10238 // 10239 // * x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer 10240 // to send the request 10241 ClientIP *string `type:"string"` 10242 10243 // The two-letter country code for the country that the request originated from. 10244 // For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2 10245 // (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). 10246 Country *string `type:"string"` 10247 10248 // The HTTP version specified in the sampled web request, for example, HTTP/1.1. 10249 HTTPVersion *string `type:"string"` 10250 10251 // A complex type that contains the name and value for each header in the sampled 10252 // web request. 10253 Headers []*HTTPHeader `type:"list"` 10254 10255 // The HTTP method specified in the sampled web request. 10256 Method *string `type:"string"` 10257 10258 // The URI path of the request, which identifies the resource, for example, 10259 // /images/daily-ad.jpg. 10260 URI *string `type:"string"` 10261 } 10262 10263 // String returns the string representation. 10264 // 10265 // API parameter values that are decorated as "sensitive" in the API will not 10266 // be included in the string output. The member name will be present, but the 10267 // value will be replaced with "sensitive". 10268 func (s HTTPRequest) String() string { 10269 return awsutil.Prettify(s) 10270 } 10271 10272 // GoString returns the string representation. 10273 // 10274 // API parameter values that are decorated as "sensitive" in the API will not 10275 // be included in the string output. The member name will be present, but the 10276 // value will be replaced with "sensitive". 10277 func (s HTTPRequest) GoString() string { 10278 return s.String() 10279 } 10280 10281 // SetClientIP sets the ClientIP field's value. 10282 func (s *HTTPRequest) SetClientIP(v string) *HTTPRequest { 10283 s.ClientIP = &v 10284 return s 10285 } 10286 10287 // SetCountry sets the Country field's value. 10288 func (s *HTTPRequest) SetCountry(v string) *HTTPRequest { 10289 s.Country = &v 10290 return s 10291 } 10292 10293 // SetHTTPVersion sets the HTTPVersion field's value. 10294 func (s *HTTPRequest) SetHTTPVersion(v string) *HTTPRequest { 10295 s.HTTPVersion = &v 10296 return s 10297 } 10298 10299 // SetHeaders sets the Headers field's value. 10300 func (s *HTTPRequest) SetHeaders(v []*HTTPHeader) *HTTPRequest { 10301 s.Headers = v 10302 return s 10303 } 10304 10305 // SetMethod sets the Method field's value. 10306 func (s *HTTPRequest) SetMethod(v string) *HTTPRequest { 10307 s.Method = &v 10308 return s 10309 } 10310 10311 // SetURI sets the URI field's value. 10312 func (s *HTTPRequest) SetURI(v string) *HTTPRequest { 10313 s.URI = &v 10314 return s 10315 } 10316 10317 // Contains one or more IP addresses or blocks of IP addresses specified in 10318 // Classless Inter-Domain Routing (CIDR) notation. WAF supports all IPv4 and 10319 // IPv6 CIDR ranges except for /0. For information about CIDR notation, see 10320 // the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 10321 // 10322 // WAF assigns an ARN to each IPSet that you create. To use an IP set in a rule, 10323 // you provide the ARN to the Rule statement IPSetReferenceStatement. 10324 type IPSet struct { 10325 _ struct{} `type:"structure"` 10326 10327 // The Amazon Resource Name (ARN) of the entity. 10328 // 10329 // ARN is a required field 10330 ARN *string `min:"20" type:"string" required:"true"` 10331 10332 // Contains an array of strings that specify one or more IP addresses or blocks 10333 // of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports 10334 // all IPv4 and IPv6 CIDR ranges except for /0. 10335 // 10336 // Examples: 10337 // 10338 // * To configure WAF to allow, block, or count requests that originated 10339 // from the IP address 192.0.2.44, specify 192.0.2.44/32. 10340 // 10341 // * To configure WAF to allow, block, or count requests that originated 10342 // from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24. 10343 // 10344 // * To configure WAF to allow, block, or count requests that originated 10345 // from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128. 10346 // 10347 // * To configure WAF to allow, block, or count requests that originated 10348 // from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, 10349 // specify 1111:0000:0000:0000:0000:0000:0000:0000/64. 10350 // 10351 // For more information about CIDR notation, see the Wikipedia entry Classless 10352 // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 10353 // 10354 // Addresses is a required field 10355 Addresses []*string `type:"list" required:"true"` 10356 10357 // A description of the IP set that helps with identification. 10358 Description *string `min:"1" type:"string"` 10359 10360 // The version of the IP addresses, either IPV4 or IPV6. 10361 // 10362 // IPAddressVersion is a required field 10363 IPAddressVersion *string `type:"string" required:"true" enum:"IPAddressVersion"` 10364 10365 // A unique identifier for the set. This ID is returned in the responses to 10366 // create and list commands. You provide it to operations like update and delete. 10367 // 10368 // Id is a required field 10369 Id *string `min:"1" type:"string" required:"true"` 10370 10371 // The name of the IP set. You cannot change the name of an IPSet after you 10372 // create it. 10373 // 10374 // Name is a required field 10375 Name *string `min:"1" type:"string" required:"true"` 10376 } 10377 10378 // String returns the string representation. 10379 // 10380 // API parameter values that are decorated as "sensitive" in the API will not 10381 // be included in the string output. The member name will be present, but the 10382 // value will be replaced with "sensitive". 10383 func (s IPSet) String() string { 10384 return awsutil.Prettify(s) 10385 } 10386 10387 // GoString returns the string representation. 10388 // 10389 // API parameter values that are decorated as "sensitive" in the API will not 10390 // be included in the string output. The member name will be present, but the 10391 // value will be replaced with "sensitive". 10392 func (s IPSet) GoString() string { 10393 return s.String() 10394 } 10395 10396 // SetARN sets the ARN field's value. 10397 func (s *IPSet) SetARN(v string) *IPSet { 10398 s.ARN = &v 10399 return s 10400 } 10401 10402 // SetAddresses sets the Addresses field's value. 10403 func (s *IPSet) SetAddresses(v []*string) *IPSet { 10404 s.Addresses = v 10405 return s 10406 } 10407 10408 // SetDescription sets the Description field's value. 10409 func (s *IPSet) SetDescription(v string) *IPSet { 10410 s.Description = &v 10411 return s 10412 } 10413 10414 // SetIPAddressVersion sets the IPAddressVersion field's value. 10415 func (s *IPSet) SetIPAddressVersion(v string) *IPSet { 10416 s.IPAddressVersion = &v 10417 return s 10418 } 10419 10420 // SetId sets the Id field's value. 10421 func (s *IPSet) SetId(v string) *IPSet { 10422 s.Id = &v 10423 return s 10424 } 10425 10426 // SetName sets the Name field's value. 10427 func (s *IPSet) SetName(v string) *IPSet { 10428 s.Name = &v 10429 return s 10430 } 10431 10432 // The configuration for inspecting IP addresses in an HTTP header that you 10433 // specify, instead of using the IP address that's reported by the web request 10434 // origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify 10435 // any header name. 10436 // 10437 // If the specified header isn't present in the request, WAF doesn't apply the 10438 // rule to the web request at all. 10439 // 10440 // This configuration is used only for IPSetReferenceStatement. For GeoMatchStatement 10441 // and RateBasedStatement, use ForwardedIPConfig instead. 10442 type IPSetForwardedIPConfig struct { 10443 _ struct{} `type:"structure"` 10444 10445 // The match status to assign to the web request if the request doesn't have 10446 // a valid IP address in the specified position. 10447 // 10448 // If the specified header isn't present in the request, WAF doesn't apply the 10449 // rule to the web request at all. 10450 // 10451 // You can specify the following fallback behaviors: 10452 // 10453 // * MATCH - Treat the web request as matching the rule statement. WAF applies 10454 // the rule action to the request. 10455 // 10456 // * NO_MATCH - Treat the web request as not matching the rule statement. 10457 // 10458 // FallbackBehavior is a required field 10459 FallbackBehavior *string `type:"string" required:"true" enum:"FallbackBehavior"` 10460 10461 // The name of the HTTP header to use for the IP address. For example, to use 10462 // the X-Forwarded-For (XFF) header, set this to X-Forwarded-For. 10463 // 10464 // If the specified header isn't present in the request, WAF doesn't apply the 10465 // rule to the web request at all. 10466 // 10467 // HeaderName is a required field 10468 HeaderName *string `min:"1" type:"string" required:"true"` 10469 10470 // The position in the header to search for the IP address. The header can contain 10471 // IP addresses of the original client and also of proxies. For example, the 10472 // header value could be 10.1.1.1, 127.0.0.0, 10.10.10.10 where the first IP 10473 // address identifies the original client and the rest identify proxies that 10474 // the request went through. 10475 // 10476 // The options for this setting are the following: 10477 // 10478 // * FIRST - Inspect the first IP address in the list of IP addresses in 10479 // the header. This is usually the client's original IP. 10480 // 10481 // * LAST - Inspect the last IP address in the list of IP addresses in the 10482 // header. 10483 // 10484 // * ANY - Inspect all IP addresses in the header for a match. If the header 10485 // contains more than 10 IP addresses, WAF inspects the last 10. 10486 // 10487 // Position is a required field 10488 Position *string `type:"string" required:"true" enum:"ForwardedIPPosition"` 10489 } 10490 10491 // String returns the string representation. 10492 // 10493 // API parameter values that are decorated as "sensitive" in the API will not 10494 // be included in the string output. The member name will be present, but the 10495 // value will be replaced with "sensitive". 10496 func (s IPSetForwardedIPConfig) String() string { 10497 return awsutil.Prettify(s) 10498 } 10499 10500 // GoString returns the string representation. 10501 // 10502 // API parameter values that are decorated as "sensitive" in the API will not 10503 // be included in the string output. The member name will be present, but the 10504 // value will be replaced with "sensitive". 10505 func (s IPSetForwardedIPConfig) GoString() string { 10506 return s.String() 10507 } 10508 10509 // Validate inspects the fields of the type to determine if they are valid. 10510 func (s *IPSetForwardedIPConfig) Validate() error { 10511 invalidParams := request.ErrInvalidParams{Context: "IPSetForwardedIPConfig"} 10512 if s.FallbackBehavior == nil { 10513 invalidParams.Add(request.NewErrParamRequired("FallbackBehavior")) 10514 } 10515 if s.HeaderName == nil { 10516 invalidParams.Add(request.NewErrParamRequired("HeaderName")) 10517 } 10518 if s.HeaderName != nil && len(*s.HeaderName) < 1 { 10519 invalidParams.Add(request.NewErrParamMinLen("HeaderName", 1)) 10520 } 10521 if s.Position == nil { 10522 invalidParams.Add(request.NewErrParamRequired("Position")) 10523 } 10524 10525 if invalidParams.Len() > 0 { 10526 return invalidParams 10527 } 10528 return nil 10529 } 10530 10531 // SetFallbackBehavior sets the FallbackBehavior field's value. 10532 func (s *IPSetForwardedIPConfig) SetFallbackBehavior(v string) *IPSetForwardedIPConfig { 10533 s.FallbackBehavior = &v 10534 return s 10535 } 10536 10537 // SetHeaderName sets the HeaderName field's value. 10538 func (s *IPSetForwardedIPConfig) SetHeaderName(v string) *IPSetForwardedIPConfig { 10539 s.HeaderName = &v 10540 return s 10541 } 10542 10543 // SetPosition sets the Position field's value. 10544 func (s *IPSetForwardedIPConfig) SetPosition(v string) *IPSetForwardedIPConfig { 10545 s.Position = &v 10546 return s 10547 } 10548 10549 // A rule statement used to detect web requests coming from particular IP addresses 10550 // or address ranges. To use this, create an IPSet that specifies the addresses 10551 // you want to detect, then use the ARN of that set in this statement. To create 10552 // an IP set, see CreateIPSet. 10553 // 10554 // Each IP set rule statement references an IP set. You create and maintain 10555 // the set independent of your rules. This allows you to use the single set 10556 // in multiple rules. When you update the referenced set, WAF automatically 10557 // updates all rules that reference it. 10558 type IPSetReferenceStatement struct { 10559 _ struct{} `type:"structure"` 10560 10561 // The Amazon Resource Name (ARN) of the IPSet that this statement references. 10562 // 10563 // ARN is a required field 10564 ARN *string `min:"20" type:"string" required:"true"` 10565 10566 // The configuration for inspecting IP addresses in an HTTP header that you 10567 // specify, instead of using the IP address that's reported by the web request 10568 // origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify 10569 // any header name. 10570 // 10571 // If the specified header isn't present in the request, WAF doesn't apply the 10572 // rule to the web request at all. 10573 IPSetForwardedIPConfig *IPSetForwardedIPConfig `type:"structure"` 10574 } 10575 10576 // String returns the string representation. 10577 // 10578 // API parameter values that are decorated as "sensitive" in the API will not 10579 // be included in the string output. The member name will be present, but the 10580 // value will be replaced with "sensitive". 10581 func (s IPSetReferenceStatement) String() string { 10582 return awsutil.Prettify(s) 10583 } 10584 10585 // GoString returns the string representation. 10586 // 10587 // API parameter values that are decorated as "sensitive" in the API will not 10588 // be included in the string output. The member name will be present, but the 10589 // value will be replaced with "sensitive". 10590 func (s IPSetReferenceStatement) GoString() string { 10591 return s.String() 10592 } 10593 10594 // Validate inspects the fields of the type to determine if they are valid. 10595 func (s *IPSetReferenceStatement) Validate() error { 10596 invalidParams := request.ErrInvalidParams{Context: "IPSetReferenceStatement"} 10597 if s.ARN == nil { 10598 invalidParams.Add(request.NewErrParamRequired("ARN")) 10599 } 10600 if s.ARN != nil && len(*s.ARN) < 20 { 10601 invalidParams.Add(request.NewErrParamMinLen("ARN", 20)) 10602 } 10603 if s.IPSetForwardedIPConfig != nil { 10604 if err := s.IPSetForwardedIPConfig.Validate(); err != nil { 10605 invalidParams.AddNested("IPSetForwardedIPConfig", err.(request.ErrInvalidParams)) 10606 } 10607 } 10608 10609 if invalidParams.Len() > 0 { 10610 return invalidParams 10611 } 10612 return nil 10613 } 10614 10615 // SetARN sets the ARN field's value. 10616 func (s *IPSetReferenceStatement) SetARN(v string) *IPSetReferenceStatement { 10617 s.ARN = &v 10618 return s 10619 } 10620 10621 // SetIPSetForwardedIPConfig sets the IPSetForwardedIPConfig field's value. 10622 func (s *IPSetReferenceStatement) SetIPSetForwardedIPConfig(v *IPSetForwardedIPConfig) *IPSetReferenceStatement { 10623 s.IPSetForwardedIPConfig = v 10624 return s 10625 } 10626 10627 // High-level information about an IPSet, returned by operations like create 10628 // and list. This provides information like the ID, that you can use to retrieve 10629 // and manage an IPSet, and the ARN, that you provide to the IPSetReferenceStatement 10630 // to use the address set in a Rule. 10631 type IPSetSummary struct { 10632 _ struct{} `type:"structure"` 10633 10634 // The Amazon Resource Name (ARN) of the entity. 10635 ARN *string `min:"20" type:"string"` 10636 10637 // A description of the IP set that helps with identification. 10638 Description *string `min:"1" type:"string"` 10639 10640 // A unique identifier for the set. This ID is returned in the responses to 10641 // create and list commands. You provide it to operations like update and delete. 10642 Id *string `min:"1" type:"string"` 10643 10644 // A token used for optimistic locking. WAF returns a token to your get and 10645 // list requests, to mark the state of the entity at the time of the request. 10646 // To make changes to the entity associated with the token, you provide the 10647 // token to operations like update and delete. WAF uses the token to ensure 10648 // that no changes have been made to the entity since you last retrieved it. 10649 // If a change has been made, the update fails with a WAFOptimisticLockException. 10650 // If this happens, perform another get, and use the new token returned by that 10651 // operation. 10652 LockToken *string `min:"1" type:"string"` 10653 10654 // The name of the IP set. You cannot change the name of an IPSet after you 10655 // create it. 10656 Name *string `min:"1" type:"string"` 10657 } 10658 10659 // String returns the string representation. 10660 // 10661 // API parameter values that are decorated as "sensitive" in the API will not 10662 // be included in the string output. The member name will be present, but the 10663 // value will be replaced with "sensitive". 10664 func (s IPSetSummary) String() string { 10665 return awsutil.Prettify(s) 10666 } 10667 10668 // GoString returns the string representation. 10669 // 10670 // API parameter values that are decorated as "sensitive" in the API will not 10671 // be included in the string output. The member name will be present, but the 10672 // value will be replaced with "sensitive". 10673 func (s IPSetSummary) GoString() string { 10674 return s.String() 10675 } 10676 10677 // SetARN sets the ARN field's value. 10678 func (s *IPSetSummary) SetARN(v string) *IPSetSummary { 10679 s.ARN = &v 10680 return s 10681 } 10682 10683 // SetDescription sets the Description field's value. 10684 func (s *IPSetSummary) SetDescription(v string) *IPSetSummary { 10685 s.Description = &v 10686 return s 10687 } 10688 10689 // SetId sets the Id field's value. 10690 func (s *IPSetSummary) SetId(v string) *IPSetSummary { 10691 s.Id = &v 10692 return s 10693 } 10694 10695 // SetLockToken sets the LockToken field's value. 10696 func (s *IPSetSummary) SetLockToken(v string) *IPSetSummary { 10697 s.LockToken = &v 10698 return s 10699 } 10700 10701 // SetName sets the Name field's value. 10702 func (s *IPSetSummary) SetName(v string) *IPSetSummary { 10703 s.Name = &v 10704 return s 10705 } 10706 10707 // The body of a web request, inspected as JSON. The body immediately follows 10708 // the request headers. This is used in the FieldToMatch specification. 10709 // 10710 // Use the specifications in this object to indicate which parts of the JSON 10711 // body to inspect using the rule's inspection criteria. WAF inspects only the 10712 // parts of the JSON that result from the matches that you indicate. 10713 // 10714 // Example JSON: "JsonBody": { "MatchPattern": { "All": {} }, "MatchScope": 10715 // "ALL" } 10716 type JsonBody struct { 10717 _ struct{} `type:"structure"` 10718 10719 // What WAF should do if it fails to completely parse the JSON body. The options 10720 // are the following: 10721 // 10722 // * EVALUATE_AS_STRING - Inspect the body as plain text. WAF applies the 10723 // text transformations and inspection criteria that you defined for the 10724 // JSON inspection to the body text string. 10725 // 10726 // * MATCH - Treat the web request as matching the rule statement. WAF applies 10727 // the rule action to the request. 10728 // 10729 // * NO_MATCH - Treat the web request as not matching the rule statement. 10730 // 10731 // If you don't provide this setting, WAF parses and evaluates the content only 10732 // up to the first parsing failure that it encounters. 10733 // 10734 // WAF does its best to parse the entire JSON body, but might be forced to stop 10735 // for reasons such as invalid characters, duplicate keys, truncation, and any 10736 // content whose root node isn't an object or an array. 10737 // 10738 // WAF parses the JSON in the following examples as two valid key, value pairs: 10739 // 10740 // * Missing comma: {"key1":"value1""key2":"value2"} 10741 // 10742 // * Missing colon: {"key1":"value1","key2""value2"} 10743 // 10744 // * Extra colons: {"key1"::"value1","key2""value2"} 10745 InvalidFallbackBehavior *string `type:"string" enum:"BodyParsingFallbackBehavior"` 10746 10747 // The patterns to look for in the JSON body. WAF inspects the results of these 10748 // pattern matches against the rule inspection criteria. 10749 // 10750 // MatchPattern is a required field 10751 MatchPattern *JsonMatchPattern `type:"structure" required:"true"` 10752 10753 // The parts of the JSON to match against using the MatchPattern. If you specify 10754 // All, WAF matches against keys and values. 10755 // 10756 // MatchScope is a required field 10757 MatchScope *string `type:"string" required:"true" enum:"JsonMatchScope"` 10758 } 10759 10760 // String returns the string representation. 10761 // 10762 // API parameter values that are decorated as "sensitive" in the API will not 10763 // be included in the string output. The member name will be present, but the 10764 // value will be replaced with "sensitive". 10765 func (s JsonBody) String() string { 10766 return awsutil.Prettify(s) 10767 } 10768 10769 // GoString returns the string representation. 10770 // 10771 // API parameter values that are decorated as "sensitive" in the API will not 10772 // be included in the string output. The member name will be present, but the 10773 // value will be replaced with "sensitive". 10774 func (s JsonBody) GoString() string { 10775 return s.String() 10776 } 10777 10778 // Validate inspects the fields of the type to determine if they are valid. 10779 func (s *JsonBody) Validate() error { 10780 invalidParams := request.ErrInvalidParams{Context: "JsonBody"} 10781 if s.MatchPattern == nil { 10782 invalidParams.Add(request.NewErrParamRequired("MatchPattern")) 10783 } 10784 if s.MatchScope == nil { 10785 invalidParams.Add(request.NewErrParamRequired("MatchScope")) 10786 } 10787 if s.MatchPattern != nil { 10788 if err := s.MatchPattern.Validate(); err != nil { 10789 invalidParams.AddNested("MatchPattern", err.(request.ErrInvalidParams)) 10790 } 10791 } 10792 10793 if invalidParams.Len() > 0 { 10794 return invalidParams 10795 } 10796 return nil 10797 } 10798 10799 // SetInvalidFallbackBehavior sets the InvalidFallbackBehavior field's value. 10800 func (s *JsonBody) SetInvalidFallbackBehavior(v string) *JsonBody { 10801 s.InvalidFallbackBehavior = &v 10802 return s 10803 } 10804 10805 // SetMatchPattern sets the MatchPattern field's value. 10806 func (s *JsonBody) SetMatchPattern(v *JsonMatchPattern) *JsonBody { 10807 s.MatchPattern = v 10808 return s 10809 } 10810 10811 // SetMatchScope sets the MatchScope field's value. 10812 func (s *JsonBody) SetMatchScope(v string) *JsonBody { 10813 s.MatchScope = &v 10814 return s 10815 } 10816 10817 // The patterns to look for in the JSON body. WAF inspects the results of these 10818 // pattern matches against the rule inspection criteria. This is used with the 10819 // FieldToMatch option JsonBody. 10820 type JsonMatchPattern struct { 10821 _ struct{} `type:"structure"` 10822 10823 // Match all of the elements. See also MatchScope in JsonBody. 10824 // 10825 // You must specify either this setting or the IncludedPaths setting, but not 10826 // both. 10827 All *All `type:"structure"` 10828 10829 // Match only the specified include paths. See also MatchScope in JsonBody. 10830 // 10831 // Provide the include paths using JSON Pointer syntax. For example, "IncludedPaths": 10832 // ["/dogs/0/name", "/dogs/1/name"]. For information about this syntax, see 10833 // the Internet Engineering Task Force (IETF) documentation JavaScript Object 10834 // Notation (JSON) Pointer (https://tools.ietf.org/html/rfc6901). 10835 // 10836 // You must specify either this setting or the All setting, but not both. 10837 // 10838 // Don't use this option to include all paths. Instead, use the All setting. 10839 IncludedPaths []*string `min:"1" type:"list"` 10840 } 10841 10842 // String returns the string representation. 10843 // 10844 // API parameter values that are decorated as "sensitive" in the API will not 10845 // be included in the string output. The member name will be present, but the 10846 // value will be replaced with "sensitive". 10847 func (s JsonMatchPattern) String() string { 10848 return awsutil.Prettify(s) 10849 } 10850 10851 // GoString returns the string representation. 10852 // 10853 // API parameter values that are decorated as "sensitive" in the API will not 10854 // be included in the string output. The member name will be present, but the 10855 // value will be replaced with "sensitive". 10856 func (s JsonMatchPattern) GoString() string { 10857 return s.String() 10858 } 10859 10860 // Validate inspects the fields of the type to determine if they are valid. 10861 func (s *JsonMatchPattern) Validate() error { 10862 invalidParams := request.ErrInvalidParams{Context: "JsonMatchPattern"} 10863 if s.IncludedPaths != nil && len(s.IncludedPaths) < 1 { 10864 invalidParams.Add(request.NewErrParamMinLen("IncludedPaths", 1)) 10865 } 10866 10867 if invalidParams.Len() > 0 { 10868 return invalidParams 10869 } 10870 return nil 10871 } 10872 10873 // SetAll sets the All field's value. 10874 func (s *JsonMatchPattern) SetAll(v *All) *JsonMatchPattern { 10875 s.All = v 10876 return s 10877 } 10878 10879 // SetIncludedPaths sets the IncludedPaths field's value. 10880 func (s *JsonMatchPattern) SetIncludedPaths(v []*string) *JsonMatchPattern { 10881 s.IncludedPaths = v 10882 return s 10883 } 10884 10885 // A single label container. This is used as an element of a label array in 10886 // multiple contexts, for example, in RuleLabels inside a Rule and in Labels 10887 // inside a SampledHTTPRequest. 10888 type Label struct { 10889 _ struct{} `type:"structure"` 10890 10891 // The label string. 10892 // 10893 // Name is a required field 10894 Name *string `min:"1" type:"string" required:"true"` 10895 } 10896 10897 // String returns the string representation. 10898 // 10899 // API parameter values that are decorated as "sensitive" in the API will not 10900 // be included in the string output. The member name will be present, but the 10901 // value will be replaced with "sensitive". 10902 func (s Label) String() string { 10903 return awsutil.Prettify(s) 10904 } 10905 10906 // GoString returns the string representation. 10907 // 10908 // API parameter values that are decorated as "sensitive" in the API will not 10909 // be included in the string output. The member name will be present, but the 10910 // value will be replaced with "sensitive". 10911 func (s Label) GoString() string { 10912 return s.String() 10913 } 10914 10915 // Validate inspects the fields of the type to determine if they are valid. 10916 func (s *Label) Validate() error { 10917 invalidParams := request.ErrInvalidParams{Context: "Label"} 10918 if s.Name == nil { 10919 invalidParams.Add(request.NewErrParamRequired("Name")) 10920 } 10921 if s.Name != nil && len(*s.Name) < 1 { 10922 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 10923 } 10924 10925 if invalidParams.Len() > 0 { 10926 return invalidParams 10927 } 10928 return nil 10929 } 10930 10931 // SetName sets the Name field's value. 10932 func (s *Label) SetName(v string) *Label { 10933 s.Name = &v 10934 return s 10935 } 10936 10937 // A rule statement that defines a string match search against labels that have 10938 // been added to the web request by rules that have already run in the web ACL. 10939 // 10940 // The label match statement provides the label or namespace string to search 10941 // for. The label string can represent a part or all of the fully qualified 10942 // label name that had been added to the web request. Fully qualified labels 10943 // have a prefix, optional namespaces, and label name. The prefix identifies 10944 // the rule group or web ACL context of the rule that added the label. If you 10945 // do not provide the fully qualified name in your label match string, WAF performs 10946 // the search for labels that were added in the same context as the label match 10947 // statement. 10948 type LabelMatchStatement struct { 10949 _ struct{} `type:"structure"` 10950 10951 // The string to match against. The setting you provide for this depends on 10952 // the match statement's Scope setting: 10953 // 10954 // * If the Scope indicates LABEL, then this specification must include the 10955 // name and can include any number of preceding namespace specifications 10956 // and prefix up to providing the fully qualified label name. 10957 // 10958 // * If the Scope indicates NAMESPACE, then this specification can include 10959 // any number of contiguous namespace strings, and can include the entire 10960 // label namespace prefix from the rule group or web ACL where the label 10961 // originates. 10962 // 10963 // Labels are case sensitive and components of a label must be separated by 10964 // colon, for example NS1:NS2:name. 10965 // 10966 // Key is a required field 10967 Key *string `min:"1" type:"string" required:"true"` 10968 10969 // Specify whether you want to match using the label name or just the namespace. 10970 // 10971 // Scope is a required field 10972 Scope *string `type:"string" required:"true" enum:"LabelMatchScope"` 10973 } 10974 10975 // String returns the string representation. 10976 // 10977 // API parameter values that are decorated as "sensitive" in the API will not 10978 // be included in the string output. The member name will be present, but the 10979 // value will be replaced with "sensitive". 10980 func (s LabelMatchStatement) String() string { 10981 return awsutil.Prettify(s) 10982 } 10983 10984 // GoString returns the string representation. 10985 // 10986 // API parameter values that are decorated as "sensitive" in the API will not 10987 // be included in the string output. The member name will be present, but the 10988 // value will be replaced with "sensitive". 10989 func (s LabelMatchStatement) GoString() string { 10990 return s.String() 10991 } 10992 10993 // Validate inspects the fields of the type to determine if they are valid. 10994 func (s *LabelMatchStatement) Validate() error { 10995 invalidParams := request.ErrInvalidParams{Context: "LabelMatchStatement"} 10996 if s.Key == nil { 10997 invalidParams.Add(request.NewErrParamRequired("Key")) 10998 } 10999 if s.Key != nil && len(*s.Key) < 1 { 11000 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 11001 } 11002 if s.Scope == nil { 11003 invalidParams.Add(request.NewErrParamRequired("Scope")) 11004 } 11005 11006 if invalidParams.Len() > 0 { 11007 return invalidParams 11008 } 11009 return nil 11010 } 11011 11012 // SetKey sets the Key field's value. 11013 func (s *LabelMatchStatement) SetKey(v string) *LabelMatchStatement { 11014 s.Key = &v 11015 return s 11016 } 11017 11018 // SetScope sets the Scope field's value. 11019 func (s *LabelMatchStatement) SetScope(v string) *LabelMatchStatement { 11020 s.Scope = &v 11021 return s 11022 } 11023 11024 // A single label name condition for a Condition in a logging filter. 11025 type LabelNameCondition struct { 11026 _ struct{} `type:"structure"` 11027 11028 // The label name that a log record must contain in order to meet the condition. 11029 // This must be a fully qualified label name. Fully qualified labels have a 11030 // prefix, optional namespaces, and label name. The prefix identifies the rule 11031 // group or web ACL context of the rule that added the label. 11032 // 11033 // LabelName is a required field 11034 LabelName *string `min:"1" type:"string" required:"true"` 11035 } 11036 11037 // String returns the string representation. 11038 // 11039 // API parameter values that are decorated as "sensitive" in the API will not 11040 // be included in the string output. The member name will be present, but the 11041 // value will be replaced with "sensitive". 11042 func (s LabelNameCondition) String() string { 11043 return awsutil.Prettify(s) 11044 } 11045 11046 // GoString returns the string representation. 11047 // 11048 // API parameter values that are decorated as "sensitive" in the API will not 11049 // be included in the string output. The member name will be present, but the 11050 // value will be replaced with "sensitive". 11051 func (s LabelNameCondition) GoString() string { 11052 return s.String() 11053 } 11054 11055 // Validate inspects the fields of the type to determine if they are valid. 11056 func (s *LabelNameCondition) Validate() error { 11057 invalidParams := request.ErrInvalidParams{Context: "LabelNameCondition"} 11058 if s.LabelName == nil { 11059 invalidParams.Add(request.NewErrParamRequired("LabelName")) 11060 } 11061 if s.LabelName != nil && len(*s.LabelName) < 1 { 11062 invalidParams.Add(request.NewErrParamMinLen("LabelName", 1)) 11063 } 11064 11065 if invalidParams.Len() > 0 { 11066 return invalidParams 11067 } 11068 return nil 11069 } 11070 11071 // SetLabelName sets the LabelName field's value. 11072 func (s *LabelNameCondition) SetLabelName(v string) *LabelNameCondition { 11073 s.LabelName = &v 11074 return s 11075 } 11076 11077 // List of labels used by one or more of the rules of a RuleGroup. This summary 11078 // object is used for the following rule group lists: 11079 // 11080 // * AvailableLabels - Labels that rules add to matching requests. These 11081 // labels are defined in the RuleLabels for a Rule. 11082 // 11083 // * ConsumedLabels - Labels that rules match against. These labels are defined 11084 // in a LabelMatchStatement specification, in the Statement definition of 11085 // a rule. 11086 type LabelSummary struct { 11087 _ struct{} `type:"structure"` 11088 11089 // An individual label specification. 11090 Name *string `min:"1" type:"string"` 11091 } 11092 11093 // String returns the string representation. 11094 // 11095 // API parameter values that are decorated as "sensitive" in the API will not 11096 // be included in the string output. The member name will be present, but the 11097 // value will be replaced with "sensitive". 11098 func (s LabelSummary) String() string { 11099 return awsutil.Prettify(s) 11100 } 11101 11102 // GoString returns the string representation. 11103 // 11104 // API parameter values that are decorated as "sensitive" in the API will not 11105 // be included in the string output. The member name will be present, but the 11106 // value will be replaced with "sensitive". 11107 func (s LabelSummary) GoString() string { 11108 return s.String() 11109 } 11110 11111 // SetName sets the Name field's value. 11112 func (s *LabelSummary) SetName(v string) *LabelSummary { 11113 s.Name = &v 11114 return s 11115 } 11116 11117 type ListAvailableManagedRuleGroupVersionsInput struct { 11118 _ struct{} `type:"structure"` 11119 11120 // The maximum number of objects that you want WAF to return for this request. 11121 // If more objects are available, in the response, WAF provides a NextMarker 11122 // value that you can use in a subsequent call to get the next batch of objects. 11123 Limit *int64 `min:"1" type:"integer"` 11124 11125 // The name of the managed rule group. You use this, along with the vendor name, 11126 // to identify the rule group. 11127 // 11128 // Name is a required field 11129 Name *string `min:"1" type:"string" required:"true"` 11130 11131 // When you request a list of objects with a Limit setting, if the number of 11132 // objects that are still available for retrieval exceeds the limit, WAF returns 11133 // a NextMarker value in the response. To retrieve the next batch of objects, 11134 // provide the marker from the prior call in your next request. 11135 NextMarker *string `min:"1" type:"string"` 11136 11137 // Specifies whether this is for an Amazon CloudFront distribution or for a 11138 // regional application. A regional application can be an Application Load Balancer 11139 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 11140 // 11141 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 11142 // as follows: 11143 // 11144 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 11145 // --region=us-east-1. 11146 // 11147 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 11148 // 11149 // Scope is a required field 11150 Scope *string `type:"string" required:"true" enum:"Scope"` 11151 11152 // The name of the managed rule group vendor. You use this, along with the rule 11153 // group name, to identify the rule group. 11154 // 11155 // VendorName is a required field 11156 VendorName *string `min:"1" type:"string" required:"true"` 11157 } 11158 11159 // String returns the string representation. 11160 // 11161 // API parameter values that are decorated as "sensitive" in the API will not 11162 // be included in the string output. The member name will be present, but the 11163 // value will be replaced with "sensitive". 11164 func (s ListAvailableManagedRuleGroupVersionsInput) String() string { 11165 return awsutil.Prettify(s) 11166 } 11167 11168 // GoString returns the string representation. 11169 // 11170 // API parameter values that are decorated as "sensitive" in the API will not 11171 // be included in the string output. The member name will be present, but the 11172 // value will be replaced with "sensitive". 11173 func (s ListAvailableManagedRuleGroupVersionsInput) GoString() string { 11174 return s.String() 11175 } 11176 11177 // Validate inspects the fields of the type to determine if they are valid. 11178 func (s *ListAvailableManagedRuleGroupVersionsInput) Validate() error { 11179 invalidParams := request.ErrInvalidParams{Context: "ListAvailableManagedRuleGroupVersionsInput"} 11180 if s.Limit != nil && *s.Limit < 1 { 11181 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 11182 } 11183 if s.Name == nil { 11184 invalidParams.Add(request.NewErrParamRequired("Name")) 11185 } 11186 if s.Name != nil && len(*s.Name) < 1 { 11187 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 11188 } 11189 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 11190 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 11191 } 11192 if s.Scope == nil { 11193 invalidParams.Add(request.NewErrParamRequired("Scope")) 11194 } 11195 if s.VendorName == nil { 11196 invalidParams.Add(request.NewErrParamRequired("VendorName")) 11197 } 11198 if s.VendorName != nil && len(*s.VendorName) < 1 { 11199 invalidParams.Add(request.NewErrParamMinLen("VendorName", 1)) 11200 } 11201 11202 if invalidParams.Len() > 0 { 11203 return invalidParams 11204 } 11205 return nil 11206 } 11207 11208 // SetLimit sets the Limit field's value. 11209 func (s *ListAvailableManagedRuleGroupVersionsInput) SetLimit(v int64) *ListAvailableManagedRuleGroupVersionsInput { 11210 s.Limit = &v 11211 return s 11212 } 11213 11214 // SetName sets the Name field's value. 11215 func (s *ListAvailableManagedRuleGroupVersionsInput) SetName(v string) *ListAvailableManagedRuleGroupVersionsInput { 11216 s.Name = &v 11217 return s 11218 } 11219 11220 // SetNextMarker sets the NextMarker field's value. 11221 func (s *ListAvailableManagedRuleGroupVersionsInput) SetNextMarker(v string) *ListAvailableManagedRuleGroupVersionsInput { 11222 s.NextMarker = &v 11223 return s 11224 } 11225 11226 // SetScope sets the Scope field's value. 11227 func (s *ListAvailableManagedRuleGroupVersionsInput) SetScope(v string) *ListAvailableManagedRuleGroupVersionsInput { 11228 s.Scope = &v 11229 return s 11230 } 11231 11232 // SetVendorName sets the VendorName field's value. 11233 func (s *ListAvailableManagedRuleGroupVersionsInput) SetVendorName(v string) *ListAvailableManagedRuleGroupVersionsInput { 11234 s.VendorName = &v 11235 return s 11236 } 11237 11238 type ListAvailableManagedRuleGroupVersionsOutput struct { 11239 _ struct{} `type:"structure"` 11240 11241 // When you request a list of objects with a Limit setting, if the number of 11242 // objects that are still available for retrieval exceeds the limit, WAF returns 11243 // a NextMarker value in the response. To retrieve the next batch of objects, 11244 // provide the marker from the prior call in your next request. 11245 NextMarker *string `min:"1" type:"string"` 11246 11247 // The versions that are currently available for the specified managed rule 11248 // group. 11249 Versions []*ManagedRuleGroupVersion `type:"list"` 11250 } 11251 11252 // String returns the string representation. 11253 // 11254 // API parameter values that are decorated as "sensitive" in the API will not 11255 // be included in the string output. The member name will be present, but the 11256 // value will be replaced with "sensitive". 11257 func (s ListAvailableManagedRuleGroupVersionsOutput) String() string { 11258 return awsutil.Prettify(s) 11259 } 11260 11261 // GoString returns the string representation. 11262 // 11263 // API parameter values that are decorated as "sensitive" in the API will not 11264 // be included in the string output. The member name will be present, but the 11265 // value will be replaced with "sensitive". 11266 func (s ListAvailableManagedRuleGroupVersionsOutput) GoString() string { 11267 return s.String() 11268 } 11269 11270 // SetNextMarker sets the NextMarker field's value. 11271 func (s *ListAvailableManagedRuleGroupVersionsOutput) SetNextMarker(v string) *ListAvailableManagedRuleGroupVersionsOutput { 11272 s.NextMarker = &v 11273 return s 11274 } 11275 11276 // SetVersions sets the Versions field's value. 11277 func (s *ListAvailableManagedRuleGroupVersionsOutput) SetVersions(v []*ManagedRuleGroupVersion) *ListAvailableManagedRuleGroupVersionsOutput { 11278 s.Versions = v 11279 return s 11280 } 11281 11282 type ListAvailableManagedRuleGroupsInput struct { 11283 _ struct{} `type:"structure"` 11284 11285 // The maximum number of objects that you want WAF to return for this request. 11286 // If more objects are available, in the response, WAF provides a NextMarker 11287 // value that you can use in a subsequent call to get the next batch of objects. 11288 Limit *int64 `min:"1" type:"integer"` 11289 11290 // When you request a list of objects with a Limit setting, if the number of 11291 // objects that are still available for retrieval exceeds the limit, WAF returns 11292 // a NextMarker value in the response. To retrieve the next batch of objects, 11293 // provide the marker from the prior call in your next request. 11294 NextMarker *string `min:"1" type:"string"` 11295 11296 // Specifies whether this is for an Amazon CloudFront distribution or for a 11297 // regional application. A regional application can be an Application Load Balancer 11298 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 11299 // 11300 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 11301 // as follows: 11302 // 11303 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 11304 // --region=us-east-1. 11305 // 11306 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 11307 // 11308 // Scope is a required field 11309 Scope *string `type:"string" required:"true" enum:"Scope"` 11310 } 11311 11312 // String returns the string representation. 11313 // 11314 // API parameter values that are decorated as "sensitive" in the API will not 11315 // be included in the string output. The member name will be present, but the 11316 // value will be replaced with "sensitive". 11317 func (s ListAvailableManagedRuleGroupsInput) String() string { 11318 return awsutil.Prettify(s) 11319 } 11320 11321 // GoString returns the string representation. 11322 // 11323 // API parameter values that are decorated as "sensitive" in the API will not 11324 // be included in the string output. The member name will be present, but the 11325 // value will be replaced with "sensitive". 11326 func (s ListAvailableManagedRuleGroupsInput) GoString() string { 11327 return s.String() 11328 } 11329 11330 // Validate inspects the fields of the type to determine if they are valid. 11331 func (s *ListAvailableManagedRuleGroupsInput) Validate() error { 11332 invalidParams := request.ErrInvalidParams{Context: "ListAvailableManagedRuleGroupsInput"} 11333 if s.Limit != nil && *s.Limit < 1 { 11334 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 11335 } 11336 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 11337 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 11338 } 11339 if s.Scope == nil { 11340 invalidParams.Add(request.NewErrParamRequired("Scope")) 11341 } 11342 11343 if invalidParams.Len() > 0 { 11344 return invalidParams 11345 } 11346 return nil 11347 } 11348 11349 // SetLimit sets the Limit field's value. 11350 func (s *ListAvailableManagedRuleGroupsInput) SetLimit(v int64) *ListAvailableManagedRuleGroupsInput { 11351 s.Limit = &v 11352 return s 11353 } 11354 11355 // SetNextMarker sets the NextMarker field's value. 11356 func (s *ListAvailableManagedRuleGroupsInput) SetNextMarker(v string) *ListAvailableManagedRuleGroupsInput { 11357 s.NextMarker = &v 11358 return s 11359 } 11360 11361 // SetScope sets the Scope field's value. 11362 func (s *ListAvailableManagedRuleGroupsInput) SetScope(v string) *ListAvailableManagedRuleGroupsInput { 11363 s.Scope = &v 11364 return s 11365 } 11366 11367 type ListAvailableManagedRuleGroupsOutput struct { 11368 _ struct{} `type:"structure"` 11369 11370 ManagedRuleGroups []*ManagedRuleGroupSummary `type:"list"` 11371 11372 // When you request a list of objects with a Limit setting, if the number of 11373 // objects that are still available for retrieval exceeds the limit, WAF returns 11374 // a NextMarker value in the response. To retrieve the next batch of objects, 11375 // provide the marker from the prior call in your next request. 11376 NextMarker *string `min:"1" type:"string"` 11377 } 11378 11379 // String returns the string representation. 11380 // 11381 // API parameter values that are decorated as "sensitive" in the API will not 11382 // be included in the string output. The member name will be present, but the 11383 // value will be replaced with "sensitive". 11384 func (s ListAvailableManagedRuleGroupsOutput) String() string { 11385 return awsutil.Prettify(s) 11386 } 11387 11388 // GoString returns the string representation. 11389 // 11390 // API parameter values that are decorated as "sensitive" in the API will not 11391 // be included in the string output. The member name will be present, but the 11392 // value will be replaced with "sensitive". 11393 func (s ListAvailableManagedRuleGroupsOutput) GoString() string { 11394 return s.String() 11395 } 11396 11397 // SetManagedRuleGroups sets the ManagedRuleGroups field's value. 11398 func (s *ListAvailableManagedRuleGroupsOutput) SetManagedRuleGroups(v []*ManagedRuleGroupSummary) *ListAvailableManagedRuleGroupsOutput { 11399 s.ManagedRuleGroups = v 11400 return s 11401 } 11402 11403 // SetNextMarker sets the NextMarker field's value. 11404 func (s *ListAvailableManagedRuleGroupsOutput) SetNextMarker(v string) *ListAvailableManagedRuleGroupsOutput { 11405 s.NextMarker = &v 11406 return s 11407 } 11408 11409 type ListIPSetsInput struct { 11410 _ struct{} `type:"structure"` 11411 11412 // The maximum number of objects that you want WAF to return for this request. 11413 // If more objects are available, in the response, WAF provides a NextMarker 11414 // value that you can use in a subsequent call to get the next batch of objects. 11415 Limit *int64 `min:"1" type:"integer"` 11416 11417 // When you request a list of objects with a Limit setting, if the number of 11418 // objects that are still available for retrieval exceeds the limit, WAF returns 11419 // a NextMarker value in the response. To retrieve the next batch of objects, 11420 // provide the marker from the prior call in your next request. 11421 NextMarker *string `min:"1" type:"string"` 11422 11423 // Specifies whether this is for an Amazon CloudFront distribution or for a 11424 // regional application. A regional application can be an Application Load Balancer 11425 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 11426 // 11427 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 11428 // as follows: 11429 // 11430 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 11431 // --region=us-east-1. 11432 // 11433 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 11434 // 11435 // Scope is a required field 11436 Scope *string `type:"string" required:"true" enum:"Scope"` 11437 } 11438 11439 // String returns the string representation. 11440 // 11441 // API parameter values that are decorated as "sensitive" in the API will not 11442 // be included in the string output. The member name will be present, but the 11443 // value will be replaced with "sensitive". 11444 func (s ListIPSetsInput) String() string { 11445 return awsutil.Prettify(s) 11446 } 11447 11448 // GoString returns the string representation. 11449 // 11450 // API parameter values that are decorated as "sensitive" in the API will not 11451 // be included in the string output. The member name will be present, but the 11452 // value will be replaced with "sensitive". 11453 func (s ListIPSetsInput) GoString() string { 11454 return s.String() 11455 } 11456 11457 // Validate inspects the fields of the type to determine if they are valid. 11458 func (s *ListIPSetsInput) Validate() error { 11459 invalidParams := request.ErrInvalidParams{Context: "ListIPSetsInput"} 11460 if s.Limit != nil && *s.Limit < 1 { 11461 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 11462 } 11463 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 11464 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 11465 } 11466 if s.Scope == nil { 11467 invalidParams.Add(request.NewErrParamRequired("Scope")) 11468 } 11469 11470 if invalidParams.Len() > 0 { 11471 return invalidParams 11472 } 11473 return nil 11474 } 11475 11476 // SetLimit sets the Limit field's value. 11477 func (s *ListIPSetsInput) SetLimit(v int64) *ListIPSetsInput { 11478 s.Limit = &v 11479 return s 11480 } 11481 11482 // SetNextMarker sets the NextMarker field's value. 11483 func (s *ListIPSetsInput) SetNextMarker(v string) *ListIPSetsInput { 11484 s.NextMarker = &v 11485 return s 11486 } 11487 11488 // SetScope sets the Scope field's value. 11489 func (s *ListIPSetsInput) SetScope(v string) *ListIPSetsInput { 11490 s.Scope = &v 11491 return s 11492 } 11493 11494 type ListIPSetsOutput struct { 11495 _ struct{} `type:"structure"` 11496 11497 // Array of IPSets. This may not be the full list of IPSets that you have defined. 11498 // See the Limit specification for this request. 11499 IPSets []*IPSetSummary `type:"list"` 11500 11501 // When you request a list of objects with a Limit setting, if the number of 11502 // objects that are still available for retrieval exceeds the limit, WAF returns 11503 // a NextMarker value in the response. To retrieve the next batch of objects, 11504 // provide the marker from the prior call in your next request. 11505 NextMarker *string `min:"1" type:"string"` 11506 } 11507 11508 // String returns the string representation. 11509 // 11510 // API parameter values that are decorated as "sensitive" in the API will not 11511 // be included in the string output. The member name will be present, but the 11512 // value will be replaced with "sensitive". 11513 func (s ListIPSetsOutput) String() string { 11514 return awsutil.Prettify(s) 11515 } 11516 11517 // GoString returns the string representation. 11518 // 11519 // API parameter values that are decorated as "sensitive" in the API will not 11520 // be included in the string output. The member name will be present, but the 11521 // value will be replaced with "sensitive". 11522 func (s ListIPSetsOutput) GoString() string { 11523 return s.String() 11524 } 11525 11526 // SetIPSets sets the IPSets field's value. 11527 func (s *ListIPSetsOutput) SetIPSets(v []*IPSetSummary) *ListIPSetsOutput { 11528 s.IPSets = v 11529 return s 11530 } 11531 11532 // SetNextMarker sets the NextMarker field's value. 11533 func (s *ListIPSetsOutput) SetNextMarker(v string) *ListIPSetsOutput { 11534 s.NextMarker = &v 11535 return s 11536 } 11537 11538 type ListLoggingConfigurationsInput struct { 11539 _ struct{} `type:"structure"` 11540 11541 // The maximum number of objects that you want WAF to return for this request. 11542 // If more objects are available, in the response, WAF provides a NextMarker 11543 // value that you can use in a subsequent call to get the next batch of objects. 11544 Limit *int64 `min:"1" type:"integer"` 11545 11546 // When you request a list of objects with a Limit setting, if the number of 11547 // objects that are still available for retrieval exceeds the limit, WAF returns 11548 // a NextMarker value in the response. To retrieve the next batch of objects, 11549 // provide the marker from the prior call in your next request. 11550 NextMarker *string `min:"1" type:"string"` 11551 11552 // Specifies whether this is for an Amazon CloudFront distribution or for a 11553 // regional application. A regional application can be an Application Load Balancer 11554 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 11555 // 11556 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 11557 // as follows: 11558 // 11559 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 11560 // --region=us-east-1. 11561 // 11562 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 11563 Scope *string `type:"string" enum:"Scope"` 11564 } 11565 11566 // String returns the string representation. 11567 // 11568 // API parameter values that are decorated as "sensitive" in the API will not 11569 // be included in the string output. The member name will be present, but the 11570 // value will be replaced with "sensitive". 11571 func (s ListLoggingConfigurationsInput) String() string { 11572 return awsutil.Prettify(s) 11573 } 11574 11575 // GoString returns the string representation. 11576 // 11577 // API parameter values that are decorated as "sensitive" in the API will not 11578 // be included in the string output. The member name will be present, but the 11579 // value will be replaced with "sensitive". 11580 func (s ListLoggingConfigurationsInput) GoString() string { 11581 return s.String() 11582 } 11583 11584 // Validate inspects the fields of the type to determine if they are valid. 11585 func (s *ListLoggingConfigurationsInput) Validate() error { 11586 invalidParams := request.ErrInvalidParams{Context: "ListLoggingConfigurationsInput"} 11587 if s.Limit != nil && *s.Limit < 1 { 11588 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 11589 } 11590 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 11591 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 11592 } 11593 11594 if invalidParams.Len() > 0 { 11595 return invalidParams 11596 } 11597 return nil 11598 } 11599 11600 // SetLimit sets the Limit field's value. 11601 func (s *ListLoggingConfigurationsInput) SetLimit(v int64) *ListLoggingConfigurationsInput { 11602 s.Limit = &v 11603 return s 11604 } 11605 11606 // SetNextMarker sets the NextMarker field's value. 11607 func (s *ListLoggingConfigurationsInput) SetNextMarker(v string) *ListLoggingConfigurationsInput { 11608 s.NextMarker = &v 11609 return s 11610 } 11611 11612 // SetScope sets the Scope field's value. 11613 func (s *ListLoggingConfigurationsInput) SetScope(v string) *ListLoggingConfigurationsInput { 11614 s.Scope = &v 11615 return s 11616 } 11617 11618 type ListLoggingConfigurationsOutput struct { 11619 _ struct{} `type:"structure"` 11620 11621 LoggingConfigurations []*LoggingConfiguration `type:"list"` 11622 11623 // When you request a list of objects with a Limit setting, if the number of 11624 // objects that are still available for retrieval exceeds the limit, WAF returns 11625 // a NextMarker value in the response. To retrieve the next batch of objects, 11626 // provide the marker from the prior call in your next request. 11627 NextMarker *string `min:"1" type:"string"` 11628 } 11629 11630 // String returns the string representation. 11631 // 11632 // API parameter values that are decorated as "sensitive" in the API will not 11633 // be included in the string output. The member name will be present, but the 11634 // value will be replaced with "sensitive". 11635 func (s ListLoggingConfigurationsOutput) String() string { 11636 return awsutil.Prettify(s) 11637 } 11638 11639 // GoString returns the string representation. 11640 // 11641 // API parameter values that are decorated as "sensitive" in the API will not 11642 // be included in the string output. The member name will be present, but the 11643 // value will be replaced with "sensitive". 11644 func (s ListLoggingConfigurationsOutput) GoString() string { 11645 return s.String() 11646 } 11647 11648 // SetLoggingConfigurations sets the LoggingConfigurations field's value. 11649 func (s *ListLoggingConfigurationsOutput) SetLoggingConfigurations(v []*LoggingConfiguration) *ListLoggingConfigurationsOutput { 11650 s.LoggingConfigurations = v 11651 return s 11652 } 11653 11654 // SetNextMarker sets the NextMarker field's value. 11655 func (s *ListLoggingConfigurationsOutput) SetNextMarker(v string) *ListLoggingConfigurationsOutput { 11656 s.NextMarker = &v 11657 return s 11658 } 11659 11660 type ListManagedRuleSetsInput struct { 11661 _ struct{} `type:"structure"` 11662 11663 // The maximum number of objects that you want WAF to return for this request. 11664 // If more objects are available, in the response, WAF provides a NextMarker 11665 // value that you can use in a subsequent call to get the next batch of objects. 11666 Limit *int64 `min:"1" type:"integer"` 11667 11668 // When you request a list of objects with a Limit setting, if the number of 11669 // objects that are still available for retrieval exceeds the limit, WAF returns 11670 // a NextMarker value in the response. To retrieve the next batch of objects, 11671 // provide the marker from the prior call in your next request. 11672 NextMarker *string `min:"1" type:"string"` 11673 11674 // Specifies whether this is for an Amazon CloudFront distribution or for a 11675 // regional application. A regional application can be an Application Load Balancer 11676 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 11677 // 11678 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 11679 // as follows: 11680 // 11681 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 11682 // --region=us-east-1. 11683 // 11684 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 11685 // 11686 // Scope is a required field 11687 Scope *string `type:"string" required:"true" enum:"Scope"` 11688 } 11689 11690 // String returns the string representation. 11691 // 11692 // API parameter values that are decorated as "sensitive" in the API will not 11693 // be included in the string output. The member name will be present, but the 11694 // value will be replaced with "sensitive". 11695 func (s ListManagedRuleSetsInput) String() string { 11696 return awsutil.Prettify(s) 11697 } 11698 11699 // GoString returns the string representation. 11700 // 11701 // API parameter values that are decorated as "sensitive" in the API will not 11702 // be included in the string output. The member name will be present, but the 11703 // value will be replaced with "sensitive". 11704 func (s ListManagedRuleSetsInput) GoString() string { 11705 return s.String() 11706 } 11707 11708 // Validate inspects the fields of the type to determine if they are valid. 11709 func (s *ListManagedRuleSetsInput) Validate() error { 11710 invalidParams := request.ErrInvalidParams{Context: "ListManagedRuleSetsInput"} 11711 if s.Limit != nil && *s.Limit < 1 { 11712 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 11713 } 11714 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 11715 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 11716 } 11717 if s.Scope == nil { 11718 invalidParams.Add(request.NewErrParamRequired("Scope")) 11719 } 11720 11721 if invalidParams.Len() > 0 { 11722 return invalidParams 11723 } 11724 return nil 11725 } 11726 11727 // SetLimit sets the Limit field's value. 11728 func (s *ListManagedRuleSetsInput) SetLimit(v int64) *ListManagedRuleSetsInput { 11729 s.Limit = &v 11730 return s 11731 } 11732 11733 // SetNextMarker sets the NextMarker field's value. 11734 func (s *ListManagedRuleSetsInput) SetNextMarker(v string) *ListManagedRuleSetsInput { 11735 s.NextMarker = &v 11736 return s 11737 } 11738 11739 // SetScope sets the Scope field's value. 11740 func (s *ListManagedRuleSetsInput) SetScope(v string) *ListManagedRuleSetsInput { 11741 s.Scope = &v 11742 return s 11743 } 11744 11745 type ListManagedRuleSetsOutput struct { 11746 _ struct{} `type:"structure"` 11747 11748 // Your managed rule sets. 11749 ManagedRuleSets []*ManagedRuleSetSummary `type:"list"` 11750 11751 // When you request a list of objects with a Limit setting, if the number of 11752 // objects that are still available for retrieval exceeds the limit, WAF returns 11753 // a NextMarker value in the response. To retrieve the next batch of objects, 11754 // provide the marker from the prior call in your next request. 11755 NextMarker *string `min:"1" type:"string"` 11756 } 11757 11758 // String returns the string representation. 11759 // 11760 // API parameter values that are decorated as "sensitive" in the API will not 11761 // be included in the string output. The member name will be present, but the 11762 // value will be replaced with "sensitive". 11763 func (s ListManagedRuleSetsOutput) String() string { 11764 return awsutil.Prettify(s) 11765 } 11766 11767 // GoString returns the string representation. 11768 // 11769 // API parameter values that are decorated as "sensitive" in the API will not 11770 // be included in the string output. The member name will be present, but the 11771 // value will be replaced with "sensitive". 11772 func (s ListManagedRuleSetsOutput) GoString() string { 11773 return s.String() 11774 } 11775 11776 // SetManagedRuleSets sets the ManagedRuleSets field's value. 11777 func (s *ListManagedRuleSetsOutput) SetManagedRuleSets(v []*ManagedRuleSetSummary) *ListManagedRuleSetsOutput { 11778 s.ManagedRuleSets = v 11779 return s 11780 } 11781 11782 // SetNextMarker sets the NextMarker field's value. 11783 func (s *ListManagedRuleSetsOutput) SetNextMarker(v string) *ListManagedRuleSetsOutput { 11784 s.NextMarker = &v 11785 return s 11786 } 11787 11788 type ListRegexPatternSetsInput struct { 11789 _ struct{} `type:"structure"` 11790 11791 // The maximum number of objects that you want WAF to return for this request. 11792 // If more objects are available, in the response, WAF provides a NextMarker 11793 // value that you can use in a subsequent call to get the next batch of objects. 11794 Limit *int64 `min:"1" type:"integer"` 11795 11796 // When you request a list of objects with a Limit setting, if the number of 11797 // objects that are still available for retrieval exceeds the limit, WAF returns 11798 // a NextMarker value in the response. To retrieve the next batch of objects, 11799 // provide the marker from the prior call in your next request. 11800 NextMarker *string `min:"1" type:"string"` 11801 11802 // Specifies whether this is for an Amazon CloudFront distribution or for a 11803 // regional application. A regional application can be an Application Load Balancer 11804 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 11805 // 11806 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 11807 // as follows: 11808 // 11809 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 11810 // --region=us-east-1. 11811 // 11812 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 11813 // 11814 // Scope is a required field 11815 Scope *string `type:"string" required:"true" enum:"Scope"` 11816 } 11817 11818 // String returns the string representation. 11819 // 11820 // API parameter values that are decorated as "sensitive" in the API will not 11821 // be included in the string output. The member name will be present, but the 11822 // value will be replaced with "sensitive". 11823 func (s ListRegexPatternSetsInput) String() string { 11824 return awsutil.Prettify(s) 11825 } 11826 11827 // GoString returns the string representation. 11828 // 11829 // API parameter values that are decorated as "sensitive" in the API will not 11830 // be included in the string output. The member name will be present, but the 11831 // value will be replaced with "sensitive". 11832 func (s ListRegexPatternSetsInput) GoString() string { 11833 return s.String() 11834 } 11835 11836 // Validate inspects the fields of the type to determine if they are valid. 11837 func (s *ListRegexPatternSetsInput) Validate() error { 11838 invalidParams := request.ErrInvalidParams{Context: "ListRegexPatternSetsInput"} 11839 if s.Limit != nil && *s.Limit < 1 { 11840 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 11841 } 11842 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 11843 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 11844 } 11845 if s.Scope == nil { 11846 invalidParams.Add(request.NewErrParamRequired("Scope")) 11847 } 11848 11849 if invalidParams.Len() > 0 { 11850 return invalidParams 11851 } 11852 return nil 11853 } 11854 11855 // SetLimit sets the Limit field's value. 11856 func (s *ListRegexPatternSetsInput) SetLimit(v int64) *ListRegexPatternSetsInput { 11857 s.Limit = &v 11858 return s 11859 } 11860 11861 // SetNextMarker sets the NextMarker field's value. 11862 func (s *ListRegexPatternSetsInput) SetNextMarker(v string) *ListRegexPatternSetsInput { 11863 s.NextMarker = &v 11864 return s 11865 } 11866 11867 // SetScope sets the Scope field's value. 11868 func (s *ListRegexPatternSetsInput) SetScope(v string) *ListRegexPatternSetsInput { 11869 s.Scope = &v 11870 return s 11871 } 11872 11873 type ListRegexPatternSetsOutput struct { 11874 _ struct{} `type:"structure"` 11875 11876 // When you request a list of objects with a Limit setting, if the number of 11877 // objects that are still available for retrieval exceeds the limit, WAF returns 11878 // a NextMarker value in the response. To retrieve the next batch of objects, 11879 // provide the marker from the prior call in your next request. 11880 NextMarker *string `min:"1" type:"string"` 11881 11882 RegexPatternSets []*RegexPatternSetSummary `type:"list"` 11883 } 11884 11885 // String returns the string representation. 11886 // 11887 // API parameter values that are decorated as "sensitive" in the API will not 11888 // be included in the string output. The member name will be present, but the 11889 // value will be replaced with "sensitive". 11890 func (s ListRegexPatternSetsOutput) String() string { 11891 return awsutil.Prettify(s) 11892 } 11893 11894 // GoString returns the string representation. 11895 // 11896 // API parameter values that are decorated as "sensitive" in the API will not 11897 // be included in the string output. The member name will be present, but the 11898 // value will be replaced with "sensitive". 11899 func (s ListRegexPatternSetsOutput) GoString() string { 11900 return s.String() 11901 } 11902 11903 // SetNextMarker sets the NextMarker field's value. 11904 func (s *ListRegexPatternSetsOutput) SetNextMarker(v string) *ListRegexPatternSetsOutput { 11905 s.NextMarker = &v 11906 return s 11907 } 11908 11909 // SetRegexPatternSets sets the RegexPatternSets field's value. 11910 func (s *ListRegexPatternSetsOutput) SetRegexPatternSets(v []*RegexPatternSetSummary) *ListRegexPatternSetsOutput { 11911 s.RegexPatternSets = v 11912 return s 11913 } 11914 11915 type ListResourcesForWebACLInput struct { 11916 _ struct{} `type:"structure"` 11917 11918 // Used for web ACLs that are scoped for regional applications. A regional application 11919 // can be an Application Load Balancer (ALB), an Amazon API Gateway REST API, 11920 // or an AppSync GraphQL API. 11921 ResourceType *string `type:"string" enum:"ResourceType"` 11922 11923 // The Amazon Resource Name (ARN) of the web ACL. 11924 // 11925 // WebACLArn is a required field 11926 WebACLArn *string `min:"20" type:"string" required:"true"` 11927 } 11928 11929 // String returns the string representation. 11930 // 11931 // API parameter values that are decorated as "sensitive" in the API will not 11932 // be included in the string output. The member name will be present, but the 11933 // value will be replaced with "sensitive". 11934 func (s ListResourcesForWebACLInput) String() string { 11935 return awsutil.Prettify(s) 11936 } 11937 11938 // GoString returns the string representation. 11939 // 11940 // API parameter values that are decorated as "sensitive" in the API will not 11941 // be included in the string output. The member name will be present, but the 11942 // value will be replaced with "sensitive". 11943 func (s ListResourcesForWebACLInput) GoString() string { 11944 return s.String() 11945 } 11946 11947 // Validate inspects the fields of the type to determine if they are valid. 11948 func (s *ListResourcesForWebACLInput) Validate() error { 11949 invalidParams := request.ErrInvalidParams{Context: "ListResourcesForWebACLInput"} 11950 if s.WebACLArn == nil { 11951 invalidParams.Add(request.NewErrParamRequired("WebACLArn")) 11952 } 11953 if s.WebACLArn != nil && len(*s.WebACLArn) < 20 { 11954 invalidParams.Add(request.NewErrParamMinLen("WebACLArn", 20)) 11955 } 11956 11957 if invalidParams.Len() > 0 { 11958 return invalidParams 11959 } 11960 return nil 11961 } 11962 11963 // SetResourceType sets the ResourceType field's value. 11964 func (s *ListResourcesForWebACLInput) SetResourceType(v string) *ListResourcesForWebACLInput { 11965 s.ResourceType = &v 11966 return s 11967 } 11968 11969 // SetWebACLArn sets the WebACLArn field's value. 11970 func (s *ListResourcesForWebACLInput) SetWebACLArn(v string) *ListResourcesForWebACLInput { 11971 s.WebACLArn = &v 11972 return s 11973 } 11974 11975 type ListResourcesForWebACLOutput struct { 11976 _ struct{} `type:"structure"` 11977 11978 // The array of Amazon Resource Names (ARNs) of the associated resources. 11979 ResourceArns []*string `type:"list"` 11980 } 11981 11982 // String returns the string representation. 11983 // 11984 // API parameter values that are decorated as "sensitive" in the API will not 11985 // be included in the string output. The member name will be present, but the 11986 // value will be replaced with "sensitive". 11987 func (s ListResourcesForWebACLOutput) String() string { 11988 return awsutil.Prettify(s) 11989 } 11990 11991 // GoString returns the string representation. 11992 // 11993 // API parameter values that are decorated as "sensitive" in the API will not 11994 // be included in the string output. The member name will be present, but the 11995 // value will be replaced with "sensitive". 11996 func (s ListResourcesForWebACLOutput) GoString() string { 11997 return s.String() 11998 } 11999 12000 // SetResourceArns sets the ResourceArns field's value. 12001 func (s *ListResourcesForWebACLOutput) SetResourceArns(v []*string) *ListResourcesForWebACLOutput { 12002 s.ResourceArns = v 12003 return s 12004 } 12005 12006 type ListRuleGroupsInput struct { 12007 _ struct{} `type:"structure"` 12008 12009 // The maximum number of objects that you want WAF to return for this request. 12010 // If more objects are available, in the response, WAF provides a NextMarker 12011 // value that you can use in a subsequent call to get the next batch of objects. 12012 Limit *int64 `min:"1" type:"integer"` 12013 12014 // When you request a list of objects with a Limit setting, if the number of 12015 // objects that are still available for retrieval exceeds the limit, WAF returns 12016 // a NextMarker value in the response. To retrieve the next batch of objects, 12017 // provide the marker from the prior call in your next request. 12018 NextMarker *string `min:"1" type:"string"` 12019 12020 // Specifies whether this is for an Amazon CloudFront distribution or for a 12021 // regional application. A regional application can be an Application Load Balancer 12022 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 12023 // 12024 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 12025 // as follows: 12026 // 12027 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 12028 // --region=us-east-1. 12029 // 12030 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 12031 // 12032 // Scope is a required field 12033 Scope *string `type:"string" required:"true" enum:"Scope"` 12034 } 12035 12036 // String returns the string representation. 12037 // 12038 // API parameter values that are decorated as "sensitive" in the API will not 12039 // be included in the string output. The member name will be present, but the 12040 // value will be replaced with "sensitive". 12041 func (s ListRuleGroupsInput) String() string { 12042 return awsutil.Prettify(s) 12043 } 12044 12045 // GoString returns the string representation. 12046 // 12047 // API parameter values that are decorated as "sensitive" in the API will not 12048 // be included in the string output. The member name will be present, but the 12049 // value will be replaced with "sensitive". 12050 func (s ListRuleGroupsInput) GoString() string { 12051 return s.String() 12052 } 12053 12054 // Validate inspects the fields of the type to determine if they are valid. 12055 func (s *ListRuleGroupsInput) Validate() error { 12056 invalidParams := request.ErrInvalidParams{Context: "ListRuleGroupsInput"} 12057 if s.Limit != nil && *s.Limit < 1 { 12058 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 12059 } 12060 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 12061 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 12062 } 12063 if s.Scope == nil { 12064 invalidParams.Add(request.NewErrParamRequired("Scope")) 12065 } 12066 12067 if invalidParams.Len() > 0 { 12068 return invalidParams 12069 } 12070 return nil 12071 } 12072 12073 // SetLimit sets the Limit field's value. 12074 func (s *ListRuleGroupsInput) SetLimit(v int64) *ListRuleGroupsInput { 12075 s.Limit = &v 12076 return s 12077 } 12078 12079 // SetNextMarker sets the NextMarker field's value. 12080 func (s *ListRuleGroupsInput) SetNextMarker(v string) *ListRuleGroupsInput { 12081 s.NextMarker = &v 12082 return s 12083 } 12084 12085 // SetScope sets the Scope field's value. 12086 func (s *ListRuleGroupsInput) SetScope(v string) *ListRuleGroupsInput { 12087 s.Scope = &v 12088 return s 12089 } 12090 12091 type ListRuleGroupsOutput struct { 12092 _ struct{} `type:"structure"` 12093 12094 // When you request a list of objects with a Limit setting, if the number of 12095 // objects that are still available for retrieval exceeds the limit, WAF returns 12096 // a NextMarker value in the response. To retrieve the next batch of objects, 12097 // provide the marker from the prior call in your next request. 12098 NextMarker *string `min:"1" type:"string"` 12099 12100 RuleGroups []*RuleGroupSummary `type:"list"` 12101 } 12102 12103 // String returns the string representation. 12104 // 12105 // API parameter values that are decorated as "sensitive" in the API will not 12106 // be included in the string output. The member name will be present, but the 12107 // value will be replaced with "sensitive". 12108 func (s ListRuleGroupsOutput) String() string { 12109 return awsutil.Prettify(s) 12110 } 12111 12112 // GoString returns the string representation. 12113 // 12114 // API parameter values that are decorated as "sensitive" in the API will not 12115 // be included in the string output. The member name will be present, but the 12116 // value will be replaced with "sensitive". 12117 func (s ListRuleGroupsOutput) GoString() string { 12118 return s.String() 12119 } 12120 12121 // SetNextMarker sets the NextMarker field's value. 12122 func (s *ListRuleGroupsOutput) SetNextMarker(v string) *ListRuleGroupsOutput { 12123 s.NextMarker = &v 12124 return s 12125 } 12126 12127 // SetRuleGroups sets the RuleGroups field's value. 12128 func (s *ListRuleGroupsOutput) SetRuleGroups(v []*RuleGroupSummary) *ListRuleGroupsOutput { 12129 s.RuleGroups = v 12130 return s 12131 } 12132 12133 type ListTagsForResourceInput struct { 12134 _ struct{} `type:"structure"` 12135 12136 // The maximum number of objects that you want WAF to return for this request. 12137 // If more objects are available, in the response, WAF provides a NextMarker 12138 // value that you can use in a subsequent call to get the next batch of objects. 12139 Limit *int64 `min:"1" type:"integer"` 12140 12141 // When you request a list of objects with a Limit setting, if the number of 12142 // objects that are still available for retrieval exceeds the limit, WAF returns 12143 // a NextMarker value in the response. To retrieve the next batch of objects, 12144 // provide the marker from the prior call in your next request. 12145 NextMarker *string `min:"1" type:"string"` 12146 12147 // The Amazon Resource Name (ARN) of the resource. 12148 // 12149 // ResourceARN is a required field 12150 ResourceARN *string `min:"20" type:"string" required:"true"` 12151 } 12152 12153 // String returns the string representation. 12154 // 12155 // API parameter values that are decorated as "sensitive" in the API will not 12156 // be included in the string output. The member name will be present, but the 12157 // value will be replaced with "sensitive". 12158 func (s ListTagsForResourceInput) String() string { 12159 return awsutil.Prettify(s) 12160 } 12161 12162 // GoString returns the string representation. 12163 // 12164 // API parameter values that are decorated as "sensitive" in the API will not 12165 // be included in the string output. The member name will be present, but the 12166 // value will be replaced with "sensitive". 12167 func (s ListTagsForResourceInput) GoString() string { 12168 return s.String() 12169 } 12170 12171 // Validate inspects the fields of the type to determine if they are valid. 12172 func (s *ListTagsForResourceInput) Validate() error { 12173 invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"} 12174 if s.Limit != nil && *s.Limit < 1 { 12175 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 12176 } 12177 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 12178 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 12179 } 12180 if s.ResourceARN == nil { 12181 invalidParams.Add(request.NewErrParamRequired("ResourceARN")) 12182 } 12183 if s.ResourceARN != nil && len(*s.ResourceARN) < 20 { 12184 invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 20)) 12185 } 12186 12187 if invalidParams.Len() > 0 { 12188 return invalidParams 12189 } 12190 return nil 12191 } 12192 12193 // SetLimit sets the Limit field's value. 12194 func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput { 12195 s.Limit = &v 12196 return s 12197 } 12198 12199 // SetNextMarker sets the NextMarker field's value. 12200 func (s *ListTagsForResourceInput) SetNextMarker(v string) *ListTagsForResourceInput { 12201 s.NextMarker = &v 12202 return s 12203 } 12204 12205 // SetResourceARN sets the ResourceARN field's value. 12206 func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput { 12207 s.ResourceARN = &v 12208 return s 12209 } 12210 12211 type ListTagsForResourceOutput struct { 12212 _ struct{} `type:"structure"` 12213 12214 // When you request a list of objects with a Limit setting, if the number of 12215 // objects that are still available for retrieval exceeds the limit, WAF returns 12216 // a NextMarker value in the response. To retrieve the next batch of objects, 12217 // provide the marker from the prior call in your next request. 12218 NextMarker *string `min:"1" type:"string"` 12219 12220 // The collection of tagging definitions for the resource. 12221 TagInfoForResource *TagInfoForResource `type:"structure"` 12222 } 12223 12224 // String returns the string representation. 12225 // 12226 // API parameter values that are decorated as "sensitive" in the API will not 12227 // be included in the string output. The member name will be present, but the 12228 // value will be replaced with "sensitive". 12229 func (s ListTagsForResourceOutput) String() string { 12230 return awsutil.Prettify(s) 12231 } 12232 12233 // GoString returns the string representation. 12234 // 12235 // API parameter values that are decorated as "sensitive" in the API will not 12236 // be included in the string output. The member name will be present, but the 12237 // value will be replaced with "sensitive". 12238 func (s ListTagsForResourceOutput) GoString() string { 12239 return s.String() 12240 } 12241 12242 // SetNextMarker sets the NextMarker field's value. 12243 func (s *ListTagsForResourceOutput) SetNextMarker(v string) *ListTagsForResourceOutput { 12244 s.NextMarker = &v 12245 return s 12246 } 12247 12248 // SetTagInfoForResource sets the TagInfoForResource field's value. 12249 func (s *ListTagsForResourceOutput) SetTagInfoForResource(v *TagInfoForResource) *ListTagsForResourceOutput { 12250 s.TagInfoForResource = v 12251 return s 12252 } 12253 12254 type ListWebACLsInput struct { 12255 _ struct{} `type:"structure"` 12256 12257 // The maximum number of objects that you want WAF to return for this request. 12258 // If more objects are available, in the response, WAF provides a NextMarker 12259 // value that you can use in a subsequent call to get the next batch of objects. 12260 Limit *int64 `min:"1" type:"integer"` 12261 12262 // When you request a list of objects with a Limit setting, if the number of 12263 // objects that are still available for retrieval exceeds the limit, WAF returns 12264 // a NextMarker value in the response. To retrieve the next batch of objects, 12265 // provide the marker from the prior call in your next request. 12266 NextMarker *string `min:"1" type:"string"` 12267 12268 // Specifies whether this is for an Amazon CloudFront distribution or for a 12269 // regional application. A regional application can be an Application Load Balancer 12270 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 12271 // 12272 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 12273 // as follows: 12274 // 12275 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 12276 // --region=us-east-1. 12277 // 12278 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 12279 // 12280 // Scope is a required field 12281 Scope *string `type:"string" required:"true" enum:"Scope"` 12282 } 12283 12284 // String returns the string representation. 12285 // 12286 // API parameter values that are decorated as "sensitive" in the API will not 12287 // be included in the string output. The member name will be present, but the 12288 // value will be replaced with "sensitive". 12289 func (s ListWebACLsInput) String() string { 12290 return awsutil.Prettify(s) 12291 } 12292 12293 // GoString returns the string representation. 12294 // 12295 // API parameter values that are decorated as "sensitive" in the API will not 12296 // be included in the string output. The member name will be present, but the 12297 // value will be replaced with "sensitive". 12298 func (s ListWebACLsInput) GoString() string { 12299 return s.String() 12300 } 12301 12302 // Validate inspects the fields of the type to determine if they are valid. 12303 func (s *ListWebACLsInput) Validate() error { 12304 invalidParams := request.ErrInvalidParams{Context: "ListWebACLsInput"} 12305 if s.Limit != nil && *s.Limit < 1 { 12306 invalidParams.Add(request.NewErrParamMinValue("Limit", 1)) 12307 } 12308 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 12309 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 12310 } 12311 if s.Scope == nil { 12312 invalidParams.Add(request.NewErrParamRequired("Scope")) 12313 } 12314 12315 if invalidParams.Len() > 0 { 12316 return invalidParams 12317 } 12318 return nil 12319 } 12320 12321 // SetLimit sets the Limit field's value. 12322 func (s *ListWebACLsInput) SetLimit(v int64) *ListWebACLsInput { 12323 s.Limit = &v 12324 return s 12325 } 12326 12327 // SetNextMarker sets the NextMarker field's value. 12328 func (s *ListWebACLsInput) SetNextMarker(v string) *ListWebACLsInput { 12329 s.NextMarker = &v 12330 return s 12331 } 12332 12333 // SetScope sets the Scope field's value. 12334 func (s *ListWebACLsInput) SetScope(v string) *ListWebACLsInput { 12335 s.Scope = &v 12336 return s 12337 } 12338 12339 type ListWebACLsOutput struct { 12340 _ struct{} `type:"structure"` 12341 12342 // When you request a list of objects with a Limit setting, if the number of 12343 // objects that are still available for retrieval exceeds the limit, WAF returns 12344 // a NextMarker value in the response. To retrieve the next batch of objects, 12345 // provide the marker from the prior call in your next request. 12346 NextMarker *string `min:"1" type:"string"` 12347 12348 WebACLs []*WebACLSummary `type:"list"` 12349 } 12350 12351 // String returns the string representation. 12352 // 12353 // API parameter values that are decorated as "sensitive" in the API will not 12354 // be included in the string output. The member name will be present, but the 12355 // value will be replaced with "sensitive". 12356 func (s ListWebACLsOutput) String() string { 12357 return awsutil.Prettify(s) 12358 } 12359 12360 // GoString returns the string representation. 12361 // 12362 // API parameter values that are decorated as "sensitive" in the API will not 12363 // be included in the string output. The member name will be present, but the 12364 // value will be replaced with "sensitive". 12365 func (s ListWebACLsOutput) GoString() string { 12366 return s.String() 12367 } 12368 12369 // SetNextMarker sets the NextMarker field's value. 12370 func (s *ListWebACLsOutput) SetNextMarker(v string) *ListWebACLsOutput { 12371 s.NextMarker = &v 12372 return s 12373 } 12374 12375 // SetWebACLs sets the WebACLs field's value. 12376 func (s *ListWebACLsOutput) SetWebACLs(v []*WebACLSummary) *ListWebACLsOutput { 12377 s.WebACLs = v 12378 return s 12379 } 12380 12381 // Defines an association between Amazon Kinesis Data Firehose destinations 12382 // and a web ACL resource, for logging from WAF. As part of the association, 12383 // you can specify parts of the standard logging fields to keep out of the logs 12384 // and you can specify filters so that you log only a subset of the logging 12385 // records. 12386 type LoggingConfiguration struct { 12387 _ struct{} `type:"structure"` 12388 12389 // The Amazon Kinesis Data Firehose Amazon Resource Name (ARNs) that you want 12390 // to associate with the web ACL. 12391 // 12392 // LogDestinationConfigs is a required field 12393 LogDestinationConfigs []*string `min:"1" type:"list" required:"true"` 12394 12395 // Filtering that specifies which web requests are kept in the logs and which 12396 // are dropped. You can filter on the rule action and on the web request labels 12397 // that were applied by matching rules during web ACL evaluation. 12398 LoggingFilter *LoggingFilter `type:"structure"` 12399 12400 // Indicates whether the logging configuration was created by Firewall Manager, 12401 // as part of an WAF policy configuration. If true, only Firewall Manager can 12402 // modify or delete the configuration. 12403 ManagedByFirewallManager *bool `type:"boolean"` 12404 12405 // The parts of the request that you want to keep out of the logs. For example, 12406 // if you redact the SingleHeader field, the HEADER field in the firehose will 12407 // be xxx. 12408 // 12409 // You can specify only the following fields for redaction: UriPath, QueryString, 12410 // SingleHeader, Method, and JsonBody. 12411 RedactedFields []*FieldToMatch `type:"list"` 12412 12413 // The Amazon Resource Name (ARN) of the web ACL that you want to associate 12414 // with LogDestinationConfigs. 12415 // 12416 // ResourceArn is a required field 12417 ResourceArn *string `min:"20" type:"string" required:"true"` 12418 } 12419 12420 // String returns the string representation. 12421 // 12422 // API parameter values that are decorated as "sensitive" in the API will not 12423 // be included in the string output. The member name will be present, but the 12424 // value will be replaced with "sensitive". 12425 func (s LoggingConfiguration) String() string { 12426 return awsutil.Prettify(s) 12427 } 12428 12429 // GoString returns the string representation. 12430 // 12431 // API parameter values that are decorated as "sensitive" in the API will not 12432 // be included in the string output. The member name will be present, but the 12433 // value will be replaced with "sensitive". 12434 func (s LoggingConfiguration) GoString() string { 12435 return s.String() 12436 } 12437 12438 // Validate inspects the fields of the type to determine if they are valid. 12439 func (s *LoggingConfiguration) Validate() error { 12440 invalidParams := request.ErrInvalidParams{Context: "LoggingConfiguration"} 12441 if s.LogDestinationConfigs == nil { 12442 invalidParams.Add(request.NewErrParamRequired("LogDestinationConfigs")) 12443 } 12444 if s.LogDestinationConfigs != nil && len(s.LogDestinationConfigs) < 1 { 12445 invalidParams.Add(request.NewErrParamMinLen("LogDestinationConfigs", 1)) 12446 } 12447 if s.ResourceArn == nil { 12448 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 12449 } 12450 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 12451 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 12452 } 12453 if s.LoggingFilter != nil { 12454 if err := s.LoggingFilter.Validate(); err != nil { 12455 invalidParams.AddNested("LoggingFilter", err.(request.ErrInvalidParams)) 12456 } 12457 } 12458 if s.RedactedFields != nil { 12459 for i, v := range s.RedactedFields { 12460 if v == nil { 12461 continue 12462 } 12463 if err := v.Validate(); err != nil { 12464 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RedactedFields", i), err.(request.ErrInvalidParams)) 12465 } 12466 } 12467 } 12468 12469 if invalidParams.Len() > 0 { 12470 return invalidParams 12471 } 12472 return nil 12473 } 12474 12475 // SetLogDestinationConfigs sets the LogDestinationConfigs field's value. 12476 func (s *LoggingConfiguration) SetLogDestinationConfigs(v []*string) *LoggingConfiguration { 12477 s.LogDestinationConfigs = v 12478 return s 12479 } 12480 12481 // SetLoggingFilter sets the LoggingFilter field's value. 12482 func (s *LoggingConfiguration) SetLoggingFilter(v *LoggingFilter) *LoggingConfiguration { 12483 s.LoggingFilter = v 12484 return s 12485 } 12486 12487 // SetManagedByFirewallManager sets the ManagedByFirewallManager field's value. 12488 func (s *LoggingConfiguration) SetManagedByFirewallManager(v bool) *LoggingConfiguration { 12489 s.ManagedByFirewallManager = &v 12490 return s 12491 } 12492 12493 // SetRedactedFields sets the RedactedFields field's value. 12494 func (s *LoggingConfiguration) SetRedactedFields(v []*FieldToMatch) *LoggingConfiguration { 12495 s.RedactedFields = v 12496 return s 12497 } 12498 12499 // SetResourceArn sets the ResourceArn field's value. 12500 func (s *LoggingConfiguration) SetResourceArn(v string) *LoggingConfiguration { 12501 s.ResourceArn = &v 12502 return s 12503 } 12504 12505 // Filtering that specifies which web requests are kept in the logs and which 12506 // are dropped, defined for a web ACL's LoggingConfiguration. 12507 // 12508 // You can filter on the rule action and on the web request labels that were 12509 // applied by matching rules during web ACL evaluation. 12510 type LoggingFilter struct { 12511 _ struct{} `type:"structure"` 12512 12513 // Default handling for logs that don't match any of the specified filtering 12514 // conditions. 12515 // 12516 // DefaultBehavior is a required field 12517 DefaultBehavior *string `type:"string" required:"true" enum:"FilterBehavior"` 12518 12519 // The filters that you want to apply to the logs. 12520 // 12521 // Filters is a required field 12522 Filters []*Filter `min:"1" type:"list" required:"true"` 12523 } 12524 12525 // String returns the string representation. 12526 // 12527 // API parameter values that are decorated as "sensitive" in the API will not 12528 // be included in the string output. The member name will be present, but the 12529 // value will be replaced with "sensitive". 12530 func (s LoggingFilter) String() string { 12531 return awsutil.Prettify(s) 12532 } 12533 12534 // GoString returns the string representation. 12535 // 12536 // API parameter values that are decorated as "sensitive" in the API will not 12537 // be included in the string output. The member name will be present, but the 12538 // value will be replaced with "sensitive". 12539 func (s LoggingFilter) GoString() string { 12540 return s.String() 12541 } 12542 12543 // Validate inspects the fields of the type to determine if they are valid. 12544 func (s *LoggingFilter) Validate() error { 12545 invalidParams := request.ErrInvalidParams{Context: "LoggingFilter"} 12546 if s.DefaultBehavior == nil { 12547 invalidParams.Add(request.NewErrParamRequired("DefaultBehavior")) 12548 } 12549 if s.Filters == nil { 12550 invalidParams.Add(request.NewErrParamRequired("Filters")) 12551 } 12552 if s.Filters != nil && len(s.Filters) < 1 { 12553 invalidParams.Add(request.NewErrParamMinLen("Filters", 1)) 12554 } 12555 if s.Filters != nil { 12556 for i, v := range s.Filters { 12557 if v == nil { 12558 continue 12559 } 12560 if err := v.Validate(); err != nil { 12561 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Filters", i), err.(request.ErrInvalidParams)) 12562 } 12563 } 12564 } 12565 12566 if invalidParams.Len() > 0 { 12567 return invalidParams 12568 } 12569 return nil 12570 } 12571 12572 // SetDefaultBehavior sets the DefaultBehavior field's value. 12573 func (s *LoggingFilter) SetDefaultBehavior(v string) *LoggingFilter { 12574 s.DefaultBehavior = &v 12575 return s 12576 } 12577 12578 // SetFilters sets the Filters field's value. 12579 func (s *LoggingFilter) SetFilters(v []*Filter) *LoggingFilter { 12580 s.Filters = v 12581 return s 12582 } 12583 12584 // A rule statement used to run the rules that are defined in a managed rule 12585 // group. To use this, provide the vendor name and the name of the rule group 12586 // in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups. 12587 // 12588 // You cannot nest a ManagedRuleGroupStatement, for example for use inside a 12589 // NotStatement or OrStatement. It can only be referenced as a top-level statement 12590 // within a rule. 12591 type ManagedRuleGroupStatement struct { 12592 _ struct{} `type:"structure"` 12593 12594 // The rules whose actions are set to COUNT by the web ACL, regardless of the 12595 // action that is set on the rule. This effectively excludes the rule from acting 12596 // on web requests. 12597 ExcludedRules []*ExcludedRule `type:"list"` 12598 12599 // The name of the managed rule group. You use this, along with the vendor name, 12600 // to identify the rule group. 12601 // 12602 // Name is a required field 12603 Name *string `min:"1" type:"string" required:"true"` 12604 12605 // An optional nested statement that narrows the scope of the web requests that 12606 // are evaluated by the managed rule group. Requests are only evaluated by the 12607 // rule group if they match the scope-down statement. You can use any nestable 12608 // Statement in the scope-down statement, and you can nest statements at any 12609 // level, the same as you can for a rule statement. 12610 ScopeDownStatement *Statement `type:"structure"` 12611 12612 // The name of the managed rule group vendor. You use this, along with the rule 12613 // group name, to identify the rule group. 12614 // 12615 // VendorName is a required field 12616 VendorName *string `min:"1" type:"string" required:"true"` 12617 12618 // The version of the managed rule group to use. If you specify this, the version 12619 // setting is fixed until you change it. If you don't specify this, WAF uses 12620 // the vendor's default version, and then keeps the version at the vendor's 12621 // default when the vendor updates the managed rule group settings. 12622 Version *string `min:"1" type:"string"` 12623 } 12624 12625 // String returns the string representation. 12626 // 12627 // API parameter values that are decorated as "sensitive" in the API will not 12628 // be included in the string output. The member name will be present, but the 12629 // value will be replaced with "sensitive". 12630 func (s ManagedRuleGroupStatement) String() string { 12631 return awsutil.Prettify(s) 12632 } 12633 12634 // GoString returns the string representation. 12635 // 12636 // API parameter values that are decorated as "sensitive" in the API will not 12637 // be included in the string output. The member name will be present, but the 12638 // value will be replaced with "sensitive". 12639 func (s ManagedRuleGroupStatement) GoString() string { 12640 return s.String() 12641 } 12642 12643 // Validate inspects the fields of the type to determine if they are valid. 12644 func (s *ManagedRuleGroupStatement) Validate() error { 12645 invalidParams := request.ErrInvalidParams{Context: "ManagedRuleGroupStatement"} 12646 if s.Name == nil { 12647 invalidParams.Add(request.NewErrParamRequired("Name")) 12648 } 12649 if s.Name != nil && len(*s.Name) < 1 { 12650 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 12651 } 12652 if s.VendorName == nil { 12653 invalidParams.Add(request.NewErrParamRequired("VendorName")) 12654 } 12655 if s.VendorName != nil && len(*s.VendorName) < 1 { 12656 invalidParams.Add(request.NewErrParamMinLen("VendorName", 1)) 12657 } 12658 if s.Version != nil && len(*s.Version) < 1 { 12659 invalidParams.Add(request.NewErrParamMinLen("Version", 1)) 12660 } 12661 if s.ExcludedRules != nil { 12662 for i, v := range s.ExcludedRules { 12663 if v == nil { 12664 continue 12665 } 12666 if err := v.Validate(); err != nil { 12667 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExcludedRules", i), err.(request.ErrInvalidParams)) 12668 } 12669 } 12670 } 12671 if s.ScopeDownStatement != nil { 12672 if err := s.ScopeDownStatement.Validate(); err != nil { 12673 invalidParams.AddNested("ScopeDownStatement", err.(request.ErrInvalidParams)) 12674 } 12675 } 12676 12677 if invalidParams.Len() > 0 { 12678 return invalidParams 12679 } 12680 return nil 12681 } 12682 12683 // SetExcludedRules sets the ExcludedRules field's value. 12684 func (s *ManagedRuleGroupStatement) SetExcludedRules(v []*ExcludedRule) *ManagedRuleGroupStatement { 12685 s.ExcludedRules = v 12686 return s 12687 } 12688 12689 // SetName sets the Name field's value. 12690 func (s *ManagedRuleGroupStatement) SetName(v string) *ManagedRuleGroupStatement { 12691 s.Name = &v 12692 return s 12693 } 12694 12695 // SetScopeDownStatement sets the ScopeDownStatement field's value. 12696 func (s *ManagedRuleGroupStatement) SetScopeDownStatement(v *Statement) *ManagedRuleGroupStatement { 12697 s.ScopeDownStatement = v 12698 return s 12699 } 12700 12701 // SetVendorName sets the VendorName field's value. 12702 func (s *ManagedRuleGroupStatement) SetVendorName(v string) *ManagedRuleGroupStatement { 12703 s.VendorName = &v 12704 return s 12705 } 12706 12707 // SetVersion sets the Version field's value. 12708 func (s *ManagedRuleGroupStatement) SetVersion(v string) *ManagedRuleGroupStatement { 12709 s.Version = &v 12710 return s 12711 } 12712 12713 // High-level information about a managed rule group, returned by ListAvailableManagedRuleGroups. 12714 // This provides information like the name and vendor name, that you provide 12715 // when you add a ManagedRuleGroupStatement to a web ACL. Managed rule groups 12716 // include Amazon Web Services Managed Rules rule groups, which are free of 12717 // charge to WAF customers, and Amazon Web Services Marketplace managed rule 12718 // groups, which you can subscribe to through Amazon Web Services Marketplace. 12719 type ManagedRuleGroupSummary struct { 12720 _ struct{} `type:"structure"` 12721 12722 // The description of the managed rule group, provided by Amazon Web Services 12723 // Managed Rules or the Amazon Web Services Marketplace seller who manages it. 12724 Description *string `min:"1" type:"string"` 12725 12726 // The name of the managed rule group. You use this, along with the vendor name, 12727 // to identify the rule group. 12728 Name *string `min:"1" type:"string"` 12729 12730 // The name of the managed rule group vendor. You use this, along with the rule 12731 // group name, to identify the rule group. 12732 VendorName *string `min:"1" type:"string"` 12733 } 12734 12735 // String returns the string representation. 12736 // 12737 // API parameter values that are decorated as "sensitive" in the API will not 12738 // be included in the string output. The member name will be present, but the 12739 // value will be replaced with "sensitive". 12740 func (s ManagedRuleGroupSummary) String() string { 12741 return awsutil.Prettify(s) 12742 } 12743 12744 // GoString returns the string representation. 12745 // 12746 // API parameter values that are decorated as "sensitive" in the API will not 12747 // be included in the string output. The member name will be present, but the 12748 // value will be replaced with "sensitive". 12749 func (s ManagedRuleGroupSummary) GoString() string { 12750 return s.String() 12751 } 12752 12753 // SetDescription sets the Description field's value. 12754 func (s *ManagedRuleGroupSummary) SetDescription(v string) *ManagedRuleGroupSummary { 12755 s.Description = &v 12756 return s 12757 } 12758 12759 // SetName sets the Name field's value. 12760 func (s *ManagedRuleGroupSummary) SetName(v string) *ManagedRuleGroupSummary { 12761 s.Name = &v 12762 return s 12763 } 12764 12765 // SetVendorName sets the VendorName field's value. 12766 func (s *ManagedRuleGroupSummary) SetVendorName(v string) *ManagedRuleGroupSummary { 12767 s.VendorName = &v 12768 return s 12769 } 12770 12771 // Describes a single version of a managed rule group. 12772 type ManagedRuleGroupVersion struct { 12773 _ struct{} `type:"structure"` 12774 12775 // The date and time that the managed rule group owner updated the rule group 12776 // version information. 12777 LastUpdateTimestamp *time.Time `type:"timestamp"` 12778 12779 // The version name. 12780 Name *string `min:"1" type:"string"` 12781 } 12782 12783 // String returns the string representation. 12784 // 12785 // API parameter values that are decorated as "sensitive" in the API will not 12786 // be included in the string output. The member name will be present, but the 12787 // value will be replaced with "sensitive". 12788 func (s ManagedRuleGroupVersion) String() string { 12789 return awsutil.Prettify(s) 12790 } 12791 12792 // GoString returns the string representation. 12793 // 12794 // API parameter values that are decorated as "sensitive" in the API will not 12795 // be included in the string output. The member name will be present, but the 12796 // value will be replaced with "sensitive". 12797 func (s ManagedRuleGroupVersion) GoString() string { 12798 return s.String() 12799 } 12800 12801 // SetLastUpdateTimestamp sets the LastUpdateTimestamp field's value. 12802 func (s *ManagedRuleGroupVersion) SetLastUpdateTimestamp(v time.Time) *ManagedRuleGroupVersion { 12803 s.LastUpdateTimestamp = &v 12804 return s 12805 } 12806 12807 // SetName sets the Name field's value. 12808 func (s *ManagedRuleGroupVersion) SetName(v string) *ManagedRuleGroupVersion { 12809 s.Name = &v 12810 return s 12811 } 12812 12813 // A set of rules that is managed by Amazon Web Services and Amazon Web Services 12814 // Marketplace sellers to provide versioned managed rule groups for customers 12815 // of WAF. 12816 // 12817 // This is intended for use only by vendors of managed rule sets. Vendors are 12818 // Amazon Web Services and Amazon Web Services Marketplace sellers. 12819 // 12820 // Vendors, you can use the managed rule set APIs to provide controlled rollout 12821 // of your versioned managed rule group offerings for your customers. The APIs 12822 // are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and 12823 // UpdateManagedRuleSetVersionExpiryDate. 12824 type ManagedRuleSet struct { 12825 _ struct{} `type:"structure"` 12826 12827 // The Amazon Resource Name (ARN) of the entity. 12828 // 12829 // ARN is a required field 12830 ARN *string `min:"20" type:"string" required:"true"` 12831 12832 // A description of the set that helps with identification. 12833 Description *string `min:"1" type:"string"` 12834 12835 // A unique identifier for the managed rule set. The ID is returned in the responses 12836 // to commands like list. You provide it to operations like get and update. 12837 // 12838 // Id is a required field 12839 Id *string `min:"1" type:"string" required:"true"` 12840 12841 // The label namespace prefix for the managed rule groups that are offered to 12842 // customers from this managed rule set. All labels that are added by rules 12843 // in the managed rule group have this prefix. 12844 // 12845 // * The syntax for the label namespace prefix for a managed rule group is 12846 // the following: awswaf:managed:<vendor>:<rule group name>: 12847 // 12848 // * When a rule with a label matches a web request, WAF adds the fully qualified 12849 // label to the request. A fully qualified label is made up of the label 12850 // namespace from the rule group or web ACL where the rule is defined and 12851 // the label from the rule, separated by a colon: <label namespace>:<label 12852 // from rule> 12853 LabelNamespace *string `min:"1" type:"string"` 12854 12855 // The name of the managed rule set. You use this, along with the rule set ID, 12856 // to identify the rule set. 12857 // 12858 // This name is assigned to the corresponding managed rule group, which your 12859 // customers can access and use. 12860 // 12861 // Name is a required field 12862 Name *string `min:"1" type:"string" required:"true"` 12863 12864 // The versions of this managed rule set that are available for use by customers. 12865 PublishedVersions map[string]*ManagedRuleSetVersion `type:"map"` 12866 12867 // The version that you would like your customers to use. 12868 RecommendedVersion *string `min:"1" type:"string"` 12869 } 12870 12871 // String returns the string representation. 12872 // 12873 // API parameter values that are decorated as "sensitive" in the API will not 12874 // be included in the string output. The member name will be present, but the 12875 // value will be replaced with "sensitive". 12876 func (s ManagedRuleSet) String() string { 12877 return awsutil.Prettify(s) 12878 } 12879 12880 // GoString returns the string representation. 12881 // 12882 // API parameter values that are decorated as "sensitive" in the API will not 12883 // be included in the string output. The member name will be present, but the 12884 // value will be replaced with "sensitive". 12885 func (s ManagedRuleSet) GoString() string { 12886 return s.String() 12887 } 12888 12889 // SetARN sets the ARN field's value. 12890 func (s *ManagedRuleSet) SetARN(v string) *ManagedRuleSet { 12891 s.ARN = &v 12892 return s 12893 } 12894 12895 // SetDescription sets the Description field's value. 12896 func (s *ManagedRuleSet) SetDescription(v string) *ManagedRuleSet { 12897 s.Description = &v 12898 return s 12899 } 12900 12901 // SetId sets the Id field's value. 12902 func (s *ManagedRuleSet) SetId(v string) *ManagedRuleSet { 12903 s.Id = &v 12904 return s 12905 } 12906 12907 // SetLabelNamespace sets the LabelNamespace field's value. 12908 func (s *ManagedRuleSet) SetLabelNamespace(v string) *ManagedRuleSet { 12909 s.LabelNamespace = &v 12910 return s 12911 } 12912 12913 // SetName sets the Name field's value. 12914 func (s *ManagedRuleSet) SetName(v string) *ManagedRuleSet { 12915 s.Name = &v 12916 return s 12917 } 12918 12919 // SetPublishedVersions sets the PublishedVersions field's value. 12920 func (s *ManagedRuleSet) SetPublishedVersions(v map[string]*ManagedRuleSetVersion) *ManagedRuleSet { 12921 s.PublishedVersions = v 12922 return s 12923 } 12924 12925 // SetRecommendedVersion sets the RecommendedVersion field's value. 12926 func (s *ManagedRuleSet) SetRecommendedVersion(v string) *ManagedRuleSet { 12927 s.RecommendedVersion = &v 12928 return s 12929 } 12930 12931 // High-level information for a managed rule set. 12932 // 12933 // This is intended for use only by vendors of managed rule sets. Vendors are 12934 // Amazon Web Services and Amazon Web Services Marketplace sellers. 12935 // 12936 // Vendors, you can use the managed rule set APIs to provide controlled rollout 12937 // of your versioned managed rule group offerings for your customers. The APIs 12938 // are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and 12939 // UpdateManagedRuleSetVersionExpiryDate. 12940 type ManagedRuleSetSummary struct { 12941 _ struct{} `type:"structure"` 12942 12943 // The Amazon Resource Name (ARN) of the entity. 12944 ARN *string `min:"20" type:"string"` 12945 12946 // A description of the set that helps with identification. 12947 Description *string `min:"1" type:"string"` 12948 12949 // A unique identifier for the managed rule set. The ID is returned in the responses 12950 // to commands like list. You provide it to operations like get and update. 12951 Id *string `min:"1" type:"string"` 12952 12953 // The label namespace prefix for the managed rule groups that are offered to 12954 // customers from this managed rule set. All labels that are added by rules 12955 // in the managed rule group have this prefix. 12956 // 12957 // * The syntax for the label namespace prefix for a managed rule group is 12958 // the following: awswaf:managed:<vendor>:<rule group name>: 12959 // 12960 // * When a rule with a label matches a web request, WAF adds the fully qualified 12961 // label to the request. A fully qualified label is made up of the label 12962 // namespace from the rule group or web ACL where the rule is defined and 12963 // the label from the rule, separated by a colon: <label namespace>:<label 12964 // from rule> 12965 LabelNamespace *string `min:"1" type:"string"` 12966 12967 // A token used for optimistic locking. WAF returns a token to your get and 12968 // list requests, to mark the state of the entity at the time of the request. 12969 // To make changes to the entity associated with the token, you provide the 12970 // token to operations like update and delete. WAF uses the token to ensure 12971 // that no changes have been made to the entity since you last retrieved it. 12972 // If a change has been made, the update fails with a WAFOptimisticLockException. 12973 // If this happens, perform another get, and use the new token returned by that 12974 // operation. 12975 LockToken *string `min:"1" type:"string"` 12976 12977 // The name of the managed rule set. You use this, along with the rule set ID, 12978 // to identify the rule set. 12979 // 12980 // This name is assigned to the corresponding managed rule group, which your 12981 // customers can access and use. 12982 Name *string `min:"1" type:"string"` 12983 } 12984 12985 // String returns the string representation. 12986 // 12987 // API parameter values that are decorated as "sensitive" in the API will not 12988 // be included in the string output. The member name will be present, but the 12989 // value will be replaced with "sensitive". 12990 func (s ManagedRuleSetSummary) String() string { 12991 return awsutil.Prettify(s) 12992 } 12993 12994 // GoString returns the string representation. 12995 // 12996 // API parameter values that are decorated as "sensitive" in the API will not 12997 // be included in the string output. The member name will be present, but the 12998 // value will be replaced with "sensitive". 12999 func (s ManagedRuleSetSummary) GoString() string { 13000 return s.String() 13001 } 13002 13003 // SetARN sets the ARN field's value. 13004 func (s *ManagedRuleSetSummary) SetARN(v string) *ManagedRuleSetSummary { 13005 s.ARN = &v 13006 return s 13007 } 13008 13009 // SetDescription sets the Description field's value. 13010 func (s *ManagedRuleSetSummary) SetDescription(v string) *ManagedRuleSetSummary { 13011 s.Description = &v 13012 return s 13013 } 13014 13015 // SetId sets the Id field's value. 13016 func (s *ManagedRuleSetSummary) SetId(v string) *ManagedRuleSetSummary { 13017 s.Id = &v 13018 return s 13019 } 13020 13021 // SetLabelNamespace sets the LabelNamespace field's value. 13022 func (s *ManagedRuleSetSummary) SetLabelNamespace(v string) *ManagedRuleSetSummary { 13023 s.LabelNamespace = &v 13024 return s 13025 } 13026 13027 // SetLockToken sets the LockToken field's value. 13028 func (s *ManagedRuleSetSummary) SetLockToken(v string) *ManagedRuleSetSummary { 13029 s.LockToken = &v 13030 return s 13031 } 13032 13033 // SetName sets the Name field's value. 13034 func (s *ManagedRuleSetSummary) SetName(v string) *ManagedRuleSetSummary { 13035 s.Name = &v 13036 return s 13037 } 13038 13039 // Information for a single version of a managed rule set. 13040 // 13041 // This is intended for use only by vendors of managed rule sets. Vendors are 13042 // Amazon Web Services and Amazon Web Services Marketplace sellers. 13043 // 13044 // Vendors, you can use the managed rule set APIs to provide controlled rollout 13045 // of your versioned managed rule group offerings for your customers. The APIs 13046 // are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and 13047 // UpdateManagedRuleSetVersionExpiryDate. 13048 type ManagedRuleSetVersion struct { 13049 _ struct{} `type:"structure"` 13050 13051 // The Amazon Resource Name (ARN) of the vendor rule group that's used to define 13052 // the published version of your managed rule group. 13053 AssociatedRuleGroupArn *string `min:"20" type:"string"` 13054 13055 // The web ACL capacity units (WCUs) required for this rule group. 13056 // 13057 // WAF uses WCUs to calculate and control the operating resources that are used 13058 // to run your rules, rule groups, and web ACLs. WAF calculates capacity differently 13059 // for each rule type, to reflect the relative cost of each rule. Simple rules 13060 // that cost little to run use fewer WCUs than more complex rules that use more 13061 // processing power. Rule group capacity is fixed at creation, which helps users 13062 // plan their web ACL WCU usage when they use a rule group. The WCU limit for 13063 // web ACLs is 1,500. 13064 Capacity *int64 `min:"1" type:"long"` 13065 13066 // The time that this version is set to expire. 13067 // 13068 // Times are in Coordinated Universal Time (UTC) format. UTC format includes 13069 // the special designator, Z. For example, "2016-09-27T14:50Z". 13070 ExpiryTimestamp *time.Time `type:"timestamp"` 13071 13072 // The amount of time you expect this version of your managed rule group to 13073 // last, in days. 13074 ForecastedLifetime *int64 `min:"1" type:"integer"` 13075 13076 // The last time that you updated this version. 13077 // 13078 // Times are in Coordinated Universal Time (UTC) format. UTC format includes 13079 // the special designator, Z. For example, "2016-09-27T14:50Z". 13080 LastUpdateTimestamp *time.Time `type:"timestamp"` 13081 13082 // The time that you first published this version. 13083 // 13084 // Times are in Coordinated Universal Time (UTC) format. UTC format includes 13085 // the special designator, Z. For example, "2016-09-27T14:50Z". 13086 PublishTimestamp *time.Time `type:"timestamp"` 13087 } 13088 13089 // String returns the string representation. 13090 // 13091 // API parameter values that are decorated as "sensitive" in the API will not 13092 // be included in the string output. The member name will be present, but the 13093 // value will be replaced with "sensitive". 13094 func (s ManagedRuleSetVersion) String() string { 13095 return awsutil.Prettify(s) 13096 } 13097 13098 // GoString returns the string representation. 13099 // 13100 // API parameter values that are decorated as "sensitive" in the API will not 13101 // be included in the string output. The member name will be present, but the 13102 // value will be replaced with "sensitive". 13103 func (s ManagedRuleSetVersion) GoString() string { 13104 return s.String() 13105 } 13106 13107 // SetAssociatedRuleGroupArn sets the AssociatedRuleGroupArn field's value. 13108 func (s *ManagedRuleSetVersion) SetAssociatedRuleGroupArn(v string) *ManagedRuleSetVersion { 13109 s.AssociatedRuleGroupArn = &v 13110 return s 13111 } 13112 13113 // SetCapacity sets the Capacity field's value. 13114 func (s *ManagedRuleSetVersion) SetCapacity(v int64) *ManagedRuleSetVersion { 13115 s.Capacity = &v 13116 return s 13117 } 13118 13119 // SetExpiryTimestamp sets the ExpiryTimestamp field's value. 13120 func (s *ManagedRuleSetVersion) SetExpiryTimestamp(v time.Time) *ManagedRuleSetVersion { 13121 s.ExpiryTimestamp = &v 13122 return s 13123 } 13124 13125 // SetForecastedLifetime sets the ForecastedLifetime field's value. 13126 func (s *ManagedRuleSetVersion) SetForecastedLifetime(v int64) *ManagedRuleSetVersion { 13127 s.ForecastedLifetime = &v 13128 return s 13129 } 13130 13131 // SetLastUpdateTimestamp sets the LastUpdateTimestamp field's value. 13132 func (s *ManagedRuleSetVersion) SetLastUpdateTimestamp(v time.Time) *ManagedRuleSetVersion { 13133 s.LastUpdateTimestamp = &v 13134 return s 13135 } 13136 13137 // SetPublishTimestamp sets the PublishTimestamp field's value. 13138 func (s *ManagedRuleSetVersion) SetPublishTimestamp(v time.Time) *ManagedRuleSetVersion { 13139 s.PublishTimestamp = &v 13140 return s 13141 } 13142 13143 // The HTTP method of a web request. The method indicates the type of operation 13144 // that the request is asking the origin to perform. 13145 // 13146 // This is used only to indicate the web request component for WAF to inspect, 13147 // in the FieldToMatch specification. 13148 // 13149 // JSON specification: "Method": {} 13150 type Method struct { 13151 _ struct{} `type:"structure"` 13152 } 13153 13154 // String returns the string representation. 13155 // 13156 // API parameter values that are decorated as "sensitive" in the API will not 13157 // be included in the string output. The member name will be present, but the 13158 // value will be replaced with "sensitive". 13159 func (s Method) String() string { 13160 return awsutil.Prettify(s) 13161 } 13162 13163 // GoString returns the string representation. 13164 // 13165 // API parameter values that are decorated as "sensitive" in the API will not 13166 // be included in the string output. The member name will be present, but the 13167 // value will be replaced with "sensitive". 13168 func (s Method) GoString() string { 13169 return s.String() 13170 } 13171 13172 // Specifies that WAF should do nothing. This is generally used to try out a 13173 // rule without performing any actions. You set the OverrideAction on the Rule. 13174 // 13175 // This is used in the context of other settings, for example to specify values 13176 // for RuleAction and web ACL DefaultAction. 13177 // 13178 // JSON specification: "None": {} 13179 type NoneAction struct { 13180 _ struct{} `type:"structure"` 13181 } 13182 13183 // String returns the string representation. 13184 // 13185 // API parameter values that are decorated as "sensitive" in the API will not 13186 // be included in the string output. The member name will be present, but the 13187 // value will be replaced with "sensitive". 13188 func (s NoneAction) String() string { 13189 return awsutil.Prettify(s) 13190 } 13191 13192 // GoString returns the string representation. 13193 // 13194 // API parameter values that are decorated as "sensitive" in the API will not 13195 // be included in the string output. The member name will be present, but the 13196 // value will be replaced with "sensitive". 13197 func (s NoneAction) GoString() string { 13198 return s.String() 13199 } 13200 13201 // A logical rule statement used to negate the results of another rule statement. 13202 // You provide one Statement within the NotStatement. 13203 type NotStatement struct { 13204 _ struct{} `type:"structure"` 13205 13206 // The statement to negate. You can use any statement that can be nested. 13207 // 13208 // Statement is a required field 13209 Statement *Statement `type:"structure" required:"true"` 13210 } 13211 13212 // String returns the string representation. 13213 // 13214 // API parameter values that are decorated as "sensitive" in the API will not 13215 // be included in the string output. The member name will be present, but the 13216 // value will be replaced with "sensitive". 13217 func (s NotStatement) String() string { 13218 return awsutil.Prettify(s) 13219 } 13220 13221 // GoString returns the string representation. 13222 // 13223 // API parameter values that are decorated as "sensitive" in the API will not 13224 // be included in the string output. The member name will be present, but the 13225 // value will be replaced with "sensitive". 13226 func (s NotStatement) GoString() string { 13227 return s.String() 13228 } 13229 13230 // Validate inspects the fields of the type to determine if they are valid. 13231 func (s *NotStatement) Validate() error { 13232 invalidParams := request.ErrInvalidParams{Context: "NotStatement"} 13233 if s.Statement == nil { 13234 invalidParams.Add(request.NewErrParamRequired("Statement")) 13235 } 13236 if s.Statement != nil { 13237 if err := s.Statement.Validate(); err != nil { 13238 invalidParams.AddNested("Statement", err.(request.ErrInvalidParams)) 13239 } 13240 } 13241 13242 if invalidParams.Len() > 0 { 13243 return invalidParams 13244 } 13245 return nil 13246 } 13247 13248 // SetStatement sets the Statement field's value. 13249 func (s *NotStatement) SetStatement(v *Statement) *NotStatement { 13250 s.Statement = v 13251 return s 13252 } 13253 13254 // A logical rule statement used to combine other rule statements with OR logic. 13255 // You provide more than one Statement within the OrStatement. 13256 type OrStatement struct { 13257 _ struct{} `type:"structure"` 13258 13259 // The statements to combine with OR logic. You can use any statements that 13260 // can be nested. 13261 // 13262 // Statements is a required field 13263 Statements []*Statement `type:"list" required:"true"` 13264 } 13265 13266 // String returns the string representation. 13267 // 13268 // API parameter values that are decorated as "sensitive" in the API will not 13269 // be included in the string output. The member name will be present, but the 13270 // value will be replaced with "sensitive". 13271 func (s OrStatement) String() string { 13272 return awsutil.Prettify(s) 13273 } 13274 13275 // GoString returns the string representation. 13276 // 13277 // API parameter values that are decorated as "sensitive" in the API will not 13278 // be included in the string output. The member name will be present, but the 13279 // value will be replaced with "sensitive". 13280 func (s OrStatement) GoString() string { 13281 return s.String() 13282 } 13283 13284 // Validate inspects the fields of the type to determine if they are valid. 13285 func (s *OrStatement) Validate() error { 13286 invalidParams := request.ErrInvalidParams{Context: "OrStatement"} 13287 if s.Statements == nil { 13288 invalidParams.Add(request.NewErrParamRequired("Statements")) 13289 } 13290 if s.Statements != nil { 13291 for i, v := range s.Statements { 13292 if v == nil { 13293 continue 13294 } 13295 if err := v.Validate(); err != nil { 13296 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Statements", i), err.(request.ErrInvalidParams)) 13297 } 13298 } 13299 } 13300 13301 if invalidParams.Len() > 0 { 13302 return invalidParams 13303 } 13304 return nil 13305 } 13306 13307 // SetStatements sets the Statements field's value. 13308 func (s *OrStatement) SetStatements(v []*Statement) *OrStatement { 13309 s.Statements = v 13310 return s 13311 } 13312 13313 // The override action to apply to the rules in a rule group. Used only for 13314 // rule statements that reference a rule group, like RuleGroupReferenceStatement 13315 // and ManagedRuleGroupStatement. 13316 // 13317 // Set the override action to none to leave the rule actions in effect. Set 13318 // it to count to only count matches, regardless of the rule action settings. 13319 // 13320 // In a Rule, you must specify either this OverrideAction setting or the rule 13321 // Action setting, but not both: 13322 // 13323 // * If the rule statement references a rule group, use this override action 13324 // setting and not the action setting. 13325 // 13326 // * If the rule statement does not reference a rule group, use the rule 13327 // action setting and not this rule override action setting. 13328 type OverrideAction struct { 13329 _ struct{} `type:"structure"` 13330 13331 // Override the rule action setting to count. 13332 Count *CountAction `type:"structure"` 13333 13334 // Don't override the rule action setting. 13335 None *NoneAction `type:"structure"` 13336 } 13337 13338 // String returns the string representation. 13339 // 13340 // API parameter values that are decorated as "sensitive" in the API will not 13341 // be included in the string output. The member name will be present, but the 13342 // value will be replaced with "sensitive". 13343 func (s OverrideAction) String() string { 13344 return awsutil.Prettify(s) 13345 } 13346 13347 // GoString returns the string representation. 13348 // 13349 // API parameter values that are decorated as "sensitive" in the API will not 13350 // be included in the string output. The member name will be present, but the 13351 // value will be replaced with "sensitive". 13352 func (s OverrideAction) GoString() string { 13353 return s.String() 13354 } 13355 13356 // Validate inspects the fields of the type to determine if they are valid. 13357 func (s *OverrideAction) Validate() error { 13358 invalidParams := request.ErrInvalidParams{Context: "OverrideAction"} 13359 if s.Count != nil { 13360 if err := s.Count.Validate(); err != nil { 13361 invalidParams.AddNested("Count", err.(request.ErrInvalidParams)) 13362 } 13363 } 13364 13365 if invalidParams.Len() > 0 { 13366 return invalidParams 13367 } 13368 return nil 13369 } 13370 13371 // SetCount sets the Count field's value. 13372 func (s *OverrideAction) SetCount(v *CountAction) *OverrideAction { 13373 s.Count = v 13374 return s 13375 } 13376 13377 // SetNone sets the None field's value. 13378 func (s *OverrideAction) SetNone(v *NoneAction) *OverrideAction { 13379 s.None = v 13380 return s 13381 } 13382 13383 type PutLoggingConfigurationInput struct { 13384 _ struct{} `type:"structure"` 13385 13386 // Defines an association between Amazon Kinesis Data Firehose destinations 13387 // and a web ACL resource, for logging from WAF. As part of the association, 13388 // you can specify parts of the standard logging fields to keep out of the logs 13389 // and you can specify filters so that you log only a subset of the logging 13390 // records. 13391 // 13392 // LoggingConfiguration is a required field 13393 LoggingConfiguration *LoggingConfiguration `type:"structure" required:"true"` 13394 } 13395 13396 // String returns the string representation. 13397 // 13398 // API parameter values that are decorated as "sensitive" in the API will not 13399 // be included in the string output. The member name will be present, but the 13400 // value will be replaced with "sensitive". 13401 func (s PutLoggingConfigurationInput) String() string { 13402 return awsutil.Prettify(s) 13403 } 13404 13405 // GoString returns the string representation. 13406 // 13407 // API parameter values that are decorated as "sensitive" in the API will not 13408 // be included in the string output. The member name will be present, but the 13409 // value will be replaced with "sensitive". 13410 func (s PutLoggingConfigurationInput) GoString() string { 13411 return s.String() 13412 } 13413 13414 // Validate inspects the fields of the type to determine if they are valid. 13415 func (s *PutLoggingConfigurationInput) Validate() error { 13416 invalidParams := request.ErrInvalidParams{Context: "PutLoggingConfigurationInput"} 13417 if s.LoggingConfiguration == nil { 13418 invalidParams.Add(request.NewErrParamRequired("LoggingConfiguration")) 13419 } 13420 if s.LoggingConfiguration != nil { 13421 if err := s.LoggingConfiguration.Validate(); err != nil { 13422 invalidParams.AddNested("LoggingConfiguration", err.(request.ErrInvalidParams)) 13423 } 13424 } 13425 13426 if invalidParams.Len() > 0 { 13427 return invalidParams 13428 } 13429 return nil 13430 } 13431 13432 // SetLoggingConfiguration sets the LoggingConfiguration field's value. 13433 func (s *PutLoggingConfigurationInput) SetLoggingConfiguration(v *LoggingConfiguration) *PutLoggingConfigurationInput { 13434 s.LoggingConfiguration = v 13435 return s 13436 } 13437 13438 type PutLoggingConfigurationOutput struct { 13439 _ struct{} `type:"structure"` 13440 13441 // Defines an association between Amazon Kinesis Data Firehose destinations 13442 // and a web ACL resource, for logging from WAF. As part of the association, 13443 // you can specify parts of the standard logging fields to keep out of the logs 13444 // and you can specify filters so that you log only a subset of the logging 13445 // records. 13446 LoggingConfiguration *LoggingConfiguration `type:"structure"` 13447 } 13448 13449 // String returns the string representation. 13450 // 13451 // API parameter values that are decorated as "sensitive" in the API will not 13452 // be included in the string output. The member name will be present, but the 13453 // value will be replaced with "sensitive". 13454 func (s PutLoggingConfigurationOutput) String() string { 13455 return awsutil.Prettify(s) 13456 } 13457 13458 // GoString returns the string representation. 13459 // 13460 // API parameter values that are decorated as "sensitive" in the API will not 13461 // be included in the string output. The member name will be present, but the 13462 // value will be replaced with "sensitive". 13463 func (s PutLoggingConfigurationOutput) GoString() string { 13464 return s.String() 13465 } 13466 13467 // SetLoggingConfiguration sets the LoggingConfiguration field's value. 13468 func (s *PutLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *PutLoggingConfigurationOutput { 13469 s.LoggingConfiguration = v 13470 return s 13471 } 13472 13473 type PutManagedRuleSetVersionsInput struct { 13474 _ struct{} `type:"structure"` 13475 13476 // A unique identifier for the managed rule set. The ID is returned in the responses 13477 // to commands like list. You provide it to operations like get and update. 13478 // 13479 // Id is a required field 13480 Id *string `min:"1" type:"string" required:"true"` 13481 13482 // A token used for optimistic locking. WAF returns a token to your get and 13483 // list requests, to mark the state of the entity at the time of the request. 13484 // To make changes to the entity associated with the token, you provide the 13485 // token to operations like update and delete. WAF uses the token to ensure 13486 // that no changes have been made to the entity since you last retrieved it. 13487 // If a change has been made, the update fails with a WAFOptimisticLockException. 13488 // If this happens, perform another get, and use the new token returned by that 13489 // operation. 13490 // 13491 // LockToken is a required field 13492 LockToken *string `min:"1" type:"string" required:"true"` 13493 13494 // The name of the managed rule set. You use this, along with the rule set ID, 13495 // to identify the rule set. 13496 // 13497 // This name is assigned to the corresponding managed rule group, which your 13498 // customers can access and use. 13499 // 13500 // Name is a required field 13501 Name *string `min:"1" type:"string" required:"true"` 13502 13503 // The version of the named managed rule group that you'd like your customers 13504 // to choose, from among your version offerings. 13505 RecommendedVersion *string `min:"1" type:"string"` 13506 13507 // Specifies whether this is for an Amazon CloudFront distribution or for a 13508 // regional application. A regional application can be an Application Load Balancer 13509 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 13510 // 13511 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 13512 // as follows: 13513 // 13514 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 13515 // --region=us-east-1. 13516 // 13517 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 13518 // 13519 // Scope is a required field 13520 Scope *string `type:"string" required:"true" enum:"Scope"` 13521 13522 // The versions of the named managed rule group that you want to offer to your 13523 // customers. 13524 VersionsToPublish map[string]*VersionToPublish `type:"map"` 13525 } 13526 13527 // String returns the string representation. 13528 // 13529 // API parameter values that are decorated as "sensitive" in the API will not 13530 // be included in the string output. The member name will be present, but the 13531 // value will be replaced with "sensitive". 13532 func (s PutManagedRuleSetVersionsInput) String() string { 13533 return awsutil.Prettify(s) 13534 } 13535 13536 // GoString returns the string representation. 13537 // 13538 // API parameter values that are decorated as "sensitive" in the API will not 13539 // be included in the string output. The member name will be present, but the 13540 // value will be replaced with "sensitive". 13541 func (s PutManagedRuleSetVersionsInput) GoString() string { 13542 return s.String() 13543 } 13544 13545 // Validate inspects the fields of the type to determine if they are valid. 13546 func (s *PutManagedRuleSetVersionsInput) Validate() error { 13547 invalidParams := request.ErrInvalidParams{Context: "PutManagedRuleSetVersionsInput"} 13548 if s.Id == nil { 13549 invalidParams.Add(request.NewErrParamRequired("Id")) 13550 } 13551 if s.Id != nil && len(*s.Id) < 1 { 13552 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 13553 } 13554 if s.LockToken == nil { 13555 invalidParams.Add(request.NewErrParamRequired("LockToken")) 13556 } 13557 if s.LockToken != nil && len(*s.LockToken) < 1 { 13558 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 13559 } 13560 if s.Name == nil { 13561 invalidParams.Add(request.NewErrParamRequired("Name")) 13562 } 13563 if s.Name != nil && len(*s.Name) < 1 { 13564 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 13565 } 13566 if s.RecommendedVersion != nil && len(*s.RecommendedVersion) < 1 { 13567 invalidParams.Add(request.NewErrParamMinLen("RecommendedVersion", 1)) 13568 } 13569 if s.Scope == nil { 13570 invalidParams.Add(request.NewErrParamRequired("Scope")) 13571 } 13572 if s.VersionsToPublish != nil { 13573 for i, v := range s.VersionsToPublish { 13574 if v == nil { 13575 continue 13576 } 13577 if err := v.Validate(); err != nil { 13578 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "VersionsToPublish", i), err.(request.ErrInvalidParams)) 13579 } 13580 } 13581 } 13582 13583 if invalidParams.Len() > 0 { 13584 return invalidParams 13585 } 13586 return nil 13587 } 13588 13589 // SetId sets the Id field's value. 13590 func (s *PutManagedRuleSetVersionsInput) SetId(v string) *PutManagedRuleSetVersionsInput { 13591 s.Id = &v 13592 return s 13593 } 13594 13595 // SetLockToken sets the LockToken field's value. 13596 func (s *PutManagedRuleSetVersionsInput) SetLockToken(v string) *PutManagedRuleSetVersionsInput { 13597 s.LockToken = &v 13598 return s 13599 } 13600 13601 // SetName sets the Name field's value. 13602 func (s *PutManagedRuleSetVersionsInput) SetName(v string) *PutManagedRuleSetVersionsInput { 13603 s.Name = &v 13604 return s 13605 } 13606 13607 // SetRecommendedVersion sets the RecommendedVersion field's value. 13608 func (s *PutManagedRuleSetVersionsInput) SetRecommendedVersion(v string) *PutManagedRuleSetVersionsInput { 13609 s.RecommendedVersion = &v 13610 return s 13611 } 13612 13613 // SetScope sets the Scope field's value. 13614 func (s *PutManagedRuleSetVersionsInput) SetScope(v string) *PutManagedRuleSetVersionsInput { 13615 s.Scope = &v 13616 return s 13617 } 13618 13619 // SetVersionsToPublish sets the VersionsToPublish field's value. 13620 func (s *PutManagedRuleSetVersionsInput) SetVersionsToPublish(v map[string]*VersionToPublish) *PutManagedRuleSetVersionsInput { 13621 s.VersionsToPublish = v 13622 return s 13623 } 13624 13625 type PutManagedRuleSetVersionsOutput struct { 13626 _ struct{} `type:"structure"` 13627 13628 // A token used for optimistic locking. WAF returns a token to your get and 13629 // list requests, to mark the state of the entity at the time of the request. 13630 // To make changes to the entity associated with the token, you provide the 13631 // token to operations like update and delete. WAF uses the token to ensure 13632 // that no changes have been made to the entity since you last retrieved it. 13633 // If a change has been made, the update fails with a WAFOptimisticLockException. 13634 // If this happens, perform another get, and use the new token returned by that 13635 // operation. 13636 NextLockToken *string `min:"1" type:"string"` 13637 } 13638 13639 // String returns the string representation. 13640 // 13641 // API parameter values that are decorated as "sensitive" in the API will not 13642 // be included in the string output. The member name will be present, but the 13643 // value will be replaced with "sensitive". 13644 func (s PutManagedRuleSetVersionsOutput) String() string { 13645 return awsutil.Prettify(s) 13646 } 13647 13648 // GoString returns the string representation. 13649 // 13650 // API parameter values that are decorated as "sensitive" in the API will not 13651 // be included in the string output. The member name will be present, but the 13652 // value will be replaced with "sensitive". 13653 func (s PutManagedRuleSetVersionsOutput) GoString() string { 13654 return s.String() 13655 } 13656 13657 // SetNextLockToken sets the NextLockToken field's value. 13658 func (s *PutManagedRuleSetVersionsOutput) SetNextLockToken(v string) *PutManagedRuleSetVersionsOutput { 13659 s.NextLockToken = &v 13660 return s 13661 } 13662 13663 type PutPermissionPolicyInput struct { 13664 _ struct{} `type:"structure"` 13665 13666 // The policy to attach to the specified rule group. 13667 // 13668 // The policy specifications must conform to the following: 13669 // 13670 // * The policy must be composed using IAM Policy version 2012-10-17 or version 13671 // 2015-01-01. 13672 // 13673 // * The policy must include specifications for Effect, Action, and Principal. 13674 // 13675 // * Effect must specify Allow. 13676 // 13677 // * Action must specify wafv2:CreateWebACL, wafv2:UpdateWebACL, and wafv2:PutFirewallManagerRuleGroups. 13678 // WAF rejects any extra actions or wildcard actions in the policy. 13679 // 13680 // * The policy must not include a Resource parameter. 13681 // 13682 // For more information, see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html). 13683 // 13684 // Policy is a required field 13685 Policy *string `min:"1" type:"string" required:"true"` 13686 13687 // The Amazon Resource Name (ARN) of the RuleGroup to which you want to attach 13688 // the policy. 13689 // 13690 // ResourceArn is a required field 13691 ResourceArn *string `min:"20" type:"string" required:"true"` 13692 } 13693 13694 // String returns the string representation. 13695 // 13696 // API parameter values that are decorated as "sensitive" in the API will not 13697 // be included in the string output. The member name will be present, but the 13698 // value will be replaced with "sensitive". 13699 func (s PutPermissionPolicyInput) String() string { 13700 return awsutil.Prettify(s) 13701 } 13702 13703 // GoString returns the string representation. 13704 // 13705 // API parameter values that are decorated as "sensitive" in the API will not 13706 // be included in the string output. The member name will be present, but the 13707 // value will be replaced with "sensitive". 13708 func (s PutPermissionPolicyInput) GoString() string { 13709 return s.String() 13710 } 13711 13712 // Validate inspects the fields of the type to determine if they are valid. 13713 func (s *PutPermissionPolicyInput) Validate() error { 13714 invalidParams := request.ErrInvalidParams{Context: "PutPermissionPolicyInput"} 13715 if s.Policy == nil { 13716 invalidParams.Add(request.NewErrParamRequired("Policy")) 13717 } 13718 if s.Policy != nil && len(*s.Policy) < 1 { 13719 invalidParams.Add(request.NewErrParamMinLen("Policy", 1)) 13720 } 13721 if s.ResourceArn == nil { 13722 invalidParams.Add(request.NewErrParamRequired("ResourceArn")) 13723 } 13724 if s.ResourceArn != nil && len(*s.ResourceArn) < 20 { 13725 invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 20)) 13726 } 13727 13728 if invalidParams.Len() > 0 { 13729 return invalidParams 13730 } 13731 return nil 13732 } 13733 13734 // SetPolicy sets the Policy field's value. 13735 func (s *PutPermissionPolicyInput) SetPolicy(v string) *PutPermissionPolicyInput { 13736 s.Policy = &v 13737 return s 13738 } 13739 13740 // SetResourceArn sets the ResourceArn field's value. 13741 func (s *PutPermissionPolicyInput) SetResourceArn(v string) *PutPermissionPolicyInput { 13742 s.ResourceArn = &v 13743 return s 13744 } 13745 13746 type PutPermissionPolicyOutput struct { 13747 _ struct{} `type:"structure"` 13748 } 13749 13750 // String returns the string representation. 13751 // 13752 // API parameter values that are decorated as "sensitive" in the API will not 13753 // be included in the string output. The member name will be present, but the 13754 // value will be replaced with "sensitive". 13755 func (s PutPermissionPolicyOutput) String() string { 13756 return awsutil.Prettify(s) 13757 } 13758 13759 // GoString returns the string representation. 13760 // 13761 // API parameter values that are decorated as "sensitive" in the API will not 13762 // be included in the string output. The member name will be present, but the 13763 // value will be replaced with "sensitive". 13764 func (s PutPermissionPolicyOutput) GoString() string { 13765 return s.String() 13766 } 13767 13768 // The query string of a web request. This is the part of a URL that appears 13769 // after a ? character, if any. 13770 // 13771 // This is used only to indicate the web request component for WAF to inspect, 13772 // in the FieldToMatch specification. 13773 // 13774 // JSON specification: "QueryString": {} 13775 type QueryString struct { 13776 _ struct{} `type:"structure"` 13777 } 13778 13779 // String returns the string representation. 13780 // 13781 // API parameter values that are decorated as "sensitive" in the API will not 13782 // be included in the string output. The member name will be present, but the 13783 // value will be replaced with "sensitive". 13784 func (s QueryString) String() string { 13785 return awsutil.Prettify(s) 13786 } 13787 13788 // GoString returns the string representation. 13789 // 13790 // API parameter values that are decorated as "sensitive" in the API will not 13791 // be included in the string output. The member name will be present, but the 13792 // value will be replaced with "sensitive". 13793 func (s QueryString) GoString() string { 13794 return s.String() 13795 } 13796 13797 // A rate-based rule tracks the rate of requests for each originating IP address, 13798 // and triggers the rule action when the rate exceeds a limit that you specify 13799 // on the number of requests in any 5-minute time span. You can use this to 13800 // put a temporary block on requests from an IP address that is sending excessive 13801 // requests. 13802 // 13803 // WAF tracks and manages web requests separately for each instance of a rate-based 13804 // rule that you use. For example, if you provide the same rate-based rule settings 13805 // in two web ACLs, each of the two rule statements represents a separate instance 13806 // of the rate-based rule and gets its own tracking and management by WAF. If 13807 // you define a rate-based rule inside a rule group, and then use that rule 13808 // group in multiple places, each use creates a separate instance of the rate-based 13809 // rule that gets its own tracking and management by WAF. 13810 // 13811 // When the rule action triggers, WAF blocks additional requests from the IP 13812 // address until the request rate falls below the limit. 13813 // 13814 // You can optionally nest another statement inside the rate-based statement, 13815 // to narrow the scope of the rule so that it only counts requests that match 13816 // the nested statement. For example, based on recent requests that you have 13817 // seen from an attacker, you might create a rate-based rule with a nested AND 13818 // rule statement that contains the following nested statements: 13819 // 13820 // * An IP match statement with an IP set that specified the address 192.0.2.44. 13821 // 13822 // * A string match statement that searches in the User-Agent header for 13823 // the string BadBot. 13824 // 13825 // In this rate-based rule, you also define a rate limit. For this example, 13826 // the rate limit is 1,000. Requests that meet both of the conditions in the 13827 // statements are counted. If the count exceeds 1,000 requests per five minutes, 13828 // the rule action triggers. Requests that do not meet both conditions are not 13829 // counted towards the rate limit and are not affected by this rule. 13830 // 13831 // You cannot nest a RateBasedStatement inside another statement, for example 13832 // inside a NotStatement or OrStatement. You can define a RateBasedStatement 13833 // inside a web ACL and inside a rule group. 13834 type RateBasedStatement struct { 13835 _ struct{} `type:"structure"` 13836 13837 // Setting that indicates how to aggregate the request counts. The options are 13838 // the following: 13839 // 13840 // * IP - Aggregate the request counts on the IP address from the web request 13841 // origin. 13842 // 13843 // * FORWARDED_IP - Aggregate the request counts on the first IP address 13844 // in an HTTP header. If you use this, configure the ForwardedIPConfig, to 13845 // specify the header to use. 13846 // 13847 // AggregateKeyType is a required field 13848 AggregateKeyType *string `type:"string" required:"true" enum:"RateBasedStatementAggregateKeyType"` 13849 13850 // The configuration for inspecting IP addresses in an HTTP header that you 13851 // specify, instead of using the IP address that's reported by the web request 13852 // origin. Commonly, this is the X-Forwarded-For (XFF) header, but you can specify 13853 // any header name. 13854 // 13855 // If the specified header isn't present in the request, WAF doesn't apply the 13856 // rule to the web request at all. 13857 // 13858 // This is required if AggregateKeyType is set to FORWARDED_IP. 13859 ForwardedIPConfig *ForwardedIPConfig `type:"structure"` 13860 13861 // The limit on requests per 5-minute period for a single originating IP address. 13862 // If the statement includes a ScopeDownStatement, this limit is applied only 13863 // to the requests that match the statement. 13864 // 13865 // Limit is a required field 13866 Limit *int64 `min:"100" type:"long" required:"true"` 13867 13868 // An optional nested statement that narrows the scope of the web requests that 13869 // are evaluated by the rate-based statement. Requests are only tracked by the 13870 // rate-based statement if they match the scope-down statement. You can use 13871 // any nestable Statement in the scope-down statement, and you can nest statements 13872 // at any level, the same as you can for a rule statement. 13873 ScopeDownStatement *Statement `type:"structure"` 13874 } 13875 13876 // String returns the string representation. 13877 // 13878 // API parameter values that are decorated as "sensitive" in the API will not 13879 // be included in the string output. The member name will be present, but the 13880 // value will be replaced with "sensitive". 13881 func (s RateBasedStatement) String() string { 13882 return awsutil.Prettify(s) 13883 } 13884 13885 // GoString returns the string representation. 13886 // 13887 // API parameter values that are decorated as "sensitive" in the API will not 13888 // be included in the string output. The member name will be present, but the 13889 // value will be replaced with "sensitive". 13890 func (s RateBasedStatement) GoString() string { 13891 return s.String() 13892 } 13893 13894 // Validate inspects the fields of the type to determine if they are valid. 13895 func (s *RateBasedStatement) Validate() error { 13896 invalidParams := request.ErrInvalidParams{Context: "RateBasedStatement"} 13897 if s.AggregateKeyType == nil { 13898 invalidParams.Add(request.NewErrParamRequired("AggregateKeyType")) 13899 } 13900 if s.Limit == nil { 13901 invalidParams.Add(request.NewErrParamRequired("Limit")) 13902 } 13903 if s.Limit != nil && *s.Limit < 100 { 13904 invalidParams.Add(request.NewErrParamMinValue("Limit", 100)) 13905 } 13906 if s.ForwardedIPConfig != nil { 13907 if err := s.ForwardedIPConfig.Validate(); err != nil { 13908 invalidParams.AddNested("ForwardedIPConfig", err.(request.ErrInvalidParams)) 13909 } 13910 } 13911 if s.ScopeDownStatement != nil { 13912 if err := s.ScopeDownStatement.Validate(); err != nil { 13913 invalidParams.AddNested("ScopeDownStatement", err.(request.ErrInvalidParams)) 13914 } 13915 } 13916 13917 if invalidParams.Len() > 0 { 13918 return invalidParams 13919 } 13920 return nil 13921 } 13922 13923 // SetAggregateKeyType sets the AggregateKeyType field's value. 13924 func (s *RateBasedStatement) SetAggregateKeyType(v string) *RateBasedStatement { 13925 s.AggregateKeyType = &v 13926 return s 13927 } 13928 13929 // SetForwardedIPConfig sets the ForwardedIPConfig field's value. 13930 func (s *RateBasedStatement) SetForwardedIPConfig(v *ForwardedIPConfig) *RateBasedStatement { 13931 s.ForwardedIPConfig = v 13932 return s 13933 } 13934 13935 // SetLimit sets the Limit field's value. 13936 func (s *RateBasedStatement) SetLimit(v int64) *RateBasedStatement { 13937 s.Limit = &v 13938 return s 13939 } 13940 13941 // SetScopeDownStatement sets the ScopeDownStatement field's value. 13942 func (s *RateBasedStatement) SetScopeDownStatement(v *Statement) *RateBasedStatement { 13943 s.ScopeDownStatement = v 13944 return s 13945 } 13946 13947 // The set of IP addresses that are currently blocked for a RateBasedStatement. 13948 type RateBasedStatementManagedKeysIPSet struct { 13949 _ struct{} `type:"structure"` 13950 13951 // The IP addresses that are currently blocked. 13952 Addresses []*string `type:"list"` 13953 13954 // The version of the IP addresses, either IPV4 or IPV6. 13955 IPAddressVersion *string `type:"string" enum:"IPAddressVersion"` 13956 } 13957 13958 // String returns the string representation. 13959 // 13960 // API parameter values that are decorated as "sensitive" in the API will not 13961 // be included in the string output. The member name will be present, but the 13962 // value will be replaced with "sensitive". 13963 func (s RateBasedStatementManagedKeysIPSet) String() string { 13964 return awsutil.Prettify(s) 13965 } 13966 13967 // GoString returns the string representation. 13968 // 13969 // API parameter values that are decorated as "sensitive" in the API will not 13970 // be included in the string output. The member name will be present, but the 13971 // value will be replaced with "sensitive". 13972 func (s RateBasedStatementManagedKeysIPSet) GoString() string { 13973 return s.String() 13974 } 13975 13976 // SetAddresses sets the Addresses field's value. 13977 func (s *RateBasedStatementManagedKeysIPSet) SetAddresses(v []*string) *RateBasedStatementManagedKeysIPSet { 13978 s.Addresses = v 13979 return s 13980 } 13981 13982 // SetIPAddressVersion sets the IPAddressVersion field's value. 13983 func (s *RateBasedStatementManagedKeysIPSet) SetIPAddressVersion(v string) *RateBasedStatementManagedKeysIPSet { 13984 s.IPAddressVersion = &v 13985 return s 13986 } 13987 13988 // A single regular expression. This is used in a RegexPatternSet. 13989 type Regex struct { 13990 _ struct{} `type:"structure"` 13991 13992 // The string representing the regular expression. 13993 RegexString *string `min:"1" type:"string"` 13994 } 13995 13996 // String returns the string representation. 13997 // 13998 // API parameter values that are decorated as "sensitive" in the API will not 13999 // be included in the string output. The member name will be present, but the 14000 // value will be replaced with "sensitive". 14001 func (s Regex) String() string { 14002 return awsutil.Prettify(s) 14003 } 14004 14005 // GoString returns the string representation. 14006 // 14007 // API parameter values that are decorated as "sensitive" in the API will not 14008 // be included in the string output. The member name will be present, but the 14009 // value will be replaced with "sensitive". 14010 func (s Regex) GoString() string { 14011 return s.String() 14012 } 14013 14014 // Validate inspects the fields of the type to determine if they are valid. 14015 func (s *Regex) Validate() error { 14016 invalidParams := request.ErrInvalidParams{Context: "Regex"} 14017 if s.RegexString != nil && len(*s.RegexString) < 1 { 14018 invalidParams.Add(request.NewErrParamMinLen("RegexString", 1)) 14019 } 14020 14021 if invalidParams.Len() > 0 { 14022 return invalidParams 14023 } 14024 return nil 14025 } 14026 14027 // SetRegexString sets the RegexString field's value. 14028 func (s *Regex) SetRegexString(v string) *Regex { 14029 s.RegexString = &v 14030 return s 14031 } 14032 14033 // A rule statement used to search web request components for a match against 14034 // a single regular expression. 14035 type RegexMatchStatement struct { 14036 _ struct{} `type:"structure"` 14037 14038 // The part of a web request that you want WAF to inspect. For more information, 14039 // see FieldToMatch. 14040 // 14041 // FieldToMatch is a required field 14042 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 14043 14044 // The string representing the regular expression. 14045 // 14046 // RegexString is a required field 14047 RegexString *string `min:"1" type:"string" required:"true"` 14048 14049 // Text transformations eliminate some of the unusual formatting that attackers 14050 // use in web requests in an effort to bypass detection. If you specify one 14051 // or more transformations in a rule statement, WAF performs all transformations 14052 // on the content of the request component identified by FieldToMatch, starting 14053 // from the lowest priority setting, before inspecting the content for a match. 14054 // 14055 // TextTransformations is a required field 14056 TextTransformations []*TextTransformation `min:"1" type:"list" required:"true"` 14057 } 14058 14059 // String returns the string representation. 14060 // 14061 // API parameter values that are decorated as "sensitive" in the API will not 14062 // be included in the string output. The member name will be present, but the 14063 // value will be replaced with "sensitive". 14064 func (s RegexMatchStatement) String() string { 14065 return awsutil.Prettify(s) 14066 } 14067 14068 // GoString returns the string representation. 14069 // 14070 // API parameter values that are decorated as "sensitive" in the API will not 14071 // be included in the string output. The member name will be present, but the 14072 // value will be replaced with "sensitive". 14073 func (s RegexMatchStatement) GoString() string { 14074 return s.String() 14075 } 14076 14077 // Validate inspects the fields of the type to determine if they are valid. 14078 func (s *RegexMatchStatement) Validate() error { 14079 invalidParams := request.ErrInvalidParams{Context: "RegexMatchStatement"} 14080 if s.FieldToMatch == nil { 14081 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 14082 } 14083 if s.RegexString == nil { 14084 invalidParams.Add(request.NewErrParamRequired("RegexString")) 14085 } 14086 if s.RegexString != nil && len(*s.RegexString) < 1 { 14087 invalidParams.Add(request.NewErrParamMinLen("RegexString", 1)) 14088 } 14089 if s.TextTransformations == nil { 14090 invalidParams.Add(request.NewErrParamRequired("TextTransformations")) 14091 } 14092 if s.TextTransformations != nil && len(s.TextTransformations) < 1 { 14093 invalidParams.Add(request.NewErrParamMinLen("TextTransformations", 1)) 14094 } 14095 if s.FieldToMatch != nil { 14096 if err := s.FieldToMatch.Validate(); err != nil { 14097 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 14098 } 14099 } 14100 if s.TextTransformations != nil { 14101 for i, v := range s.TextTransformations { 14102 if v == nil { 14103 continue 14104 } 14105 if err := v.Validate(); err != nil { 14106 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(request.ErrInvalidParams)) 14107 } 14108 } 14109 } 14110 14111 if invalidParams.Len() > 0 { 14112 return invalidParams 14113 } 14114 return nil 14115 } 14116 14117 // SetFieldToMatch sets the FieldToMatch field's value. 14118 func (s *RegexMatchStatement) SetFieldToMatch(v *FieldToMatch) *RegexMatchStatement { 14119 s.FieldToMatch = v 14120 return s 14121 } 14122 14123 // SetRegexString sets the RegexString field's value. 14124 func (s *RegexMatchStatement) SetRegexString(v string) *RegexMatchStatement { 14125 s.RegexString = &v 14126 return s 14127 } 14128 14129 // SetTextTransformations sets the TextTransformations field's value. 14130 func (s *RegexMatchStatement) SetTextTransformations(v []*TextTransformation) *RegexMatchStatement { 14131 s.TextTransformations = v 14132 return s 14133 } 14134 14135 // Contains one or more regular expressions. 14136 // 14137 // WAF assigns an ARN to each RegexPatternSet that you create. To use a set 14138 // in a rule, you provide the ARN to the Rule statement RegexPatternSetReferenceStatement. 14139 type RegexPatternSet struct { 14140 _ struct{} `type:"structure"` 14141 14142 // The Amazon Resource Name (ARN) of the entity. 14143 ARN *string `min:"20" type:"string"` 14144 14145 // A description of the set that helps with identification. 14146 Description *string `min:"1" type:"string"` 14147 14148 // A unique identifier for the set. This ID is returned in the responses to 14149 // create and list commands. You provide it to operations like update and delete. 14150 Id *string `min:"1" type:"string"` 14151 14152 // The name of the set. You cannot change the name after you create the set. 14153 Name *string `min:"1" type:"string"` 14154 14155 // The regular expression patterns in the set. 14156 RegularExpressionList []*Regex `type:"list"` 14157 } 14158 14159 // String returns the string representation. 14160 // 14161 // API parameter values that are decorated as "sensitive" in the API will not 14162 // be included in the string output. The member name will be present, but the 14163 // value will be replaced with "sensitive". 14164 func (s RegexPatternSet) String() string { 14165 return awsutil.Prettify(s) 14166 } 14167 14168 // GoString returns the string representation. 14169 // 14170 // API parameter values that are decorated as "sensitive" in the API will not 14171 // be included in the string output. The member name will be present, but the 14172 // value will be replaced with "sensitive". 14173 func (s RegexPatternSet) GoString() string { 14174 return s.String() 14175 } 14176 14177 // SetARN sets the ARN field's value. 14178 func (s *RegexPatternSet) SetARN(v string) *RegexPatternSet { 14179 s.ARN = &v 14180 return s 14181 } 14182 14183 // SetDescription sets the Description field's value. 14184 func (s *RegexPatternSet) SetDescription(v string) *RegexPatternSet { 14185 s.Description = &v 14186 return s 14187 } 14188 14189 // SetId sets the Id field's value. 14190 func (s *RegexPatternSet) SetId(v string) *RegexPatternSet { 14191 s.Id = &v 14192 return s 14193 } 14194 14195 // SetName sets the Name field's value. 14196 func (s *RegexPatternSet) SetName(v string) *RegexPatternSet { 14197 s.Name = &v 14198 return s 14199 } 14200 14201 // SetRegularExpressionList sets the RegularExpressionList field's value. 14202 func (s *RegexPatternSet) SetRegularExpressionList(v []*Regex) *RegexPatternSet { 14203 s.RegularExpressionList = v 14204 return s 14205 } 14206 14207 // A rule statement used to search web request components for matches with regular 14208 // expressions. To use this, create a RegexPatternSet that specifies the expressions 14209 // that you want to detect, then use the ARN of that set in this statement. 14210 // A web request matches the pattern set rule statement if the request component 14211 // matches any of the patterns in the set. To create a regex pattern set, see 14212 // CreateRegexPatternSet. 14213 // 14214 // Each regex pattern set rule statement references a regex pattern set. You 14215 // create and maintain the set independent of your rules. This allows you to 14216 // use the single set in multiple rules. When you update the referenced set, 14217 // WAF automatically updates all rules that reference it. 14218 type RegexPatternSetReferenceStatement struct { 14219 _ struct{} `type:"structure"` 14220 14221 // The Amazon Resource Name (ARN) of the RegexPatternSet that this statement 14222 // references. 14223 // 14224 // ARN is a required field 14225 ARN *string `min:"20" type:"string" required:"true"` 14226 14227 // The part of a web request that you want WAF to inspect. For more information, 14228 // see FieldToMatch. 14229 // 14230 // FieldToMatch is a required field 14231 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 14232 14233 // Text transformations eliminate some of the unusual formatting that attackers 14234 // use in web requests in an effort to bypass detection. If you specify one 14235 // or more transformations in a rule statement, WAF performs all transformations 14236 // on the content of the request component identified by FieldToMatch, starting 14237 // from the lowest priority setting, before inspecting the content for a match. 14238 // 14239 // TextTransformations is a required field 14240 TextTransformations []*TextTransformation `min:"1" type:"list" required:"true"` 14241 } 14242 14243 // String returns the string representation. 14244 // 14245 // API parameter values that are decorated as "sensitive" in the API will not 14246 // be included in the string output. The member name will be present, but the 14247 // value will be replaced with "sensitive". 14248 func (s RegexPatternSetReferenceStatement) String() string { 14249 return awsutil.Prettify(s) 14250 } 14251 14252 // GoString returns the string representation. 14253 // 14254 // API parameter values that are decorated as "sensitive" in the API will not 14255 // be included in the string output. The member name will be present, but the 14256 // value will be replaced with "sensitive". 14257 func (s RegexPatternSetReferenceStatement) GoString() string { 14258 return s.String() 14259 } 14260 14261 // Validate inspects the fields of the type to determine if they are valid. 14262 func (s *RegexPatternSetReferenceStatement) Validate() error { 14263 invalidParams := request.ErrInvalidParams{Context: "RegexPatternSetReferenceStatement"} 14264 if s.ARN == nil { 14265 invalidParams.Add(request.NewErrParamRequired("ARN")) 14266 } 14267 if s.ARN != nil && len(*s.ARN) < 20 { 14268 invalidParams.Add(request.NewErrParamMinLen("ARN", 20)) 14269 } 14270 if s.FieldToMatch == nil { 14271 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 14272 } 14273 if s.TextTransformations == nil { 14274 invalidParams.Add(request.NewErrParamRequired("TextTransformations")) 14275 } 14276 if s.TextTransformations != nil && len(s.TextTransformations) < 1 { 14277 invalidParams.Add(request.NewErrParamMinLen("TextTransformations", 1)) 14278 } 14279 if s.FieldToMatch != nil { 14280 if err := s.FieldToMatch.Validate(); err != nil { 14281 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 14282 } 14283 } 14284 if s.TextTransformations != nil { 14285 for i, v := range s.TextTransformations { 14286 if v == nil { 14287 continue 14288 } 14289 if err := v.Validate(); err != nil { 14290 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(request.ErrInvalidParams)) 14291 } 14292 } 14293 } 14294 14295 if invalidParams.Len() > 0 { 14296 return invalidParams 14297 } 14298 return nil 14299 } 14300 14301 // SetARN sets the ARN field's value. 14302 func (s *RegexPatternSetReferenceStatement) SetARN(v string) *RegexPatternSetReferenceStatement { 14303 s.ARN = &v 14304 return s 14305 } 14306 14307 // SetFieldToMatch sets the FieldToMatch field's value. 14308 func (s *RegexPatternSetReferenceStatement) SetFieldToMatch(v *FieldToMatch) *RegexPatternSetReferenceStatement { 14309 s.FieldToMatch = v 14310 return s 14311 } 14312 14313 // SetTextTransformations sets the TextTransformations field's value. 14314 func (s *RegexPatternSetReferenceStatement) SetTextTransformations(v []*TextTransformation) *RegexPatternSetReferenceStatement { 14315 s.TextTransformations = v 14316 return s 14317 } 14318 14319 // High-level information about a RegexPatternSet, returned by operations like 14320 // create and list. This provides information like the ID, that you can use 14321 // to retrieve and manage a RegexPatternSet, and the ARN, that you provide to 14322 // the RegexPatternSetReferenceStatement to use the pattern set in a Rule. 14323 type RegexPatternSetSummary struct { 14324 _ struct{} `type:"structure"` 14325 14326 // The Amazon Resource Name (ARN) of the entity. 14327 ARN *string `min:"20" type:"string"` 14328 14329 // A description of the set that helps with identification. 14330 Description *string `min:"1" type:"string"` 14331 14332 // A unique identifier for the set. This ID is returned in the responses to 14333 // create and list commands. You provide it to operations like update and delete. 14334 Id *string `min:"1" type:"string"` 14335 14336 // A token used for optimistic locking. WAF returns a token to your get and 14337 // list requests, to mark the state of the entity at the time of the request. 14338 // To make changes to the entity associated with the token, you provide the 14339 // token to operations like update and delete. WAF uses the token to ensure 14340 // that no changes have been made to the entity since you last retrieved it. 14341 // If a change has been made, the update fails with a WAFOptimisticLockException. 14342 // If this happens, perform another get, and use the new token returned by that 14343 // operation. 14344 LockToken *string `min:"1" type:"string"` 14345 14346 // The name of the data type instance. You cannot change the name after you 14347 // create the instance. 14348 Name *string `min:"1" type:"string"` 14349 } 14350 14351 // String returns the string representation. 14352 // 14353 // API parameter values that are decorated as "sensitive" in the API will not 14354 // be included in the string output. The member name will be present, but the 14355 // value will be replaced with "sensitive". 14356 func (s RegexPatternSetSummary) String() string { 14357 return awsutil.Prettify(s) 14358 } 14359 14360 // GoString returns the string representation. 14361 // 14362 // API parameter values that are decorated as "sensitive" in the API will not 14363 // be included in the string output. The member name will be present, but the 14364 // value will be replaced with "sensitive". 14365 func (s RegexPatternSetSummary) GoString() string { 14366 return s.String() 14367 } 14368 14369 // SetARN sets the ARN field's value. 14370 func (s *RegexPatternSetSummary) SetARN(v string) *RegexPatternSetSummary { 14371 s.ARN = &v 14372 return s 14373 } 14374 14375 // SetDescription sets the Description field's value. 14376 func (s *RegexPatternSetSummary) SetDescription(v string) *RegexPatternSetSummary { 14377 s.Description = &v 14378 return s 14379 } 14380 14381 // SetId sets the Id field's value. 14382 func (s *RegexPatternSetSummary) SetId(v string) *RegexPatternSetSummary { 14383 s.Id = &v 14384 return s 14385 } 14386 14387 // SetLockToken sets the LockToken field's value. 14388 func (s *RegexPatternSetSummary) SetLockToken(v string) *RegexPatternSetSummary { 14389 s.LockToken = &v 14390 return s 14391 } 14392 14393 // SetName sets the Name field's value. 14394 func (s *RegexPatternSetSummary) SetName(v string) *RegexPatternSetSummary { 14395 s.Name = &v 14396 return s 14397 } 14398 14399 // A single rule, which you can use in a WebACL or RuleGroup to identify web 14400 // requests that you want to allow, block, or count. Each rule includes one 14401 // top-level Statement that WAF uses to identify matching web requests, and 14402 // parameters that govern how WAF handles them. 14403 type Rule struct { 14404 _ struct{} `type:"structure"` 14405 14406 // The action that WAF should take on a web request when it matches the rule 14407 // statement. Settings at the web ACL level can override the rule action setting. 14408 // 14409 // This is used only for rules whose statements do not reference a rule group. 14410 // Rule statements that reference a rule group include RuleGroupReferenceStatement 14411 // and ManagedRuleGroupStatement. 14412 // 14413 // You must specify either this Action setting or the rule OverrideAction setting, 14414 // but not both: 14415 // 14416 // * If the rule statement does not reference a rule group, use this rule 14417 // action setting and not the rule override action setting. 14418 // 14419 // * If the rule statement references a rule group, use the override action 14420 // setting and not this action setting. 14421 Action *RuleAction `type:"structure"` 14422 14423 // The name of the rule. You can't change the name of a Rule after you create 14424 // it. 14425 // 14426 // Name is a required field 14427 Name *string `min:"1" type:"string" required:"true"` 14428 14429 // The override action to apply to the rules in a rule group. Used only for 14430 // rule statements that reference a rule group, like RuleGroupReferenceStatement 14431 // and ManagedRuleGroupStatement. 14432 // 14433 // Set the override action to none to leave the rule actions in effect. Set 14434 // it to count to only count matches, regardless of the rule action settings. 14435 // 14436 // In a Rule, you must specify either this OverrideAction setting or the rule 14437 // Action setting, but not both: 14438 // 14439 // * If the rule statement references a rule group, use this override action 14440 // setting and not the action setting. 14441 // 14442 // * If the rule statement does not reference a rule group, use the rule 14443 // action setting and not this rule override action setting. 14444 OverrideAction *OverrideAction `type:"structure"` 14445 14446 // If you define more than one Rule in a WebACL, WAF evaluates each request 14447 // against the Rules in order based on the value of Priority. WAF processes 14448 // rules with lower priority first. The priorities don't need to be consecutive, 14449 // but they must all be different. 14450 // 14451 // Priority is a required field 14452 Priority *int64 `type:"integer" required:"true"` 14453 14454 // Labels to apply to web requests that match the rule match statement. WAF 14455 // applies fully qualified labels to matching web requests. A fully qualified 14456 // label is the concatenation of a label namespace and a rule label. The rule's 14457 // rule group or web ACL defines the label namespace. 14458 // 14459 // Rules that run after this rule in the web ACL can match against these labels 14460 // using a LabelMatchStatement. 14461 // 14462 // For each label, provide a case-sensitive string containing optional namespaces 14463 // and a label name, according to the following guidelines: 14464 // 14465 // * Separate each component of the label with a colon. 14466 // 14467 // * Each namespace or name can have up to 128 characters. 14468 // 14469 // * You can specify up to 5 namespaces in a label. 14470 // 14471 // * Don't use the following reserved words in your label specification: 14472 // aws, waf, managed, rulegroup, webacl, regexpatternset, or ipset. 14473 // 14474 // For example, myLabelName or nameSpace1:nameSpace2:myLabelName. 14475 RuleLabels []*Label `type:"list"` 14476 14477 // The WAF processing statement for the rule, for example ByteMatchStatement 14478 // or SizeConstraintStatement. 14479 // 14480 // Statement is a required field 14481 Statement *Statement `type:"structure" required:"true"` 14482 14483 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 14484 // 14485 // VisibilityConfig is a required field 14486 VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` 14487 } 14488 14489 // String returns the string representation. 14490 // 14491 // API parameter values that are decorated as "sensitive" in the API will not 14492 // be included in the string output. The member name will be present, but the 14493 // value will be replaced with "sensitive". 14494 func (s Rule) String() string { 14495 return awsutil.Prettify(s) 14496 } 14497 14498 // GoString returns the string representation. 14499 // 14500 // API parameter values that are decorated as "sensitive" in the API will not 14501 // be included in the string output. The member name will be present, but the 14502 // value will be replaced with "sensitive". 14503 func (s Rule) GoString() string { 14504 return s.String() 14505 } 14506 14507 // Validate inspects the fields of the type to determine if they are valid. 14508 func (s *Rule) Validate() error { 14509 invalidParams := request.ErrInvalidParams{Context: "Rule"} 14510 if s.Name == nil { 14511 invalidParams.Add(request.NewErrParamRequired("Name")) 14512 } 14513 if s.Name != nil && len(*s.Name) < 1 { 14514 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 14515 } 14516 if s.Priority == nil { 14517 invalidParams.Add(request.NewErrParamRequired("Priority")) 14518 } 14519 if s.Statement == nil { 14520 invalidParams.Add(request.NewErrParamRequired("Statement")) 14521 } 14522 if s.VisibilityConfig == nil { 14523 invalidParams.Add(request.NewErrParamRequired("VisibilityConfig")) 14524 } 14525 if s.Action != nil { 14526 if err := s.Action.Validate(); err != nil { 14527 invalidParams.AddNested("Action", err.(request.ErrInvalidParams)) 14528 } 14529 } 14530 if s.OverrideAction != nil { 14531 if err := s.OverrideAction.Validate(); err != nil { 14532 invalidParams.AddNested("OverrideAction", err.(request.ErrInvalidParams)) 14533 } 14534 } 14535 if s.RuleLabels != nil { 14536 for i, v := range s.RuleLabels { 14537 if v == nil { 14538 continue 14539 } 14540 if err := v.Validate(); err != nil { 14541 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RuleLabels", i), err.(request.ErrInvalidParams)) 14542 } 14543 } 14544 } 14545 if s.Statement != nil { 14546 if err := s.Statement.Validate(); err != nil { 14547 invalidParams.AddNested("Statement", err.(request.ErrInvalidParams)) 14548 } 14549 } 14550 if s.VisibilityConfig != nil { 14551 if err := s.VisibilityConfig.Validate(); err != nil { 14552 invalidParams.AddNested("VisibilityConfig", err.(request.ErrInvalidParams)) 14553 } 14554 } 14555 14556 if invalidParams.Len() > 0 { 14557 return invalidParams 14558 } 14559 return nil 14560 } 14561 14562 // SetAction sets the Action field's value. 14563 func (s *Rule) SetAction(v *RuleAction) *Rule { 14564 s.Action = v 14565 return s 14566 } 14567 14568 // SetName sets the Name field's value. 14569 func (s *Rule) SetName(v string) *Rule { 14570 s.Name = &v 14571 return s 14572 } 14573 14574 // SetOverrideAction sets the OverrideAction field's value. 14575 func (s *Rule) SetOverrideAction(v *OverrideAction) *Rule { 14576 s.OverrideAction = v 14577 return s 14578 } 14579 14580 // SetPriority sets the Priority field's value. 14581 func (s *Rule) SetPriority(v int64) *Rule { 14582 s.Priority = &v 14583 return s 14584 } 14585 14586 // SetRuleLabels sets the RuleLabels field's value. 14587 func (s *Rule) SetRuleLabels(v []*Label) *Rule { 14588 s.RuleLabels = v 14589 return s 14590 } 14591 14592 // SetStatement sets the Statement field's value. 14593 func (s *Rule) SetStatement(v *Statement) *Rule { 14594 s.Statement = v 14595 return s 14596 } 14597 14598 // SetVisibilityConfig sets the VisibilityConfig field's value. 14599 func (s *Rule) SetVisibilityConfig(v *VisibilityConfig) *Rule { 14600 s.VisibilityConfig = v 14601 return s 14602 } 14603 14604 // The action that WAF should take on a web request when it matches a rule's 14605 // statement. Settings at the web ACL level can override the rule action setting. 14606 type RuleAction struct { 14607 _ struct{} `type:"structure"` 14608 14609 // Instructs WAF to allow the web request. 14610 Allow *AllowAction `type:"structure"` 14611 14612 // Instructs WAF to block the web request. 14613 Block *BlockAction `type:"structure"` 14614 14615 // Instructs WAF to count the web request and allow it. 14616 Count *CountAction `type:"structure"` 14617 } 14618 14619 // String returns the string representation. 14620 // 14621 // API parameter values that are decorated as "sensitive" in the API will not 14622 // be included in the string output. The member name will be present, but the 14623 // value will be replaced with "sensitive". 14624 func (s RuleAction) String() string { 14625 return awsutil.Prettify(s) 14626 } 14627 14628 // GoString returns the string representation. 14629 // 14630 // API parameter values that are decorated as "sensitive" in the API will not 14631 // be included in the string output. The member name will be present, but the 14632 // value will be replaced with "sensitive". 14633 func (s RuleAction) GoString() string { 14634 return s.String() 14635 } 14636 14637 // Validate inspects the fields of the type to determine if they are valid. 14638 func (s *RuleAction) Validate() error { 14639 invalidParams := request.ErrInvalidParams{Context: "RuleAction"} 14640 if s.Allow != nil { 14641 if err := s.Allow.Validate(); err != nil { 14642 invalidParams.AddNested("Allow", err.(request.ErrInvalidParams)) 14643 } 14644 } 14645 if s.Block != nil { 14646 if err := s.Block.Validate(); err != nil { 14647 invalidParams.AddNested("Block", err.(request.ErrInvalidParams)) 14648 } 14649 } 14650 if s.Count != nil { 14651 if err := s.Count.Validate(); err != nil { 14652 invalidParams.AddNested("Count", err.(request.ErrInvalidParams)) 14653 } 14654 } 14655 14656 if invalidParams.Len() > 0 { 14657 return invalidParams 14658 } 14659 return nil 14660 } 14661 14662 // SetAllow sets the Allow field's value. 14663 func (s *RuleAction) SetAllow(v *AllowAction) *RuleAction { 14664 s.Allow = v 14665 return s 14666 } 14667 14668 // SetBlock sets the Block field's value. 14669 func (s *RuleAction) SetBlock(v *BlockAction) *RuleAction { 14670 s.Block = v 14671 return s 14672 } 14673 14674 // SetCount sets the Count field's value. 14675 func (s *RuleAction) SetCount(v *CountAction) *RuleAction { 14676 s.Count = v 14677 return s 14678 } 14679 14680 // A rule group defines a collection of rules to inspect and control web requests 14681 // that you can use in a WebACL. When you create a rule group, you define an 14682 // immutable capacity limit. If you update a rule group, you must stay within 14683 // the capacity. This allows others to reuse the rule group with confidence 14684 // in its capacity requirements. 14685 type RuleGroup struct { 14686 _ struct{} `type:"structure"` 14687 14688 // The Amazon Resource Name (ARN) of the entity. 14689 // 14690 // ARN is a required field 14691 ARN *string `min:"20" type:"string" required:"true"` 14692 14693 // The labels that one or more rules in this rule group add to matching web 14694 // requests. These labels are defined in the RuleLabels for a Rule. 14695 AvailableLabels []*LabelSummary `type:"list"` 14696 14697 // The web ACL capacity units (WCUs) required for this rule group. 14698 // 14699 // When you create your own rule group, you define this, and you cannot change 14700 // it after creation. When you add or modify the rules in a rule group, WAF 14701 // enforces this limit. You can check the capacity for a set of rules using 14702 // CheckCapacity. 14703 // 14704 // WAF uses WCUs to calculate and control the operating resources that are used 14705 // to run your rules, rule groups, and web ACLs. WAF calculates capacity differently 14706 // for each rule type, to reflect the relative cost of each rule. Simple rules 14707 // that cost little to run use fewer WCUs than more complex rules that use more 14708 // processing power. Rule group capacity is fixed at creation, which helps users 14709 // plan their web ACL WCU usage when they use a rule group. The WCU limit for 14710 // web ACLs is 1,500. 14711 // 14712 // Capacity is a required field 14713 Capacity *int64 `min:"1" type:"long" required:"true"` 14714 14715 // The labels that one or more rules in this rule group match against in label 14716 // match statements. These labels are defined in a LabelMatchStatement specification, 14717 // in the Statement definition of a rule. 14718 ConsumedLabels []*LabelSummary `type:"list"` 14719 14720 // A map of custom response keys and content bodies. When you create a rule 14721 // with a block action, you can send a custom response to the web request. You 14722 // define these for the rule group, and then use them in the rules that you 14723 // define in the rule group. 14724 // 14725 // For information about customizing web requests and responses, see Customizing 14726 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 14727 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 14728 // 14729 // For information about the limits on count and size for custom request and 14730 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 14731 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 14732 CustomResponseBodies map[string]*CustomResponseBody `min:"1" type:"map"` 14733 14734 // A description of the rule group that helps with identification. 14735 Description *string `min:"1" type:"string"` 14736 14737 // A unique identifier for the rule group. This ID is returned in the responses 14738 // to create and list commands. You provide it to operations like update and 14739 // delete. 14740 // 14741 // Id is a required field 14742 Id *string `min:"1" type:"string" required:"true"` 14743 14744 // The label namespace prefix for this rule group. All labels added by rules 14745 // in this rule group have this prefix. 14746 // 14747 // * The syntax for the label namespace prefix for your rule groups is the 14748 // following: awswaf:<account ID>:rulegroup:<rule group name>: 14749 // 14750 // * When a rule with a label matches a web request, WAF adds the fully qualified 14751 // label to the request. A fully qualified label is made up of the label 14752 // namespace from the rule group or web ACL where the rule is defined and 14753 // the label from the rule, separated by a colon: <label namespace>:<label 14754 // from rule> 14755 LabelNamespace *string `min:"1" type:"string"` 14756 14757 // The name of the rule group. You cannot change the name of a rule group after 14758 // you create it. 14759 // 14760 // Name is a required field 14761 Name *string `min:"1" type:"string" required:"true"` 14762 14763 // The Rule statements used to identify the web requests that you want to allow, 14764 // block, or count. Each rule includes one top-level statement that WAF uses 14765 // to identify matching web requests, and parameters that govern how WAF handles 14766 // them. 14767 Rules []*Rule `type:"list"` 14768 14769 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 14770 // 14771 // VisibilityConfig is a required field 14772 VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` 14773 } 14774 14775 // String returns the string representation. 14776 // 14777 // API parameter values that are decorated as "sensitive" in the API will not 14778 // be included in the string output. The member name will be present, but the 14779 // value will be replaced with "sensitive". 14780 func (s RuleGroup) String() string { 14781 return awsutil.Prettify(s) 14782 } 14783 14784 // GoString returns the string representation. 14785 // 14786 // API parameter values that are decorated as "sensitive" in the API will not 14787 // be included in the string output. The member name will be present, but the 14788 // value will be replaced with "sensitive". 14789 func (s RuleGroup) GoString() string { 14790 return s.String() 14791 } 14792 14793 // SetARN sets the ARN field's value. 14794 func (s *RuleGroup) SetARN(v string) *RuleGroup { 14795 s.ARN = &v 14796 return s 14797 } 14798 14799 // SetAvailableLabels sets the AvailableLabels field's value. 14800 func (s *RuleGroup) SetAvailableLabels(v []*LabelSummary) *RuleGroup { 14801 s.AvailableLabels = v 14802 return s 14803 } 14804 14805 // SetCapacity sets the Capacity field's value. 14806 func (s *RuleGroup) SetCapacity(v int64) *RuleGroup { 14807 s.Capacity = &v 14808 return s 14809 } 14810 14811 // SetConsumedLabels sets the ConsumedLabels field's value. 14812 func (s *RuleGroup) SetConsumedLabels(v []*LabelSummary) *RuleGroup { 14813 s.ConsumedLabels = v 14814 return s 14815 } 14816 14817 // SetCustomResponseBodies sets the CustomResponseBodies field's value. 14818 func (s *RuleGroup) SetCustomResponseBodies(v map[string]*CustomResponseBody) *RuleGroup { 14819 s.CustomResponseBodies = v 14820 return s 14821 } 14822 14823 // SetDescription sets the Description field's value. 14824 func (s *RuleGroup) SetDescription(v string) *RuleGroup { 14825 s.Description = &v 14826 return s 14827 } 14828 14829 // SetId sets the Id field's value. 14830 func (s *RuleGroup) SetId(v string) *RuleGroup { 14831 s.Id = &v 14832 return s 14833 } 14834 14835 // SetLabelNamespace sets the LabelNamespace field's value. 14836 func (s *RuleGroup) SetLabelNamespace(v string) *RuleGroup { 14837 s.LabelNamespace = &v 14838 return s 14839 } 14840 14841 // SetName sets the Name field's value. 14842 func (s *RuleGroup) SetName(v string) *RuleGroup { 14843 s.Name = &v 14844 return s 14845 } 14846 14847 // SetRules sets the Rules field's value. 14848 func (s *RuleGroup) SetRules(v []*Rule) *RuleGroup { 14849 s.Rules = v 14850 return s 14851 } 14852 14853 // SetVisibilityConfig sets the VisibilityConfig field's value. 14854 func (s *RuleGroup) SetVisibilityConfig(v *VisibilityConfig) *RuleGroup { 14855 s.VisibilityConfig = v 14856 return s 14857 } 14858 14859 // A rule statement used to run the rules that are defined in a RuleGroup. To 14860 // use this, create a rule group with your rules, then provide the ARN of the 14861 // rule group in this statement. 14862 // 14863 // You cannot nest a RuleGroupReferenceStatement, for example for use inside 14864 // a NotStatement or OrStatement. You can only use a rule group reference statement 14865 // at the top level inside a web ACL. 14866 type RuleGroupReferenceStatement struct { 14867 _ struct{} `type:"structure"` 14868 14869 // The Amazon Resource Name (ARN) of the entity. 14870 // 14871 // ARN is a required field 14872 ARN *string `min:"20" type:"string" required:"true"` 14873 14874 // The names of rules that are in the referenced rule group, but that you want 14875 // WAF to exclude from processing for this rule statement. 14876 ExcludedRules []*ExcludedRule `type:"list"` 14877 } 14878 14879 // String returns the string representation. 14880 // 14881 // API parameter values that are decorated as "sensitive" in the API will not 14882 // be included in the string output. The member name will be present, but the 14883 // value will be replaced with "sensitive". 14884 func (s RuleGroupReferenceStatement) String() string { 14885 return awsutil.Prettify(s) 14886 } 14887 14888 // GoString returns the string representation. 14889 // 14890 // API parameter values that are decorated as "sensitive" in the API will not 14891 // be included in the string output. The member name will be present, but the 14892 // value will be replaced with "sensitive". 14893 func (s RuleGroupReferenceStatement) GoString() string { 14894 return s.String() 14895 } 14896 14897 // Validate inspects the fields of the type to determine if they are valid. 14898 func (s *RuleGroupReferenceStatement) Validate() error { 14899 invalidParams := request.ErrInvalidParams{Context: "RuleGroupReferenceStatement"} 14900 if s.ARN == nil { 14901 invalidParams.Add(request.NewErrParamRequired("ARN")) 14902 } 14903 if s.ARN != nil && len(*s.ARN) < 20 { 14904 invalidParams.Add(request.NewErrParamMinLen("ARN", 20)) 14905 } 14906 if s.ExcludedRules != nil { 14907 for i, v := range s.ExcludedRules { 14908 if v == nil { 14909 continue 14910 } 14911 if err := v.Validate(); err != nil { 14912 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExcludedRules", i), err.(request.ErrInvalidParams)) 14913 } 14914 } 14915 } 14916 14917 if invalidParams.Len() > 0 { 14918 return invalidParams 14919 } 14920 return nil 14921 } 14922 14923 // SetARN sets the ARN field's value. 14924 func (s *RuleGroupReferenceStatement) SetARN(v string) *RuleGroupReferenceStatement { 14925 s.ARN = &v 14926 return s 14927 } 14928 14929 // SetExcludedRules sets the ExcludedRules field's value. 14930 func (s *RuleGroupReferenceStatement) SetExcludedRules(v []*ExcludedRule) *RuleGroupReferenceStatement { 14931 s.ExcludedRules = v 14932 return s 14933 } 14934 14935 // High-level information about a RuleGroup, returned by operations like create 14936 // and list. This provides information like the ID, that you can use to retrieve 14937 // and manage a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement 14938 // to use the rule group in a Rule. 14939 type RuleGroupSummary struct { 14940 _ struct{} `type:"structure"` 14941 14942 // The Amazon Resource Name (ARN) of the entity. 14943 ARN *string `min:"20" type:"string"` 14944 14945 // A description of the rule group that helps with identification. 14946 Description *string `min:"1" type:"string"` 14947 14948 // A unique identifier for the rule group. This ID is returned in the responses 14949 // to create and list commands. You provide it to operations like update and 14950 // delete. 14951 Id *string `min:"1" type:"string"` 14952 14953 // A token used for optimistic locking. WAF returns a token to your get and 14954 // list requests, to mark the state of the entity at the time of the request. 14955 // To make changes to the entity associated with the token, you provide the 14956 // token to operations like update and delete. WAF uses the token to ensure 14957 // that no changes have been made to the entity since you last retrieved it. 14958 // If a change has been made, the update fails with a WAFOptimisticLockException. 14959 // If this happens, perform another get, and use the new token returned by that 14960 // operation. 14961 LockToken *string `min:"1" type:"string"` 14962 14963 // The name of the data type instance. You cannot change the name after you 14964 // create the instance. 14965 Name *string `min:"1" type:"string"` 14966 } 14967 14968 // String returns the string representation. 14969 // 14970 // API parameter values that are decorated as "sensitive" in the API will not 14971 // be included in the string output. The member name will be present, but the 14972 // value will be replaced with "sensitive". 14973 func (s RuleGroupSummary) String() string { 14974 return awsutil.Prettify(s) 14975 } 14976 14977 // GoString returns the string representation. 14978 // 14979 // API parameter values that are decorated as "sensitive" in the API will not 14980 // be included in the string output. The member name will be present, but the 14981 // value will be replaced with "sensitive". 14982 func (s RuleGroupSummary) GoString() string { 14983 return s.String() 14984 } 14985 14986 // SetARN sets the ARN field's value. 14987 func (s *RuleGroupSummary) SetARN(v string) *RuleGroupSummary { 14988 s.ARN = &v 14989 return s 14990 } 14991 14992 // SetDescription sets the Description field's value. 14993 func (s *RuleGroupSummary) SetDescription(v string) *RuleGroupSummary { 14994 s.Description = &v 14995 return s 14996 } 14997 14998 // SetId sets the Id field's value. 14999 func (s *RuleGroupSummary) SetId(v string) *RuleGroupSummary { 15000 s.Id = &v 15001 return s 15002 } 15003 15004 // SetLockToken sets the LockToken field's value. 15005 func (s *RuleGroupSummary) SetLockToken(v string) *RuleGroupSummary { 15006 s.LockToken = &v 15007 return s 15008 } 15009 15010 // SetName sets the Name field's value. 15011 func (s *RuleGroupSummary) SetName(v string) *RuleGroupSummary { 15012 s.Name = &v 15013 return s 15014 } 15015 15016 // High-level information about a Rule, returned by operations like DescribeManagedRuleGroup. 15017 // This provides information like the ID, that you can use to retrieve and manage 15018 // a RuleGroup, and the ARN, that you provide to the RuleGroupReferenceStatement 15019 // to use the rule group in a Rule. 15020 type RuleSummary struct { 15021 _ struct{} `type:"structure"` 15022 15023 // The action that WAF should take on a web request when it matches a rule's 15024 // statement. Settings at the web ACL level can override the rule action setting. 15025 Action *RuleAction `type:"structure"` 15026 15027 // The name of the rule. 15028 Name *string `min:"1" type:"string"` 15029 } 15030 15031 // String returns the string representation. 15032 // 15033 // API parameter values that are decorated as "sensitive" in the API will not 15034 // be included in the string output. The member name will be present, but the 15035 // value will be replaced with "sensitive". 15036 func (s RuleSummary) String() string { 15037 return awsutil.Prettify(s) 15038 } 15039 15040 // GoString returns the string representation. 15041 // 15042 // API parameter values that are decorated as "sensitive" in the API will not 15043 // be included in the string output. The member name will be present, but the 15044 // value will be replaced with "sensitive". 15045 func (s RuleSummary) GoString() string { 15046 return s.String() 15047 } 15048 15049 // SetAction sets the Action field's value. 15050 func (s *RuleSummary) SetAction(v *RuleAction) *RuleSummary { 15051 s.Action = v 15052 return s 15053 } 15054 15055 // SetName sets the Name field's value. 15056 func (s *RuleSummary) SetName(v string) *RuleSummary { 15057 s.Name = &v 15058 return s 15059 } 15060 15061 // Represents a single sampled web request. The response from GetSampledRequests 15062 // includes a SampledHTTPRequests complex type that appears as SampledRequests 15063 // in the response syntax. SampledHTTPRequests contains an array of SampledHTTPRequest 15064 // objects. 15065 type SampledHTTPRequest struct { 15066 _ struct{} `type:"structure"` 15067 15068 // The action for the Rule that the request matched: ALLOW, BLOCK, or COUNT. 15069 Action *string `type:"string"` 15070 15071 // Labels applied to the web request by matching rules. WAF applies fully qualified 15072 // labels to matching web requests. A fully qualified label is the concatenation 15073 // of a label namespace and a rule label. The rule's rule group or web ACL defines 15074 // the label namespace. 15075 // 15076 // For example, awswaf:111122223333:myRuleGroup:testRules:testNS1:testNS2:labelNameA 15077 // or awswaf:managed:aws:managed-rule-set:header:encoding:utf8. 15078 Labels []*Label `type:"list"` 15079 15080 // A complex type that contains detailed information about the request. 15081 // 15082 // Request is a required field 15083 Request *HTTPRequest `type:"structure" required:"true"` 15084 15085 // Custom request headers inserted by WAF into the request, according to the 15086 // custom request configuration for the matching rule action. 15087 RequestHeadersInserted []*HTTPHeader `type:"list"` 15088 15089 // The response code that was sent for the request. 15090 ResponseCodeSent *int64 `min:"200" type:"integer"` 15091 15092 // The name of the Rule that the request matched. For managed rule groups, the 15093 // format for this name is <vendor name>#<managed rule group name>#<rule name>. 15094 // For your own rule groups, the format for this name is <rule group name>#<rule 15095 // name>. If the rule is not in a rule group, this field is absent. 15096 RuleNameWithinRuleGroup *string `min:"1" type:"string"` 15097 15098 // The time at which WAF received the request from your Amazon Web Services 15099 // resource, in Unix time format (in seconds). 15100 Timestamp *time.Time `type:"timestamp"` 15101 15102 // A value that indicates how one result in the response relates proportionally 15103 // to other results in the response. For example, a result that has a weight 15104 // of 2 represents roughly twice as many web requests as a result that has a 15105 // weight of 1. 15106 // 15107 // Weight is a required field 15108 Weight *int64 `type:"long" required:"true"` 15109 } 15110 15111 // String returns the string representation. 15112 // 15113 // API parameter values that are decorated as "sensitive" in the API will not 15114 // be included in the string output. The member name will be present, but the 15115 // value will be replaced with "sensitive". 15116 func (s SampledHTTPRequest) String() string { 15117 return awsutil.Prettify(s) 15118 } 15119 15120 // GoString returns the string representation. 15121 // 15122 // API parameter values that are decorated as "sensitive" in the API will not 15123 // be included in the string output. The member name will be present, but the 15124 // value will be replaced with "sensitive". 15125 func (s SampledHTTPRequest) GoString() string { 15126 return s.String() 15127 } 15128 15129 // SetAction sets the Action field's value. 15130 func (s *SampledHTTPRequest) SetAction(v string) *SampledHTTPRequest { 15131 s.Action = &v 15132 return s 15133 } 15134 15135 // SetLabels sets the Labels field's value. 15136 func (s *SampledHTTPRequest) SetLabels(v []*Label) *SampledHTTPRequest { 15137 s.Labels = v 15138 return s 15139 } 15140 15141 // SetRequest sets the Request field's value. 15142 func (s *SampledHTTPRequest) SetRequest(v *HTTPRequest) *SampledHTTPRequest { 15143 s.Request = v 15144 return s 15145 } 15146 15147 // SetRequestHeadersInserted sets the RequestHeadersInserted field's value. 15148 func (s *SampledHTTPRequest) SetRequestHeadersInserted(v []*HTTPHeader) *SampledHTTPRequest { 15149 s.RequestHeadersInserted = v 15150 return s 15151 } 15152 15153 // SetResponseCodeSent sets the ResponseCodeSent field's value. 15154 func (s *SampledHTTPRequest) SetResponseCodeSent(v int64) *SampledHTTPRequest { 15155 s.ResponseCodeSent = &v 15156 return s 15157 } 15158 15159 // SetRuleNameWithinRuleGroup sets the RuleNameWithinRuleGroup field's value. 15160 func (s *SampledHTTPRequest) SetRuleNameWithinRuleGroup(v string) *SampledHTTPRequest { 15161 s.RuleNameWithinRuleGroup = &v 15162 return s 15163 } 15164 15165 // SetTimestamp sets the Timestamp field's value. 15166 func (s *SampledHTTPRequest) SetTimestamp(v time.Time) *SampledHTTPRequest { 15167 s.Timestamp = &v 15168 return s 15169 } 15170 15171 // SetWeight sets the Weight field's value. 15172 func (s *SampledHTTPRequest) SetWeight(v int64) *SampledHTTPRequest { 15173 s.Weight = &v 15174 return s 15175 } 15176 15177 // One of the headers in a web request, identified by name, for example, User-Agent 15178 // or Referer. This setting isn't case sensitive. 15179 // 15180 // This is used only to indicate the web request component for WAF to inspect, 15181 // in the FieldToMatch specification. 15182 // 15183 // Example JSON: "SingleHeader": { "Name": "haystack" } 15184 type SingleHeader struct { 15185 _ struct{} `type:"structure"` 15186 15187 // The name of the query header to inspect. 15188 // 15189 // Name is a required field 15190 Name *string `min:"1" type:"string" required:"true"` 15191 } 15192 15193 // String returns the string representation. 15194 // 15195 // API parameter values that are decorated as "sensitive" in the API will not 15196 // be included in the string output. The member name will be present, but the 15197 // value will be replaced with "sensitive". 15198 func (s SingleHeader) String() string { 15199 return awsutil.Prettify(s) 15200 } 15201 15202 // GoString returns the string representation. 15203 // 15204 // API parameter values that are decorated as "sensitive" in the API will not 15205 // be included in the string output. The member name will be present, but the 15206 // value will be replaced with "sensitive". 15207 func (s SingleHeader) GoString() string { 15208 return s.String() 15209 } 15210 15211 // Validate inspects the fields of the type to determine if they are valid. 15212 func (s *SingleHeader) Validate() error { 15213 invalidParams := request.ErrInvalidParams{Context: "SingleHeader"} 15214 if s.Name == nil { 15215 invalidParams.Add(request.NewErrParamRequired("Name")) 15216 } 15217 if s.Name != nil && len(*s.Name) < 1 { 15218 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 15219 } 15220 15221 if invalidParams.Len() > 0 { 15222 return invalidParams 15223 } 15224 return nil 15225 } 15226 15227 // SetName sets the Name field's value. 15228 func (s *SingleHeader) SetName(v string) *SingleHeader { 15229 s.Name = &v 15230 return s 15231 } 15232 15233 // One query argument in a web request, identified by name, for example UserName 15234 // or SalesRegion. The name can be up to 30 characters long and isn't case sensitive. 15235 // 15236 // Example JSON: "SingleQueryArgument": { "Name": "myArgument" } 15237 type SingleQueryArgument struct { 15238 _ struct{} `type:"structure"` 15239 15240 // The name of the query argument to inspect. 15241 // 15242 // Name is a required field 15243 Name *string `min:"1" type:"string" required:"true"` 15244 } 15245 15246 // String returns the string representation. 15247 // 15248 // API parameter values that are decorated as "sensitive" in the API will not 15249 // be included in the string output. The member name will be present, but the 15250 // value will be replaced with "sensitive". 15251 func (s SingleQueryArgument) String() string { 15252 return awsutil.Prettify(s) 15253 } 15254 15255 // GoString returns the string representation. 15256 // 15257 // API parameter values that are decorated as "sensitive" in the API will not 15258 // be included in the string output. The member name will be present, but the 15259 // value will be replaced with "sensitive". 15260 func (s SingleQueryArgument) GoString() string { 15261 return s.String() 15262 } 15263 15264 // Validate inspects the fields of the type to determine if they are valid. 15265 func (s *SingleQueryArgument) Validate() error { 15266 invalidParams := request.ErrInvalidParams{Context: "SingleQueryArgument"} 15267 if s.Name == nil { 15268 invalidParams.Add(request.NewErrParamRequired("Name")) 15269 } 15270 if s.Name != nil && len(*s.Name) < 1 { 15271 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 15272 } 15273 15274 if invalidParams.Len() > 0 { 15275 return invalidParams 15276 } 15277 return nil 15278 } 15279 15280 // SetName sets the Name field's value. 15281 func (s *SingleQueryArgument) SetName(v string) *SingleQueryArgument { 15282 s.Name = &v 15283 return s 15284 } 15285 15286 // A rule statement that compares a number of bytes against the size of a request 15287 // component, using a comparison operator, such as greater than (>) or less 15288 // than (<). For example, you can use a size constraint statement to look for 15289 // query strings that are longer than 100 bytes. 15290 // 15291 // If you configure WAF to inspect the request body, WAF inspects only the first 15292 // 8192 bytes (8 KB). If the request body for your web requests never exceeds 15293 // 8192 bytes, you can create a size constraint condition and block requests 15294 // that have a request body greater than 8192 bytes. 15295 // 15296 // If you choose URI for the value of Part of the request to filter on, the 15297 // slash (/) in the URI counts as one character. For example, the URI /logo.jpg 15298 // is nine characters long. 15299 type SizeConstraintStatement struct { 15300 _ struct{} `type:"structure"` 15301 15302 // The operator to use to compare the request part to the size setting. 15303 // 15304 // ComparisonOperator is a required field 15305 ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"` 15306 15307 // The part of a web request that you want WAF to inspect. For more information, 15308 // see FieldToMatch. 15309 // 15310 // FieldToMatch is a required field 15311 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 15312 15313 // The size, in byte, to compare to the request part, after any transformations. 15314 // 15315 // Size is a required field 15316 Size *int64 `type:"long" required:"true"` 15317 15318 // Text transformations eliminate some of the unusual formatting that attackers 15319 // use in web requests in an effort to bypass detection. If you specify one 15320 // or more transformations in a rule statement, WAF performs all transformations 15321 // on the content of the request component identified by FieldToMatch, starting 15322 // from the lowest priority setting, before inspecting the content for a match. 15323 // 15324 // TextTransformations is a required field 15325 TextTransformations []*TextTransformation `min:"1" type:"list" required:"true"` 15326 } 15327 15328 // String returns the string representation. 15329 // 15330 // API parameter values that are decorated as "sensitive" in the API will not 15331 // be included in the string output. The member name will be present, but the 15332 // value will be replaced with "sensitive". 15333 func (s SizeConstraintStatement) String() string { 15334 return awsutil.Prettify(s) 15335 } 15336 15337 // GoString returns the string representation. 15338 // 15339 // API parameter values that are decorated as "sensitive" in the API will not 15340 // be included in the string output. The member name will be present, but the 15341 // value will be replaced with "sensitive". 15342 func (s SizeConstraintStatement) GoString() string { 15343 return s.String() 15344 } 15345 15346 // Validate inspects the fields of the type to determine if they are valid. 15347 func (s *SizeConstraintStatement) Validate() error { 15348 invalidParams := request.ErrInvalidParams{Context: "SizeConstraintStatement"} 15349 if s.ComparisonOperator == nil { 15350 invalidParams.Add(request.NewErrParamRequired("ComparisonOperator")) 15351 } 15352 if s.FieldToMatch == nil { 15353 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 15354 } 15355 if s.Size == nil { 15356 invalidParams.Add(request.NewErrParamRequired("Size")) 15357 } 15358 if s.TextTransformations == nil { 15359 invalidParams.Add(request.NewErrParamRequired("TextTransformations")) 15360 } 15361 if s.TextTransformations != nil && len(s.TextTransformations) < 1 { 15362 invalidParams.Add(request.NewErrParamMinLen("TextTransformations", 1)) 15363 } 15364 if s.FieldToMatch != nil { 15365 if err := s.FieldToMatch.Validate(); err != nil { 15366 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 15367 } 15368 } 15369 if s.TextTransformations != nil { 15370 for i, v := range s.TextTransformations { 15371 if v == nil { 15372 continue 15373 } 15374 if err := v.Validate(); err != nil { 15375 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(request.ErrInvalidParams)) 15376 } 15377 } 15378 } 15379 15380 if invalidParams.Len() > 0 { 15381 return invalidParams 15382 } 15383 return nil 15384 } 15385 15386 // SetComparisonOperator sets the ComparisonOperator field's value. 15387 func (s *SizeConstraintStatement) SetComparisonOperator(v string) *SizeConstraintStatement { 15388 s.ComparisonOperator = &v 15389 return s 15390 } 15391 15392 // SetFieldToMatch sets the FieldToMatch field's value. 15393 func (s *SizeConstraintStatement) SetFieldToMatch(v *FieldToMatch) *SizeConstraintStatement { 15394 s.FieldToMatch = v 15395 return s 15396 } 15397 15398 // SetSize sets the Size field's value. 15399 func (s *SizeConstraintStatement) SetSize(v int64) *SizeConstraintStatement { 15400 s.Size = &v 15401 return s 15402 } 15403 15404 // SetTextTransformations sets the TextTransformations field's value. 15405 func (s *SizeConstraintStatement) SetTextTransformations(v []*TextTransformation) *SizeConstraintStatement { 15406 s.TextTransformations = v 15407 return s 15408 } 15409 15410 // Attackers sometimes insert malicious SQL code into web requests in an effort 15411 // to extract data from your database. To allow or block web requests that appear 15412 // to contain malicious SQL code, create one or more SQL injection match conditions. 15413 // An SQL injection match condition identifies the part of web requests, such 15414 // as the URI or the query string, that you want WAF to inspect. Later in the 15415 // process, when you create a web ACL, you specify whether to allow or block 15416 // requests that appear to contain malicious SQL code. 15417 type SqliMatchStatement struct { 15418 _ struct{} `type:"structure"` 15419 15420 // The part of a web request that you want WAF to inspect. For more information, 15421 // see FieldToMatch. 15422 // 15423 // FieldToMatch is a required field 15424 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 15425 15426 // Text transformations eliminate some of the unusual formatting that attackers 15427 // use in web requests in an effort to bypass detection. If you specify one 15428 // or more transformations in a rule statement, WAF performs all transformations 15429 // on the content of the request component identified by FieldToMatch, starting 15430 // from the lowest priority setting, before inspecting the content for a match. 15431 // 15432 // TextTransformations is a required field 15433 TextTransformations []*TextTransformation `min:"1" type:"list" required:"true"` 15434 } 15435 15436 // String returns the string representation. 15437 // 15438 // API parameter values that are decorated as "sensitive" in the API will not 15439 // be included in the string output. The member name will be present, but the 15440 // value will be replaced with "sensitive". 15441 func (s SqliMatchStatement) String() string { 15442 return awsutil.Prettify(s) 15443 } 15444 15445 // GoString returns the string representation. 15446 // 15447 // API parameter values that are decorated as "sensitive" in the API will not 15448 // be included in the string output. The member name will be present, but the 15449 // value will be replaced with "sensitive". 15450 func (s SqliMatchStatement) GoString() string { 15451 return s.String() 15452 } 15453 15454 // Validate inspects the fields of the type to determine if they are valid. 15455 func (s *SqliMatchStatement) Validate() error { 15456 invalidParams := request.ErrInvalidParams{Context: "SqliMatchStatement"} 15457 if s.FieldToMatch == nil { 15458 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 15459 } 15460 if s.TextTransformations == nil { 15461 invalidParams.Add(request.NewErrParamRequired("TextTransformations")) 15462 } 15463 if s.TextTransformations != nil && len(s.TextTransformations) < 1 { 15464 invalidParams.Add(request.NewErrParamMinLen("TextTransformations", 1)) 15465 } 15466 if s.FieldToMatch != nil { 15467 if err := s.FieldToMatch.Validate(); err != nil { 15468 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 15469 } 15470 } 15471 if s.TextTransformations != nil { 15472 for i, v := range s.TextTransformations { 15473 if v == nil { 15474 continue 15475 } 15476 if err := v.Validate(); err != nil { 15477 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(request.ErrInvalidParams)) 15478 } 15479 } 15480 } 15481 15482 if invalidParams.Len() > 0 { 15483 return invalidParams 15484 } 15485 return nil 15486 } 15487 15488 // SetFieldToMatch sets the FieldToMatch field's value. 15489 func (s *SqliMatchStatement) SetFieldToMatch(v *FieldToMatch) *SqliMatchStatement { 15490 s.FieldToMatch = v 15491 return s 15492 } 15493 15494 // SetTextTransformations sets the TextTransformations field's value. 15495 func (s *SqliMatchStatement) SetTextTransformations(v []*TextTransformation) *SqliMatchStatement { 15496 s.TextTransformations = v 15497 return s 15498 } 15499 15500 // The processing guidance for a Rule, used by WAF to determine whether a web 15501 // request matches the rule. 15502 type Statement struct { 15503 _ struct{} `type:"structure"` 15504 15505 // A logical rule statement used to combine other rule statements with AND logic. 15506 // You provide more than one Statement within the AndStatement. 15507 AndStatement *AndStatement `type:"structure"` 15508 15509 // A rule statement that defines a string match search for WAF to apply to web 15510 // requests. The byte match statement provides the bytes to search for, the 15511 // location in requests that you want WAF to search, and other settings. The 15512 // bytes to search for are typically a string that corresponds with ASCII characters. 15513 // In the WAF console and the developer guide, this is refered to as a string 15514 // match statement. 15515 ByteMatchStatement *ByteMatchStatement `type:"structure"` 15516 15517 // A rule statement used to identify web requests based on country of origin. 15518 GeoMatchStatement *GeoMatchStatement `type:"structure"` 15519 15520 // A rule statement used to detect web requests coming from particular IP addresses 15521 // or address ranges. To use this, create an IPSet that specifies the addresses 15522 // you want to detect, then use the ARN of that set in this statement. To create 15523 // an IP set, see CreateIPSet. 15524 // 15525 // Each IP set rule statement references an IP set. You create and maintain 15526 // the set independent of your rules. This allows you to use the single set 15527 // in multiple rules. When you update the referenced set, WAF automatically 15528 // updates all rules that reference it. 15529 IPSetReferenceStatement *IPSetReferenceStatement `type:"structure"` 15530 15531 // A rule statement that defines a string match search against labels that have 15532 // been added to the web request by rules that have already run in the web ACL. 15533 // 15534 // The label match statement provides the label or namespace string to search 15535 // for. The label string can represent a part or all of the fully qualified 15536 // label name that had been added to the web request. Fully qualified labels 15537 // have a prefix, optional namespaces, and label name. The prefix identifies 15538 // the rule group or web ACL context of the rule that added the label. If you 15539 // do not provide the fully qualified name in your label match string, WAF performs 15540 // the search for labels that were added in the same context as the label match 15541 // statement. 15542 LabelMatchStatement *LabelMatchStatement `type:"structure"` 15543 15544 // A rule statement used to run the rules that are defined in a managed rule 15545 // group. To use this, provide the vendor name and the name of the rule group 15546 // in this statement. You can retrieve the required names by calling ListAvailableManagedRuleGroups. 15547 // 15548 // You cannot nest a ManagedRuleGroupStatement, for example for use inside a 15549 // NotStatement or OrStatement. It can only be referenced as a top-level statement 15550 // within a rule. 15551 ManagedRuleGroupStatement *ManagedRuleGroupStatement `type:"structure"` 15552 15553 // A logical rule statement used to negate the results of another rule statement. 15554 // You provide one Statement within the NotStatement. 15555 NotStatement *NotStatement `type:"structure"` 15556 15557 // A logical rule statement used to combine other rule statements with OR logic. 15558 // You provide more than one Statement within the OrStatement. 15559 OrStatement *OrStatement `type:"structure"` 15560 15561 // A rate-based rule tracks the rate of requests for each originating IP address, 15562 // and triggers the rule action when the rate exceeds a limit that you specify 15563 // on the number of requests in any 5-minute time span. You can use this to 15564 // put a temporary block on requests from an IP address that is sending excessive 15565 // requests. 15566 // 15567 // WAF tracks and manages web requests separately for each instance of a rate-based 15568 // rule that you use. For example, if you provide the same rate-based rule settings 15569 // in two web ACLs, each of the two rule statements represents a separate instance 15570 // of the rate-based rule and gets its own tracking and management by WAF. If 15571 // you define a rate-based rule inside a rule group, and then use that rule 15572 // group in multiple places, each use creates a separate instance of the rate-based 15573 // rule that gets its own tracking and management by WAF. 15574 // 15575 // When the rule action triggers, WAF blocks additional requests from the IP 15576 // address until the request rate falls below the limit. 15577 // 15578 // You can optionally nest another statement inside the rate-based statement, 15579 // to narrow the scope of the rule so that it only counts requests that match 15580 // the nested statement. For example, based on recent requests that you have 15581 // seen from an attacker, you might create a rate-based rule with a nested AND 15582 // rule statement that contains the following nested statements: 15583 // 15584 // * An IP match statement with an IP set that specified the address 192.0.2.44. 15585 // 15586 // * A string match statement that searches in the User-Agent header for 15587 // the string BadBot. 15588 // 15589 // In this rate-based rule, you also define a rate limit. For this example, 15590 // the rate limit is 1,000. Requests that meet both of the conditions in the 15591 // statements are counted. If the count exceeds 1,000 requests per five minutes, 15592 // the rule action triggers. Requests that do not meet both conditions are not 15593 // counted towards the rate limit and are not affected by this rule. 15594 // 15595 // You cannot nest a RateBasedStatement inside another statement, for example 15596 // inside a NotStatement or OrStatement. You can define a RateBasedStatement 15597 // inside a web ACL and inside a rule group. 15598 RateBasedStatement *RateBasedStatement `type:"structure"` 15599 15600 // A rule statement used to search web request components for a match against 15601 // a single regular expression. 15602 RegexMatchStatement *RegexMatchStatement `type:"structure"` 15603 15604 // A rule statement used to search web request components for matches with regular 15605 // expressions. To use this, create a RegexPatternSet that specifies the expressions 15606 // that you want to detect, then use the ARN of that set in this statement. 15607 // A web request matches the pattern set rule statement if the request component 15608 // matches any of the patterns in the set. To create a regex pattern set, see 15609 // CreateRegexPatternSet. 15610 // 15611 // Each regex pattern set rule statement references a regex pattern set. You 15612 // create and maintain the set independent of your rules. This allows you to 15613 // use the single set in multiple rules. When you update the referenced set, 15614 // WAF automatically updates all rules that reference it. 15615 RegexPatternSetReferenceStatement *RegexPatternSetReferenceStatement `type:"structure"` 15616 15617 // A rule statement used to run the rules that are defined in a RuleGroup. To 15618 // use this, create a rule group with your rules, then provide the ARN of the 15619 // rule group in this statement. 15620 // 15621 // You cannot nest a RuleGroupReferenceStatement, for example for use inside 15622 // a NotStatement or OrStatement. You can only use a rule group reference statement 15623 // at the top level inside a web ACL. 15624 RuleGroupReferenceStatement *RuleGroupReferenceStatement `type:"structure"` 15625 15626 // A rule statement that compares a number of bytes against the size of a request 15627 // component, using a comparison operator, such as greater than (>) or less 15628 // than (<). For example, you can use a size constraint statement to look for 15629 // query strings that are longer than 100 bytes. 15630 // 15631 // If you configure WAF to inspect the request body, WAF inspects only the first 15632 // 8192 bytes (8 KB). If the request body for your web requests never exceeds 15633 // 8192 bytes, you can create a size constraint condition and block requests 15634 // that have a request body greater than 8192 bytes. 15635 // 15636 // If you choose URI for the value of Part of the request to filter on, the 15637 // slash (/) in the URI counts as one character. For example, the URI /logo.jpg 15638 // is nine characters long. 15639 SizeConstraintStatement *SizeConstraintStatement `type:"structure"` 15640 15641 // Attackers sometimes insert malicious SQL code into web requests in an effort 15642 // to extract data from your database. To allow or block web requests that appear 15643 // to contain malicious SQL code, create one or more SQL injection match conditions. 15644 // An SQL injection match condition identifies the part of web requests, such 15645 // as the URI or the query string, that you want WAF to inspect. Later in the 15646 // process, when you create a web ACL, you specify whether to allow or block 15647 // requests that appear to contain malicious SQL code. 15648 SqliMatchStatement *SqliMatchStatement `type:"structure"` 15649 15650 // A rule statement that defines a cross-site scripting (XSS) match search for 15651 // WAF to apply to web requests. XSS attacks are those where the attacker uses 15652 // vulnerabilities in a benign website as a vehicle to inject malicious client-site 15653 // scripts into other legitimate web browsers. The XSS match statement provides 15654 // the location in requests that you want WAF to search and text transformations 15655 // to use on the search area before WAF searches for character sequences that 15656 // are likely to be malicious strings. 15657 XssMatchStatement *XssMatchStatement `type:"structure"` 15658 } 15659 15660 // String returns the string representation. 15661 // 15662 // API parameter values that are decorated as "sensitive" in the API will not 15663 // be included in the string output. The member name will be present, but the 15664 // value will be replaced with "sensitive". 15665 func (s Statement) String() string { 15666 return awsutil.Prettify(s) 15667 } 15668 15669 // GoString returns the string representation. 15670 // 15671 // API parameter values that are decorated as "sensitive" in the API will not 15672 // be included in the string output. The member name will be present, but the 15673 // value will be replaced with "sensitive". 15674 func (s Statement) GoString() string { 15675 return s.String() 15676 } 15677 15678 // Validate inspects the fields of the type to determine if they are valid. 15679 func (s *Statement) Validate() error { 15680 invalidParams := request.ErrInvalidParams{Context: "Statement"} 15681 if s.AndStatement != nil { 15682 if err := s.AndStatement.Validate(); err != nil { 15683 invalidParams.AddNested("AndStatement", err.(request.ErrInvalidParams)) 15684 } 15685 } 15686 if s.ByteMatchStatement != nil { 15687 if err := s.ByteMatchStatement.Validate(); err != nil { 15688 invalidParams.AddNested("ByteMatchStatement", err.(request.ErrInvalidParams)) 15689 } 15690 } 15691 if s.GeoMatchStatement != nil { 15692 if err := s.GeoMatchStatement.Validate(); err != nil { 15693 invalidParams.AddNested("GeoMatchStatement", err.(request.ErrInvalidParams)) 15694 } 15695 } 15696 if s.IPSetReferenceStatement != nil { 15697 if err := s.IPSetReferenceStatement.Validate(); err != nil { 15698 invalidParams.AddNested("IPSetReferenceStatement", err.(request.ErrInvalidParams)) 15699 } 15700 } 15701 if s.LabelMatchStatement != nil { 15702 if err := s.LabelMatchStatement.Validate(); err != nil { 15703 invalidParams.AddNested("LabelMatchStatement", err.(request.ErrInvalidParams)) 15704 } 15705 } 15706 if s.ManagedRuleGroupStatement != nil { 15707 if err := s.ManagedRuleGroupStatement.Validate(); err != nil { 15708 invalidParams.AddNested("ManagedRuleGroupStatement", err.(request.ErrInvalidParams)) 15709 } 15710 } 15711 if s.NotStatement != nil { 15712 if err := s.NotStatement.Validate(); err != nil { 15713 invalidParams.AddNested("NotStatement", err.(request.ErrInvalidParams)) 15714 } 15715 } 15716 if s.OrStatement != nil { 15717 if err := s.OrStatement.Validate(); err != nil { 15718 invalidParams.AddNested("OrStatement", err.(request.ErrInvalidParams)) 15719 } 15720 } 15721 if s.RateBasedStatement != nil { 15722 if err := s.RateBasedStatement.Validate(); err != nil { 15723 invalidParams.AddNested("RateBasedStatement", err.(request.ErrInvalidParams)) 15724 } 15725 } 15726 if s.RegexMatchStatement != nil { 15727 if err := s.RegexMatchStatement.Validate(); err != nil { 15728 invalidParams.AddNested("RegexMatchStatement", err.(request.ErrInvalidParams)) 15729 } 15730 } 15731 if s.RegexPatternSetReferenceStatement != nil { 15732 if err := s.RegexPatternSetReferenceStatement.Validate(); err != nil { 15733 invalidParams.AddNested("RegexPatternSetReferenceStatement", err.(request.ErrInvalidParams)) 15734 } 15735 } 15736 if s.RuleGroupReferenceStatement != nil { 15737 if err := s.RuleGroupReferenceStatement.Validate(); err != nil { 15738 invalidParams.AddNested("RuleGroupReferenceStatement", err.(request.ErrInvalidParams)) 15739 } 15740 } 15741 if s.SizeConstraintStatement != nil { 15742 if err := s.SizeConstraintStatement.Validate(); err != nil { 15743 invalidParams.AddNested("SizeConstraintStatement", err.(request.ErrInvalidParams)) 15744 } 15745 } 15746 if s.SqliMatchStatement != nil { 15747 if err := s.SqliMatchStatement.Validate(); err != nil { 15748 invalidParams.AddNested("SqliMatchStatement", err.(request.ErrInvalidParams)) 15749 } 15750 } 15751 if s.XssMatchStatement != nil { 15752 if err := s.XssMatchStatement.Validate(); err != nil { 15753 invalidParams.AddNested("XssMatchStatement", err.(request.ErrInvalidParams)) 15754 } 15755 } 15756 15757 if invalidParams.Len() > 0 { 15758 return invalidParams 15759 } 15760 return nil 15761 } 15762 15763 // SetAndStatement sets the AndStatement field's value. 15764 func (s *Statement) SetAndStatement(v *AndStatement) *Statement { 15765 s.AndStatement = v 15766 return s 15767 } 15768 15769 // SetByteMatchStatement sets the ByteMatchStatement field's value. 15770 func (s *Statement) SetByteMatchStatement(v *ByteMatchStatement) *Statement { 15771 s.ByteMatchStatement = v 15772 return s 15773 } 15774 15775 // SetGeoMatchStatement sets the GeoMatchStatement field's value. 15776 func (s *Statement) SetGeoMatchStatement(v *GeoMatchStatement) *Statement { 15777 s.GeoMatchStatement = v 15778 return s 15779 } 15780 15781 // SetIPSetReferenceStatement sets the IPSetReferenceStatement field's value. 15782 func (s *Statement) SetIPSetReferenceStatement(v *IPSetReferenceStatement) *Statement { 15783 s.IPSetReferenceStatement = v 15784 return s 15785 } 15786 15787 // SetLabelMatchStatement sets the LabelMatchStatement field's value. 15788 func (s *Statement) SetLabelMatchStatement(v *LabelMatchStatement) *Statement { 15789 s.LabelMatchStatement = v 15790 return s 15791 } 15792 15793 // SetManagedRuleGroupStatement sets the ManagedRuleGroupStatement field's value. 15794 func (s *Statement) SetManagedRuleGroupStatement(v *ManagedRuleGroupStatement) *Statement { 15795 s.ManagedRuleGroupStatement = v 15796 return s 15797 } 15798 15799 // SetNotStatement sets the NotStatement field's value. 15800 func (s *Statement) SetNotStatement(v *NotStatement) *Statement { 15801 s.NotStatement = v 15802 return s 15803 } 15804 15805 // SetOrStatement sets the OrStatement field's value. 15806 func (s *Statement) SetOrStatement(v *OrStatement) *Statement { 15807 s.OrStatement = v 15808 return s 15809 } 15810 15811 // SetRateBasedStatement sets the RateBasedStatement field's value. 15812 func (s *Statement) SetRateBasedStatement(v *RateBasedStatement) *Statement { 15813 s.RateBasedStatement = v 15814 return s 15815 } 15816 15817 // SetRegexMatchStatement sets the RegexMatchStatement field's value. 15818 func (s *Statement) SetRegexMatchStatement(v *RegexMatchStatement) *Statement { 15819 s.RegexMatchStatement = v 15820 return s 15821 } 15822 15823 // SetRegexPatternSetReferenceStatement sets the RegexPatternSetReferenceStatement field's value. 15824 func (s *Statement) SetRegexPatternSetReferenceStatement(v *RegexPatternSetReferenceStatement) *Statement { 15825 s.RegexPatternSetReferenceStatement = v 15826 return s 15827 } 15828 15829 // SetRuleGroupReferenceStatement sets the RuleGroupReferenceStatement field's value. 15830 func (s *Statement) SetRuleGroupReferenceStatement(v *RuleGroupReferenceStatement) *Statement { 15831 s.RuleGroupReferenceStatement = v 15832 return s 15833 } 15834 15835 // SetSizeConstraintStatement sets the SizeConstraintStatement field's value. 15836 func (s *Statement) SetSizeConstraintStatement(v *SizeConstraintStatement) *Statement { 15837 s.SizeConstraintStatement = v 15838 return s 15839 } 15840 15841 // SetSqliMatchStatement sets the SqliMatchStatement field's value. 15842 func (s *Statement) SetSqliMatchStatement(v *SqliMatchStatement) *Statement { 15843 s.SqliMatchStatement = v 15844 return s 15845 } 15846 15847 // SetXssMatchStatement sets the XssMatchStatement field's value. 15848 func (s *Statement) SetXssMatchStatement(v *XssMatchStatement) *Statement { 15849 s.XssMatchStatement = v 15850 return s 15851 } 15852 15853 // A tag associated with an Amazon Web Services resource. Tags are key:value 15854 // pairs that you can use to categorize and manage your resources, for purposes 15855 // like billing or other management. Typically, the tag key represents a category, 15856 // such as "environment", and the tag value represents a specific value within 15857 // that category, such as "test," "development," or "production". Or you might 15858 // set the tag key to "customer" and the value to the customer name or ID. You 15859 // can specify one or more tags to add to each Amazon Web Services resource, 15860 // up to 50 tags for a resource. 15861 // 15862 // You can tag the Amazon Web Services resources that you manage through WAF: 15863 // web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage 15864 // or view tags through the WAF console. 15865 type Tag struct { 15866 _ struct{} `type:"structure"` 15867 15868 // Part of the key:value pair that defines a tag. You can use a tag key to describe 15869 // a category of information, such as "customer." Tag keys are case-sensitive. 15870 // 15871 // Key is a required field 15872 Key *string `min:"1" type:"string" required:"true"` 15873 15874 // Part of the key:value pair that defines a tag. You can use a tag value to 15875 // describe a specific value within a category, such as "companyA" or "companyB." 15876 // Tag values are case-sensitive. 15877 // 15878 // Value is a required field 15879 Value *string `type:"string" required:"true"` 15880 } 15881 15882 // String returns the string representation. 15883 // 15884 // API parameter values that are decorated as "sensitive" in the API will not 15885 // be included in the string output. The member name will be present, but the 15886 // value will be replaced with "sensitive". 15887 func (s Tag) String() string { 15888 return awsutil.Prettify(s) 15889 } 15890 15891 // GoString returns the string representation. 15892 // 15893 // API parameter values that are decorated as "sensitive" in the API will not 15894 // be included in the string output. The member name will be present, but the 15895 // value will be replaced with "sensitive". 15896 func (s Tag) GoString() string { 15897 return s.String() 15898 } 15899 15900 // Validate inspects the fields of the type to determine if they are valid. 15901 func (s *Tag) Validate() error { 15902 invalidParams := request.ErrInvalidParams{Context: "Tag"} 15903 if s.Key == nil { 15904 invalidParams.Add(request.NewErrParamRequired("Key")) 15905 } 15906 if s.Key != nil && len(*s.Key) < 1 { 15907 invalidParams.Add(request.NewErrParamMinLen("Key", 1)) 15908 } 15909 if s.Value == nil { 15910 invalidParams.Add(request.NewErrParamRequired("Value")) 15911 } 15912 15913 if invalidParams.Len() > 0 { 15914 return invalidParams 15915 } 15916 return nil 15917 } 15918 15919 // SetKey sets the Key field's value. 15920 func (s *Tag) SetKey(v string) *Tag { 15921 s.Key = &v 15922 return s 15923 } 15924 15925 // SetValue sets the Value field's value. 15926 func (s *Tag) SetValue(v string) *Tag { 15927 s.Value = &v 15928 return s 15929 } 15930 15931 // The collection of tagging definitions for an Amazon Web Services resource. 15932 // Tags are key:value pairs that you can use to categorize and manage your resources, 15933 // for purposes like billing or other management. Typically, the tag key represents 15934 // a category, such as "environment", and the tag value represents a specific 15935 // value within that category, such as "test," "development," or "production". 15936 // Or you might set the tag key to "customer" and the value to the customer 15937 // name or ID. You can specify one or more tags to add to each Amazon Web Services 15938 // resource, up to 50 tags for a resource. 15939 // 15940 // You can tag the Amazon Web Services resources that you manage through WAF: 15941 // web ACLs, rule groups, IP sets, and regex pattern sets. You can't manage 15942 // or view tags through the WAF console. 15943 type TagInfoForResource struct { 15944 _ struct{} `type:"structure"` 15945 15946 // The Amazon Resource Name (ARN) of the resource. 15947 ResourceARN *string `min:"20" type:"string"` 15948 15949 // The array of Tag objects defined for the resource. 15950 TagList []*Tag `min:"1" type:"list"` 15951 } 15952 15953 // String returns the string representation. 15954 // 15955 // API parameter values that are decorated as "sensitive" in the API will not 15956 // be included in the string output. The member name will be present, but the 15957 // value will be replaced with "sensitive". 15958 func (s TagInfoForResource) String() string { 15959 return awsutil.Prettify(s) 15960 } 15961 15962 // GoString returns the string representation. 15963 // 15964 // API parameter values that are decorated as "sensitive" in the API will not 15965 // be included in the string output. The member name will be present, but the 15966 // value will be replaced with "sensitive". 15967 func (s TagInfoForResource) GoString() string { 15968 return s.String() 15969 } 15970 15971 // SetResourceARN sets the ResourceARN field's value. 15972 func (s *TagInfoForResource) SetResourceARN(v string) *TagInfoForResource { 15973 s.ResourceARN = &v 15974 return s 15975 } 15976 15977 // SetTagList sets the TagList field's value. 15978 func (s *TagInfoForResource) SetTagList(v []*Tag) *TagInfoForResource { 15979 s.TagList = v 15980 return s 15981 } 15982 15983 type TagResourceInput struct { 15984 _ struct{} `type:"structure"` 15985 15986 // The Amazon Resource Name (ARN) of the resource. 15987 // 15988 // ResourceARN is a required field 15989 ResourceARN *string `min:"20" type:"string" required:"true"` 15990 15991 // An array of key:value pairs to associate with the resource. 15992 // 15993 // Tags is a required field 15994 Tags []*Tag `min:"1" type:"list" required:"true"` 15995 } 15996 15997 // String returns the string representation. 15998 // 15999 // API parameter values that are decorated as "sensitive" in the API will not 16000 // be included in the string output. The member name will be present, but the 16001 // value will be replaced with "sensitive". 16002 func (s TagResourceInput) String() string { 16003 return awsutil.Prettify(s) 16004 } 16005 16006 // GoString returns the string representation. 16007 // 16008 // API parameter values that are decorated as "sensitive" in the API will not 16009 // be included in the string output. The member name will be present, but the 16010 // value will be replaced with "sensitive". 16011 func (s TagResourceInput) GoString() string { 16012 return s.String() 16013 } 16014 16015 // Validate inspects the fields of the type to determine if they are valid. 16016 func (s *TagResourceInput) Validate() error { 16017 invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"} 16018 if s.ResourceARN == nil { 16019 invalidParams.Add(request.NewErrParamRequired("ResourceARN")) 16020 } 16021 if s.ResourceARN != nil && len(*s.ResourceARN) < 20 { 16022 invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 20)) 16023 } 16024 if s.Tags == nil { 16025 invalidParams.Add(request.NewErrParamRequired("Tags")) 16026 } 16027 if s.Tags != nil && len(s.Tags) < 1 { 16028 invalidParams.Add(request.NewErrParamMinLen("Tags", 1)) 16029 } 16030 if s.Tags != nil { 16031 for i, v := range s.Tags { 16032 if v == nil { 16033 continue 16034 } 16035 if err := v.Validate(); err != nil { 16036 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams)) 16037 } 16038 } 16039 } 16040 16041 if invalidParams.Len() > 0 { 16042 return invalidParams 16043 } 16044 return nil 16045 } 16046 16047 // SetResourceARN sets the ResourceARN field's value. 16048 func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput { 16049 s.ResourceARN = &v 16050 return s 16051 } 16052 16053 // SetTags sets the Tags field's value. 16054 func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput { 16055 s.Tags = v 16056 return s 16057 } 16058 16059 type TagResourceOutput struct { 16060 _ struct{} `type:"structure"` 16061 } 16062 16063 // String returns the string representation. 16064 // 16065 // API parameter values that are decorated as "sensitive" in the API will not 16066 // be included in the string output. The member name will be present, but the 16067 // value will be replaced with "sensitive". 16068 func (s TagResourceOutput) String() string { 16069 return awsutil.Prettify(s) 16070 } 16071 16072 // GoString returns the string representation. 16073 // 16074 // API parameter values that are decorated as "sensitive" in the API will not 16075 // be included in the string output. The member name will be present, but the 16076 // value will be replaced with "sensitive". 16077 func (s TagResourceOutput) GoString() string { 16078 return s.String() 16079 } 16080 16081 // Text transformations eliminate some of the unusual formatting that attackers 16082 // use in web requests in an effort to bypass detection. 16083 type TextTransformation struct { 16084 _ struct{} `type:"structure"` 16085 16086 // Sets the relative processing order for multiple transformations that are 16087 // defined for a rule statement. WAF processes all transformations, from lowest 16088 // priority to highest, before inspecting the transformed content. The priorities 16089 // don't need to be consecutive, but they must all be different. 16090 // 16091 // Priority is a required field 16092 Priority *int64 `type:"integer" required:"true"` 16093 16094 // You can specify the following transformation types: 16095 // 16096 // BASE64_DECODE - Decode a Base64-encoded string. 16097 // 16098 // BASE64_DECODE_EXT - Decode a Base64-encoded string, but use a forgiving implementation 16099 // that ignores characters that aren't valid. 16100 // 16101 // CMD_LINE - Command-line transformations. These are helpful in reducing effectiveness 16102 // of attackers who inject an operating system command-line command and use 16103 // unusual formatting to disguise some or all of the command. 16104 // 16105 // * Delete the following characters: \ " ' ^ 16106 // 16107 // * Delete spaces before the following characters: / ( 16108 // 16109 // * Replace the following characters with a space: , ; 16110 // 16111 // * Replace multiple spaces with one space 16112 // 16113 // * Convert uppercase letters (A-Z) to lowercase (a-z) 16114 // 16115 // COMPRESS_WHITE_SPACE - Replace these characters with a space character (decimal 16116 // 32): 16117 // 16118 // * \f, formfeed, decimal 12 16119 // 16120 // * \t, tab, decimal 9 16121 // 16122 // * \n, newline, decimal 10 16123 // 16124 // * \r, carriage return, decimal 13 16125 // 16126 // * \v, vertical tab, decimal 11 16127 // 16128 // * Non-breaking space, decimal 160 16129 // 16130 // COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. 16131 // 16132 // CSS_DECODE - Decode characters that were encoded using CSS 2.x escape rules 16133 // syndata.html#characters. This function uses up to two bytes in the decoding 16134 // process, so it can help to uncover ASCII characters that were encoded using 16135 // CSS encoding that wouldn’t typically be encoded. It's also useful in countering 16136 // evasion, which is a combination of a backslash and non-hexadecimal characters. 16137 // For example, ja\vascript for javascript. 16138 // 16139 // ESCAPE_SEQ_DECODE - Decode the following ANSI C escape sequences: \a, \b, 16140 // \f, \n, \r, \t, \v, \\, \?, \', \", \xHH (hexadecimal), \0OOO (octal). Encodings 16141 // that aren't valid remain in the output. 16142 // 16143 // HEX_DECODE - Decode a string of hexadecimal characters into a binary. 16144 // 16145 // HTML_ENTITY_DECODE - Replace HTML-encoded characters with unencoded characters. 16146 // HTML_ENTITY_DECODE performs these operations: 16147 // 16148 // * Replaces (ampersand)quot; with " 16149 // 16150 // * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160 16151 // 16152 // * Replaces (ampersand)lt; with a "less than" symbol 16153 // 16154 // * Replaces (ampersand)gt; with > 16155 // 16156 // * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, 16157 // with the corresponding characters 16158 // 16159 // * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, 16160 // with the corresponding characters 16161 // 16162 // JS_DECODE - Decode JavaScript escape sequences. If a \ u HHHH code is in 16163 // the full-width ASCII code range of FF01-FF5E, then the higher byte is used 16164 // to detect and adjust the lower byte. If not, only the lower byte is used 16165 // and the higher byte is zeroed, causing a possible loss of information. 16166 // 16167 // LOWERCASE - Convert uppercase letters (A-Z) to lowercase (a-z). 16168 // 16169 // MD5 - Calculate an MD5 hash from the data in the input. The computed hash 16170 // is in a raw binary form. 16171 // 16172 // NONE - Specify NONE if you don't want any text transformations. 16173 // 16174 // NORMALIZE_PATH - Remove multiple slashes, directory self-references, and 16175 // directory back-references that are not at the beginning of the input from 16176 // an input string. 16177 // 16178 // NORMALIZE_PATH_WIN - This is the same as NORMALIZE_PATH, but first converts 16179 // backslash characters to forward slashes. 16180 // 16181 // REMOVE_NULLS - Remove all NULL bytes from the input. 16182 // 16183 // REPLACE_COMMENTS - Replace each occurrence of a C-style comment (/* ... */) 16184 // with a single space. Multiple consecutive occurrences are not compressed. 16185 // Unterminated comments are also replaced with a space (ASCII 0x20). However, 16186 // a standalone termination of a comment (*/) is not acted upon. 16187 // 16188 // REPLACE_NULLS - Replace NULL bytes in the input with space characters (ASCII 16189 // 0x20). 16190 // 16191 // SQL_HEX_DECODE - Decode SQL hex data. Example (0x414243) will be decoded 16192 // to (ABC). 16193 // 16194 // URL_DECODE - Decode a URL-encoded value. 16195 // 16196 // URL_DECODE_UNI - Like URL_DECODE, but with support for Microsoft-specific 16197 // %u encoding. If the code is in the full-width ASCII code range of FF01-FF5E, 16198 // the higher byte is used to detect and adjust the lower byte. Otherwise, only 16199 // the lower byte is used and the higher byte is zeroed. 16200 // 16201 // UTF8_TO_UNICODE - Convert all UTF-8 character sequences to Unicode. This 16202 // helps input normalization, and minimizing false-positives and false-negatives 16203 // for non-English languages. 16204 // 16205 // Type is a required field 16206 Type *string `type:"string" required:"true" enum:"TextTransformationType"` 16207 } 16208 16209 // String returns the string representation. 16210 // 16211 // API parameter values that are decorated as "sensitive" in the API will not 16212 // be included in the string output. The member name will be present, but the 16213 // value will be replaced with "sensitive". 16214 func (s TextTransformation) String() string { 16215 return awsutil.Prettify(s) 16216 } 16217 16218 // GoString returns the string representation. 16219 // 16220 // API parameter values that are decorated as "sensitive" in the API will not 16221 // be included in the string output. The member name will be present, but the 16222 // value will be replaced with "sensitive". 16223 func (s TextTransformation) GoString() string { 16224 return s.String() 16225 } 16226 16227 // Validate inspects the fields of the type to determine if they are valid. 16228 func (s *TextTransformation) Validate() error { 16229 invalidParams := request.ErrInvalidParams{Context: "TextTransformation"} 16230 if s.Priority == nil { 16231 invalidParams.Add(request.NewErrParamRequired("Priority")) 16232 } 16233 if s.Type == nil { 16234 invalidParams.Add(request.NewErrParamRequired("Type")) 16235 } 16236 16237 if invalidParams.Len() > 0 { 16238 return invalidParams 16239 } 16240 return nil 16241 } 16242 16243 // SetPriority sets the Priority field's value. 16244 func (s *TextTransformation) SetPriority(v int64) *TextTransformation { 16245 s.Priority = &v 16246 return s 16247 } 16248 16249 // SetType sets the Type field's value. 16250 func (s *TextTransformation) SetType(v string) *TextTransformation { 16251 s.Type = &v 16252 return s 16253 } 16254 16255 // In a GetSampledRequests request, the StartTime and EndTime objects specify 16256 // the time range for which you want WAF to return a sample of web requests. 16257 // 16258 // You must specify the times in Coordinated Universal Time (UTC) format. UTC 16259 // format includes the special designator, Z. For example, "2016-09-27T14:50Z". 16260 // You can specify any time range in the previous three hours. 16261 // 16262 // In a GetSampledRequests response, the StartTime and EndTime objects specify 16263 // the time range for which WAF actually returned a sample of web requests. 16264 // WAF gets the specified number of requests from among the first 5,000 requests 16265 // that your Amazon Web Services resource receives during the specified time 16266 // period. If your resource receives more than 5,000 requests during that period, 16267 // WAF stops sampling after the 5,000th request. In that case, EndTime is the 16268 // time that WAF received the 5,000th request. 16269 type TimeWindow struct { 16270 _ struct{} `type:"structure"` 16271 16272 // The end of the time range from which you want GetSampledRequests to return 16273 // a sample of the requests that your Amazon Web Services resource received. 16274 // You must specify the times in Coordinated Universal Time (UTC) format. UTC 16275 // format includes the special designator, Z. For example, "2016-09-27T14:50Z". 16276 // You can specify any time range in the previous three hours. 16277 // 16278 // EndTime is a required field 16279 EndTime *time.Time `type:"timestamp" required:"true"` 16280 16281 // The beginning of the time range from which you want GetSampledRequests to 16282 // return a sample of the requests that your Amazon Web Services resource received. 16283 // You must specify the times in Coordinated Universal Time (UTC) format. UTC 16284 // format includes the special designator, Z. For example, "2016-09-27T14:50Z". 16285 // You can specify any time range in the previous three hours. 16286 // 16287 // StartTime is a required field 16288 StartTime *time.Time `type:"timestamp" required:"true"` 16289 } 16290 16291 // String returns the string representation. 16292 // 16293 // API parameter values that are decorated as "sensitive" in the API will not 16294 // be included in the string output. The member name will be present, but the 16295 // value will be replaced with "sensitive". 16296 func (s TimeWindow) String() string { 16297 return awsutil.Prettify(s) 16298 } 16299 16300 // GoString returns the string representation. 16301 // 16302 // API parameter values that are decorated as "sensitive" in the API will not 16303 // be included in the string output. The member name will be present, but the 16304 // value will be replaced with "sensitive". 16305 func (s TimeWindow) GoString() string { 16306 return s.String() 16307 } 16308 16309 // Validate inspects the fields of the type to determine if they are valid. 16310 func (s *TimeWindow) Validate() error { 16311 invalidParams := request.ErrInvalidParams{Context: "TimeWindow"} 16312 if s.EndTime == nil { 16313 invalidParams.Add(request.NewErrParamRequired("EndTime")) 16314 } 16315 if s.StartTime == nil { 16316 invalidParams.Add(request.NewErrParamRequired("StartTime")) 16317 } 16318 16319 if invalidParams.Len() > 0 { 16320 return invalidParams 16321 } 16322 return nil 16323 } 16324 16325 // SetEndTime sets the EndTime field's value. 16326 func (s *TimeWindow) SetEndTime(v time.Time) *TimeWindow { 16327 s.EndTime = &v 16328 return s 16329 } 16330 16331 // SetStartTime sets the StartTime field's value. 16332 func (s *TimeWindow) SetStartTime(v time.Time) *TimeWindow { 16333 s.StartTime = &v 16334 return s 16335 } 16336 16337 type UntagResourceInput struct { 16338 _ struct{} `type:"structure"` 16339 16340 // The Amazon Resource Name (ARN) of the resource. 16341 // 16342 // ResourceARN is a required field 16343 ResourceARN *string `min:"20" type:"string" required:"true"` 16344 16345 // An array of keys identifying the tags to disassociate from the resource. 16346 // 16347 // TagKeys is a required field 16348 TagKeys []*string `min:"1" type:"list" required:"true"` 16349 } 16350 16351 // String returns the string representation. 16352 // 16353 // API parameter values that are decorated as "sensitive" in the API will not 16354 // be included in the string output. The member name will be present, but the 16355 // value will be replaced with "sensitive". 16356 func (s UntagResourceInput) String() string { 16357 return awsutil.Prettify(s) 16358 } 16359 16360 // GoString returns the string representation. 16361 // 16362 // API parameter values that are decorated as "sensitive" in the API will not 16363 // be included in the string output. The member name will be present, but the 16364 // value will be replaced with "sensitive". 16365 func (s UntagResourceInput) GoString() string { 16366 return s.String() 16367 } 16368 16369 // Validate inspects the fields of the type to determine if they are valid. 16370 func (s *UntagResourceInput) Validate() error { 16371 invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"} 16372 if s.ResourceARN == nil { 16373 invalidParams.Add(request.NewErrParamRequired("ResourceARN")) 16374 } 16375 if s.ResourceARN != nil && len(*s.ResourceARN) < 20 { 16376 invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 20)) 16377 } 16378 if s.TagKeys == nil { 16379 invalidParams.Add(request.NewErrParamRequired("TagKeys")) 16380 } 16381 if s.TagKeys != nil && len(s.TagKeys) < 1 { 16382 invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1)) 16383 } 16384 16385 if invalidParams.Len() > 0 { 16386 return invalidParams 16387 } 16388 return nil 16389 } 16390 16391 // SetResourceARN sets the ResourceARN field's value. 16392 func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput { 16393 s.ResourceARN = &v 16394 return s 16395 } 16396 16397 // SetTagKeys sets the TagKeys field's value. 16398 func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput { 16399 s.TagKeys = v 16400 return s 16401 } 16402 16403 type UntagResourceOutput struct { 16404 _ struct{} `type:"structure"` 16405 } 16406 16407 // String returns the string representation. 16408 // 16409 // API parameter values that are decorated as "sensitive" in the API will not 16410 // be included in the string output. The member name will be present, but the 16411 // value will be replaced with "sensitive". 16412 func (s UntagResourceOutput) String() string { 16413 return awsutil.Prettify(s) 16414 } 16415 16416 // GoString returns the string representation. 16417 // 16418 // API parameter values that are decorated as "sensitive" in the API will not 16419 // be included in the string output. The member name will be present, but the 16420 // value will be replaced with "sensitive". 16421 func (s UntagResourceOutput) GoString() string { 16422 return s.String() 16423 } 16424 16425 type UpdateIPSetInput struct { 16426 _ struct{} `type:"structure"` 16427 16428 // Contains an array of strings that specify one or more IP addresses or blocks 16429 // of IP addresses in Classless Inter-Domain Routing (CIDR) notation. WAF supports 16430 // all IPv4 and IPv6 CIDR ranges except for /0. 16431 // 16432 // Examples: 16433 // 16434 // * To configure WAF to allow, block, or count requests that originated 16435 // from the IP address 192.0.2.44, specify 192.0.2.44/32. 16436 // 16437 // * To configure WAF to allow, block, or count requests that originated 16438 // from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24. 16439 // 16440 // * To configure WAF to allow, block, or count requests that originated 16441 // from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128. 16442 // 16443 // * To configure WAF to allow, block, or count requests that originated 16444 // from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, 16445 // specify 1111:0000:0000:0000:0000:0000:0000:0000/64. 16446 // 16447 // For more information about CIDR notation, see the Wikipedia entry Classless 16448 // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 16449 // 16450 // Addresses is a required field 16451 Addresses []*string `type:"list" required:"true"` 16452 16453 // A description of the IP set that helps with identification. 16454 Description *string `min:"1" type:"string"` 16455 16456 // A unique identifier for the set. This ID is returned in the responses to 16457 // create and list commands. You provide it to operations like update and delete. 16458 // 16459 // Id is a required field 16460 Id *string `min:"1" type:"string" required:"true"` 16461 16462 // A token used for optimistic locking. WAF returns a token to your get and 16463 // list requests, to mark the state of the entity at the time of the request. 16464 // To make changes to the entity associated with the token, you provide the 16465 // token to operations like update and delete. WAF uses the token to ensure 16466 // that no changes have been made to the entity since you last retrieved it. 16467 // If a change has been made, the update fails with a WAFOptimisticLockException. 16468 // If this happens, perform another get, and use the new token returned by that 16469 // operation. 16470 // 16471 // LockToken is a required field 16472 LockToken *string `min:"1" type:"string" required:"true"` 16473 16474 // The name of the IP set. You cannot change the name of an IPSet after you 16475 // create it. 16476 // 16477 // Name is a required field 16478 Name *string `min:"1" type:"string" required:"true"` 16479 16480 // Specifies whether this is for an Amazon CloudFront distribution or for a 16481 // regional application. A regional application can be an Application Load Balancer 16482 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 16483 // 16484 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 16485 // as follows: 16486 // 16487 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 16488 // --region=us-east-1. 16489 // 16490 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 16491 // 16492 // Scope is a required field 16493 Scope *string `type:"string" required:"true" enum:"Scope"` 16494 } 16495 16496 // String returns the string representation. 16497 // 16498 // API parameter values that are decorated as "sensitive" in the API will not 16499 // be included in the string output. The member name will be present, but the 16500 // value will be replaced with "sensitive". 16501 func (s UpdateIPSetInput) String() string { 16502 return awsutil.Prettify(s) 16503 } 16504 16505 // GoString returns the string representation. 16506 // 16507 // API parameter values that are decorated as "sensitive" in the API will not 16508 // be included in the string output. The member name will be present, but the 16509 // value will be replaced with "sensitive". 16510 func (s UpdateIPSetInput) GoString() string { 16511 return s.String() 16512 } 16513 16514 // Validate inspects the fields of the type to determine if they are valid. 16515 func (s *UpdateIPSetInput) Validate() error { 16516 invalidParams := request.ErrInvalidParams{Context: "UpdateIPSetInput"} 16517 if s.Addresses == nil { 16518 invalidParams.Add(request.NewErrParamRequired("Addresses")) 16519 } 16520 if s.Description != nil && len(*s.Description) < 1 { 16521 invalidParams.Add(request.NewErrParamMinLen("Description", 1)) 16522 } 16523 if s.Id == nil { 16524 invalidParams.Add(request.NewErrParamRequired("Id")) 16525 } 16526 if s.Id != nil && len(*s.Id) < 1 { 16527 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 16528 } 16529 if s.LockToken == nil { 16530 invalidParams.Add(request.NewErrParamRequired("LockToken")) 16531 } 16532 if s.LockToken != nil && len(*s.LockToken) < 1 { 16533 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 16534 } 16535 if s.Name == nil { 16536 invalidParams.Add(request.NewErrParamRequired("Name")) 16537 } 16538 if s.Name != nil && len(*s.Name) < 1 { 16539 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 16540 } 16541 if s.Scope == nil { 16542 invalidParams.Add(request.NewErrParamRequired("Scope")) 16543 } 16544 16545 if invalidParams.Len() > 0 { 16546 return invalidParams 16547 } 16548 return nil 16549 } 16550 16551 // SetAddresses sets the Addresses field's value. 16552 func (s *UpdateIPSetInput) SetAddresses(v []*string) *UpdateIPSetInput { 16553 s.Addresses = v 16554 return s 16555 } 16556 16557 // SetDescription sets the Description field's value. 16558 func (s *UpdateIPSetInput) SetDescription(v string) *UpdateIPSetInput { 16559 s.Description = &v 16560 return s 16561 } 16562 16563 // SetId sets the Id field's value. 16564 func (s *UpdateIPSetInput) SetId(v string) *UpdateIPSetInput { 16565 s.Id = &v 16566 return s 16567 } 16568 16569 // SetLockToken sets the LockToken field's value. 16570 func (s *UpdateIPSetInput) SetLockToken(v string) *UpdateIPSetInput { 16571 s.LockToken = &v 16572 return s 16573 } 16574 16575 // SetName sets the Name field's value. 16576 func (s *UpdateIPSetInput) SetName(v string) *UpdateIPSetInput { 16577 s.Name = &v 16578 return s 16579 } 16580 16581 // SetScope sets the Scope field's value. 16582 func (s *UpdateIPSetInput) SetScope(v string) *UpdateIPSetInput { 16583 s.Scope = &v 16584 return s 16585 } 16586 16587 type UpdateIPSetOutput struct { 16588 _ struct{} `type:"structure"` 16589 16590 // A token used for optimistic locking. WAF returns this token to your update 16591 // requests. You use NextLockToken in the same manner as you use LockToken. 16592 NextLockToken *string `min:"1" type:"string"` 16593 } 16594 16595 // String returns the string representation. 16596 // 16597 // API parameter values that are decorated as "sensitive" in the API will not 16598 // be included in the string output. The member name will be present, but the 16599 // value will be replaced with "sensitive". 16600 func (s UpdateIPSetOutput) String() string { 16601 return awsutil.Prettify(s) 16602 } 16603 16604 // GoString returns the string representation. 16605 // 16606 // API parameter values that are decorated as "sensitive" in the API will not 16607 // be included in the string output. The member name will be present, but the 16608 // value will be replaced with "sensitive". 16609 func (s UpdateIPSetOutput) GoString() string { 16610 return s.String() 16611 } 16612 16613 // SetNextLockToken sets the NextLockToken field's value. 16614 func (s *UpdateIPSetOutput) SetNextLockToken(v string) *UpdateIPSetOutput { 16615 s.NextLockToken = &v 16616 return s 16617 } 16618 16619 type UpdateManagedRuleSetVersionExpiryDateInput struct { 16620 _ struct{} `type:"structure"` 16621 16622 // The time that you want the version to expire. 16623 // 16624 // Times are in Coordinated Universal Time (UTC) format. UTC format includes 16625 // the special designator, Z. For example, "2016-09-27T14:50Z". 16626 // 16627 // ExpiryTimestamp is a required field 16628 ExpiryTimestamp *time.Time `type:"timestamp" required:"true"` 16629 16630 // A unique identifier for the managed rule set. The ID is returned in the responses 16631 // to commands like list. You provide it to operations like get and update. 16632 // 16633 // Id is a required field 16634 Id *string `min:"1" type:"string" required:"true"` 16635 16636 // A token used for optimistic locking. WAF returns a token to your get and 16637 // list requests, to mark the state of the entity at the time of the request. 16638 // To make changes to the entity associated with the token, you provide the 16639 // token to operations like update and delete. WAF uses the token to ensure 16640 // that no changes have been made to the entity since you last retrieved it. 16641 // If a change has been made, the update fails with a WAFOptimisticLockException. 16642 // If this happens, perform another get, and use the new token returned by that 16643 // operation. 16644 // 16645 // LockToken is a required field 16646 LockToken *string `min:"1" type:"string" required:"true"` 16647 16648 // The name of the managed rule set. You use this, along with the rule set ID, 16649 // to identify the rule set. 16650 // 16651 // This name is assigned to the corresponding managed rule group, which your 16652 // customers can access and use. 16653 // 16654 // Name is a required field 16655 Name *string `min:"1" type:"string" required:"true"` 16656 16657 // Specifies whether this is for an Amazon CloudFront distribution or for a 16658 // regional application. A regional application can be an Application Load Balancer 16659 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 16660 // 16661 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 16662 // as follows: 16663 // 16664 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 16665 // --region=us-east-1. 16666 // 16667 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 16668 // 16669 // Scope is a required field 16670 Scope *string `type:"string" required:"true" enum:"Scope"` 16671 16672 // The version that you want to remove from your list of offerings for the named 16673 // managed rule group. 16674 // 16675 // VersionToExpire is a required field 16676 VersionToExpire *string `min:"1" type:"string" required:"true"` 16677 } 16678 16679 // String returns the string representation. 16680 // 16681 // API parameter values that are decorated as "sensitive" in the API will not 16682 // be included in the string output. The member name will be present, but the 16683 // value will be replaced with "sensitive". 16684 func (s UpdateManagedRuleSetVersionExpiryDateInput) String() string { 16685 return awsutil.Prettify(s) 16686 } 16687 16688 // GoString returns the string representation. 16689 // 16690 // API parameter values that are decorated as "sensitive" in the API will not 16691 // be included in the string output. The member name will be present, but the 16692 // value will be replaced with "sensitive". 16693 func (s UpdateManagedRuleSetVersionExpiryDateInput) GoString() string { 16694 return s.String() 16695 } 16696 16697 // Validate inspects the fields of the type to determine if they are valid. 16698 func (s *UpdateManagedRuleSetVersionExpiryDateInput) Validate() error { 16699 invalidParams := request.ErrInvalidParams{Context: "UpdateManagedRuleSetVersionExpiryDateInput"} 16700 if s.ExpiryTimestamp == nil { 16701 invalidParams.Add(request.NewErrParamRequired("ExpiryTimestamp")) 16702 } 16703 if s.Id == nil { 16704 invalidParams.Add(request.NewErrParamRequired("Id")) 16705 } 16706 if s.Id != nil && len(*s.Id) < 1 { 16707 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 16708 } 16709 if s.LockToken == nil { 16710 invalidParams.Add(request.NewErrParamRequired("LockToken")) 16711 } 16712 if s.LockToken != nil && len(*s.LockToken) < 1 { 16713 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 16714 } 16715 if s.Name == nil { 16716 invalidParams.Add(request.NewErrParamRequired("Name")) 16717 } 16718 if s.Name != nil && len(*s.Name) < 1 { 16719 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 16720 } 16721 if s.Scope == nil { 16722 invalidParams.Add(request.NewErrParamRequired("Scope")) 16723 } 16724 if s.VersionToExpire == nil { 16725 invalidParams.Add(request.NewErrParamRequired("VersionToExpire")) 16726 } 16727 if s.VersionToExpire != nil && len(*s.VersionToExpire) < 1 { 16728 invalidParams.Add(request.NewErrParamMinLen("VersionToExpire", 1)) 16729 } 16730 16731 if invalidParams.Len() > 0 { 16732 return invalidParams 16733 } 16734 return nil 16735 } 16736 16737 // SetExpiryTimestamp sets the ExpiryTimestamp field's value. 16738 func (s *UpdateManagedRuleSetVersionExpiryDateInput) SetExpiryTimestamp(v time.Time) *UpdateManagedRuleSetVersionExpiryDateInput { 16739 s.ExpiryTimestamp = &v 16740 return s 16741 } 16742 16743 // SetId sets the Id field's value. 16744 func (s *UpdateManagedRuleSetVersionExpiryDateInput) SetId(v string) *UpdateManagedRuleSetVersionExpiryDateInput { 16745 s.Id = &v 16746 return s 16747 } 16748 16749 // SetLockToken sets the LockToken field's value. 16750 func (s *UpdateManagedRuleSetVersionExpiryDateInput) SetLockToken(v string) *UpdateManagedRuleSetVersionExpiryDateInput { 16751 s.LockToken = &v 16752 return s 16753 } 16754 16755 // SetName sets the Name field's value. 16756 func (s *UpdateManagedRuleSetVersionExpiryDateInput) SetName(v string) *UpdateManagedRuleSetVersionExpiryDateInput { 16757 s.Name = &v 16758 return s 16759 } 16760 16761 // SetScope sets the Scope field's value. 16762 func (s *UpdateManagedRuleSetVersionExpiryDateInput) SetScope(v string) *UpdateManagedRuleSetVersionExpiryDateInput { 16763 s.Scope = &v 16764 return s 16765 } 16766 16767 // SetVersionToExpire sets the VersionToExpire field's value. 16768 func (s *UpdateManagedRuleSetVersionExpiryDateInput) SetVersionToExpire(v string) *UpdateManagedRuleSetVersionExpiryDateInput { 16769 s.VersionToExpire = &v 16770 return s 16771 } 16772 16773 type UpdateManagedRuleSetVersionExpiryDateOutput struct { 16774 _ struct{} `type:"structure"` 16775 16776 // The version that is set to expire. 16777 ExpiringVersion *string `min:"1" type:"string"` 16778 16779 // The time that the version will expire. 16780 // 16781 // Times are in Coordinated Universal Time (UTC) format. UTC format includes 16782 // the special designator, Z. For example, "2016-09-27T14:50Z". 16783 ExpiryTimestamp *time.Time `type:"timestamp"` 16784 16785 // A token used for optimistic locking. WAF returns a token to your get and 16786 // list requests, to mark the state of the entity at the time of the request. 16787 // To make changes to the entity associated with the token, you provide the 16788 // token to operations like update and delete. WAF uses the token to ensure 16789 // that no changes have been made to the entity since you last retrieved it. 16790 // If a change has been made, the update fails with a WAFOptimisticLockException. 16791 // If this happens, perform another get, and use the new token returned by that 16792 // operation. 16793 NextLockToken *string `min:"1" type:"string"` 16794 } 16795 16796 // String returns the string representation. 16797 // 16798 // API parameter values that are decorated as "sensitive" in the API will not 16799 // be included in the string output. The member name will be present, but the 16800 // value will be replaced with "sensitive". 16801 func (s UpdateManagedRuleSetVersionExpiryDateOutput) String() string { 16802 return awsutil.Prettify(s) 16803 } 16804 16805 // GoString returns the string representation. 16806 // 16807 // API parameter values that are decorated as "sensitive" in the API will not 16808 // be included in the string output. The member name will be present, but the 16809 // value will be replaced with "sensitive". 16810 func (s UpdateManagedRuleSetVersionExpiryDateOutput) GoString() string { 16811 return s.String() 16812 } 16813 16814 // SetExpiringVersion sets the ExpiringVersion field's value. 16815 func (s *UpdateManagedRuleSetVersionExpiryDateOutput) SetExpiringVersion(v string) *UpdateManagedRuleSetVersionExpiryDateOutput { 16816 s.ExpiringVersion = &v 16817 return s 16818 } 16819 16820 // SetExpiryTimestamp sets the ExpiryTimestamp field's value. 16821 func (s *UpdateManagedRuleSetVersionExpiryDateOutput) SetExpiryTimestamp(v time.Time) *UpdateManagedRuleSetVersionExpiryDateOutput { 16822 s.ExpiryTimestamp = &v 16823 return s 16824 } 16825 16826 // SetNextLockToken sets the NextLockToken field's value. 16827 func (s *UpdateManagedRuleSetVersionExpiryDateOutput) SetNextLockToken(v string) *UpdateManagedRuleSetVersionExpiryDateOutput { 16828 s.NextLockToken = &v 16829 return s 16830 } 16831 16832 type UpdateRegexPatternSetInput struct { 16833 _ struct{} `type:"structure"` 16834 16835 // A description of the set that helps with identification. 16836 Description *string `min:"1" type:"string"` 16837 16838 // A unique identifier for the set. This ID is returned in the responses to 16839 // create and list commands. You provide it to operations like update and delete. 16840 // 16841 // Id is a required field 16842 Id *string `min:"1" type:"string" required:"true"` 16843 16844 // A token used for optimistic locking. WAF returns a token to your get and 16845 // list requests, to mark the state of the entity at the time of the request. 16846 // To make changes to the entity associated with the token, you provide the 16847 // token to operations like update and delete. WAF uses the token to ensure 16848 // that no changes have been made to the entity since you last retrieved it. 16849 // If a change has been made, the update fails with a WAFOptimisticLockException. 16850 // If this happens, perform another get, and use the new token returned by that 16851 // operation. 16852 // 16853 // LockToken is a required field 16854 LockToken *string `min:"1" type:"string" required:"true"` 16855 16856 // The name of the set. You cannot change the name after you create the set. 16857 // 16858 // Name is a required field 16859 Name *string `min:"1" type:"string" required:"true"` 16860 16861 // RegularExpressionList is a required field 16862 RegularExpressionList []*Regex `type:"list" required:"true"` 16863 16864 // Specifies whether this is for an Amazon CloudFront distribution or for a 16865 // regional application. A regional application can be an Application Load Balancer 16866 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 16867 // 16868 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 16869 // as follows: 16870 // 16871 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 16872 // --region=us-east-1. 16873 // 16874 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 16875 // 16876 // Scope is a required field 16877 Scope *string `type:"string" required:"true" enum:"Scope"` 16878 } 16879 16880 // String returns the string representation. 16881 // 16882 // API parameter values that are decorated as "sensitive" in the API will not 16883 // be included in the string output. The member name will be present, but the 16884 // value will be replaced with "sensitive". 16885 func (s UpdateRegexPatternSetInput) String() string { 16886 return awsutil.Prettify(s) 16887 } 16888 16889 // GoString returns the string representation. 16890 // 16891 // API parameter values that are decorated as "sensitive" in the API will not 16892 // be included in the string output. The member name will be present, but the 16893 // value will be replaced with "sensitive". 16894 func (s UpdateRegexPatternSetInput) GoString() string { 16895 return s.String() 16896 } 16897 16898 // Validate inspects the fields of the type to determine if they are valid. 16899 func (s *UpdateRegexPatternSetInput) Validate() error { 16900 invalidParams := request.ErrInvalidParams{Context: "UpdateRegexPatternSetInput"} 16901 if s.Description != nil && len(*s.Description) < 1 { 16902 invalidParams.Add(request.NewErrParamMinLen("Description", 1)) 16903 } 16904 if s.Id == nil { 16905 invalidParams.Add(request.NewErrParamRequired("Id")) 16906 } 16907 if s.Id != nil && len(*s.Id) < 1 { 16908 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 16909 } 16910 if s.LockToken == nil { 16911 invalidParams.Add(request.NewErrParamRequired("LockToken")) 16912 } 16913 if s.LockToken != nil && len(*s.LockToken) < 1 { 16914 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 16915 } 16916 if s.Name == nil { 16917 invalidParams.Add(request.NewErrParamRequired("Name")) 16918 } 16919 if s.Name != nil && len(*s.Name) < 1 { 16920 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 16921 } 16922 if s.RegularExpressionList == nil { 16923 invalidParams.Add(request.NewErrParamRequired("RegularExpressionList")) 16924 } 16925 if s.Scope == nil { 16926 invalidParams.Add(request.NewErrParamRequired("Scope")) 16927 } 16928 if s.RegularExpressionList != nil { 16929 for i, v := range s.RegularExpressionList { 16930 if v == nil { 16931 continue 16932 } 16933 if err := v.Validate(); err != nil { 16934 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RegularExpressionList", i), err.(request.ErrInvalidParams)) 16935 } 16936 } 16937 } 16938 16939 if invalidParams.Len() > 0 { 16940 return invalidParams 16941 } 16942 return nil 16943 } 16944 16945 // SetDescription sets the Description field's value. 16946 func (s *UpdateRegexPatternSetInput) SetDescription(v string) *UpdateRegexPatternSetInput { 16947 s.Description = &v 16948 return s 16949 } 16950 16951 // SetId sets the Id field's value. 16952 func (s *UpdateRegexPatternSetInput) SetId(v string) *UpdateRegexPatternSetInput { 16953 s.Id = &v 16954 return s 16955 } 16956 16957 // SetLockToken sets the LockToken field's value. 16958 func (s *UpdateRegexPatternSetInput) SetLockToken(v string) *UpdateRegexPatternSetInput { 16959 s.LockToken = &v 16960 return s 16961 } 16962 16963 // SetName sets the Name field's value. 16964 func (s *UpdateRegexPatternSetInput) SetName(v string) *UpdateRegexPatternSetInput { 16965 s.Name = &v 16966 return s 16967 } 16968 16969 // SetRegularExpressionList sets the RegularExpressionList field's value. 16970 func (s *UpdateRegexPatternSetInput) SetRegularExpressionList(v []*Regex) *UpdateRegexPatternSetInput { 16971 s.RegularExpressionList = v 16972 return s 16973 } 16974 16975 // SetScope sets the Scope field's value. 16976 func (s *UpdateRegexPatternSetInput) SetScope(v string) *UpdateRegexPatternSetInput { 16977 s.Scope = &v 16978 return s 16979 } 16980 16981 type UpdateRegexPatternSetOutput struct { 16982 _ struct{} `type:"structure"` 16983 16984 // A token used for optimistic locking. WAF returns this token to your update 16985 // requests. You use NextLockToken in the same manner as you use LockToken. 16986 NextLockToken *string `min:"1" type:"string"` 16987 } 16988 16989 // String returns the string representation. 16990 // 16991 // API parameter values that are decorated as "sensitive" in the API will not 16992 // be included in the string output. The member name will be present, but the 16993 // value will be replaced with "sensitive". 16994 func (s UpdateRegexPatternSetOutput) String() string { 16995 return awsutil.Prettify(s) 16996 } 16997 16998 // GoString returns the string representation. 16999 // 17000 // API parameter values that are decorated as "sensitive" in the API will not 17001 // be included in the string output. The member name will be present, but the 17002 // value will be replaced with "sensitive". 17003 func (s UpdateRegexPatternSetOutput) GoString() string { 17004 return s.String() 17005 } 17006 17007 // SetNextLockToken sets the NextLockToken field's value. 17008 func (s *UpdateRegexPatternSetOutput) SetNextLockToken(v string) *UpdateRegexPatternSetOutput { 17009 s.NextLockToken = &v 17010 return s 17011 } 17012 17013 type UpdateRuleGroupInput struct { 17014 _ struct{} `type:"structure"` 17015 17016 // A map of custom response keys and content bodies. When you create a rule 17017 // with a block action, you can send a custom response to the web request. You 17018 // define these for the rule group, and then use them in the rules that you 17019 // define in the rule group. 17020 // 17021 // For information about customizing web requests and responses, see Customizing 17022 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 17023 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 17024 // 17025 // For information about the limits on count and size for custom request and 17026 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 17027 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 17028 CustomResponseBodies map[string]*CustomResponseBody `min:"1" type:"map"` 17029 17030 // A description of the rule group that helps with identification. 17031 Description *string `min:"1" type:"string"` 17032 17033 // A unique identifier for the rule group. This ID is returned in the responses 17034 // to create and list commands. You provide it to operations like update and 17035 // delete. 17036 // 17037 // Id is a required field 17038 Id *string `min:"1" type:"string" required:"true"` 17039 17040 // A token used for optimistic locking. WAF returns a token to your get and 17041 // list requests, to mark the state of the entity at the time of the request. 17042 // To make changes to the entity associated with the token, you provide the 17043 // token to operations like update and delete. WAF uses the token to ensure 17044 // that no changes have been made to the entity since you last retrieved it. 17045 // If a change has been made, the update fails with a WAFOptimisticLockException. 17046 // If this happens, perform another get, and use the new token returned by that 17047 // operation. 17048 // 17049 // LockToken is a required field 17050 LockToken *string `min:"1" type:"string" required:"true"` 17051 17052 // The name of the rule group. You cannot change the name of a rule group after 17053 // you create it. 17054 // 17055 // Name is a required field 17056 Name *string `min:"1" type:"string" required:"true"` 17057 17058 // The Rule statements used to identify the web requests that you want to allow, 17059 // block, or count. Each rule includes one top-level statement that WAF uses 17060 // to identify matching web requests, and parameters that govern how WAF handles 17061 // them. 17062 Rules []*Rule `type:"list"` 17063 17064 // Specifies whether this is for an Amazon CloudFront distribution or for a 17065 // regional application. A regional application can be an Application Load Balancer 17066 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 17067 // 17068 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 17069 // as follows: 17070 // 17071 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 17072 // --region=us-east-1. 17073 // 17074 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 17075 // 17076 // Scope is a required field 17077 Scope *string `type:"string" required:"true" enum:"Scope"` 17078 17079 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 17080 // 17081 // VisibilityConfig is a required field 17082 VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` 17083 } 17084 17085 // String returns the string representation. 17086 // 17087 // API parameter values that are decorated as "sensitive" in the API will not 17088 // be included in the string output. The member name will be present, but the 17089 // value will be replaced with "sensitive". 17090 func (s UpdateRuleGroupInput) String() string { 17091 return awsutil.Prettify(s) 17092 } 17093 17094 // GoString returns the string representation. 17095 // 17096 // API parameter values that are decorated as "sensitive" in the API will not 17097 // be included in the string output. The member name will be present, but the 17098 // value will be replaced with "sensitive". 17099 func (s UpdateRuleGroupInput) GoString() string { 17100 return s.String() 17101 } 17102 17103 // Validate inspects the fields of the type to determine if they are valid. 17104 func (s *UpdateRuleGroupInput) Validate() error { 17105 invalidParams := request.ErrInvalidParams{Context: "UpdateRuleGroupInput"} 17106 if s.CustomResponseBodies != nil && len(s.CustomResponseBodies) < 1 { 17107 invalidParams.Add(request.NewErrParamMinLen("CustomResponseBodies", 1)) 17108 } 17109 if s.Description != nil && len(*s.Description) < 1 { 17110 invalidParams.Add(request.NewErrParamMinLen("Description", 1)) 17111 } 17112 if s.Id == nil { 17113 invalidParams.Add(request.NewErrParamRequired("Id")) 17114 } 17115 if s.Id != nil && len(*s.Id) < 1 { 17116 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 17117 } 17118 if s.LockToken == nil { 17119 invalidParams.Add(request.NewErrParamRequired("LockToken")) 17120 } 17121 if s.LockToken != nil && len(*s.LockToken) < 1 { 17122 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 17123 } 17124 if s.Name == nil { 17125 invalidParams.Add(request.NewErrParamRequired("Name")) 17126 } 17127 if s.Name != nil && len(*s.Name) < 1 { 17128 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 17129 } 17130 if s.Scope == nil { 17131 invalidParams.Add(request.NewErrParamRequired("Scope")) 17132 } 17133 if s.VisibilityConfig == nil { 17134 invalidParams.Add(request.NewErrParamRequired("VisibilityConfig")) 17135 } 17136 if s.CustomResponseBodies != nil { 17137 for i, v := range s.CustomResponseBodies { 17138 if v == nil { 17139 continue 17140 } 17141 if err := v.Validate(); err != nil { 17142 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomResponseBodies", i), err.(request.ErrInvalidParams)) 17143 } 17144 } 17145 } 17146 if s.Rules != nil { 17147 for i, v := range s.Rules { 17148 if v == nil { 17149 continue 17150 } 17151 if err := v.Validate(); err != nil { 17152 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 17153 } 17154 } 17155 } 17156 if s.VisibilityConfig != nil { 17157 if err := s.VisibilityConfig.Validate(); err != nil { 17158 invalidParams.AddNested("VisibilityConfig", err.(request.ErrInvalidParams)) 17159 } 17160 } 17161 17162 if invalidParams.Len() > 0 { 17163 return invalidParams 17164 } 17165 return nil 17166 } 17167 17168 // SetCustomResponseBodies sets the CustomResponseBodies field's value. 17169 func (s *UpdateRuleGroupInput) SetCustomResponseBodies(v map[string]*CustomResponseBody) *UpdateRuleGroupInput { 17170 s.CustomResponseBodies = v 17171 return s 17172 } 17173 17174 // SetDescription sets the Description field's value. 17175 func (s *UpdateRuleGroupInput) SetDescription(v string) *UpdateRuleGroupInput { 17176 s.Description = &v 17177 return s 17178 } 17179 17180 // SetId sets the Id field's value. 17181 func (s *UpdateRuleGroupInput) SetId(v string) *UpdateRuleGroupInput { 17182 s.Id = &v 17183 return s 17184 } 17185 17186 // SetLockToken sets the LockToken field's value. 17187 func (s *UpdateRuleGroupInput) SetLockToken(v string) *UpdateRuleGroupInput { 17188 s.LockToken = &v 17189 return s 17190 } 17191 17192 // SetName sets the Name field's value. 17193 func (s *UpdateRuleGroupInput) SetName(v string) *UpdateRuleGroupInput { 17194 s.Name = &v 17195 return s 17196 } 17197 17198 // SetRules sets the Rules field's value. 17199 func (s *UpdateRuleGroupInput) SetRules(v []*Rule) *UpdateRuleGroupInput { 17200 s.Rules = v 17201 return s 17202 } 17203 17204 // SetScope sets the Scope field's value. 17205 func (s *UpdateRuleGroupInput) SetScope(v string) *UpdateRuleGroupInput { 17206 s.Scope = &v 17207 return s 17208 } 17209 17210 // SetVisibilityConfig sets the VisibilityConfig field's value. 17211 func (s *UpdateRuleGroupInput) SetVisibilityConfig(v *VisibilityConfig) *UpdateRuleGroupInput { 17212 s.VisibilityConfig = v 17213 return s 17214 } 17215 17216 type UpdateRuleGroupOutput struct { 17217 _ struct{} `type:"structure"` 17218 17219 // A token used for optimistic locking. WAF returns this token to your update 17220 // requests. You use NextLockToken in the same manner as you use LockToken. 17221 NextLockToken *string `min:"1" type:"string"` 17222 } 17223 17224 // String returns the string representation. 17225 // 17226 // API parameter values that are decorated as "sensitive" in the API will not 17227 // be included in the string output. The member name will be present, but the 17228 // value will be replaced with "sensitive". 17229 func (s UpdateRuleGroupOutput) String() string { 17230 return awsutil.Prettify(s) 17231 } 17232 17233 // GoString returns the string representation. 17234 // 17235 // API parameter values that are decorated as "sensitive" in the API will not 17236 // be included in the string output. The member name will be present, but the 17237 // value will be replaced with "sensitive". 17238 func (s UpdateRuleGroupOutput) GoString() string { 17239 return s.String() 17240 } 17241 17242 // SetNextLockToken sets the NextLockToken field's value. 17243 func (s *UpdateRuleGroupOutput) SetNextLockToken(v string) *UpdateRuleGroupOutput { 17244 s.NextLockToken = &v 17245 return s 17246 } 17247 17248 type UpdateWebACLInput struct { 17249 _ struct{} `type:"structure"` 17250 17251 // A map of custom response keys and content bodies. When you create a rule 17252 // with a block action, you can send a custom response to the web request. You 17253 // define these for the web ACL, and then use them in the rules and default 17254 // actions that you define in the web ACL. 17255 // 17256 // For information about customizing web requests and responses, see Customizing 17257 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 17258 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 17259 // 17260 // For information about the limits on count and size for custom request and 17261 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 17262 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 17263 CustomResponseBodies map[string]*CustomResponseBody `min:"1" type:"map"` 17264 17265 // The action to perform if none of the Rules contained in the WebACL match. 17266 // 17267 // DefaultAction is a required field 17268 DefaultAction *DefaultAction `type:"structure" required:"true"` 17269 17270 // A description of the web ACL that helps with identification. 17271 Description *string `min:"1" type:"string"` 17272 17273 // The unique identifier for the web ACL. This ID is returned in the responses 17274 // to create and list commands. You provide it to operations like update and 17275 // delete. 17276 // 17277 // Id is a required field 17278 Id *string `min:"1" type:"string" required:"true"` 17279 17280 // A token used for optimistic locking. WAF returns a token to your get and 17281 // list requests, to mark the state of the entity at the time of the request. 17282 // To make changes to the entity associated with the token, you provide the 17283 // token to operations like update and delete. WAF uses the token to ensure 17284 // that no changes have been made to the entity since you last retrieved it. 17285 // If a change has been made, the update fails with a WAFOptimisticLockException. 17286 // If this happens, perform another get, and use the new token returned by that 17287 // operation. 17288 // 17289 // LockToken is a required field 17290 LockToken *string `min:"1" type:"string" required:"true"` 17291 17292 // The name of the web ACL. You cannot change the name of a web ACL after you 17293 // create it. 17294 // 17295 // Name is a required field 17296 Name *string `min:"1" type:"string" required:"true"` 17297 17298 // The Rule statements used to identify the web requests that you want to allow, 17299 // block, or count. Each rule includes one top-level statement that WAF uses 17300 // to identify matching web requests, and parameters that govern how WAF handles 17301 // them. 17302 Rules []*Rule `type:"list"` 17303 17304 // Specifies whether this is for an Amazon CloudFront distribution or for a 17305 // regional application. A regional application can be an Application Load Balancer 17306 // (ALB), an Amazon API Gateway REST API, or an AppSync GraphQL API. 17307 // 17308 // To work with CloudFront, you must also specify the Region US East (N. Virginia) 17309 // as follows: 17310 // 17311 // * CLI - Specify the Region when you use the CloudFront scope: --scope=CLOUDFRONT 17312 // --region=us-east-1. 17313 // 17314 // * API and SDKs - For all calls, use the Region endpoint us-east-1. 17315 // 17316 // Scope is a required field 17317 Scope *string `type:"string" required:"true" enum:"Scope"` 17318 17319 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 17320 // 17321 // VisibilityConfig is a required field 17322 VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` 17323 } 17324 17325 // String returns the string representation. 17326 // 17327 // API parameter values that are decorated as "sensitive" in the API will not 17328 // be included in the string output. The member name will be present, but the 17329 // value will be replaced with "sensitive". 17330 func (s UpdateWebACLInput) String() string { 17331 return awsutil.Prettify(s) 17332 } 17333 17334 // GoString returns the string representation. 17335 // 17336 // API parameter values that are decorated as "sensitive" in the API will not 17337 // be included in the string output. The member name will be present, but the 17338 // value will be replaced with "sensitive". 17339 func (s UpdateWebACLInput) GoString() string { 17340 return s.String() 17341 } 17342 17343 // Validate inspects the fields of the type to determine if they are valid. 17344 func (s *UpdateWebACLInput) Validate() error { 17345 invalidParams := request.ErrInvalidParams{Context: "UpdateWebACLInput"} 17346 if s.CustomResponseBodies != nil && len(s.CustomResponseBodies) < 1 { 17347 invalidParams.Add(request.NewErrParamMinLen("CustomResponseBodies", 1)) 17348 } 17349 if s.DefaultAction == nil { 17350 invalidParams.Add(request.NewErrParamRequired("DefaultAction")) 17351 } 17352 if s.Description != nil && len(*s.Description) < 1 { 17353 invalidParams.Add(request.NewErrParamMinLen("Description", 1)) 17354 } 17355 if s.Id == nil { 17356 invalidParams.Add(request.NewErrParamRequired("Id")) 17357 } 17358 if s.Id != nil && len(*s.Id) < 1 { 17359 invalidParams.Add(request.NewErrParamMinLen("Id", 1)) 17360 } 17361 if s.LockToken == nil { 17362 invalidParams.Add(request.NewErrParamRequired("LockToken")) 17363 } 17364 if s.LockToken != nil && len(*s.LockToken) < 1 { 17365 invalidParams.Add(request.NewErrParamMinLen("LockToken", 1)) 17366 } 17367 if s.Name == nil { 17368 invalidParams.Add(request.NewErrParamRequired("Name")) 17369 } 17370 if s.Name != nil && len(*s.Name) < 1 { 17371 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 17372 } 17373 if s.Scope == nil { 17374 invalidParams.Add(request.NewErrParamRequired("Scope")) 17375 } 17376 if s.VisibilityConfig == nil { 17377 invalidParams.Add(request.NewErrParamRequired("VisibilityConfig")) 17378 } 17379 if s.CustomResponseBodies != nil { 17380 for i, v := range s.CustomResponseBodies { 17381 if v == nil { 17382 continue 17383 } 17384 if err := v.Validate(); err != nil { 17385 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "CustomResponseBodies", i), err.(request.ErrInvalidParams)) 17386 } 17387 } 17388 } 17389 if s.DefaultAction != nil { 17390 if err := s.DefaultAction.Validate(); err != nil { 17391 invalidParams.AddNested("DefaultAction", err.(request.ErrInvalidParams)) 17392 } 17393 } 17394 if s.Rules != nil { 17395 for i, v := range s.Rules { 17396 if v == nil { 17397 continue 17398 } 17399 if err := v.Validate(); err != nil { 17400 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Rules", i), err.(request.ErrInvalidParams)) 17401 } 17402 } 17403 } 17404 if s.VisibilityConfig != nil { 17405 if err := s.VisibilityConfig.Validate(); err != nil { 17406 invalidParams.AddNested("VisibilityConfig", err.(request.ErrInvalidParams)) 17407 } 17408 } 17409 17410 if invalidParams.Len() > 0 { 17411 return invalidParams 17412 } 17413 return nil 17414 } 17415 17416 // SetCustomResponseBodies sets the CustomResponseBodies field's value. 17417 func (s *UpdateWebACLInput) SetCustomResponseBodies(v map[string]*CustomResponseBody) *UpdateWebACLInput { 17418 s.CustomResponseBodies = v 17419 return s 17420 } 17421 17422 // SetDefaultAction sets the DefaultAction field's value. 17423 func (s *UpdateWebACLInput) SetDefaultAction(v *DefaultAction) *UpdateWebACLInput { 17424 s.DefaultAction = v 17425 return s 17426 } 17427 17428 // SetDescription sets the Description field's value. 17429 func (s *UpdateWebACLInput) SetDescription(v string) *UpdateWebACLInput { 17430 s.Description = &v 17431 return s 17432 } 17433 17434 // SetId sets the Id field's value. 17435 func (s *UpdateWebACLInput) SetId(v string) *UpdateWebACLInput { 17436 s.Id = &v 17437 return s 17438 } 17439 17440 // SetLockToken sets the LockToken field's value. 17441 func (s *UpdateWebACLInput) SetLockToken(v string) *UpdateWebACLInput { 17442 s.LockToken = &v 17443 return s 17444 } 17445 17446 // SetName sets the Name field's value. 17447 func (s *UpdateWebACLInput) SetName(v string) *UpdateWebACLInput { 17448 s.Name = &v 17449 return s 17450 } 17451 17452 // SetRules sets the Rules field's value. 17453 func (s *UpdateWebACLInput) SetRules(v []*Rule) *UpdateWebACLInput { 17454 s.Rules = v 17455 return s 17456 } 17457 17458 // SetScope sets the Scope field's value. 17459 func (s *UpdateWebACLInput) SetScope(v string) *UpdateWebACLInput { 17460 s.Scope = &v 17461 return s 17462 } 17463 17464 // SetVisibilityConfig sets the VisibilityConfig field's value. 17465 func (s *UpdateWebACLInput) SetVisibilityConfig(v *VisibilityConfig) *UpdateWebACLInput { 17466 s.VisibilityConfig = v 17467 return s 17468 } 17469 17470 type UpdateWebACLOutput struct { 17471 _ struct{} `type:"structure"` 17472 17473 // A token used for optimistic locking. WAF returns this token to your update 17474 // requests. You use NextLockToken in the same manner as you use LockToken. 17475 NextLockToken *string `min:"1" type:"string"` 17476 } 17477 17478 // String returns the string representation. 17479 // 17480 // API parameter values that are decorated as "sensitive" in the API will not 17481 // be included in the string output. The member name will be present, but the 17482 // value will be replaced with "sensitive". 17483 func (s UpdateWebACLOutput) String() string { 17484 return awsutil.Prettify(s) 17485 } 17486 17487 // GoString returns the string representation. 17488 // 17489 // API parameter values that are decorated as "sensitive" in the API will not 17490 // be included in the string output. The member name will be present, but the 17491 // value will be replaced with "sensitive". 17492 func (s UpdateWebACLOutput) GoString() string { 17493 return s.String() 17494 } 17495 17496 // SetNextLockToken sets the NextLockToken field's value. 17497 func (s *UpdateWebACLOutput) SetNextLockToken(v string) *UpdateWebACLOutput { 17498 s.NextLockToken = &v 17499 return s 17500 } 17501 17502 // The path component of the URI of a web request. This is the part of a web 17503 // request that identifies a resource. For example, /images/daily-ad.jpg. 17504 // 17505 // This is used only to indicate the web request component for WAF to inspect, 17506 // in the FieldToMatch specification. 17507 // 17508 // JSON specification: "UriPath": {} 17509 type UriPath struct { 17510 _ struct{} `type:"structure"` 17511 } 17512 17513 // String returns the string representation. 17514 // 17515 // API parameter values that are decorated as "sensitive" in the API will not 17516 // be included in the string output. The member name will be present, but the 17517 // value will be replaced with "sensitive". 17518 func (s UriPath) String() string { 17519 return awsutil.Prettify(s) 17520 } 17521 17522 // GoString returns the string representation. 17523 // 17524 // API parameter values that are decorated as "sensitive" in the API will not 17525 // be included in the string output. The member name will be present, but the 17526 // value will be replaced with "sensitive". 17527 func (s UriPath) GoString() string { 17528 return s.String() 17529 } 17530 17531 // A version of the named managed rule group, that the rule group's vendor publishes 17532 // for use by customers. 17533 // 17534 // This is intended for use only by vendors of managed rule sets. Vendors are 17535 // Amazon Web Services and Amazon Web Services Marketplace sellers. 17536 // 17537 // Vendors, you can use the managed rule set APIs to provide controlled rollout 17538 // of your versioned managed rule group offerings for your customers. The APIs 17539 // are ListManagedRuleSets, GetManagedRuleSet, PutManagedRuleSetVersions, and 17540 // UpdateManagedRuleSetVersionExpiryDate. 17541 type VersionToPublish struct { 17542 _ struct{} `type:"structure"` 17543 17544 // The Amazon Resource Name (ARN) of the vendor's rule group that's used in 17545 // the published managed rule group version. 17546 AssociatedRuleGroupArn *string `min:"20" type:"string"` 17547 17548 // The amount of time the vendor expects this version of the managed rule group 17549 // to last, in days. 17550 ForecastedLifetime *int64 `min:"1" type:"integer"` 17551 } 17552 17553 // String returns the string representation. 17554 // 17555 // API parameter values that are decorated as "sensitive" in the API will not 17556 // be included in the string output. The member name will be present, but the 17557 // value will be replaced with "sensitive". 17558 func (s VersionToPublish) String() string { 17559 return awsutil.Prettify(s) 17560 } 17561 17562 // GoString returns the string representation. 17563 // 17564 // API parameter values that are decorated as "sensitive" in the API will not 17565 // be included in the string output. The member name will be present, but the 17566 // value will be replaced with "sensitive". 17567 func (s VersionToPublish) GoString() string { 17568 return s.String() 17569 } 17570 17571 // Validate inspects the fields of the type to determine if they are valid. 17572 func (s *VersionToPublish) Validate() error { 17573 invalidParams := request.ErrInvalidParams{Context: "VersionToPublish"} 17574 if s.AssociatedRuleGroupArn != nil && len(*s.AssociatedRuleGroupArn) < 20 { 17575 invalidParams.Add(request.NewErrParamMinLen("AssociatedRuleGroupArn", 20)) 17576 } 17577 if s.ForecastedLifetime != nil && *s.ForecastedLifetime < 1 { 17578 invalidParams.Add(request.NewErrParamMinValue("ForecastedLifetime", 1)) 17579 } 17580 17581 if invalidParams.Len() > 0 { 17582 return invalidParams 17583 } 17584 return nil 17585 } 17586 17587 // SetAssociatedRuleGroupArn sets the AssociatedRuleGroupArn field's value. 17588 func (s *VersionToPublish) SetAssociatedRuleGroupArn(v string) *VersionToPublish { 17589 s.AssociatedRuleGroupArn = &v 17590 return s 17591 } 17592 17593 // SetForecastedLifetime sets the ForecastedLifetime field's value. 17594 func (s *VersionToPublish) SetForecastedLifetime(v int64) *VersionToPublish { 17595 s.ForecastedLifetime = &v 17596 return s 17597 } 17598 17599 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 17600 type VisibilityConfig struct { 17601 _ struct{} `type:"structure"` 17602 17603 // A boolean indicating whether the associated resource sends metrics to Amazon 17604 // CloudWatch. For the list of available metrics, see WAF Metrics (https://docs.aws.amazon.com/waf/latest/developerguide/monitoring-cloudwatch.html#waf-metrics). 17605 // 17606 // CloudWatchMetricsEnabled is a required field 17607 CloudWatchMetricsEnabled *bool `type:"boolean" required:"true"` 17608 17609 // A name of the Amazon CloudWatch metric. The name can contain only the characters: 17610 // A-Z, a-z, 0-9, - (hyphen), and _ (underscore). The name can be from one to 17611 // 128 characters long. It can't contain whitespace or metric names reserved 17612 // for WAF, for example "All" and "Default_Action." 17613 // 17614 // MetricName is a required field 17615 MetricName *string `min:"1" type:"string" required:"true"` 17616 17617 // A boolean indicating whether WAF should store a sampling of the web requests 17618 // that match the rules. You can view the sampled requests through the WAF console. 17619 // 17620 // SampledRequestsEnabled is a required field 17621 SampledRequestsEnabled *bool `type:"boolean" required:"true"` 17622 } 17623 17624 // String returns the string representation. 17625 // 17626 // API parameter values that are decorated as "sensitive" in the API will not 17627 // be included in the string output. The member name will be present, but the 17628 // value will be replaced with "sensitive". 17629 func (s VisibilityConfig) String() string { 17630 return awsutil.Prettify(s) 17631 } 17632 17633 // GoString returns the string representation. 17634 // 17635 // API parameter values that are decorated as "sensitive" in the API will not 17636 // be included in the string output. The member name will be present, but the 17637 // value will be replaced with "sensitive". 17638 func (s VisibilityConfig) GoString() string { 17639 return s.String() 17640 } 17641 17642 // Validate inspects the fields of the type to determine if they are valid. 17643 func (s *VisibilityConfig) Validate() error { 17644 invalidParams := request.ErrInvalidParams{Context: "VisibilityConfig"} 17645 if s.CloudWatchMetricsEnabled == nil { 17646 invalidParams.Add(request.NewErrParamRequired("CloudWatchMetricsEnabled")) 17647 } 17648 if s.MetricName == nil { 17649 invalidParams.Add(request.NewErrParamRequired("MetricName")) 17650 } 17651 if s.MetricName != nil && len(*s.MetricName) < 1 { 17652 invalidParams.Add(request.NewErrParamMinLen("MetricName", 1)) 17653 } 17654 if s.SampledRequestsEnabled == nil { 17655 invalidParams.Add(request.NewErrParamRequired("SampledRequestsEnabled")) 17656 } 17657 17658 if invalidParams.Len() > 0 { 17659 return invalidParams 17660 } 17661 return nil 17662 } 17663 17664 // SetCloudWatchMetricsEnabled sets the CloudWatchMetricsEnabled field's value. 17665 func (s *VisibilityConfig) SetCloudWatchMetricsEnabled(v bool) *VisibilityConfig { 17666 s.CloudWatchMetricsEnabled = &v 17667 return s 17668 } 17669 17670 // SetMetricName sets the MetricName field's value. 17671 func (s *VisibilityConfig) SetMetricName(v string) *VisibilityConfig { 17672 s.MetricName = &v 17673 return s 17674 } 17675 17676 // SetSampledRequestsEnabled sets the SampledRequestsEnabled field's value. 17677 func (s *VisibilityConfig) SetSampledRequestsEnabled(v bool) *VisibilityConfig { 17678 s.SampledRequestsEnabled = &v 17679 return s 17680 } 17681 17682 // WAF couldn’t perform the operation because your resource is being used 17683 // by another resource or it’s associated with another resource. 17684 type WAFAssociatedItemException struct { 17685 _ struct{} `type:"structure"` 17686 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 17687 17688 Message_ *string `locationName:"Message" type:"string"` 17689 } 17690 17691 // String returns the string representation. 17692 // 17693 // API parameter values that are decorated as "sensitive" in the API will not 17694 // be included in the string output. The member name will be present, but the 17695 // value will be replaced with "sensitive". 17696 func (s WAFAssociatedItemException) String() string { 17697 return awsutil.Prettify(s) 17698 } 17699 17700 // GoString returns the string representation. 17701 // 17702 // API parameter values that are decorated as "sensitive" in the API will not 17703 // be included in the string output. The member name will be present, but the 17704 // value will be replaced with "sensitive". 17705 func (s WAFAssociatedItemException) GoString() string { 17706 return s.String() 17707 } 17708 17709 func newErrorWAFAssociatedItemException(v protocol.ResponseMetadata) error { 17710 return &WAFAssociatedItemException{ 17711 RespMetadata: v, 17712 } 17713 } 17714 17715 // Code returns the exception type name. 17716 func (s *WAFAssociatedItemException) Code() string { 17717 return "WAFAssociatedItemException" 17718 } 17719 17720 // Message returns the exception's message. 17721 func (s *WAFAssociatedItemException) Message() string { 17722 if s.Message_ != nil { 17723 return *s.Message_ 17724 } 17725 return "" 17726 } 17727 17728 // OrigErr always returns nil, satisfies awserr.Error interface. 17729 func (s *WAFAssociatedItemException) OrigErr() error { 17730 return nil 17731 } 17732 17733 func (s *WAFAssociatedItemException) Error() string { 17734 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 17735 } 17736 17737 // Status code returns the HTTP status code for the request's response error. 17738 func (s *WAFAssociatedItemException) StatusCode() int { 17739 return s.RespMetadata.StatusCode 17740 } 17741 17742 // RequestID returns the service's response RequestID for request. 17743 func (s *WAFAssociatedItemException) RequestID() string { 17744 return s.RespMetadata.RequestID 17745 } 17746 17747 // WAF couldn’t perform the operation because the resource that you tried 17748 // to save is a duplicate of an existing one. 17749 type WAFDuplicateItemException struct { 17750 _ struct{} `type:"structure"` 17751 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 17752 17753 Message_ *string `locationName:"Message" type:"string"` 17754 } 17755 17756 // String returns the string representation. 17757 // 17758 // API parameter values that are decorated as "sensitive" in the API will not 17759 // be included in the string output. The member name will be present, but the 17760 // value will be replaced with "sensitive". 17761 func (s WAFDuplicateItemException) String() string { 17762 return awsutil.Prettify(s) 17763 } 17764 17765 // GoString returns the string representation. 17766 // 17767 // API parameter values that are decorated as "sensitive" in the API will not 17768 // be included in the string output. The member name will be present, but the 17769 // value will be replaced with "sensitive". 17770 func (s WAFDuplicateItemException) GoString() string { 17771 return s.String() 17772 } 17773 17774 func newErrorWAFDuplicateItemException(v protocol.ResponseMetadata) error { 17775 return &WAFDuplicateItemException{ 17776 RespMetadata: v, 17777 } 17778 } 17779 17780 // Code returns the exception type name. 17781 func (s *WAFDuplicateItemException) Code() string { 17782 return "WAFDuplicateItemException" 17783 } 17784 17785 // Message returns the exception's message. 17786 func (s *WAFDuplicateItemException) Message() string { 17787 if s.Message_ != nil { 17788 return *s.Message_ 17789 } 17790 return "" 17791 } 17792 17793 // OrigErr always returns nil, satisfies awserr.Error interface. 17794 func (s *WAFDuplicateItemException) OrigErr() error { 17795 return nil 17796 } 17797 17798 func (s *WAFDuplicateItemException) Error() string { 17799 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 17800 } 17801 17802 // Status code returns the HTTP status code for the request's response error. 17803 func (s *WAFDuplicateItemException) StatusCode() int { 17804 return s.RespMetadata.StatusCode 17805 } 17806 17807 // RequestID returns the service's response RequestID for request. 17808 func (s *WAFDuplicateItemException) RequestID() string { 17809 return s.RespMetadata.RequestID 17810 } 17811 17812 // The operation failed because the specified version for the managed rule group 17813 // has expired. You can retrieve the available versions for the managed rule 17814 // group by calling ListAvailableManagedRuleGroupVersions. 17815 type WAFExpiredManagedRuleGroupVersionException struct { 17816 _ struct{} `type:"structure"` 17817 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 17818 17819 Message_ *string `locationName:"Message" type:"string"` 17820 } 17821 17822 // String returns the string representation. 17823 // 17824 // API parameter values that are decorated as "sensitive" in the API will not 17825 // be included in the string output. The member name will be present, but the 17826 // value will be replaced with "sensitive". 17827 func (s WAFExpiredManagedRuleGroupVersionException) String() string { 17828 return awsutil.Prettify(s) 17829 } 17830 17831 // GoString returns the string representation. 17832 // 17833 // API parameter values that are decorated as "sensitive" in the API will not 17834 // be included in the string output. The member name will be present, but the 17835 // value will be replaced with "sensitive". 17836 func (s WAFExpiredManagedRuleGroupVersionException) GoString() string { 17837 return s.String() 17838 } 17839 17840 func newErrorWAFExpiredManagedRuleGroupVersionException(v protocol.ResponseMetadata) error { 17841 return &WAFExpiredManagedRuleGroupVersionException{ 17842 RespMetadata: v, 17843 } 17844 } 17845 17846 // Code returns the exception type name. 17847 func (s *WAFExpiredManagedRuleGroupVersionException) Code() string { 17848 return "WAFExpiredManagedRuleGroupVersionException" 17849 } 17850 17851 // Message returns the exception's message. 17852 func (s *WAFExpiredManagedRuleGroupVersionException) Message() string { 17853 if s.Message_ != nil { 17854 return *s.Message_ 17855 } 17856 return "" 17857 } 17858 17859 // OrigErr always returns nil, satisfies awserr.Error interface. 17860 func (s *WAFExpiredManagedRuleGroupVersionException) OrigErr() error { 17861 return nil 17862 } 17863 17864 func (s *WAFExpiredManagedRuleGroupVersionException) Error() string { 17865 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 17866 } 17867 17868 // Status code returns the HTTP status code for the request's response error. 17869 func (s *WAFExpiredManagedRuleGroupVersionException) StatusCode() int { 17870 return s.RespMetadata.StatusCode 17871 } 17872 17873 // RequestID returns the service's response RequestID for request. 17874 func (s *WAFExpiredManagedRuleGroupVersionException) RequestID() string { 17875 return s.RespMetadata.RequestID 17876 } 17877 17878 // Your request is valid, but WAF couldn’t perform the operation because of 17879 // a system problem. Retry your request. 17880 type WAFInternalErrorException struct { 17881 _ struct{} `type:"structure"` 17882 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 17883 17884 Message_ *string `locationName:"Message" type:"string"` 17885 } 17886 17887 // String returns the string representation. 17888 // 17889 // API parameter values that are decorated as "sensitive" in the API will not 17890 // be included in the string output. The member name will be present, but the 17891 // value will be replaced with "sensitive". 17892 func (s WAFInternalErrorException) String() string { 17893 return awsutil.Prettify(s) 17894 } 17895 17896 // GoString returns the string representation. 17897 // 17898 // API parameter values that are decorated as "sensitive" in the API will not 17899 // be included in the string output. The member name will be present, but the 17900 // value will be replaced with "sensitive". 17901 func (s WAFInternalErrorException) GoString() string { 17902 return s.String() 17903 } 17904 17905 func newErrorWAFInternalErrorException(v protocol.ResponseMetadata) error { 17906 return &WAFInternalErrorException{ 17907 RespMetadata: v, 17908 } 17909 } 17910 17911 // Code returns the exception type name. 17912 func (s *WAFInternalErrorException) Code() string { 17913 return "WAFInternalErrorException" 17914 } 17915 17916 // Message returns the exception's message. 17917 func (s *WAFInternalErrorException) Message() string { 17918 if s.Message_ != nil { 17919 return *s.Message_ 17920 } 17921 return "" 17922 } 17923 17924 // OrigErr always returns nil, satisfies awserr.Error interface. 17925 func (s *WAFInternalErrorException) OrigErr() error { 17926 return nil 17927 } 17928 17929 func (s *WAFInternalErrorException) Error() string { 17930 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 17931 } 17932 17933 // Status code returns the HTTP status code for the request's response error. 17934 func (s *WAFInternalErrorException) StatusCode() int { 17935 return s.RespMetadata.StatusCode 17936 } 17937 17938 // RequestID returns the service's response RequestID for request. 17939 func (s *WAFInternalErrorException) RequestID() string { 17940 return s.RespMetadata.RequestID 17941 } 17942 17943 // The operation isn't valid. 17944 type WAFInvalidOperationException struct { 17945 _ struct{} `type:"structure"` 17946 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 17947 17948 Message_ *string `locationName:"Message" type:"string"` 17949 } 17950 17951 // String returns the string representation. 17952 // 17953 // API parameter values that are decorated as "sensitive" in the API will not 17954 // be included in the string output. The member name will be present, but the 17955 // value will be replaced with "sensitive". 17956 func (s WAFInvalidOperationException) String() string { 17957 return awsutil.Prettify(s) 17958 } 17959 17960 // GoString returns the string representation. 17961 // 17962 // API parameter values that are decorated as "sensitive" in the API will not 17963 // be included in the string output. The member name will be present, but the 17964 // value will be replaced with "sensitive". 17965 func (s WAFInvalidOperationException) GoString() string { 17966 return s.String() 17967 } 17968 17969 func newErrorWAFInvalidOperationException(v protocol.ResponseMetadata) error { 17970 return &WAFInvalidOperationException{ 17971 RespMetadata: v, 17972 } 17973 } 17974 17975 // Code returns the exception type name. 17976 func (s *WAFInvalidOperationException) Code() string { 17977 return "WAFInvalidOperationException" 17978 } 17979 17980 // Message returns the exception's message. 17981 func (s *WAFInvalidOperationException) Message() string { 17982 if s.Message_ != nil { 17983 return *s.Message_ 17984 } 17985 return "" 17986 } 17987 17988 // OrigErr always returns nil, satisfies awserr.Error interface. 17989 func (s *WAFInvalidOperationException) OrigErr() error { 17990 return nil 17991 } 17992 17993 func (s *WAFInvalidOperationException) Error() string { 17994 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 17995 } 17996 17997 // Status code returns the HTTP status code for the request's response error. 17998 func (s *WAFInvalidOperationException) StatusCode() int { 17999 return s.RespMetadata.StatusCode 18000 } 18001 18002 // RequestID returns the service's response RequestID for request. 18003 func (s *WAFInvalidOperationException) RequestID() string { 18004 return s.RespMetadata.RequestID 18005 } 18006 18007 // The operation failed because WAF didn't recognize a parameter in the request. 18008 // For example: 18009 // 18010 // * You specified a parameter name or value that isn't valid. 18011 // 18012 // * Your nested statement isn't valid. You might have tried to nest a statement 18013 // that can’t be nested. 18014 // 18015 // * You tried to update a WebACL with a DefaultAction that isn't among the 18016 // types available at DefaultAction. 18017 // 18018 // * Your request references an ARN that is malformed, or corresponds to 18019 // a resource with which a web ACL can't be associated. 18020 type WAFInvalidParameterException struct { 18021 _ struct{} `type:"structure"` 18022 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18023 18024 // The settings where the invalid parameter was found. 18025 Field *string `type:"string" enum:"ParameterExceptionField"` 18026 18027 Message_ *string `locationName:"message" type:"string"` 18028 18029 // The invalid parameter that resulted in the exception. 18030 Parameter *string `min:"1" type:"string"` 18031 18032 // Additional information about the exception. 18033 Reason *string `type:"string"` 18034 } 18035 18036 // String returns the string representation. 18037 // 18038 // API parameter values that are decorated as "sensitive" in the API will not 18039 // be included in the string output. The member name will be present, but the 18040 // value will be replaced with "sensitive". 18041 func (s WAFInvalidParameterException) String() string { 18042 return awsutil.Prettify(s) 18043 } 18044 18045 // GoString returns the string representation. 18046 // 18047 // API parameter values that are decorated as "sensitive" in the API will not 18048 // be included in the string output. The member name will be present, but the 18049 // value will be replaced with "sensitive". 18050 func (s WAFInvalidParameterException) GoString() string { 18051 return s.String() 18052 } 18053 18054 func newErrorWAFInvalidParameterException(v protocol.ResponseMetadata) error { 18055 return &WAFInvalidParameterException{ 18056 RespMetadata: v, 18057 } 18058 } 18059 18060 // Code returns the exception type name. 18061 func (s *WAFInvalidParameterException) Code() string { 18062 return "WAFInvalidParameterException" 18063 } 18064 18065 // Message returns the exception's message. 18066 func (s *WAFInvalidParameterException) Message() string { 18067 if s.Message_ != nil { 18068 return *s.Message_ 18069 } 18070 return "" 18071 } 18072 18073 // OrigErr always returns nil, satisfies awserr.Error interface. 18074 func (s *WAFInvalidParameterException) OrigErr() error { 18075 return nil 18076 } 18077 18078 func (s *WAFInvalidParameterException) Error() string { 18079 return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String()) 18080 } 18081 18082 // Status code returns the HTTP status code for the request's response error. 18083 func (s *WAFInvalidParameterException) StatusCode() int { 18084 return s.RespMetadata.StatusCode 18085 } 18086 18087 // RequestID returns the service's response RequestID for request. 18088 func (s *WAFInvalidParameterException) RequestID() string { 18089 return s.RespMetadata.RequestID 18090 } 18091 18092 // The operation failed because the specified policy isn't in the proper format. 18093 // 18094 // The policy specifications must conform to the following: 18095 // 18096 // * The policy must be composed using IAM Policy version 2012-10-17 or version 18097 // 2015-01-01. 18098 // 18099 // * The policy must include specifications for Effect, Action, and Principal. 18100 // 18101 // * Effect must specify Allow. 18102 // 18103 // * Action must specify wafv2:CreateWebACL, wafv2:UpdateWebACL, and wafv2:PutFirewallManagerRuleGroups. 18104 // WAF rejects any extra actions or wildcard actions in the policy. 18105 // 18106 // * The policy must not include a Resource parameter. 18107 // 18108 // For more information, see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html). 18109 type WAFInvalidPermissionPolicyException struct { 18110 _ struct{} `type:"structure"` 18111 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18112 18113 Message_ *string `locationName:"Message" type:"string"` 18114 } 18115 18116 // String returns the string representation. 18117 // 18118 // API parameter values that are decorated as "sensitive" in the API will not 18119 // be included in the string output. The member name will be present, but the 18120 // value will be replaced with "sensitive". 18121 func (s WAFInvalidPermissionPolicyException) String() string { 18122 return awsutil.Prettify(s) 18123 } 18124 18125 // GoString returns the string representation. 18126 // 18127 // API parameter values that are decorated as "sensitive" in the API will not 18128 // be included in the string output. The member name will be present, but the 18129 // value will be replaced with "sensitive". 18130 func (s WAFInvalidPermissionPolicyException) GoString() string { 18131 return s.String() 18132 } 18133 18134 func newErrorWAFInvalidPermissionPolicyException(v protocol.ResponseMetadata) error { 18135 return &WAFInvalidPermissionPolicyException{ 18136 RespMetadata: v, 18137 } 18138 } 18139 18140 // Code returns the exception type name. 18141 func (s *WAFInvalidPermissionPolicyException) Code() string { 18142 return "WAFInvalidPermissionPolicyException" 18143 } 18144 18145 // Message returns the exception's message. 18146 func (s *WAFInvalidPermissionPolicyException) Message() string { 18147 if s.Message_ != nil { 18148 return *s.Message_ 18149 } 18150 return "" 18151 } 18152 18153 // OrigErr always returns nil, satisfies awserr.Error interface. 18154 func (s *WAFInvalidPermissionPolicyException) OrigErr() error { 18155 return nil 18156 } 18157 18158 func (s *WAFInvalidPermissionPolicyException) Error() string { 18159 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18160 } 18161 18162 // Status code returns the HTTP status code for the request's response error. 18163 func (s *WAFInvalidPermissionPolicyException) StatusCode() int { 18164 return s.RespMetadata.StatusCode 18165 } 18166 18167 // RequestID returns the service's response RequestID for request. 18168 func (s *WAFInvalidPermissionPolicyException) RequestID() string { 18169 return s.RespMetadata.RequestID 18170 } 18171 18172 // WAF couldn’t perform the operation because the resource that you requested 18173 // isn’t valid. Check the resource, and try again. 18174 type WAFInvalidResourceException struct { 18175 _ struct{} `type:"structure"` 18176 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18177 18178 Message_ *string `locationName:"Message" type:"string"` 18179 } 18180 18181 // String returns the string representation. 18182 // 18183 // API parameter values that are decorated as "sensitive" in the API will not 18184 // be included in the string output. The member name will be present, but the 18185 // value will be replaced with "sensitive". 18186 func (s WAFInvalidResourceException) String() string { 18187 return awsutil.Prettify(s) 18188 } 18189 18190 // GoString returns the string representation. 18191 // 18192 // API parameter values that are decorated as "sensitive" in the API will not 18193 // be included in the string output. The member name will be present, but the 18194 // value will be replaced with "sensitive". 18195 func (s WAFInvalidResourceException) GoString() string { 18196 return s.String() 18197 } 18198 18199 func newErrorWAFInvalidResourceException(v protocol.ResponseMetadata) error { 18200 return &WAFInvalidResourceException{ 18201 RespMetadata: v, 18202 } 18203 } 18204 18205 // Code returns the exception type name. 18206 func (s *WAFInvalidResourceException) Code() string { 18207 return "WAFInvalidResourceException" 18208 } 18209 18210 // Message returns the exception's message. 18211 func (s *WAFInvalidResourceException) Message() string { 18212 if s.Message_ != nil { 18213 return *s.Message_ 18214 } 18215 return "" 18216 } 18217 18218 // OrigErr always returns nil, satisfies awserr.Error interface. 18219 func (s *WAFInvalidResourceException) OrigErr() error { 18220 return nil 18221 } 18222 18223 func (s *WAFInvalidResourceException) Error() string { 18224 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18225 } 18226 18227 // Status code returns the HTTP status code for the request's response error. 18228 func (s *WAFInvalidResourceException) StatusCode() int { 18229 return s.RespMetadata.StatusCode 18230 } 18231 18232 // RequestID returns the service's response RequestID for request. 18233 func (s *WAFInvalidResourceException) RequestID() string { 18234 return s.RespMetadata.RequestID 18235 } 18236 18237 // WAF couldn’t perform the operation because you exceeded your resource limit. 18238 // For example, the maximum number of WebACL objects that you can create for 18239 // an Amazon Web Services account. For more information, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 18240 // in the WAF Developer Guide. 18241 type WAFLimitsExceededException struct { 18242 _ struct{} `type:"structure"` 18243 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18244 18245 Message_ *string `locationName:"Message" type:"string"` 18246 } 18247 18248 // String returns the string representation. 18249 // 18250 // API parameter values that are decorated as "sensitive" in the API will not 18251 // be included in the string output. The member name will be present, but the 18252 // value will be replaced with "sensitive". 18253 func (s WAFLimitsExceededException) String() string { 18254 return awsutil.Prettify(s) 18255 } 18256 18257 // GoString returns the string representation. 18258 // 18259 // API parameter values that are decorated as "sensitive" in the API will not 18260 // be included in the string output. The member name will be present, but the 18261 // value will be replaced with "sensitive". 18262 func (s WAFLimitsExceededException) GoString() string { 18263 return s.String() 18264 } 18265 18266 func newErrorWAFLimitsExceededException(v protocol.ResponseMetadata) error { 18267 return &WAFLimitsExceededException{ 18268 RespMetadata: v, 18269 } 18270 } 18271 18272 // Code returns the exception type name. 18273 func (s *WAFLimitsExceededException) Code() string { 18274 return "WAFLimitsExceededException" 18275 } 18276 18277 // Message returns the exception's message. 18278 func (s *WAFLimitsExceededException) Message() string { 18279 if s.Message_ != nil { 18280 return *s.Message_ 18281 } 18282 return "" 18283 } 18284 18285 // OrigErr always returns nil, satisfies awserr.Error interface. 18286 func (s *WAFLimitsExceededException) OrigErr() error { 18287 return nil 18288 } 18289 18290 func (s *WAFLimitsExceededException) Error() string { 18291 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18292 } 18293 18294 // Status code returns the HTTP status code for the request's response error. 18295 func (s *WAFLimitsExceededException) StatusCode() int { 18296 return s.RespMetadata.StatusCode 18297 } 18298 18299 // RequestID returns the service's response RequestID for request. 18300 func (s *WAFLimitsExceededException) RequestID() string { 18301 return s.RespMetadata.RequestID 18302 } 18303 18304 // WAF couldn’t perform the operation because your resource doesn’t exist. 18305 type WAFNonexistentItemException struct { 18306 _ struct{} `type:"structure"` 18307 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18308 18309 Message_ *string `locationName:"Message" type:"string"` 18310 } 18311 18312 // String returns the string representation. 18313 // 18314 // API parameter values that are decorated as "sensitive" in the API will not 18315 // be included in the string output. The member name will be present, but the 18316 // value will be replaced with "sensitive". 18317 func (s WAFNonexistentItemException) String() string { 18318 return awsutil.Prettify(s) 18319 } 18320 18321 // GoString returns the string representation. 18322 // 18323 // API parameter values that are decorated as "sensitive" in the API will not 18324 // be included in the string output. The member name will be present, but the 18325 // value will be replaced with "sensitive". 18326 func (s WAFNonexistentItemException) GoString() string { 18327 return s.String() 18328 } 18329 18330 func newErrorWAFNonexistentItemException(v protocol.ResponseMetadata) error { 18331 return &WAFNonexistentItemException{ 18332 RespMetadata: v, 18333 } 18334 } 18335 18336 // Code returns the exception type name. 18337 func (s *WAFNonexistentItemException) Code() string { 18338 return "WAFNonexistentItemException" 18339 } 18340 18341 // Message returns the exception's message. 18342 func (s *WAFNonexistentItemException) Message() string { 18343 if s.Message_ != nil { 18344 return *s.Message_ 18345 } 18346 return "" 18347 } 18348 18349 // OrigErr always returns nil, satisfies awserr.Error interface. 18350 func (s *WAFNonexistentItemException) OrigErr() error { 18351 return nil 18352 } 18353 18354 func (s *WAFNonexistentItemException) Error() string { 18355 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18356 } 18357 18358 // Status code returns the HTTP status code for the request's response error. 18359 func (s *WAFNonexistentItemException) StatusCode() int { 18360 return s.RespMetadata.StatusCode 18361 } 18362 18363 // RequestID returns the service's response RequestID for request. 18364 func (s *WAFNonexistentItemException) RequestID() string { 18365 return s.RespMetadata.RequestID 18366 } 18367 18368 // WAF couldn’t save your changes because you tried to update or delete a 18369 // resource that has changed since you last retrieved it. Get the resource again, 18370 // make any changes you need to make to the new copy, and retry your operation. 18371 type WAFOptimisticLockException struct { 18372 _ struct{} `type:"structure"` 18373 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18374 18375 Message_ *string `locationName:"Message" type:"string"` 18376 } 18377 18378 // String returns the string representation. 18379 // 18380 // API parameter values that are decorated as "sensitive" in the API will not 18381 // be included in the string output. The member name will be present, but the 18382 // value will be replaced with "sensitive". 18383 func (s WAFOptimisticLockException) String() string { 18384 return awsutil.Prettify(s) 18385 } 18386 18387 // GoString returns the string representation. 18388 // 18389 // API parameter values that are decorated as "sensitive" in the API will not 18390 // be included in the string output. The member name will be present, but the 18391 // value will be replaced with "sensitive". 18392 func (s WAFOptimisticLockException) GoString() string { 18393 return s.String() 18394 } 18395 18396 func newErrorWAFOptimisticLockException(v protocol.ResponseMetadata) error { 18397 return &WAFOptimisticLockException{ 18398 RespMetadata: v, 18399 } 18400 } 18401 18402 // Code returns the exception type name. 18403 func (s *WAFOptimisticLockException) Code() string { 18404 return "WAFOptimisticLockException" 18405 } 18406 18407 // Message returns the exception's message. 18408 func (s *WAFOptimisticLockException) Message() string { 18409 if s.Message_ != nil { 18410 return *s.Message_ 18411 } 18412 return "" 18413 } 18414 18415 // OrigErr always returns nil, satisfies awserr.Error interface. 18416 func (s *WAFOptimisticLockException) OrigErr() error { 18417 return nil 18418 } 18419 18420 func (s *WAFOptimisticLockException) Error() string { 18421 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18422 } 18423 18424 // Status code returns the HTTP status code for the request's response error. 18425 func (s *WAFOptimisticLockException) StatusCode() int { 18426 return s.RespMetadata.StatusCode 18427 } 18428 18429 // RequestID returns the service's response RequestID for request. 18430 func (s *WAFOptimisticLockException) RequestID() string { 18431 return s.RespMetadata.RequestID 18432 } 18433 18434 // WAF is not able to access the service linked role. This can be caused by 18435 // a previous PutLoggingConfiguration request, which can lock the service linked 18436 // role for about 20 seconds. Please try your request again. The service linked 18437 // role can also be locked by a previous DeleteServiceLinkedRole request, which 18438 // can lock the role for 15 minutes or more. If you recently made a call to 18439 // DeleteServiceLinkedRole, wait at least 15 minutes and try the request again. 18440 // If you receive this same exception again, you will have to wait additional 18441 // time until the role is unlocked. 18442 type WAFServiceLinkedRoleErrorException struct { 18443 _ struct{} `type:"structure"` 18444 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18445 18446 Message_ *string `locationName:"message" type:"string"` 18447 } 18448 18449 // String returns the string representation. 18450 // 18451 // API parameter values that are decorated as "sensitive" in the API will not 18452 // be included in the string output. The member name will be present, but the 18453 // value will be replaced with "sensitive". 18454 func (s WAFServiceLinkedRoleErrorException) String() string { 18455 return awsutil.Prettify(s) 18456 } 18457 18458 // GoString returns the string representation. 18459 // 18460 // API parameter values that are decorated as "sensitive" in the API will not 18461 // be included in the string output. The member name will be present, but the 18462 // value will be replaced with "sensitive". 18463 func (s WAFServiceLinkedRoleErrorException) GoString() string { 18464 return s.String() 18465 } 18466 18467 func newErrorWAFServiceLinkedRoleErrorException(v protocol.ResponseMetadata) error { 18468 return &WAFServiceLinkedRoleErrorException{ 18469 RespMetadata: v, 18470 } 18471 } 18472 18473 // Code returns the exception type name. 18474 func (s *WAFServiceLinkedRoleErrorException) Code() string { 18475 return "WAFServiceLinkedRoleErrorException" 18476 } 18477 18478 // Message returns the exception's message. 18479 func (s *WAFServiceLinkedRoleErrorException) Message() string { 18480 if s.Message_ != nil { 18481 return *s.Message_ 18482 } 18483 return "" 18484 } 18485 18486 // OrigErr always returns nil, satisfies awserr.Error interface. 18487 func (s *WAFServiceLinkedRoleErrorException) OrigErr() error { 18488 return nil 18489 } 18490 18491 func (s *WAFServiceLinkedRoleErrorException) Error() string { 18492 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18493 } 18494 18495 // Status code returns the HTTP status code for the request's response error. 18496 func (s *WAFServiceLinkedRoleErrorException) StatusCode() int { 18497 return s.RespMetadata.StatusCode 18498 } 18499 18500 // RequestID returns the service's response RequestID for request. 18501 func (s *WAFServiceLinkedRoleErrorException) RequestID() string { 18502 return s.RespMetadata.RequestID 18503 } 18504 18505 // You tried to use a managed rule group that's available by subscription, but 18506 // you aren't subscribed to it yet. 18507 type WAFSubscriptionNotFoundException struct { 18508 _ struct{} `type:"structure"` 18509 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18510 18511 Message_ *string `locationName:"Message" type:"string"` 18512 } 18513 18514 // String returns the string representation. 18515 // 18516 // API parameter values that are decorated as "sensitive" in the API will not 18517 // be included in the string output. The member name will be present, but the 18518 // value will be replaced with "sensitive". 18519 func (s WAFSubscriptionNotFoundException) String() string { 18520 return awsutil.Prettify(s) 18521 } 18522 18523 // GoString returns the string representation. 18524 // 18525 // API parameter values that are decorated as "sensitive" in the API will not 18526 // be included in the string output. The member name will be present, but the 18527 // value will be replaced with "sensitive". 18528 func (s WAFSubscriptionNotFoundException) GoString() string { 18529 return s.String() 18530 } 18531 18532 func newErrorWAFSubscriptionNotFoundException(v protocol.ResponseMetadata) error { 18533 return &WAFSubscriptionNotFoundException{ 18534 RespMetadata: v, 18535 } 18536 } 18537 18538 // Code returns the exception type name. 18539 func (s *WAFSubscriptionNotFoundException) Code() string { 18540 return "WAFSubscriptionNotFoundException" 18541 } 18542 18543 // Message returns the exception's message. 18544 func (s *WAFSubscriptionNotFoundException) Message() string { 18545 if s.Message_ != nil { 18546 return *s.Message_ 18547 } 18548 return "" 18549 } 18550 18551 // OrigErr always returns nil, satisfies awserr.Error interface. 18552 func (s *WAFSubscriptionNotFoundException) OrigErr() error { 18553 return nil 18554 } 18555 18556 func (s *WAFSubscriptionNotFoundException) Error() string { 18557 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18558 } 18559 18560 // Status code returns the HTTP status code for the request's response error. 18561 func (s *WAFSubscriptionNotFoundException) StatusCode() int { 18562 return s.RespMetadata.StatusCode 18563 } 18564 18565 // RequestID returns the service's response RequestID for request. 18566 func (s *WAFSubscriptionNotFoundException) RequestID() string { 18567 return s.RespMetadata.RequestID 18568 } 18569 18570 // An error occurred during the tagging operation. Retry your request. 18571 type WAFTagOperationException struct { 18572 _ struct{} `type:"structure"` 18573 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18574 18575 Message_ *string `locationName:"Message" type:"string"` 18576 } 18577 18578 // String returns the string representation. 18579 // 18580 // API parameter values that are decorated as "sensitive" in the API will not 18581 // be included in the string output. The member name will be present, but the 18582 // value will be replaced with "sensitive". 18583 func (s WAFTagOperationException) String() string { 18584 return awsutil.Prettify(s) 18585 } 18586 18587 // GoString returns the string representation. 18588 // 18589 // API parameter values that are decorated as "sensitive" in the API will not 18590 // be included in the string output. The member name will be present, but the 18591 // value will be replaced with "sensitive". 18592 func (s WAFTagOperationException) GoString() string { 18593 return s.String() 18594 } 18595 18596 func newErrorWAFTagOperationException(v protocol.ResponseMetadata) error { 18597 return &WAFTagOperationException{ 18598 RespMetadata: v, 18599 } 18600 } 18601 18602 // Code returns the exception type name. 18603 func (s *WAFTagOperationException) Code() string { 18604 return "WAFTagOperationException" 18605 } 18606 18607 // Message returns the exception's message. 18608 func (s *WAFTagOperationException) Message() string { 18609 if s.Message_ != nil { 18610 return *s.Message_ 18611 } 18612 return "" 18613 } 18614 18615 // OrigErr always returns nil, satisfies awserr.Error interface. 18616 func (s *WAFTagOperationException) OrigErr() error { 18617 return nil 18618 } 18619 18620 func (s *WAFTagOperationException) Error() string { 18621 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18622 } 18623 18624 // Status code returns the HTTP status code for the request's response error. 18625 func (s *WAFTagOperationException) StatusCode() int { 18626 return s.RespMetadata.StatusCode 18627 } 18628 18629 // RequestID returns the service's response RequestID for request. 18630 func (s *WAFTagOperationException) RequestID() string { 18631 return s.RespMetadata.RequestID 18632 } 18633 18634 // WAF couldn’t perform your tagging operation because of an internal error. 18635 // Retry your request. 18636 type WAFTagOperationInternalErrorException struct { 18637 _ struct{} `type:"structure"` 18638 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18639 18640 Message_ *string `locationName:"Message" type:"string"` 18641 } 18642 18643 // String returns the string representation. 18644 // 18645 // API parameter values that are decorated as "sensitive" in the API will not 18646 // be included in the string output. The member name will be present, but the 18647 // value will be replaced with "sensitive". 18648 func (s WAFTagOperationInternalErrorException) String() string { 18649 return awsutil.Prettify(s) 18650 } 18651 18652 // GoString returns the string representation. 18653 // 18654 // API parameter values that are decorated as "sensitive" in the API will not 18655 // be included in the string output. The member name will be present, but the 18656 // value will be replaced with "sensitive". 18657 func (s WAFTagOperationInternalErrorException) GoString() string { 18658 return s.String() 18659 } 18660 18661 func newErrorWAFTagOperationInternalErrorException(v protocol.ResponseMetadata) error { 18662 return &WAFTagOperationInternalErrorException{ 18663 RespMetadata: v, 18664 } 18665 } 18666 18667 // Code returns the exception type name. 18668 func (s *WAFTagOperationInternalErrorException) Code() string { 18669 return "WAFTagOperationInternalErrorException" 18670 } 18671 18672 // Message returns the exception's message. 18673 func (s *WAFTagOperationInternalErrorException) Message() string { 18674 if s.Message_ != nil { 18675 return *s.Message_ 18676 } 18677 return "" 18678 } 18679 18680 // OrigErr always returns nil, satisfies awserr.Error interface. 18681 func (s *WAFTagOperationInternalErrorException) OrigErr() error { 18682 return nil 18683 } 18684 18685 func (s *WAFTagOperationInternalErrorException) Error() string { 18686 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18687 } 18688 18689 // Status code returns the HTTP status code for the request's response error. 18690 func (s *WAFTagOperationInternalErrorException) StatusCode() int { 18691 return s.RespMetadata.StatusCode 18692 } 18693 18694 // RequestID returns the service's response RequestID for request. 18695 func (s *WAFTagOperationInternalErrorException) RequestID() string { 18696 return s.RespMetadata.RequestID 18697 } 18698 18699 // WAF couldn’t retrieve the resource that you requested. Retry your request. 18700 type WAFUnavailableEntityException struct { 18701 _ struct{} `type:"structure"` 18702 RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"` 18703 18704 Message_ *string `locationName:"Message" type:"string"` 18705 } 18706 18707 // String returns the string representation. 18708 // 18709 // API parameter values that are decorated as "sensitive" in the API will not 18710 // be included in the string output. The member name will be present, but the 18711 // value will be replaced with "sensitive". 18712 func (s WAFUnavailableEntityException) String() string { 18713 return awsutil.Prettify(s) 18714 } 18715 18716 // GoString returns the string representation. 18717 // 18718 // API parameter values that are decorated as "sensitive" in the API will not 18719 // be included in the string output. The member name will be present, but the 18720 // value will be replaced with "sensitive". 18721 func (s WAFUnavailableEntityException) GoString() string { 18722 return s.String() 18723 } 18724 18725 func newErrorWAFUnavailableEntityException(v protocol.ResponseMetadata) error { 18726 return &WAFUnavailableEntityException{ 18727 RespMetadata: v, 18728 } 18729 } 18730 18731 // Code returns the exception type name. 18732 func (s *WAFUnavailableEntityException) Code() string { 18733 return "WAFUnavailableEntityException" 18734 } 18735 18736 // Message returns the exception's message. 18737 func (s *WAFUnavailableEntityException) Message() string { 18738 if s.Message_ != nil { 18739 return *s.Message_ 18740 } 18741 return "" 18742 } 18743 18744 // OrigErr always returns nil, satisfies awserr.Error interface. 18745 func (s *WAFUnavailableEntityException) OrigErr() error { 18746 return nil 18747 } 18748 18749 func (s *WAFUnavailableEntityException) Error() string { 18750 return fmt.Sprintf("%s: %s", s.Code(), s.Message()) 18751 } 18752 18753 // Status code returns the HTTP status code for the request's response error. 18754 func (s *WAFUnavailableEntityException) StatusCode() int { 18755 return s.RespMetadata.StatusCode 18756 } 18757 18758 // RequestID returns the service's response RequestID for request. 18759 func (s *WAFUnavailableEntityException) RequestID() string { 18760 return s.RespMetadata.RequestID 18761 } 18762 18763 // A web ACL defines a collection of rules to use to inspect and control web 18764 // requests. Each rule has an action defined (allow, block, or count) for requests 18765 // that match the statement of the rule. In the web ACL, you assign a default 18766 // action to take (allow, block) for any request that does not match any of 18767 // the rules. The rules in a web ACL can be a combination of the types Rule, 18768 // RuleGroup, and managed rule group. You can associate a web ACL with one or 18769 // more Amazon Web Services resources to protect. The resources can be an Amazon 18770 // CloudFront distribution, an Amazon API Gateway REST API, an Application Load 18771 // Balancer, or an AppSync GraphQL API. 18772 type WebACL struct { 18773 _ struct{} `type:"structure"` 18774 18775 // The Amazon Resource Name (ARN) of the web ACL that you want to associate 18776 // with the resource. 18777 // 18778 // ARN is a required field 18779 ARN *string `min:"20" type:"string" required:"true"` 18780 18781 // The web ACL capacity units (WCUs) currently being used by this web ACL. 18782 // 18783 // WAF uses WCUs to calculate and control the operating resources that are used 18784 // to run your rules, rule groups, and web ACLs. WAF calculates capacity differently 18785 // for each rule type, to reflect the relative cost of each rule. Simple rules 18786 // that cost little to run use fewer WCUs than more complex rules that use more 18787 // processing power. Rule group capacity is fixed at creation, which helps users 18788 // plan their web ACL WCU usage when they use a rule group. The WCU limit for 18789 // web ACLs is 1,500. 18790 Capacity *int64 `type:"long"` 18791 18792 // A map of custom response keys and content bodies. When you create a rule 18793 // with a block action, you can send a custom response to the web request. You 18794 // define these for the web ACL, and then use them in the rules and default 18795 // actions that you define in the web ACL. 18796 // 18797 // For information about customizing web requests and responses, see Customizing 18798 // web requests and responses in WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-custom-request-response.html) 18799 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 18800 // 18801 // For information about the limits on count and size for custom request and 18802 // response settings, see WAF quotas (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 18803 // in the WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). 18804 CustomResponseBodies map[string]*CustomResponseBody `min:"1" type:"map"` 18805 18806 // The action to perform if none of the Rules contained in the WebACL match. 18807 // 18808 // DefaultAction is a required field 18809 DefaultAction *DefaultAction `type:"structure" required:"true"` 18810 18811 // A description of the web ACL that helps with identification. 18812 Description *string `min:"1" type:"string"` 18813 18814 // A unique identifier for the WebACL. This ID is returned in the responses 18815 // to create and list commands. You use this ID to do things like get, update, 18816 // and delete a WebACL. 18817 // 18818 // Id is a required field 18819 Id *string `min:"1" type:"string" required:"true"` 18820 18821 // The label namespace prefix for this web ACL. All labels added by rules in 18822 // this web ACL have this prefix. 18823 // 18824 // * The syntax for the label namespace prefix for a web ACL is the following: 18825 // awswaf:<account ID>:webacl:<web ACL name>: 18826 // 18827 // * When a rule with a label matches a web request, WAF adds the fully qualified 18828 // label to the request. A fully qualified label is made up of the label 18829 // namespace from the rule group or web ACL where the rule is defined and 18830 // the label from the rule, separated by a colon: <label namespace>:<label 18831 // from rule> 18832 LabelNamespace *string `min:"1" type:"string"` 18833 18834 // Indicates whether this web ACL is managed by Firewall Manager. If true, then 18835 // only Firewall Manager can delete the web ACL or any Firewall Manager rule 18836 // groups in the web ACL. 18837 ManagedByFirewallManager *bool `type:"boolean"` 18838 18839 // The name of the web ACL. You cannot change the name of a web ACL after you 18840 // create it. 18841 // 18842 // Name is a required field 18843 Name *string `min:"1" type:"string" required:"true"` 18844 18845 // The last set of rules for WAF to process in the web ACL. This is defined 18846 // in an Firewall Manager WAF policy and contains only rule group references. 18847 // You can't alter these. Any rules and rule groups that you define for the 18848 // web ACL are prioritized before these. 18849 // 18850 // In the Firewall Manager WAF policy, the Firewall Manager administrator can 18851 // define a set of rule groups to run first in the web ACL and a set of rule 18852 // groups to run last. Within each set, the administrator prioritizes the rule 18853 // groups, to determine their relative processing order. 18854 PostProcessFirewallManagerRuleGroups []*FirewallManagerRuleGroup `type:"list"` 18855 18856 // The first set of rules for WAF to process in the web ACL. This is defined 18857 // in an Firewall Manager WAF policy and contains only rule group references. 18858 // You can't alter these. Any rules and rule groups that you define for the 18859 // web ACL are prioritized after these. 18860 // 18861 // In the Firewall Manager WAF policy, the Firewall Manager administrator can 18862 // define a set of rule groups to run first in the web ACL and a set of rule 18863 // groups to run last. Within each set, the administrator prioritizes the rule 18864 // groups, to determine their relative processing order. 18865 PreProcessFirewallManagerRuleGroups []*FirewallManagerRuleGroup `type:"list"` 18866 18867 // The Rule statements used to identify the web requests that you want to allow, 18868 // block, or count. Each rule includes one top-level statement that WAF uses 18869 // to identify matching web requests, and parameters that govern how WAF handles 18870 // them. 18871 Rules []*Rule `type:"list"` 18872 18873 // Defines and enables Amazon CloudWatch metrics and web request sample collection. 18874 // 18875 // VisibilityConfig is a required field 18876 VisibilityConfig *VisibilityConfig `type:"structure" required:"true"` 18877 } 18878 18879 // String returns the string representation. 18880 // 18881 // API parameter values that are decorated as "sensitive" in the API will not 18882 // be included in the string output. The member name will be present, but the 18883 // value will be replaced with "sensitive". 18884 func (s WebACL) String() string { 18885 return awsutil.Prettify(s) 18886 } 18887 18888 // GoString returns the string representation. 18889 // 18890 // API parameter values that are decorated as "sensitive" in the API will not 18891 // be included in the string output. The member name will be present, but the 18892 // value will be replaced with "sensitive". 18893 func (s WebACL) GoString() string { 18894 return s.String() 18895 } 18896 18897 // SetARN sets the ARN field's value. 18898 func (s *WebACL) SetARN(v string) *WebACL { 18899 s.ARN = &v 18900 return s 18901 } 18902 18903 // SetCapacity sets the Capacity field's value. 18904 func (s *WebACL) SetCapacity(v int64) *WebACL { 18905 s.Capacity = &v 18906 return s 18907 } 18908 18909 // SetCustomResponseBodies sets the CustomResponseBodies field's value. 18910 func (s *WebACL) SetCustomResponseBodies(v map[string]*CustomResponseBody) *WebACL { 18911 s.CustomResponseBodies = v 18912 return s 18913 } 18914 18915 // SetDefaultAction sets the DefaultAction field's value. 18916 func (s *WebACL) SetDefaultAction(v *DefaultAction) *WebACL { 18917 s.DefaultAction = v 18918 return s 18919 } 18920 18921 // SetDescription sets the Description field's value. 18922 func (s *WebACL) SetDescription(v string) *WebACL { 18923 s.Description = &v 18924 return s 18925 } 18926 18927 // SetId sets the Id field's value. 18928 func (s *WebACL) SetId(v string) *WebACL { 18929 s.Id = &v 18930 return s 18931 } 18932 18933 // SetLabelNamespace sets the LabelNamespace field's value. 18934 func (s *WebACL) SetLabelNamespace(v string) *WebACL { 18935 s.LabelNamespace = &v 18936 return s 18937 } 18938 18939 // SetManagedByFirewallManager sets the ManagedByFirewallManager field's value. 18940 func (s *WebACL) SetManagedByFirewallManager(v bool) *WebACL { 18941 s.ManagedByFirewallManager = &v 18942 return s 18943 } 18944 18945 // SetName sets the Name field's value. 18946 func (s *WebACL) SetName(v string) *WebACL { 18947 s.Name = &v 18948 return s 18949 } 18950 18951 // SetPostProcessFirewallManagerRuleGroups sets the PostProcessFirewallManagerRuleGroups field's value. 18952 func (s *WebACL) SetPostProcessFirewallManagerRuleGroups(v []*FirewallManagerRuleGroup) *WebACL { 18953 s.PostProcessFirewallManagerRuleGroups = v 18954 return s 18955 } 18956 18957 // SetPreProcessFirewallManagerRuleGroups sets the PreProcessFirewallManagerRuleGroups field's value. 18958 func (s *WebACL) SetPreProcessFirewallManagerRuleGroups(v []*FirewallManagerRuleGroup) *WebACL { 18959 s.PreProcessFirewallManagerRuleGroups = v 18960 return s 18961 } 18962 18963 // SetRules sets the Rules field's value. 18964 func (s *WebACL) SetRules(v []*Rule) *WebACL { 18965 s.Rules = v 18966 return s 18967 } 18968 18969 // SetVisibilityConfig sets the VisibilityConfig field's value. 18970 func (s *WebACL) SetVisibilityConfig(v *VisibilityConfig) *WebACL { 18971 s.VisibilityConfig = v 18972 return s 18973 } 18974 18975 // High-level information about a WebACL, returned by operations like create 18976 // and list. This provides information like the ID, that you can use to retrieve 18977 // and manage a WebACL, and the ARN, that you provide to operations like AssociateWebACL. 18978 type WebACLSummary struct { 18979 _ struct{} `type:"structure"` 18980 18981 // The Amazon Resource Name (ARN) of the entity. 18982 ARN *string `min:"20" type:"string"` 18983 18984 // A description of the web ACL that helps with identification. 18985 Description *string `min:"1" type:"string"` 18986 18987 // The unique identifier for the web ACL. This ID is returned in the responses 18988 // to create and list commands. You provide it to operations like update and 18989 // delete. 18990 Id *string `min:"1" type:"string"` 18991 18992 // A token used for optimistic locking. WAF returns a token to your get and 18993 // list requests, to mark the state of the entity at the time of the request. 18994 // To make changes to the entity associated with the token, you provide the 18995 // token to operations like update and delete. WAF uses the token to ensure 18996 // that no changes have been made to the entity since you last retrieved it. 18997 // If a change has been made, the update fails with a WAFOptimisticLockException. 18998 // If this happens, perform another get, and use the new token returned by that 18999 // operation. 19000 LockToken *string `min:"1" type:"string"` 19001 19002 // The name of the web ACL. You cannot change the name of a web ACL after you 19003 // create it. 19004 Name *string `min:"1" type:"string"` 19005 } 19006 19007 // String returns the string representation. 19008 // 19009 // API parameter values that are decorated as "sensitive" in the API will not 19010 // be included in the string output. The member name will be present, but the 19011 // value will be replaced with "sensitive". 19012 func (s WebACLSummary) String() string { 19013 return awsutil.Prettify(s) 19014 } 19015 19016 // GoString returns the string representation. 19017 // 19018 // API parameter values that are decorated as "sensitive" in the API will not 19019 // be included in the string output. The member name will be present, but the 19020 // value will be replaced with "sensitive". 19021 func (s WebACLSummary) GoString() string { 19022 return s.String() 19023 } 19024 19025 // SetARN sets the ARN field's value. 19026 func (s *WebACLSummary) SetARN(v string) *WebACLSummary { 19027 s.ARN = &v 19028 return s 19029 } 19030 19031 // SetDescription sets the Description field's value. 19032 func (s *WebACLSummary) SetDescription(v string) *WebACLSummary { 19033 s.Description = &v 19034 return s 19035 } 19036 19037 // SetId sets the Id field's value. 19038 func (s *WebACLSummary) SetId(v string) *WebACLSummary { 19039 s.Id = &v 19040 return s 19041 } 19042 19043 // SetLockToken sets the LockToken field's value. 19044 func (s *WebACLSummary) SetLockToken(v string) *WebACLSummary { 19045 s.LockToken = &v 19046 return s 19047 } 19048 19049 // SetName sets the Name field's value. 19050 func (s *WebACLSummary) SetName(v string) *WebACLSummary { 19051 s.Name = &v 19052 return s 19053 } 19054 19055 // A rule statement that defines a cross-site scripting (XSS) match search for 19056 // WAF to apply to web requests. XSS attacks are those where the attacker uses 19057 // vulnerabilities in a benign website as a vehicle to inject malicious client-site 19058 // scripts into other legitimate web browsers. The XSS match statement provides 19059 // the location in requests that you want WAF to search and text transformations 19060 // to use on the search area before WAF searches for character sequences that 19061 // are likely to be malicious strings. 19062 type XssMatchStatement struct { 19063 _ struct{} `type:"structure"` 19064 19065 // The part of a web request that you want WAF to inspect. For more information, 19066 // see FieldToMatch. 19067 // 19068 // FieldToMatch is a required field 19069 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 19070 19071 // Text transformations eliminate some of the unusual formatting that attackers 19072 // use in web requests in an effort to bypass detection. If you specify one 19073 // or more transformations in a rule statement, WAF performs all transformations 19074 // on the content of the request component identified by FieldToMatch, starting 19075 // from the lowest priority setting, before inspecting the content for a match. 19076 // 19077 // TextTransformations is a required field 19078 TextTransformations []*TextTransformation `min:"1" type:"list" required:"true"` 19079 } 19080 19081 // String returns the string representation. 19082 // 19083 // API parameter values that are decorated as "sensitive" in the API will not 19084 // be included in the string output. The member name will be present, but the 19085 // value will be replaced with "sensitive". 19086 func (s XssMatchStatement) String() string { 19087 return awsutil.Prettify(s) 19088 } 19089 19090 // GoString returns the string representation. 19091 // 19092 // API parameter values that are decorated as "sensitive" in the API will not 19093 // be included in the string output. The member name will be present, but the 19094 // value will be replaced with "sensitive". 19095 func (s XssMatchStatement) GoString() string { 19096 return s.String() 19097 } 19098 19099 // Validate inspects the fields of the type to determine if they are valid. 19100 func (s *XssMatchStatement) Validate() error { 19101 invalidParams := request.ErrInvalidParams{Context: "XssMatchStatement"} 19102 if s.FieldToMatch == nil { 19103 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 19104 } 19105 if s.TextTransformations == nil { 19106 invalidParams.Add(request.NewErrParamRequired("TextTransformations")) 19107 } 19108 if s.TextTransformations != nil && len(s.TextTransformations) < 1 { 19109 invalidParams.Add(request.NewErrParamMinLen("TextTransformations", 1)) 19110 } 19111 if s.FieldToMatch != nil { 19112 if err := s.FieldToMatch.Validate(); err != nil { 19113 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 19114 } 19115 } 19116 if s.TextTransformations != nil { 19117 for i, v := range s.TextTransformations { 19118 if v == nil { 19119 continue 19120 } 19121 if err := v.Validate(); err != nil { 19122 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "TextTransformations", i), err.(request.ErrInvalidParams)) 19123 } 19124 } 19125 } 19126 19127 if invalidParams.Len() > 0 { 19128 return invalidParams 19129 } 19130 return nil 19131 } 19132 19133 // SetFieldToMatch sets the FieldToMatch field's value. 19134 func (s *XssMatchStatement) SetFieldToMatch(v *FieldToMatch) *XssMatchStatement { 19135 s.FieldToMatch = v 19136 return s 19137 } 19138 19139 // SetTextTransformations sets the TextTransformations field's value. 19140 func (s *XssMatchStatement) SetTextTransformations(v []*TextTransformation) *XssMatchStatement { 19141 s.TextTransformations = v 19142 return s 19143 } 19144 19145 const ( 19146 // ActionValueAllow is a ActionValue enum value 19147 ActionValueAllow = "ALLOW" 19148 19149 // ActionValueBlock is a ActionValue enum value 19150 ActionValueBlock = "BLOCK" 19151 19152 // ActionValueCount is a ActionValue enum value 19153 ActionValueCount = "COUNT" 19154 ) 19155 19156 // ActionValue_Values returns all elements of the ActionValue enum 19157 func ActionValue_Values() []string { 19158 return []string{ 19159 ActionValueAllow, 19160 ActionValueBlock, 19161 ActionValueCount, 19162 } 19163 } 19164 19165 const ( 19166 // BodyParsingFallbackBehaviorMatch is a BodyParsingFallbackBehavior enum value 19167 BodyParsingFallbackBehaviorMatch = "MATCH" 19168 19169 // BodyParsingFallbackBehaviorNoMatch is a BodyParsingFallbackBehavior enum value 19170 BodyParsingFallbackBehaviorNoMatch = "NO_MATCH" 19171 19172 // BodyParsingFallbackBehaviorEvaluateAsString is a BodyParsingFallbackBehavior enum value 19173 BodyParsingFallbackBehaviorEvaluateAsString = "EVALUATE_AS_STRING" 19174 ) 19175 19176 // BodyParsingFallbackBehavior_Values returns all elements of the BodyParsingFallbackBehavior enum 19177 func BodyParsingFallbackBehavior_Values() []string { 19178 return []string{ 19179 BodyParsingFallbackBehaviorMatch, 19180 BodyParsingFallbackBehaviorNoMatch, 19181 BodyParsingFallbackBehaviorEvaluateAsString, 19182 } 19183 } 19184 19185 const ( 19186 // ComparisonOperatorEq is a ComparisonOperator enum value 19187 ComparisonOperatorEq = "EQ" 19188 19189 // ComparisonOperatorNe is a ComparisonOperator enum value 19190 ComparisonOperatorNe = "NE" 19191 19192 // ComparisonOperatorLe is a ComparisonOperator enum value 19193 ComparisonOperatorLe = "LE" 19194 19195 // ComparisonOperatorLt is a ComparisonOperator enum value 19196 ComparisonOperatorLt = "LT" 19197 19198 // ComparisonOperatorGe is a ComparisonOperator enum value 19199 ComparisonOperatorGe = "GE" 19200 19201 // ComparisonOperatorGt is a ComparisonOperator enum value 19202 ComparisonOperatorGt = "GT" 19203 ) 19204 19205 // ComparisonOperator_Values returns all elements of the ComparisonOperator enum 19206 func ComparisonOperator_Values() []string { 19207 return []string{ 19208 ComparisonOperatorEq, 19209 ComparisonOperatorNe, 19210 ComparisonOperatorLe, 19211 ComparisonOperatorLt, 19212 ComparisonOperatorGe, 19213 ComparisonOperatorGt, 19214 } 19215 } 19216 19217 const ( 19218 // CountryCodeAf is a CountryCode enum value 19219 CountryCodeAf = "AF" 19220 19221 // CountryCodeAx is a CountryCode enum value 19222 CountryCodeAx = "AX" 19223 19224 // CountryCodeAl is a CountryCode enum value 19225 CountryCodeAl = "AL" 19226 19227 // CountryCodeDz is a CountryCode enum value 19228 CountryCodeDz = "DZ" 19229 19230 // CountryCodeAs is a CountryCode enum value 19231 CountryCodeAs = "AS" 19232 19233 // CountryCodeAd is a CountryCode enum value 19234 CountryCodeAd = "AD" 19235 19236 // CountryCodeAo is a CountryCode enum value 19237 CountryCodeAo = "AO" 19238 19239 // CountryCodeAi is a CountryCode enum value 19240 CountryCodeAi = "AI" 19241 19242 // CountryCodeAq is a CountryCode enum value 19243 CountryCodeAq = "AQ" 19244 19245 // CountryCodeAg is a CountryCode enum value 19246 CountryCodeAg = "AG" 19247 19248 // CountryCodeAr is a CountryCode enum value 19249 CountryCodeAr = "AR" 19250 19251 // CountryCodeAm is a CountryCode enum value 19252 CountryCodeAm = "AM" 19253 19254 // CountryCodeAw is a CountryCode enum value 19255 CountryCodeAw = "AW" 19256 19257 // CountryCodeAu is a CountryCode enum value 19258 CountryCodeAu = "AU" 19259 19260 // CountryCodeAt is a CountryCode enum value 19261 CountryCodeAt = "AT" 19262 19263 // CountryCodeAz is a CountryCode enum value 19264 CountryCodeAz = "AZ" 19265 19266 // CountryCodeBs is a CountryCode enum value 19267 CountryCodeBs = "BS" 19268 19269 // CountryCodeBh is a CountryCode enum value 19270 CountryCodeBh = "BH" 19271 19272 // CountryCodeBd is a CountryCode enum value 19273 CountryCodeBd = "BD" 19274 19275 // CountryCodeBb is a CountryCode enum value 19276 CountryCodeBb = "BB" 19277 19278 // CountryCodeBy is a CountryCode enum value 19279 CountryCodeBy = "BY" 19280 19281 // CountryCodeBe is a CountryCode enum value 19282 CountryCodeBe = "BE" 19283 19284 // CountryCodeBz is a CountryCode enum value 19285 CountryCodeBz = "BZ" 19286 19287 // CountryCodeBj is a CountryCode enum value 19288 CountryCodeBj = "BJ" 19289 19290 // CountryCodeBm is a CountryCode enum value 19291 CountryCodeBm = "BM" 19292 19293 // CountryCodeBt is a CountryCode enum value 19294 CountryCodeBt = "BT" 19295 19296 // CountryCodeBo is a CountryCode enum value 19297 CountryCodeBo = "BO" 19298 19299 // CountryCodeBq is a CountryCode enum value 19300 CountryCodeBq = "BQ" 19301 19302 // CountryCodeBa is a CountryCode enum value 19303 CountryCodeBa = "BA" 19304 19305 // CountryCodeBw is a CountryCode enum value 19306 CountryCodeBw = "BW" 19307 19308 // CountryCodeBv is a CountryCode enum value 19309 CountryCodeBv = "BV" 19310 19311 // CountryCodeBr is a CountryCode enum value 19312 CountryCodeBr = "BR" 19313 19314 // CountryCodeIo is a CountryCode enum value 19315 CountryCodeIo = "IO" 19316 19317 // CountryCodeBn is a CountryCode enum value 19318 CountryCodeBn = "BN" 19319 19320 // CountryCodeBg is a CountryCode enum value 19321 CountryCodeBg = "BG" 19322 19323 // CountryCodeBf is a CountryCode enum value 19324 CountryCodeBf = "BF" 19325 19326 // CountryCodeBi is a CountryCode enum value 19327 CountryCodeBi = "BI" 19328 19329 // CountryCodeKh is a CountryCode enum value 19330 CountryCodeKh = "KH" 19331 19332 // CountryCodeCm is a CountryCode enum value 19333 CountryCodeCm = "CM" 19334 19335 // CountryCodeCa is a CountryCode enum value 19336 CountryCodeCa = "CA" 19337 19338 // CountryCodeCv is a CountryCode enum value 19339 CountryCodeCv = "CV" 19340 19341 // CountryCodeKy is a CountryCode enum value 19342 CountryCodeKy = "KY" 19343 19344 // CountryCodeCf is a CountryCode enum value 19345 CountryCodeCf = "CF" 19346 19347 // CountryCodeTd is a CountryCode enum value 19348 CountryCodeTd = "TD" 19349 19350 // CountryCodeCl is a CountryCode enum value 19351 CountryCodeCl = "CL" 19352 19353 // CountryCodeCn is a CountryCode enum value 19354 CountryCodeCn = "CN" 19355 19356 // CountryCodeCx is a CountryCode enum value 19357 CountryCodeCx = "CX" 19358 19359 // CountryCodeCc is a CountryCode enum value 19360 CountryCodeCc = "CC" 19361 19362 // CountryCodeCo is a CountryCode enum value 19363 CountryCodeCo = "CO" 19364 19365 // CountryCodeKm is a CountryCode enum value 19366 CountryCodeKm = "KM" 19367 19368 // CountryCodeCg is a CountryCode enum value 19369 CountryCodeCg = "CG" 19370 19371 // CountryCodeCd is a CountryCode enum value 19372 CountryCodeCd = "CD" 19373 19374 // CountryCodeCk is a CountryCode enum value 19375 CountryCodeCk = "CK" 19376 19377 // CountryCodeCr is a CountryCode enum value 19378 CountryCodeCr = "CR" 19379 19380 // CountryCodeCi is a CountryCode enum value 19381 CountryCodeCi = "CI" 19382 19383 // CountryCodeHr is a CountryCode enum value 19384 CountryCodeHr = "HR" 19385 19386 // CountryCodeCu is a CountryCode enum value 19387 CountryCodeCu = "CU" 19388 19389 // CountryCodeCw is a CountryCode enum value 19390 CountryCodeCw = "CW" 19391 19392 // CountryCodeCy is a CountryCode enum value 19393 CountryCodeCy = "CY" 19394 19395 // CountryCodeCz is a CountryCode enum value 19396 CountryCodeCz = "CZ" 19397 19398 // CountryCodeDk is a CountryCode enum value 19399 CountryCodeDk = "DK" 19400 19401 // CountryCodeDj is a CountryCode enum value 19402 CountryCodeDj = "DJ" 19403 19404 // CountryCodeDm is a CountryCode enum value 19405 CountryCodeDm = "DM" 19406 19407 // CountryCodeDo is a CountryCode enum value 19408 CountryCodeDo = "DO" 19409 19410 // CountryCodeEc is a CountryCode enum value 19411 CountryCodeEc = "EC" 19412 19413 // CountryCodeEg is a CountryCode enum value 19414 CountryCodeEg = "EG" 19415 19416 // CountryCodeSv is a CountryCode enum value 19417 CountryCodeSv = "SV" 19418 19419 // CountryCodeGq is a CountryCode enum value 19420 CountryCodeGq = "GQ" 19421 19422 // CountryCodeEr is a CountryCode enum value 19423 CountryCodeEr = "ER" 19424 19425 // CountryCodeEe is a CountryCode enum value 19426 CountryCodeEe = "EE" 19427 19428 // CountryCodeEt is a CountryCode enum value 19429 CountryCodeEt = "ET" 19430 19431 // CountryCodeFk is a CountryCode enum value 19432 CountryCodeFk = "FK" 19433 19434 // CountryCodeFo is a CountryCode enum value 19435 CountryCodeFo = "FO" 19436 19437 // CountryCodeFj is a CountryCode enum value 19438 CountryCodeFj = "FJ" 19439 19440 // CountryCodeFi is a CountryCode enum value 19441 CountryCodeFi = "FI" 19442 19443 // CountryCodeFr is a CountryCode enum value 19444 CountryCodeFr = "FR" 19445 19446 // CountryCodeGf is a CountryCode enum value 19447 CountryCodeGf = "GF" 19448 19449 // CountryCodePf is a CountryCode enum value 19450 CountryCodePf = "PF" 19451 19452 // CountryCodeTf is a CountryCode enum value 19453 CountryCodeTf = "TF" 19454 19455 // CountryCodeGa is a CountryCode enum value 19456 CountryCodeGa = "GA" 19457 19458 // CountryCodeGm is a CountryCode enum value 19459 CountryCodeGm = "GM" 19460 19461 // CountryCodeGe is a CountryCode enum value 19462 CountryCodeGe = "GE" 19463 19464 // CountryCodeDe is a CountryCode enum value 19465 CountryCodeDe = "DE" 19466 19467 // CountryCodeGh is a CountryCode enum value 19468 CountryCodeGh = "GH" 19469 19470 // CountryCodeGi is a CountryCode enum value 19471 CountryCodeGi = "GI" 19472 19473 // CountryCodeGr is a CountryCode enum value 19474 CountryCodeGr = "GR" 19475 19476 // CountryCodeGl is a CountryCode enum value 19477 CountryCodeGl = "GL" 19478 19479 // CountryCodeGd is a CountryCode enum value 19480 CountryCodeGd = "GD" 19481 19482 // CountryCodeGp is a CountryCode enum value 19483 CountryCodeGp = "GP" 19484 19485 // CountryCodeGu is a CountryCode enum value 19486 CountryCodeGu = "GU" 19487 19488 // CountryCodeGt is a CountryCode enum value 19489 CountryCodeGt = "GT" 19490 19491 // CountryCodeGg is a CountryCode enum value 19492 CountryCodeGg = "GG" 19493 19494 // CountryCodeGn is a CountryCode enum value 19495 CountryCodeGn = "GN" 19496 19497 // CountryCodeGw is a CountryCode enum value 19498 CountryCodeGw = "GW" 19499 19500 // CountryCodeGy is a CountryCode enum value 19501 CountryCodeGy = "GY" 19502 19503 // CountryCodeHt is a CountryCode enum value 19504 CountryCodeHt = "HT" 19505 19506 // CountryCodeHm is a CountryCode enum value 19507 CountryCodeHm = "HM" 19508 19509 // CountryCodeVa is a CountryCode enum value 19510 CountryCodeVa = "VA" 19511 19512 // CountryCodeHn is a CountryCode enum value 19513 CountryCodeHn = "HN" 19514 19515 // CountryCodeHk is a CountryCode enum value 19516 CountryCodeHk = "HK" 19517 19518 // CountryCodeHu is a CountryCode enum value 19519 CountryCodeHu = "HU" 19520 19521 // CountryCodeIs is a CountryCode enum value 19522 CountryCodeIs = "IS" 19523 19524 // CountryCodeIn is a CountryCode enum value 19525 CountryCodeIn = "IN" 19526 19527 // CountryCodeId is a CountryCode enum value 19528 CountryCodeId = "ID" 19529 19530 // CountryCodeIr is a CountryCode enum value 19531 CountryCodeIr = "IR" 19532 19533 // CountryCodeIq is a CountryCode enum value 19534 CountryCodeIq = "IQ" 19535 19536 // CountryCodeIe is a CountryCode enum value 19537 CountryCodeIe = "IE" 19538 19539 // CountryCodeIm is a CountryCode enum value 19540 CountryCodeIm = "IM" 19541 19542 // CountryCodeIl is a CountryCode enum value 19543 CountryCodeIl = "IL" 19544 19545 // CountryCodeIt is a CountryCode enum value 19546 CountryCodeIt = "IT" 19547 19548 // CountryCodeJm is a CountryCode enum value 19549 CountryCodeJm = "JM" 19550 19551 // CountryCodeJp is a CountryCode enum value 19552 CountryCodeJp = "JP" 19553 19554 // CountryCodeJe is a CountryCode enum value 19555 CountryCodeJe = "JE" 19556 19557 // CountryCodeJo is a CountryCode enum value 19558 CountryCodeJo = "JO" 19559 19560 // CountryCodeKz is a CountryCode enum value 19561 CountryCodeKz = "KZ" 19562 19563 // CountryCodeKe is a CountryCode enum value 19564 CountryCodeKe = "KE" 19565 19566 // CountryCodeKi is a CountryCode enum value 19567 CountryCodeKi = "KI" 19568 19569 // CountryCodeKp is a CountryCode enum value 19570 CountryCodeKp = "KP" 19571 19572 // CountryCodeKr is a CountryCode enum value 19573 CountryCodeKr = "KR" 19574 19575 // CountryCodeKw is a CountryCode enum value 19576 CountryCodeKw = "KW" 19577 19578 // CountryCodeKg is a CountryCode enum value 19579 CountryCodeKg = "KG" 19580 19581 // CountryCodeLa is a CountryCode enum value 19582 CountryCodeLa = "LA" 19583 19584 // CountryCodeLv is a CountryCode enum value 19585 CountryCodeLv = "LV" 19586 19587 // CountryCodeLb is a CountryCode enum value 19588 CountryCodeLb = "LB" 19589 19590 // CountryCodeLs is a CountryCode enum value 19591 CountryCodeLs = "LS" 19592 19593 // CountryCodeLr is a CountryCode enum value 19594 CountryCodeLr = "LR" 19595 19596 // CountryCodeLy is a CountryCode enum value 19597 CountryCodeLy = "LY" 19598 19599 // CountryCodeLi is a CountryCode enum value 19600 CountryCodeLi = "LI" 19601 19602 // CountryCodeLt is a CountryCode enum value 19603 CountryCodeLt = "LT" 19604 19605 // CountryCodeLu is a CountryCode enum value 19606 CountryCodeLu = "LU" 19607 19608 // CountryCodeMo is a CountryCode enum value 19609 CountryCodeMo = "MO" 19610 19611 // CountryCodeMk is a CountryCode enum value 19612 CountryCodeMk = "MK" 19613 19614 // CountryCodeMg is a CountryCode enum value 19615 CountryCodeMg = "MG" 19616 19617 // CountryCodeMw is a CountryCode enum value 19618 CountryCodeMw = "MW" 19619 19620 // CountryCodeMy is a CountryCode enum value 19621 CountryCodeMy = "MY" 19622 19623 // CountryCodeMv is a CountryCode enum value 19624 CountryCodeMv = "MV" 19625 19626 // CountryCodeMl is a CountryCode enum value 19627 CountryCodeMl = "ML" 19628 19629 // CountryCodeMt is a CountryCode enum value 19630 CountryCodeMt = "MT" 19631 19632 // CountryCodeMh is a CountryCode enum value 19633 CountryCodeMh = "MH" 19634 19635 // CountryCodeMq is a CountryCode enum value 19636 CountryCodeMq = "MQ" 19637 19638 // CountryCodeMr is a CountryCode enum value 19639 CountryCodeMr = "MR" 19640 19641 // CountryCodeMu is a CountryCode enum value 19642 CountryCodeMu = "MU" 19643 19644 // CountryCodeYt is a CountryCode enum value 19645 CountryCodeYt = "YT" 19646 19647 // CountryCodeMx is a CountryCode enum value 19648 CountryCodeMx = "MX" 19649 19650 // CountryCodeFm is a CountryCode enum value 19651 CountryCodeFm = "FM" 19652 19653 // CountryCodeMd is a CountryCode enum value 19654 CountryCodeMd = "MD" 19655 19656 // CountryCodeMc is a CountryCode enum value 19657 CountryCodeMc = "MC" 19658 19659 // CountryCodeMn is a CountryCode enum value 19660 CountryCodeMn = "MN" 19661 19662 // CountryCodeMe is a CountryCode enum value 19663 CountryCodeMe = "ME" 19664 19665 // CountryCodeMs is a CountryCode enum value 19666 CountryCodeMs = "MS" 19667 19668 // CountryCodeMa is a CountryCode enum value 19669 CountryCodeMa = "MA" 19670 19671 // CountryCodeMz is a CountryCode enum value 19672 CountryCodeMz = "MZ" 19673 19674 // CountryCodeMm is a CountryCode enum value 19675 CountryCodeMm = "MM" 19676 19677 // CountryCodeNa is a CountryCode enum value 19678 CountryCodeNa = "NA" 19679 19680 // CountryCodeNr is a CountryCode enum value 19681 CountryCodeNr = "NR" 19682 19683 // CountryCodeNp is a CountryCode enum value 19684 CountryCodeNp = "NP" 19685 19686 // CountryCodeNl is a CountryCode enum value 19687 CountryCodeNl = "NL" 19688 19689 // CountryCodeNc is a CountryCode enum value 19690 CountryCodeNc = "NC" 19691 19692 // CountryCodeNz is a CountryCode enum value 19693 CountryCodeNz = "NZ" 19694 19695 // CountryCodeNi is a CountryCode enum value 19696 CountryCodeNi = "NI" 19697 19698 // CountryCodeNe is a CountryCode enum value 19699 CountryCodeNe = "NE" 19700 19701 // CountryCodeNg is a CountryCode enum value 19702 CountryCodeNg = "NG" 19703 19704 // CountryCodeNu is a CountryCode enum value 19705 CountryCodeNu = "NU" 19706 19707 // CountryCodeNf is a CountryCode enum value 19708 CountryCodeNf = "NF" 19709 19710 // CountryCodeMp is a CountryCode enum value 19711 CountryCodeMp = "MP" 19712 19713 // CountryCodeNo is a CountryCode enum value 19714 CountryCodeNo = "NO" 19715 19716 // CountryCodeOm is a CountryCode enum value 19717 CountryCodeOm = "OM" 19718 19719 // CountryCodePk is a CountryCode enum value 19720 CountryCodePk = "PK" 19721 19722 // CountryCodePw is a CountryCode enum value 19723 CountryCodePw = "PW" 19724 19725 // CountryCodePs is a CountryCode enum value 19726 CountryCodePs = "PS" 19727 19728 // CountryCodePa is a CountryCode enum value 19729 CountryCodePa = "PA" 19730 19731 // CountryCodePg is a CountryCode enum value 19732 CountryCodePg = "PG" 19733 19734 // CountryCodePy is a CountryCode enum value 19735 CountryCodePy = "PY" 19736 19737 // CountryCodePe is a CountryCode enum value 19738 CountryCodePe = "PE" 19739 19740 // CountryCodePh is a CountryCode enum value 19741 CountryCodePh = "PH" 19742 19743 // CountryCodePn is a CountryCode enum value 19744 CountryCodePn = "PN" 19745 19746 // CountryCodePl is a CountryCode enum value 19747 CountryCodePl = "PL" 19748 19749 // CountryCodePt is a CountryCode enum value 19750 CountryCodePt = "PT" 19751 19752 // CountryCodePr is a CountryCode enum value 19753 CountryCodePr = "PR" 19754 19755 // CountryCodeQa is a CountryCode enum value 19756 CountryCodeQa = "QA" 19757 19758 // CountryCodeRe is a CountryCode enum value 19759 CountryCodeRe = "RE" 19760 19761 // CountryCodeRo is a CountryCode enum value 19762 CountryCodeRo = "RO" 19763 19764 // CountryCodeRu is a CountryCode enum value 19765 CountryCodeRu = "RU" 19766 19767 // CountryCodeRw is a CountryCode enum value 19768 CountryCodeRw = "RW" 19769 19770 // CountryCodeBl is a CountryCode enum value 19771 CountryCodeBl = "BL" 19772 19773 // CountryCodeSh is a CountryCode enum value 19774 CountryCodeSh = "SH" 19775 19776 // CountryCodeKn is a CountryCode enum value 19777 CountryCodeKn = "KN" 19778 19779 // CountryCodeLc is a CountryCode enum value 19780 CountryCodeLc = "LC" 19781 19782 // CountryCodeMf is a CountryCode enum value 19783 CountryCodeMf = "MF" 19784 19785 // CountryCodePm is a CountryCode enum value 19786 CountryCodePm = "PM" 19787 19788 // CountryCodeVc is a CountryCode enum value 19789 CountryCodeVc = "VC" 19790 19791 // CountryCodeWs is a CountryCode enum value 19792 CountryCodeWs = "WS" 19793 19794 // CountryCodeSm is a CountryCode enum value 19795 CountryCodeSm = "SM" 19796 19797 // CountryCodeSt is a CountryCode enum value 19798 CountryCodeSt = "ST" 19799 19800 // CountryCodeSa is a CountryCode enum value 19801 CountryCodeSa = "SA" 19802 19803 // CountryCodeSn is a CountryCode enum value 19804 CountryCodeSn = "SN" 19805 19806 // CountryCodeRs is a CountryCode enum value 19807 CountryCodeRs = "RS" 19808 19809 // CountryCodeSc is a CountryCode enum value 19810 CountryCodeSc = "SC" 19811 19812 // CountryCodeSl is a CountryCode enum value 19813 CountryCodeSl = "SL" 19814 19815 // CountryCodeSg is a CountryCode enum value 19816 CountryCodeSg = "SG" 19817 19818 // CountryCodeSx is a CountryCode enum value 19819 CountryCodeSx = "SX" 19820 19821 // CountryCodeSk is a CountryCode enum value 19822 CountryCodeSk = "SK" 19823 19824 // CountryCodeSi is a CountryCode enum value 19825 CountryCodeSi = "SI" 19826 19827 // CountryCodeSb is a CountryCode enum value 19828 CountryCodeSb = "SB" 19829 19830 // CountryCodeSo is a CountryCode enum value 19831 CountryCodeSo = "SO" 19832 19833 // CountryCodeZa is a CountryCode enum value 19834 CountryCodeZa = "ZA" 19835 19836 // CountryCodeGs is a CountryCode enum value 19837 CountryCodeGs = "GS" 19838 19839 // CountryCodeSs is a CountryCode enum value 19840 CountryCodeSs = "SS" 19841 19842 // CountryCodeEs is a CountryCode enum value 19843 CountryCodeEs = "ES" 19844 19845 // CountryCodeLk is a CountryCode enum value 19846 CountryCodeLk = "LK" 19847 19848 // CountryCodeSd is a CountryCode enum value 19849 CountryCodeSd = "SD" 19850 19851 // CountryCodeSr is a CountryCode enum value 19852 CountryCodeSr = "SR" 19853 19854 // CountryCodeSj is a CountryCode enum value 19855 CountryCodeSj = "SJ" 19856 19857 // CountryCodeSz is a CountryCode enum value 19858 CountryCodeSz = "SZ" 19859 19860 // CountryCodeSe is a CountryCode enum value 19861 CountryCodeSe = "SE" 19862 19863 // CountryCodeCh is a CountryCode enum value 19864 CountryCodeCh = "CH" 19865 19866 // CountryCodeSy is a CountryCode enum value 19867 CountryCodeSy = "SY" 19868 19869 // CountryCodeTw is a CountryCode enum value 19870 CountryCodeTw = "TW" 19871 19872 // CountryCodeTj is a CountryCode enum value 19873 CountryCodeTj = "TJ" 19874 19875 // CountryCodeTz is a CountryCode enum value 19876 CountryCodeTz = "TZ" 19877 19878 // CountryCodeTh is a CountryCode enum value 19879 CountryCodeTh = "TH" 19880 19881 // CountryCodeTl is a CountryCode enum value 19882 CountryCodeTl = "TL" 19883 19884 // CountryCodeTg is a CountryCode enum value 19885 CountryCodeTg = "TG" 19886 19887 // CountryCodeTk is a CountryCode enum value 19888 CountryCodeTk = "TK" 19889 19890 // CountryCodeTo is a CountryCode enum value 19891 CountryCodeTo = "TO" 19892 19893 // CountryCodeTt is a CountryCode enum value 19894 CountryCodeTt = "TT" 19895 19896 // CountryCodeTn is a CountryCode enum value 19897 CountryCodeTn = "TN" 19898 19899 // CountryCodeTr is a CountryCode enum value 19900 CountryCodeTr = "TR" 19901 19902 // CountryCodeTm is a CountryCode enum value 19903 CountryCodeTm = "TM" 19904 19905 // CountryCodeTc is a CountryCode enum value 19906 CountryCodeTc = "TC" 19907 19908 // CountryCodeTv is a CountryCode enum value 19909 CountryCodeTv = "TV" 19910 19911 // CountryCodeUg is a CountryCode enum value 19912 CountryCodeUg = "UG" 19913 19914 // CountryCodeUa is a CountryCode enum value 19915 CountryCodeUa = "UA" 19916 19917 // CountryCodeAe is a CountryCode enum value 19918 CountryCodeAe = "AE" 19919 19920 // CountryCodeGb is a CountryCode enum value 19921 CountryCodeGb = "GB" 19922 19923 // CountryCodeUs is a CountryCode enum value 19924 CountryCodeUs = "US" 19925 19926 // CountryCodeUm is a CountryCode enum value 19927 CountryCodeUm = "UM" 19928 19929 // CountryCodeUy is a CountryCode enum value 19930 CountryCodeUy = "UY" 19931 19932 // CountryCodeUz is a CountryCode enum value 19933 CountryCodeUz = "UZ" 19934 19935 // CountryCodeVu is a CountryCode enum value 19936 CountryCodeVu = "VU" 19937 19938 // CountryCodeVe is a CountryCode enum value 19939 CountryCodeVe = "VE" 19940 19941 // CountryCodeVn is a CountryCode enum value 19942 CountryCodeVn = "VN" 19943 19944 // CountryCodeVg is a CountryCode enum value 19945 CountryCodeVg = "VG" 19946 19947 // CountryCodeVi is a CountryCode enum value 19948 CountryCodeVi = "VI" 19949 19950 // CountryCodeWf is a CountryCode enum value 19951 CountryCodeWf = "WF" 19952 19953 // CountryCodeEh is a CountryCode enum value 19954 CountryCodeEh = "EH" 19955 19956 // CountryCodeYe is a CountryCode enum value 19957 CountryCodeYe = "YE" 19958 19959 // CountryCodeZm is a CountryCode enum value 19960 CountryCodeZm = "ZM" 19961 19962 // CountryCodeZw is a CountryCode enum value 19963 CountryCodeZw = "ZW" 19964 ) 19965 19966 // CountryCode_Values returns all elements of the CountryCode enum 19967 func CountryCode_Values() []string { 19968 return []string{ 19969 CountryCodeAf, 19970 CountryCodeAx, 19971 CountryCodeAl, 19972 CountryCodeDz, 19973 CountryCodeAs, 19974 CountryCodeAd, 19975 CountryCodeAo, 19976 CountryCodeAi, 19977 CountryCodeAq, 19978 CountryCodeAg, 19979 CountryCodeAr, 19980 CountryCodeAm, 19981 CountryCodeAw, 19982 CountryCodeAu, 19983 CountryCodeAt, 19984 CountryCodeAz, 19985 CountryCodeBs, 19986 CountryCodeBh, 19987 CountryCodeBd, 19988 CountryCodeBb, 19989 CountryCodeBy, 19990 CountryCodeBe, 19991 CountryCodeBz, 19992 CountryCodeBj, 19993 CountryCodeBm, 19994 CountryCodeBt, 19995 CountryCodeBo, 19996 CountryCodeBq, 19997 CountryCodeBa, 19998 CountryCodeBw, 19999 CountryCodeBv, 20000 CountryCodeBr, 20001 CountryCodeIo, 20002 CountryCodeBn, 20003 CountryCodeBg, 20004 CountryCodeBf, 20005 CountryCodeBi, 20006 CountryCodeKh, 20007 CountryCodeCm, 20008 CountryCodeCa, 20009 CountryCodeCv, 20010 CountryCodeKy, 20011 CountryCodeCf, 20012 CountryCodeTd, 20013 CountryCodeCl, 20014 CountryCodeCn, 20015 CountryCodeCx, 20016 CountryCodeCc, 20017 CountryCodeCo, 20018 CountryCodeKm, 20019 CountryCodeCg, 20020 CountryCodeCd, 20021 CountryCodeCk, 20022 CountryCodeCr, 20023 CountryCodeCi, 20024 CountryCodeHr, 20025 CountryCodeCu, 20026 CountryCodeCw, 20027 CountryCodeCy, 20028 CountryCodeCz, 20029 CountryCodeDk, 20030 CountryCodeDj, 20031 CountryCodeDm, 20032 CountryCodeDo, 20033 CountryCodeEc, 20034 CountryCodeEg, 20035 CountryCodeSv, 20036 CountryCodeGq, 20037 CountryCodeEr, 20038 CountryCodeEe, 20039 CountryCodeEt, 20040 CountryCodeFk, 20041 CountryCodeFo, 20042 CountryCodeFj, 20043 CountryCodeFi, 20044 CountryCodeFr, 20045 CountryCodeGf, 20046 CountryCodePf, 20047 CountryCodeTf, 20048 CountryCodeGa, 20049 CountryCodeGm, 20050 CountryCodeGe, 20051 CountryCodeDe, 20052 CountryCodeGh, 20053 CountryCodeGi, 20054 CountryCodeGr, 20055 CountryCodeGl, 20056 CountryCodeGd, 20057 CountryCodeGp, 20058 CountryCodeGu, 20059 CountryCodeGt, 20060 CountryCodeGg, 20061 CountryCodeGn, 20062 CountryCodeGw, 20063 CountryCodeGy, 20064 CountryCodeHt, 20065 CountryCodeHm, 20066 CountryCodeVa, 20067 CountryCodeHn, 20068 CountryCodeHk, 20069 CountryCodeHu, 20070 CountryCodeIs, 20071 CountryCodeIn, 20072 CountryCodeId, 20073 CountryCodeIr, 20074 CountryCodeIq, 20075 CountryCodeIe, 20076 CountryCodeIm, 20077 CountryCodeIl, 20078 CountryCodeIt, 20079 CountryCodeJm, 20080 CountryCodeJp, 20081 CountryCodeJe, 20082 CountryCodeJo, 20083 CountryCodeKz, 20084 CountryCodeKe, 20085 CountryCodeKi, 20086 CountryCodeKp, 20087 CountryCodeKr, 20088 CountryCodeKw, 20089 CountryCodeKg, 20090 CountryCodeLa, 20091 CountryCodeLv, 20092 CountryCodeLb, 20093 CountryCodeLs, 20094 CountryCodeLr, 20095 CountryCodeLy, 20096 CountryCodeLi, 20097 CountryCodeLt, 20098 CountryCodeLu, 20099 CountryCodeMo, 20100 CountryCodeMk, 20101 CountryCodeMg, 20102 CountryCodeMw, 20103 CountryCodeMy, 20104 CountryCodeMv, 20105 CountryCodeMl, 20106 CountryCodeMt, 20107 CountryCodeMh, 20108 CountryCodeMq, 20109 CountryCodeMr, 20110 CountryCodeMu, 20111 CountryCodeYt, 20112 CountryCodeMx, 20113 CountryCodeFm, 20114 CountryCodeMd, 20115 CountryCodeMc, 20116 CountryCodeMn, 20117 CountryCodeMe, 20118 CountryCodeMs, 20119 CountryCodeMa, 20120 CountryCodeMz, 20121 CountryCodeMm, 20122 CountryCodeNa, 20123 CountryCodeNr, 20124 CountryCodeNp, 20125 CountryCodeNl, 20126 CountryCodeNc, 20127 CountryCodeNz, 20128 CountryCodeNi, 20129 CountryCodeNe, 20130 CountryCodeNg, 20131 CountryCodeNu, 20132 CountryCodeNf, 20133 CountryCodeMp, 20134 CountryCodeNo, 20135 CountryCodeOm, 20136 CountryCodePk, 20137 CountryCodePw, 20138 CountryCodePs, 20139 CountryCodePa, 20140 CountryCodePg, 20141 CountryCodePy, 20142 CountryCodePe, 20143 CountryCodePh, 20144 CountryCodePn, 20145 CountryCodePl, 20146 CountryCodePt, 20147 CountryCodePr, 20148 CountryCodeQa, 20149 CountryCodeRe, 20150 CountryCodeRo, 20151 CountryCodeRu, 20152 CountryCodeRw, 20153 CountryCodeBl, 20154 CountryCodeSh, 20155 CountryCodeKn, 20156 CountryCodeLc, 20157 CountryCodeMf, 20158 CountryCodePm, 20159 CountryCodeVc, 20160 CountryCodeWs, 20161 CountryCodeSm, 20162 CountryCodeSt, 20163 CountryCodeSa, 20164 CountryCodeSn, 20165 CountryCodeRs, 20166 CountryCodeSc, 20167 CountryCodeSl, 20168 CountryCodeSg, 20169 CountryCodeSx, 20170 CountryCodeSk, 20171 CountryCodeSi, 20172 CountryCodeSb, 20173 CountryCodeSo, 20174 CountryCodeZa, 20175 CountryCodeGs, 20176 CountryCodeSs, 20177 CountryCodeEs, 20178 CountryCodeLk, 20179 CountryCodeSd, 20180 CountryCodeSr, 20181 CountryCodeSj, 20182 CountryCodeSz, 20183 CountryCodeSe, 20184 CountryCodeCh, 20185 CountryCodeSy, 20186 CountryCodeTw, 20187 CountryCodeTj, 20188 CountryCodeTz, 20189 CountryCodeTh, 20190 CountryCodeTl, 20191 CountryCodeTg, 20192 CountryCodeTk, 20193 CountryCodeTo, 20194 CountryCodeTt, 20195 CountryCodeTn, 20196 CountryCodeTr, 20197 CountryCodeTm, 20198 CountryCodeTc, 20199 CountryCodeTv, 20200 CountryCodeUg, 20201 CountryCodeUa, 20202 CountryCodeAe, 20203 CountryCodeGb, 20204 CountryCodeUs, 20205 CountryCodeUm, 20206 CountryCodeUy, 20207 CountryCodeUz, 20208 CountryCodeVu, 20209 CountryCodeVe, 20210 CountryCodeVn, 20211 CountryCodeVg, 20212 CountryCodeVi, 20213 CountryCodeWf, 20214 CountryCodeEh, 20215 CountryCodeYe, 20216 CountryCodeZm, 20217 CountryCodeZw, 20218 } 20219 } 20220 20221 const ( 20222 // FallbackBehaviorMatch is a FallbackBehavior enum value 20223 FallbackBehaviorMatch = "MATCH" 20224 20225 // FallbackBehaviorNoMatch is a FallbackBehavior enum value 20226 FallbackBehaviorNoMatch = "NO_MATCH" 20227 ) 20228 20229 // FallbackBehavior_Values returns all elements of the FallbackBehavior enum 20230 func FallbackBehavior_Values() []string { 20231 return []string{ 20232 FallbackBehaviorMatch, 20233 FallbackBehaviorNoMatch, 20234 } 20235 } 20236 20237 const ( 20238 // FilterBehaviorKeep is a FilterBehavior enum value 20239 FilterBehaviorKeep = "KEEP" 20240 20241 // FilterBehaviorDrop is a FilterBehavior enum value 20242 FilterBehaviorDrop = "DROP" 20243 ) 20244 20245 // FilterBehavior_Values returns all elements of the FilterBehavior enum 20246 func FilterBehavior_Values() []string { 20247 return []string{ 20248 FilterBehaviorKeep, 20249 FilterBehaviorDrop, 20250 } 20251 } 20252 20253 const ( 20254 // FilterRequirementMeetsAll is a FilterRequirement enum value 20255 FilterRequirementMeetsAll = "MEETS_ALL" 20256 20257 // FilterRequirementMeetsAny is a FilterRequirement enum value 20258 FilterRequirementMeetsAny = "MEETS_ANY" 20259 ) 20260 20261 // FilterRequirement_Values returns all elements of the FilterRequirement enum 20262 func FilterRequirement_Values() []string { 20263 return []string{ 20264 FilterRequirementMeetsAll, 20265 FilterRequirementMeetsAny, 20266 } 20267 } 20268 20269 const ( 20270 // ForwardedIPPositionFirst is a ForwardedIPPosition enum value 20271 ForwardedIPPositionFirst = "FIRST" 20272 20273 // ForwardedIPPositionLast is a ForwardedIPPosition enum value 20274 ForwardedIPPositionLast = "LAST" 20275 20276 // ForwardedIPPositionAny is a ForwardedIPPosition enum value 20277 ForwardedIPPositionAny = "ANY" 20278 ) 20279 20280 // ForwardedIPPosition_Values returns all elements of the ForwardedIPPosition enum 20281 func ForwardedIPPosition_Values() []string { 20282 return []string{ 20283 ForwardedIPPositionFirst, 20284 ForwardedIPPositionLast, 20285 ForwardedIPPositionAny, 20286 } 20287 } 20288 20289 const ( 20290 // IPAddressVersionIpv4 is a IPAddressVersion enum value 20291 IPAddressVersionIpv4 = "IPV4" 20292 20293 // IPAddressVersionIpv6 is a IPAddressVersion enum value 20294 IPAddressVersionIpv6 = "IPV6" 20295 ) 20296 20297 // IPAddressVersion_Values returns all elements of the IPAddressVersion enum 20298 func IPAddressVersion_Values() []string { 20299 return []string{ 20300 IPAddressVersionIpv4, 20301 IPAddressVersionIpv6, 20302 } 20303 } 20304 20305 const ( 20306 // JsonMatchScopeAll is a JsonMatchScope enum value 20307 JsonMatchScopeAll = "ALL" 20308 20309 // JsonMatchScopeKey is a JsonMatchScope enum value 20310 JsonMatchScopeKey = "KEY" 20311 20312 // JsonMatchScopeValue is a JsonMatchScope enum value 20313 JsonMatchScopeValue = "VALUE" 20314 ) 20315 20316 // JsonMatchScope_Values returns all elements of the JsonMatchScope enum 20317 func JsonMatchScope_Values() []string { 20318 return []string{ 20319 JsonMatchScopeAll, 20320 JsonMatchScopeKey, 20321 JsonMatchScopeValue, 20322 } 20323 } 20324 20325 const ( 20326 // LabelMatchScopeLabel is a LabelMatchScope enum value 20327 LabelMatchScopeLabel = "LABEL" 20328 20329 // LabelMatchScopeNamespace is a LabelMatchScope enum value 20330 LabelMatchScopeNamespace = "NAMESPACE" 20331 ) 20332 20333 // LabelMatchScope_Values returns all elements of the LabelMatchScope enum 20334 func LabelMatchScope_Values() []string { 20335 return []string{ 20336 LabelMatchScopeLabel, 20337 LabelMatchScopeNamespace, 20338 } 20339 } 20340 20341 const ( 20342 // ParameterExceptionFieldWebAcl is a ParameterExceptionField enum value 20343 ParameterExceptionFieldWebAcl = "WEB_ACL" 20344 20345 // ParameterExceptionFieldRuleGroup is a ParameterExceptionField enum value 20346 ParameterExceptionFieldRuleGroup = "RULE_GROUP" 20347 20348 // ParameterExceptionFieldRegexPatternSet is a ParameterExceptionField enum value 20349 ParameterExceptionFieldRegexPatternSet = "REGEX_PATTERN_SET" 20350 20351 // ParameterExceptionFieldIpSet is a ParameterExceptionField enum value 20352 ParameterExceptionFieldIpSet = "IP_SET" 20353 20354 // ParameterExceptionFieldManagedRuleSet is a ParameterExceptionField enum value 20355 ParameterExceptionFieldManagedRuleSet = "MANAGED_RULE_SET" 20356 20357 // ParameterExceptionFieldRule is a ParameterExceptionField enum value 20358 ParameterExceptionFieldRule = "RULE" 20359 20360 // ParameterExceptionFieldExcludedRule is a ParameterExceptionField enum value 20361 ParameterExceptionFieldExcludedRule = "EXCLUDED_RULE" 20362 20363 // ParameterExceptionFieldStatement is a ParameterExceptionField enum value 20364 ParameterExceptionFieldStatement = "STATEMENT" 20365 20366 // ParameterExceptionFieldByteMatchStatement is a ParameterExceptionField enum value 20367 ParameterExceptionFieldByteMatchStatement = "BYTE_MATCH_STATEMENT" 20368 20369 // ParameterExceptionFieldSqliMatchStatement is a ParameterExceptionField enum value 20370 ParameterExceptionFieldSqliMatchStatement = "SQLI_MATCH_STATEMENT" 20371 20372 // ParameterExceptionFieldXssMatchStatement is a ParameterExceptionField enum value 20373 ParameterExceptionFieldXssMatchStatement = "XSS_MATCH_STATEMENT" 20374 20375 // ParameterExceptionFieldSizeConstraintStatement is a ParameterExceptionField enum value 20376 ParameterExceptionFieldSizeConstraintStatement = "SIZE_CONSTRAINT_STATEMENT" 20377 20378 // ParameterExceptionFieldGeoMatchStatement is a ParameterExceptionField enum value 20379 ParameterExceptionFieldGeoMatchStatement = "GEO_MATCH_STATEMENT" 20380 20381 // ParameterExceptionFieldRateBasedStatement is a ParameterExceptionField enum value 20382 ParameterExceptionFieldRateBasedStatement = "RATE_BASED_STATEMENT" 20383 20384 // ParameterExceptionFieldRuleGroupReferenceStatement is a ParameterExceptionField enum value 20385 ParameterExceptionFieldRuleGroupReferenceStatement = "RULE_GROUP_REFERENCE_STATEMENT" 20386 20387 // ParameterExceptionFieldRegexPatternReferenceStatement is a ParameterExceptionField enum value 20388 ParameterExceptionFieldRegexPatternReferenceStatement = "REGEX_PATTERN_REFERENCE_STATEMENT" 20389 20390 // ParameterExceptionFieldIpSetReferenceStatement is a ParameterExceptionField enum value 20391 ParameterExceptionFieldIpSetReferenceStatement = "IP_SET_REFERENCE_STATEMENT" 20392 20393 // ParameterExceptionFieldManagedRuleSetStatement is a ParameterExceptionField enum value 20394 ParameterExceptionFieldManagedRuleSetStatement = "MANAGED_RULE_SET_STATEMENT" 20395 20396 // ParameterExceptionFieldLabelMatchStatement is a ParameterExceptionField enum value 20397 ParameterExceptionFieldLabelMatchStatement = "LABEL_MATCH_STATEMENT" 20398 20399 // ParameterExceptionFieldAndStatement is a ParameterExceptionField enum value 20400 ParameterExceptionFieldAndStatement = "AND_STATEMENT" 20401 20402 // ParameterExceptionFieldOrStatement is a ParameterExceptionField enum value 20403 ParameterExceptionFieldOrStatement = "OR_STATEMENT" 20404 20405 // ParameterExceptionFieldNotStatement is a ParameterExceptionField enum value 20406 ParameterExceptionFieldNotStatement = "NOT_STATEMENT" 20407 20408 // ParameterExceptionFieldIpAddress is a ParameterExceptionField enum value 20409 ParameterExceptionFieldIpAddress = "IP_ADDRESS" 20410 20411 // ParameterExceptionFieldIpAddressVersion is a ParameterExceptionField enum value 20412 ParameterExceptionFieldIpAddressVersion = "IP_ADDRESS_VERSION" 20413 20414 // ParameterExceptionFieldFieldToMatch is a ParameterExceptionField enum value 20415 ParameterExceptionFieldFieldToMatch = "FIELD_TO_MATCH" 20416 20417 // ParameterExceptionFieldTextTransformation is a ParameterExceptionField enum value 20418 ParameterExceptionFieldTextTransformation = "TEXT_TRANSFORMATION" 20419 20420 // ParameterExceptionFieldSingleQueryArgument is a ParameterExceptionField enum value 20421 ParameterExceptionFieldSingleQueryArgument = "SINGLE_QUERY_ARGUMENT" 20422 20423 // ParameterExceptionFieldSingleHeader is a ParameterExceptionField enum value 20424 ParameterExceptionFieldSingleHeader = "SINGLE_HEADER" 20425 20426 // ParameterExceptionFieldDefaultAction is a ParameterExceptionField enum value 20427 ParameterExceptionFieldDefaultAction = "DEFAULT_ACTION" 20428 20429 // ParameterExceptionFieldRuleAction is a ParameterExceptionField enum value 20430 ParameterExceptionFieldRuleAction = "RULE_ACTION" 20431 20432 // ParameterExceptionFieldEntityLimit is a ParameterExceptionField enum value 20433 ParameterExceptionFieldEntityLimit = "ENTITY_LIMIT" 20434 20435 // ParameterExceptionFieldOverrideAction is a ParameterExceptionField enum value 20436 ParameterExceptionFieldOverrideAction = "OVERRIDE_ACTION" 20437 20438 // ParameterExceptionFieldScopeValue is a ParameterExceptionField enum value 20439 ParameterExceptionFieldScopeValue = "SCOPE_VALUE" 20440 20441 // ParameterExceptionFieldResourceArn is a ParameterExceptionField enum value 20442 ParameterExceptionFieldResourceArn = "RESOURCE_ARN" 20443 20444 // ParameterExceptionFieldResourceType is a ParameterExceptionField enum value 20445 ParameterExceptionFieldResourceType = "RESOURCE_TYPE" 20446 20447 // ParameterExceptionFieldTags is a ParameterExceptionField enum value 20448 ParameterExceptionFieldTags = "TAGS" 20449 20450 // ParameterExceptionFieldTagKeys is a ParameterExceptionField enum value 20451 ParameterExceptionFieldTagKeys = "TAG_KEYS" 20452 20453 // ParameterExceptionFieldMetricName is a ParameterExceptionField enum value 20454 ParameterExceptionFieldMetricName = "METRIC_NAME" 20455 20456 // ParameterExceptionFieldFirewallManagerStatement is a ParameterExceptionField enum value 20457 ParameterExceptionFieldFirewallManagerStatement = "FIREWALL_MANAGER_STATEMENT" 20458 20459 // ParameterExceptionFieldFallbackBehavior is a ParameterExceptionField enum value 20460 ParameterExceptionFieldFallbackBehavior = "FALLBACK_BEHAVIOR" 20461 20462 // ParameterExceptionFieldPosition is a ParameterExceptionField enum value 20463 ParameterExceptionFieldPosition = "POSITION" 20464 20465 // ParameterExceptionFieldForwardedIpConfig is a ParameterExceptionField enum value 20466 ParameterExceptionFieldForwardedIpConfig = "FORWARDED_IP_CONFIG" 20467 20468 // ParameterExceptionFieldIpSetForwardedIpConfig is a ParameterExceptionField enum value 20469 ParameterExceptionFieldIpSetForwardedIpConfig = "IP_SET_FORWARDED_IP_CONFIG" 20470 20471 // ParameterExceptionFieldHeaderName is a ParameterExceptionField enum value 20472 ParameterExceptionFieldHeaderName = "HEADER_NAME" 20473 20474 // ParameterExceptionFieldCustomRequestHandling is a ParameterExceptionField enum value 20475 ParameterExceptionFieldCustomRequestHandling = "CUSTOM_REQUEST_HANDLING" 20476 20477 // ParameterExceptionFieldResponseContentType is a ParameterExceptionField enum value 20478 ParameterExceptionFieldResponseContentType = "RESPONSE_CONTENT_TYPE" 20479 20480 // ParameterExceptionFieldCustomResponse is a ParameterExceptionField enum value 20481 ParameterExceptionFieldCustomResponse = "CUSTOM_RESPONSE" 20482 20483 // ParameterExceptionFieldCustomResponseBody is a ParameterExceptionField enum value 20484 ParameterExceptionFieldCustomResponseBody = "CUSTOM_RESPONSE_BODY" 20485 20486 // ParameterExceptionFieldJsonMatchPattern is a ParameterExceptionField enum value 20487 ParameterExceptionFieldJsonMatchPattern = "JSON_MATCH_PATTERN" 20488 20489 // ParameterExceptionFieldJsonMatchScope is a ParameterExceptionField enum value 20490 ParameterExceptionFieldJsonMatchScope = "JSON_MATCH_SCOPE" 20491 20492 // ParameterExceptionFieldBodyParsingFallbackBehavior is a ParameterExceptionField enum value 20493 ParameterExceptionFieldBodyParsingFallbackBehavior = "BODY_PARSING_FALLBACK_BEHAVIOR" 20494 20495 // ParameterExceptionFieldLoggingFilter is a ParameterExceptionField enum value 20496 ParameterExceptionFieldLoggingFilter = "LOGGING_FILTER" 20497 20498 // ParameterExceptionFieldFilterCondition is a ParameterExceptionField enum value 20499 ParameterExceptionFieldFilterCondition = "FILTER_CONDITION" 20500 20501 // ParameterExceptionFieldExpireTimestamp is a ParameterExceptionField enum value 20502 ParameterExceptionFieldExpireTimestamp = "EXPIRE_TIMESTAMP" 20503 20504 // ParameterExceptionFieldChangePropagationStatus is a ParameterExceptionField enum value 20505 ParameterExceptionFieldChangePropagationStatus = "CHANGE_PROPAGATION_STATUS" 20506 20507 // ParameterExceptionFieldAssociableResource is a ParameterExceptionField enum value 20508 ParameterExceptionFieldAssociableResource = "ASSOCIABLE_RESOURCE" 20509 ) 20510 20511 // ParameterExceptionField_Values returns all elements of the ParameterExceptionField enum 20512 func ParameterExceptionField_Values() []string { 20513 return []string{ 20514 ParameterExceptionFieldWebAcl, 20515 ParameterExceptionFieldRuleGroup, 20516 ParameterExceptionFieldRegexPatternSet, 20517 ParameterExceptionFieldIpSet, 20518 ParameterExceptionFieldManagedRuleSet, 20519 ParameterExceptionFieldRule, 20520 ParameterExceptionFieldExcludedRule, 20521 ParameterExceptionFieldStatement, 20522 ParameterExceptionFieldByteMatchStatement, 20523 ParameterExceptionFieldSqliMatchStatement, 20524 ParameterExceptionFieldXssMatchStatement, 20525 ParameterExceptionFieldSizeConstraintStatement, 20526 ParameterExceptionFieldGeoMatchStatement, 20527 ParameterExceptionFieldRateBasedStatement, 20528 ParameterExceptionFieldRuleGroupReferenceStatement, 20529 ParameterExceptionFieldRegexPatternReferenceStatement, 20530 ParameterExceptionFieldIpSetReferenceStatement, 20531 ParameterExceptionFieldManagedRuleSetStatement, 20532 ParameterExceptionFieldLabelMatchStatement, 20533 ParameterExceptionFieldAndStatement, 20534 ParameterExceptionFieldOrStatement, 20535 ParameterExceptionFieldNotStatement, 20536 ParameterExceptionFieldIpAddress, 20537 ParameterExceptionFieldIpAddressVersion, 20538 ParameterExceptionFieldFieldToMatch, 20539 ParameterExceptionFieldTextTransformation, 20540 ParameterExceptionFieldSingleQueryArgument, 20541 ParameterExceptionFieldSingleHeader, 20542 ParameterExceptionFieldDefaultAction, 20543 ParameterExceptionFieldRuleAction, 20544 ParameterExceptionFieldEntityLimit, 20545 ParameterExceptionFieldOverrideAction, 20546 ParameterExceptionFieldScopeValue, 20547 ParameterExceptionFieldResourceArn, 20548 ParameterExceptionFieldResourceType, 20549 ParameterExceptionFieldTags, 20550 ParameterExceptionFieldTagKeys, 20551 ParameterExceptionFieldMetricName, 20552 ParameterExceptionFieldFirewallManagerStatement, 20553 ParameterExceptionFieldFallbackBehavior, 20554 ParameterExceptionFieldPosition, 20555 ParameterExceptionFieldForwardedIpConfig, 20556 ParameterExceptionFieldIpSetForwardedIpConfig, 20557 ParameterExceptionFieldHeaderName, 20558 ParameterExceptionFieldCustomRequestHandling, 20559 ParameterExceptionFieldResponseContentType, 20560 ParameterExceptionFieldCustomResponse, 20561 ParameterExceptionFieldCustomResponseBody, 20562 ParameterExceptionFieldJsonMatchPattern, 20563 ParameterExceptionFieldJsonMatchScope, 20564 ParameterExceptionFieldBodyParsingFallbackBehavior, 20565 ParameterExceptionFieldLoggingFilter, 20566 ParameterExceptionFieldFilterCondition, 20567 ParameterExceptionFieldExpireTimestamp, 20568 ParameterExceptionFieldChangePropagationStatus, 20569 ParameterExceptionFieldAssociableResource, 20570 } 20571 } 20572 20573 const ( 20574 // PositionalConstraintExactly is a PositionalConstraint enum value 20575 PositionalConstraintExactly = "EXACTLY" 20576 20577 // PositionalConstraintStartsWith is a PositionalConstraint enum value 20578 PositionalConstraintStartsWith = "STARTS_WITH" 20579 20580 // PositionalConstraintEndsWith is a PositionalConstraint enum value 20581 PositionalConstraintEndsWith = "ENDS_WITH" 20582 20583 // PositionalConstraintContains is a PositionalConstraint enum value 20584 PositionalConstraintContains = "CONTAINS" 20585 20586 // PositionalConstraintContainsWord is a PositionalConstraint enum value 20587 PositionalConstraintContainsWord = "CONTAINS_WORD" 20588 ) 20589 20590 // PositionalConstraint_Values returns all elements of the PositionalConstraint enum 20591 func PositionalConstraint_Values() []string { 20592 return []string{ 20593 PositionalConstraintExactly, 20594 PositionalConstraintStartsWith, 20595 PositionalConstraintEndsWith, 20596 PositionalConstraintContains, 20597 PositionalConstraintContainsWord, 20598 } 20599 } 20600 20601 const ( 20602 // RateBasedStatementAggregateKeyTypeIp is a RateBasedStatementAggregateKeyType enum value 20603 RateBasedStatementAggregateKeyTypeIp = "IP" 20604 20605 // RateBasedStatementAggregateKeyTypeForwardedIp is a RateBasedStatementAggregateKeyType enum value 20606 RateBasedStatementAggregateKeyTypeForwardedIp = "FORWARDED_IP" 20607 ) 20608 20609 // RateBasedStatementAggregateKeyType_Values returns all elements of the RateBasedStatementAggregateKeyType enum 20610 func RateBasedStatementAggregateKeyType_Values() []string { 20611 return []string{ 20612 RateBasedStatementAggregateKeyTypeIp, 20613 RateBasedStatementAggregateKeyTypeForwardedIp, 20614 } 20615 } 20616 20617 const ( 20618 // ResourceTypeApplicationLoadBalancer is a ResourceType enum value 20619 ResourceTypeApplicationLoadBalancer = "APPLICATION_LOAD_BALANCER" 20620 20621 // ResourceTypeApiGateway is a ResourceType enum value 20622 ResourceTypeApiGateway = "API_GATEWAY" 20623 20624 // ResourceTypeAppsync is a ResourceType enum value 20625 ResourceTypeAppsync = "APPSYNC" 20626 ) 20627 20628 // ResourceType_Values returns all elements of the ResourceType enum 20629 func ResourceType_Values() []string { 20630 return []string{ 20631 ResourceTypeApplicationLoadBalancer, 20632 ResourceTypeApiGateway, 20633 ResourceTypeAppsync, 20634 } 20635 } 20636 20637 const ( 20638 // ResponseContentTypeTextPlain is a ResponseContentType enum value 20639 ResponseContentTypeTextPlain = "TEXT_PLAIN" 20640 20641 // ResponseContentTypeTextHtml is a ResponseContentType enum value 20642 ResponseContentTypeTextHtml = "TEXT_HTML" 20643 20644 // ResponseContentTypeApplicationJson is a ResponseContentType enum value 20645 ResponseContentTypeApplicationJson = "APPLICATION_JSON" 20646 ) 20647 20648 // ResponseContentType_Values returns all elements of the ResponseContentType enum 20649 func ResponseContentType_Values() []string { 20650 return []string{ 20651 ResponseContentTypeTextPlain, 20652 ResponseContentTypeTextHtml, 20653 ResponseContentTypeApplicationJson, 20654 } 20655 } 20656 20657 const ( 20658 // ScopeCloudfront is a Scope enum value 20659 ScopeCloudfront = "CLOUDFRONT" 20660 20661 // ScopeRegional is a Scope enum value 20662 ScopeRegional = "REGIONAL" 20663 ) 20664 20665 // Scope_Values returns all elements of the Scope enum 20666 func Scope_Values() []string { 20667 return []string{ 20668 ScopeCloudfront, 20669 ScopeRegional, 20670 } 20671 } 20672 20673 const ( 20674 // TextTransformationTypeNone is a TextTransformationType enum value 20675 TextTransformationTypeNone = "NONE" 20676 20677 // TextTransformationTypeCompressWhiteSpace is a TextTransformationType enum value 20678 TextTransformationTypeCompressWhiteSpace = "COMPRESS_WHITE_SPACE" 20679 20680 // TextTransformationTypeHtmlEntityDecode is a TextTransformationType enum value 20681 TextTransformationTypeHtmlEntityDecode = "HTML_ENTITY_DECODE" 20682 20683 // TextTransformationTypeLowercase is a TextTransformationType enum value 20684 TextTransformationTypeLowercase = "LOWERCASE" 20685 20686 // TextTransformationTypeCmdLine is a TextTransformationType enum value 20687 TextTransformationTypeCmdLine = "CMD_LINE" 20688 20689 // TextTransformationTypeUrlDecode is a TextTransformationType enum value 20690 TextTransformationTypeUrlDecode = "URL_DECODE" 20691 20692 // TextTransformationTypeBase64Decode is a TextTransformationType enum value 20693 TextTransformationTypeBase64Decode = "BASE64_DECODE" 20694 20695 // TextTransformationTypeHexDecode is a TextTransformationType enum value 20696 TextTransformationTypeHexDecode = "HEX_DECODE" 20697 20698 // TextTransformationTypeMd5 is a TextTransformationType enum value 20699 TextTransformationTypeMd5 = "MD5" 20700 20701 // TextTransformationTypeReplaceComments is a TextTransformationType enum value 20702 TextTransformationTypeReplaceComments = "REPLACE_COMMENTS" 20703 20704 // TextTransformationTypeEscapeSeqDecode is a TextTransformationType enum value 20705 TextTransformationTypeEscapeSeqDecode = "ESCAPE_SEQ_DECODE" 20706 20707 // TextTransformationTypeSqlHexDecode is a TextTransformationType enum value 20708 TextTransformationTypeSqlHexDecode = "SQL_HEX_DECODE" 20709 20710 // TextTransformationTypeCssDecode is a TextTransformationType enum value 20711 TextTransformationTypeCssDecode = "CSS_DECODE" 20712 20713 // TextTransformationTypeJsDecode is a TextTransformationType enum value 20714 TextTransformationTypeJsDecode = "JS_DECODE" 20715 20716 // TextTransformationTypeNormalizePath is a TextTransformationType enum value 20717 TextTransformationTypeNormalizePath = "NORMALIZE_PATH" 20718 20719 // TextTransformationTypeNormalizePathWin is a TextTransformationType enum value 20720 TextTransformationTypeNormalizePathWin = "NORMALIZE_PATH_WIN" 20721 20722 // TextTransformationTypeRemoveNulls is a TextTransformationType enum value 20723 TextTransformationTypeRemoveNulls = "REMOVE_NULLS" 20724 20725 // TextTransformationTypeReplaceNulls is a TextTransformationType enum value 20726 TextTransformationTypeReplaceNulls = "REPLACE_NULLS" 20727 20728 // TextTransformationTypeBase64DecodeExt is a TextTransformationType enum value 20729 TextTransformationTypeBase64DecodeExt = "BASE64_DECODE_EXT" 20730 20731 // TextTransformationTypeUrlDecodeUni is a TextTransformationType enum value 20732 TextTransformationTypeUrlDecodeUni = "URL_DECODE_UNI" 20733 20734 // TextTransformationTypeUtf8ToUnicode is a TextTransformationType enum value 20735 TextTransformationTypeUtf8ToUnicode = "UTF8_TO_UNICODE" 20736 ) 20737 20738 // TextTransformationType_Values returns all elements of the TextTransformationType enum 20739 func TextTransformationType_Values() []string { 20740 return []string{ 20741 TextTransformationTypeNone, 20742 TextTransformationTypeCompressWhiteSpace, 20743 TextTransformationTypeHtmlEntityDecode, 20744 TextTransformationTypeLowercase, 20745 TextTransformationTypeCmdLine, 20746 TextTransformationTypeUrlDecode, 20747 TextTransformationTypeBase64Decode, 20748 TextTransformationTypeHexDecode, 20749 TextTransformationTypeMd5, 20750 TextTransformationTypeReplaceComments, 20751 TextTransformationTypeEscapeSeqDecode, 20752 TextTransformationTypeSqlHexDecode, 20753 TextTransformationTypeCssDecode, 20754 TextTransformationTypeJsDecode, 20755 TextTransformationTypeNormalizePath, 20756 TextTransformationTypeNormalizePathWin, 20757 TextTransformationTypeRemoveNulls, 20758 TextTransformationTypeReplaceNulls, 20759 TextTransformationTypeBase64DecodeExt, 20760 TextTransformationTypeUrlDecodeUni, 20761 TextTransformationTypeUtf8ToUnicode, 20762 } 20763 }