1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT. 2 3package waf 4 5import ( 6 "fmt" 7 "time" 8 9 "github.com/aws/aws-sdk-go/aws" 10 "github.com/aws/aws-sdk-go/aws/awsutil" 11 "github.com/aws/aws-sdk-go/aws/request" 12) 13 14const opCreateByteMatchSet = "CreateByteMatchSet" 15 16// CreateByteMatchSetRequest generates a "aws/request.Request" representing the 17// client's request for the CreateByteMatchSet operation. The "output" return 18// value will be populated with the request's response once the request complets 19// successfuly. 20// 21// Use "Send" method on the returned Request to send the API call to the service. 22// the "output" return value is not valid until after Send returns without error. 23// 24// See CreateByteMatchSet for more information on using the CreateByteMatchSet 25// API call, and error handling. 26// 27// This method is useful when you want to inject custom logic or configuration 28// into the SDK's request lifecycle. Such as custom headers, or retry logic. 29// 30// 31// // Example sending a request using the CreateByteMatchSetRequest method. 32// req, resp := client.CreateByteMatchSetRequest(params) 33// 34// err := req.Send() 35// if err == nil { // resp is now filled 36// fmt.Println(resp) 37// } 38// 39// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSet 40func (c *WAF) CreateByteMatchSetRequest(input *CreateByteMatchSetInput) (req *request.Request, output *CreateByteMatchSetOutput) { 41 op := &request.Operation{ 42 Name: opCreateByteMatchSet, 43 HTTPMethod: "POST", 44 HTTPPath: "/", 45 } 46 47 if input == nil { 48 input = &CreateByteMatchSetInput{} 49 } 50 51 output = &CreateByteMatchSetOutput{} 52 req = c.newRequest(op, input, output) 53 return 54} 55 56// CreateByteMatchSet API operation for AWS WAF. 57// 58// Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part 59// of a web request that you want AWS WAF to inspect, such as the values of 60// the User-Agent header or the query string. For example, you can create a 61// ByteMatchSet that matches any requests with User-Agent headers that contain 62// the string BadBot. You can then configure AWS WAF to reject those requests. 63// 64// To create and configure a ByteMatchSet, perform the following steps: 65// 66// Use GetChangeToken to get the change token that you provide in the ChangeToken 67// parameter of a CreateByteMatchSet request. 68// 69// Submit a CreateByteMatchSet request. 70// 71// Use GetChangeToken to get the change token that you provide in the ChangeToken 72// parameter of an UpdateByteMatchSet request. 73// 74// Submit an UpdateByteMatchSet request to specify the part of the request that 75// you want AWS WAF to inspect (for example, the header or the URI) and the 76// value that you want AWS WAF to watch for. 77// 78// For more information about how to use the AWS WAF API to allow or block HTTP 79// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 80// 81// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 82// with awserr.Error's Code and Message methods to get detailed information about 83// the error. 84// 85// See the AWS API reference guide for AWS WAF's 86// API operation CreateByteMatchSet for usage and error information. 87// 88// Returned Error Codes: 89// * ErrCodeDisallowedNameException "DisallowedNameException" 90// The name specified is invalid. 91// 92// * ErrCodeInternalErrorException "InternalErrorException" 93// The operation failed because of a system problem, even though the request 94// was valid. Retry your request. 95// 96// * ErrCodeInvalidAccountException "InvalidAccountException" 97// The operation failed because you tried to create, update, or delete an object 98// by using an invalid account identifier. 99// 100// * ErrCodeInvalidParameterException "InvalidParameterException" 101// The operation failed because AWS WAF didn't recognize a parameter in the 102// request. For example: 103// 104// * You specified an invalid parameter name. 105// 106// * You specified an invalid value. 107// 108// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 109// using an action other than INSERT or DELETE. 110// 111// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 112// BLOCK, or COUNT. 113// 114// * You tried to create a RateBasedRule with a RateKey value other than 115// IP. 116// 117// * You tried to update a WebACL with a WafActionType other than ALLOW, 118// BLOCK, or COUNT. 119// 120// * You tried to update a ByteMatchSet with a FieldToMatchType other than 121// HEADER, QUERY_STRING, or URI. 122// 123// * You tried to update a ByteMatchSet with a Field of HEADER but no value 124// for Data. 125// 126// * Your request references an ARN that is malformed, or corresponds to 127// a resource with which a web ACL cannot be associated. 128// 129// * ErrCodeStaleDataException "StaleDataException" 130// The operation failed because you tried to create, update, or delete an object 131// by using a change token that has already been used. 132// 133// * ErrCodeLimitsExceededException "LimitsExceededException" 134// The operation exceeds a resource limit, for example, the maximum number of 135// WebACL objects that you can create for an AWS account. For more information, 136// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 137// in the AWS WAF Developer Guide. 138// 139// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSet 140func (c *WAF) CreateByteMatchSet(input *CreateByteMatchSetInput) (*CreateByteMatchSetOutput, error) { 141 req, out := c.CreateByteMatchSetRequest(input) 142 return out, req.Send() 143} 144 145// CreateByteMatchSetWithContext is the same as CreateByteMatchSet with the addition of 146// the ability to pass a context and additional request options. 147// 148// See CreateByteMatchSet for details on how to use this API operation. 149// 150// The context must be non-nil and will be used for request cancellation. If 151// the context is nil a panic will occur. In the future the SDK may create 152// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 153// for more information on using Contexts. 154func (c *WAF) CreateByteMatchSetWithContext(ctx aws.Context, input *CreateByteMatchSetInput, opts ...request.Option) (*CreateByteMatchSetOutput, error) { 155 req, out := c.CreateByteMatchSetRequest(input) 156 req.SetContext(ctx) 157 req.ApplyOptions(opts...) 158 return out, req.Send() 159} 160 161const opCreateIPSet = "CreateIPSet" 162 163// CreateIPSetRequest generates a "aws/request.Request" representing the 164// client's request for the CreateIPSet operation. The "output" return 165// value will be populated with the request's response once the request complets 166// successfuly. 167// 168// Use "Send" method on the returned Request to send the API call to the service. 169// the "output" return value is not valid until after Send returns without error. 170// 171// See CreateIPSet for more information on using the CreateIPSet 172// API call, and error handling. 173// 174// This method is useful when you want to inject custom logic or configuration 175// into the SDK's request lifecycle. Such as custom headers, or retry logic. 176// 177// 178// // Example sending a request using the CreateIPSetRequest method. 179// req, resp := client.CreateIPSetRequest(params) 180// 181// err := req.Send() 182// if err == nil { // resp is now filled 183// fmt.Println(resp) 184// } 185// 186// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSet 187func (c *WAF) CreateIPSetRequest(input *CreateIPSetInput) (req *request.Request, output *CreateIPSetOutput) { 188 op := &request.Operation{ 189 Name: opCreateIPSet, 190 HTTPMethod: "POST", 191 HTTPPath: "/", 192 } 193 194 if input == nil { 195 input = &CreateIPSetInput{} 196 } 197 198 output = &CreateIPSetOutput{} 199 req = c.newRequest(op, input, output) 200 return 201} 202 203// CreateIPSet API operation for AWS WAF. 204// 205// Creates an IPSet, which you use to specify which web requests you want to 206// allow or block based on the IP addresses that the requests originate from. 207// For example, if you're receiving a lot of requests from one or more individual 208// IP addresses or one or more ranges of IP addresses and you want to block 209// the requests, you can create an IPSet that contains those IP addresses and 210// then configure AWS WAF to block the requests. 211// 212// To create and configure an IPSet, perform the following steps: 213// 214// Use GetChangeToken to get the change token that you provide in the ChangeToken 215// parameter of a CreateIPSet request. 216// 217// Submit a CreateIPSet request. 218// 219// Use GetChangeToken to get the change token that you provide in the ChangeToken 220// parameter of an UpdateIPSet request. 221// 222// Submit an UpdateIPSet request to specify the IP addresses that you want AWS 223// WAF to watch for. 224// 225// For more information about how to use the AWS WAF API to allow or block HTTP 226// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 227// 228// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 229// with awserr.Error's Code and Message methods to get detailed information about 230// the error. 231// 232// See the AWS API reference guide for AWS WAF's 233// API operation CreateIPSet for usage and error information. 234// 235// Returned Error Codes: 236// * ErrCodeStaleDataException "StaleDataException" 237// The operation failed because you tried to create, update, or delete an object 238// by using a change token that has already been used. 239// 240// * ErrCodeInternalErrorException "InternalErrorException" 241// The operation failed because of a system problem, even though the request 242// was valid. Retry your request. 243// 244// * ErrCodeInvalidAccountException "InvalidAccountException" 245// The operation failed because you tried to create, update, or delete an object 246// by using an invalid account identifier. 247// 248// * ErrCodeDisallowedNameException "DisallowedNameException" 249// The name specified is invalid. 250// 251// * ErrCodeInvalidParameterException "InvalidParameterException" 252// The operation failed because AWS WAF didn't recognize a parameter in the 253// request. For example: 254// 255// * You specified an invalid parameter name. 256// 257// * You specified an invalid value. 258// 259// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 260// using an action other than INSERT or DELETE. 261// 262// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 263// BLOCK, or COUNT. 264// 265// * You tried to create a RateBasedRule with a RateKey value other than 266// IP. 267// 268// * You tried to update a WebACL with a WafActionType other than ALLOW, 269// BLOCK, or COUNT. 270// 271// * You tried to update a ByteMatchSet with a FieldToMatchType other than 272// HEADER, QUERY_STRING, or URI. 273// 274// * You tried to update a ByteMatchSet with a Field of HEADER but no value 275// for Data. 276// 277// * Your request references an ARN that is malformed, or corresponds to 278// a resource with which a web ACL cannot be associated. 279// 280// * ErrCodeLimitsExceededException "LimitsExceededException" 281// The operation exceeds a resource limit, for example, the maximum number of 282// WebACL objects that you can create for an AWS account. For more information, 283// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 284// in the AWS WAF Developer Guide. 285// 286// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSet 287func (c *WAF) CreateIPSet(input *CreateIPSetInput) (*CreateIPSetOutput, error) { 288 req, out := c.CreateIPSetRequest(input) 289 return out, req.Send() 290} 291 292// CreateIPSetWithContext is the same as CreateIPSet with the addition of 293// the ability to pass a context and additional request options. 294// 295// See CreateIPSet for details on how to use this API operation. 296// 297// The context must be non-nil and will be used for request cancellation. If 298// the context is nil a panic will occur. In the future the SDK may create 299// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 300// for more information on using Contexts. 301func (c *WAF) CreateIPSetWithContext(ctx aws.Context, input *CreateIPSetInput, opts ...request.Option) (*CreateIPSetOutput, error) { 302 req, out := c.CreateIPSetRequest(input) 303 req.SetContext(ctx) 304 req.ApplyOptions(opts...) 305 return out, req.Send() 306} 307 308const opCreateRateBasedRule = "CreateRateBasedRule" 309 310// CreateRateBasedRuleRequest generates a "aws/request.Request" representing the 311// client's request for the CreateRateBasedRule operation. The "output" return 312// value will be populated with the request's response once the request complets 313// successfuly. 314// 315// Use "Send" method on the returned Request to send the API call to the service. 316// the "output" return value is not valid until after Send returns without error. 317// 318// See CreateRateBasedRule for more information on using the CreateRateBasedRule 319// API call, and error handling. 320// 321// This method is useful when you want to inject custom logic or configuration 322// into the SDK's request lifecycle. Such as custom headers, or retry logic. 323// 324// 325// // Example sending a request using the CreateRateBasedRuleRequest method. 326// req, resp := client.CreateRateBasedRuleRequest(params) 327// 328// err := req.Send() 329// if err == nil { // resp is now filled 330// fmt.Println(resp) 331// } 332// 333// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRule 334func (c *WAF) CreateRateBasedRuleRequest(input *CreateRateBasedRuleInput) (req *request.Request, output *CreateRateBasedRuleOutput) { 335 op := &request.Operation{ 336 Name: opCreateRateBasedRule, 337 HTTPMethod: "POST", 338 HTTPPath: "/", 339 } 340 341 if input == nil { 342 input = &CreateRateBasedRuleInput{} 343 } 344 345 output = &CreateRateBasedRuleOutput{} 346 req = c.newRequest(op, input, output) 347 return 348} 349 350// CreateRateBasedRule API operation for AWS WAF. 351// 352// Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies 353// the maximum number of requests that AWS WAF allows from a specified IP address 354// in a five-minute period. The RateBasedRule also contains the IPSet objects, 355// ByteMatchSet objects, and other predicates that identify the requests that 356// you want to count or block if these requests exceed the RateLimit. 357// 358// If you add more than one predicate to a RateBasedRule, a request not only 359// must exceed the RateLimit, but it also must match all the specifications 360// to be counted or blocked. For example, suppose you add the following to a 361// RateBasedRule: 362// 363// * An IPSet that matches the IP address 192.0.2.44/32 364// 365// * A ByteMatchSet that matches BadBot in the User-Agent header 366// 367// Further, you specify a RateLimit of 15,000. 368// 369// You then add the RateBasedRule to a WebACL and specify that you want to block 370// requests that meet the conditions in the rule. For a request to be blocked, 371// it must come from the IP address 192.0.2.44 and the User-Agent header in 372// the request must contain the value BadBot. Further, requests that match these 373// two conditions must be received at a rate of more than 15,000 requests every 374// five minutes. If both conditions are met and the rate is exceeded, AWS WAF 375// blocks the requests. If the rate drops below 15,000 for a five-minute period, 376// AWS WAF no longer blocks the requests. 377// 378// As a second example, suppose you want to limit requests to a particular page 379// on your site. To do this, you could add the following to a RateBasedRule: 380// 381// * A ByteMatchSet with FieldToMatch of URI 382// 383// * A PositionalConstraint of STARTS_WITH 384// 385// * A TargetString of login 386// 387// Further, you specify a RateLimit of 15,000. 388// 389// By adding this RateBasedRule to a WebACL, you could limit requests to your 390// login page without affecting the rest of your site. 391// 392// To create and configure a RateBasedRule, perform the following steps: 393// 394// Create and update the predicates that you want to include in the rule. For 395// more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. 396// 397// Use GetChangeToken to get the change token that you provide in the ChangeToken 398// parameter of a CreateRule request. 399// 400// Submit a CreateRateBasedRule request. 401// 402// Use GetChangeToken to get the change token that you provide in the ChangeToken 403// parameter of an UpdateRule request. 404// 405// Submit an UpdateRateBasedRule request to specify the predicates that you 406// want to include in the rule. 407// 408// Create and update a WebACL that contains the RateBasedRule. For more information, 409// see CreateWebACL. 410// 411// For more information about how to use the AWS WAF API to allow or block HTTP 412// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 413// 414// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 415// with awserr.Error's Code and Message methods to get detailed information about 416// the error. 417// 418// See the AWS API reference guide for AWS WAF's 419// API operation CreateRateBasedRule for usage and error information. 420// 421// Returned Error Codes: 422// * ErrCodeStaleDataException "StaleDataException" 423// The operation failed because you tried to create, update, or delete an object 424// by using a change token that has already been used. 425// 426// * ErrCodeInternalErrorException "InternalErrorException" 427// The operation failed because of a system problem, even though the request 428// was valid. Retry your request. 429// 430// * ErrCodeDisallowedNameException "DisallowedNameException" 431// The name specified is invalid. 432// 433// * ErrCodeInvalidParameterException "InvalidParameterException" 434// The operation failed because AWS WAF didn't recognize a parameter in the 435// request. For example: 436// 437// * You specified an invalid parameter name. 438// 439// * You specified an invalid value. 440// 441// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 442// using an action other than INSERT or DELETE. 443// 444// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 445// BLOCK, or COUNT. 446// 447// * You tried to create a RateBasedRule with a RateKey value other than 448// IP. 449// 450// * You tried to update a WebACL with a WafActionType other than ALLOW, 451// BLOCK, or COUNT. 452// 453// * You tried to update a ByteMatchSet with a FieldToMatchType other than 454// HEADER, QUERY_STRING, or URI. 455// 456// * You tried to update a ByteMatchSet with a Field of HEADER but no value 457// for Data. 458// 459// * Your request references an ARN that is malformed, or corresponds to 460// a resource with which a web ACL cannot be associated. 461// 462// * ErrCodeLimitsExceededException "LimitsExceededException" 463// The operation exceeds a resource limit, for example, the maximum number of 464// WebACL objects that you can create for an AWS account. For more information, 465// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 466// in the AWS WAF Developer Guide. 467// 468// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRule 469func (c *WAF) CreateRateBasedRule(input *CreateRateBasedRuleInput) (*CreateRateBasedRuleOutput, error) { 470 req, out := c.CreateRateBasedRuleRequest(input) 471 return out, req.Send() 472} 473 474// CreateRateBasedRuleWithContext is the same as CreateRateBasedRule with the addition of 475// the ability to pass a context and additional request options. 476// 477// See CreateRateBasedRule for details on how to use this API operation. 478// 479// The context must be non-nil and will be used for request cancellation. If 480// the context is nil a panic will occur. In the future the SDK may create 481// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 482// for more information on using Contexts. 483func (c *WAF) CreateRateBasedRuleWithContext(ctx aws.Context, input *CreateRateBasedRuleInput, opts ...request.Option) (*CreateRateBasedRuleOutput, error) { 484 req, out := c.CreateRateBasedRuleRequest(input) 485 req.SetContext(ctx) 486 req.ApplyOptions(opts...) 487 return out, req.Send() 488} 489 490const opCreateRule = "CreateRule" 491 492// CreateRuleRequest generates a "aws/request.Request" representing the 493// client's request for the CreateRule operation. The "output" return 494// value will be populated with the request's response once the request complets 495// successfuly. 496// 497// Use "Send" method on the returned Request to send the API call to the service. 498// the "output" return value is not valid until after Send returns without error. 499// 500// See CreateRule for more information on using the CreateRule 501// API call, and error handling. 502// 503// This method is useful when you want to inject custom logic or configuration 504// into the SDK's request lifecycle. Such as custom headers, or retry logic. 505// 506// 507// // Example sending a request using the CreateRuleRequest method. 508// req, resp := client.CreateRuleRequest(params) 509// 510// err := req.Send() 511// if err == nil { // resp is now filled 512// fmt.Println(resp) 513// } 514// 515// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRule 516func (c *WAF) CreateRuleRequest(input *CreateRuleInput) (req *request.Request, output *CreateRuleOutput) { 517 op := &request.Operation{ 518 Name: opCreateRule, 519 HTTPMethod: "POST", 520 HTTPPath: "/", 521 } 522 523 if input == nil { 524 input = &CreateRuleInput{} 525 } 526 527 output = &CreateRuleOutput{} 528 req = c.newRequest(op, input, output) 529 return 530} 531 532// CreateRule API operation for AWS WAF. 533// 534// Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and 535// other predicates that identify the requests that you want to block. If you 536// add more than one predicate to a Rule, a request must match all of the specifications 537// to be allowed or blocked. For example, suppose you add the following to a 538// Rule: 539// 540// * An IPSet that matches the IP address 192.0.2.44/32 541// 542// * A ByteMatchSet that matches BadBot in the User-Agent header 543// 544// You then add the Rule to a WebACL and specify that you want to blocks requests 545// that satisfy the Rule. For a request to be blocked, it must come from the 546// IP address 192.0.2.44 and the User-Agent header in the request must contain 547// the value BadBot. 548// 549// To create and configure a Rule, perform the following steps: 550// 551// Create and update the predicates that you want to include in the Rule. For 552// more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet. 553// 554// Use GetChangeToken to get the change token that you provide in the ChangeToken 555// parameter of a CreateRule request. 556// 557// Submit a CreateRule request. 558// 559// Use GetChangeToken to get the change token that you provide in the ChangeToken 560// parameter of an UpdateRule request. 561// 562// Submit an UpdateRule request to specify the predicates that you want to include 563// in the Rule. 564// 565// Create and update a WebACL that contains the Rule. For more information, 566// see CreateWebACL. 567// 568// For more information about how to use the AWS WAF API to allow or block HTTP 569// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 570// 571// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 572// with awserr.Error's Code and Message methods to get detailed information about 573// the error. 574// 575// See the AWS API reference guide for AWS WAF's 576// API operation CreateRule for usage and error information. 577// 578// Returned Error Codes: 579// * ErrCodeStaleDataException "StaleDataException" 580// The operation failed because you tried to create, update, or delete an object 581// by using a change token that has already been used. 582// 583// * ErrCodeInternalErrorException "InternalErrorException" 584// The operation failed because of a system problem, even though the request 585// was valid. Retry your request. 586// 587// * ErrCodeDisallowedNameException "DisallowedNameException" 588// The name specified is invalid. 589// 590// * ErrCodeInvalidParameterException "InvalidParameterException" 591// The operation failed because AWS WAF didn't recognize a parameter in the 592// request. For example: 593// 594// * You specified an invalid parameter name. 595// 596// * You specified an invalid value. 597// 598// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 599// using an action other than INSERT or DELETE. 600// 601// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 602// BLOCK, or COUNT. 603// 604// * You tried to create a RateBasedRule with a RateKey value other than 605// IP. 606// 607// * You tried to update a WebACL with a WafActionType other than ALLOW, 608// BLOCK, or COUNT. 609// 610// * You tried to update a ByteMatchSet with a FieldToMatchType other than 611// HEADER, QUERY_STRING, or URI. 612// 613// * You tried to update a ByteMatchSet with a Field of HEADER but no value 614// for Data. 615// 616// * Your request references an ARN that is malformed, or corresponds to 617// a resource with which a web ACL cannot be associated. 618// 619// * ErrCodeLimitsExceededException "LimitsExceededException" 620// The operation exceeds a resource limit, for example, the maximum number of 621// WebACL objects that you can create for an AWS account. For more information, 622// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 623// in the AWS WAF Developer Guide. 624// 625// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRule 626func (c *WAF) CreateRule(input *CreateRuleInput) (*CreateRuleOutput, error) { 627 req, out := c.CreateRuleRequest(input) 628 return out, req.Send() 629} 630 631// CreateRuleWithContext is the same as CreateRule with the addition of 632// the ability to pass a context and additional request options. 633// 634// See CreateRule for details on how to use this API operation. 635// 636// The context must be non-nil and will be used for request cancellation. If 637// the context is nil a panic will occur. In the future the SDK may create 638// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 639// for more information on using Contexts. 640func (c *WAF) CreateRuleWithContext(ctx aws.Context, input *CreateRuleInput, opts ...request.Option) (*CreateRuleOutput, error) { 641 req, out := c.CreateRuleRequest(input) 642 req.SetContext(ctx) 643 req.ApplyOptions(opts...) 644 return out, req.Send() 645} 646 647const opCreateSizeConstraintSet = "CreateSizeConstraintSet" 648 649// CreateSizeConstraintSetRequest generates a "aws/request.Request" representing the 650// client's request for the CreateSizeConstraintSet operation. The "output" return 651// value will be populated with the request's response once the request complets 652// successfuly. 653// 654// Use "Send" method on the returned Request to send the API call to the service. 655// the "output" return value is not valid until after Send returns without error. 656// 657// See CreateSizeConstraintSet for more information on using the CreateSizeConstraintSet 658// API call, and error handling. 659// 660// This method is useful when you want to inject custom logic or configuration 661// into the SDK's request lifecycle. Such as custom headers, or retry logic. 662// 663// 664// // Example sending a request using the CreateSizeConstraintSetRequest method. 665// req, resp := client.CreateSizeConstraintSetRequest(params) 666// 667// err := req.Send() 668// if err == nil { // resp is now filled 669// fmt.Println(resp) 670// } 671// 672// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSet 673func (c *WAF) CreateSizeConstraintSetRequest(input *CreateSizeConstraintSetInput) (req *request.Request, output *CreateSizeConstraintSetOutput) { 674 op := &request.Operation{ 675 Name: opCreateSizeConstraintSet, 676 HTTPMethod: "POST", 677 HTTPPath: "/", 678 } 679 680 if input == nil { 681 input = &CreateSizeConstraintSetInput{} 682 } 683 684 output = &CreateSizeConstraintSetOutput{} 685 req = c.newRequest(op, input, output) 686 return 687} 688 689// CreateSizeConstraintSet API operation for AWS WAF. 690// 691// Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify 692// the part of a web request that you want AWS WAF to check for length, such 693// as the length of the User-Agent header or the length of the query string. 694// For example, you can create a SizeConstraintSet that matches any requests 695// that have a query string that is longer than 100 bytes. You can then configure 696// AWS WAF to reject those requests. 697// 698// To create and configure a SizeConstraintSet, perform the following steps: 699// 700// Use GetChangeToken to get the change token that you provide in the ChangeToken 701// parameter of a CreateSizeConstraintSet request. 702// 703// Submit a CreateSizeConstraintSet request. 704// 705// Use GetChangeToken to get the change token that you provide in the ChangeToken 706// parameter of an UpdateSizeConstraintSet request. 707// 708// Submit an UpdateSizeConstraintSet request to specify the part of the request 709// that you want AWS WAF to inspect (for example, the header or the URI) and 710// the value that you want AWS WAF to watch for. 711// 712// For more information about how to use the AWS WAF API to allow or block HTTP 713// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 714// 715// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 716// with awserr.Error's Code and Message methods to get detailed information about 717// the error. 718// 719// See the AWS API reference guide for AWS WAF's 720// API operation CreateSizeConstraintSet for usage and error information. 721// 722// Returned Error Codes: 723// * ErrCodeStaleDataException "StaleDataException" 724// The operation failed because you tried to create, update, or delete an object 725// by using a change token that has already been used. 726// 727// * ErrCodeInternalErrorException "InternalErrorException" 728// The operation failed because of a system problem, even though the request 729// was valid. Retry your request. 730// 731// * ErrCodeInvalidAccountException "InvalidAccountException" 732// The operation failed because you tried to create, update, or delete an object 733// by using an invalid account identifier. 734// 735// * ErrCodeDisallowedNameException "DisallowedNameException" 736// The name specified is invalid. 737// 738// * ErrCodeInvalidParameterException "InvalidParameterException" 739// The operation failed because AWS WAF didn't recognize a parameter in the 740// request. For example: 741// 742// * You specified an invalid parameter name. 743// 744// * You specified an invalid value. 745// 746// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 747// using an action other than INSERT or DELETE. 748// 749// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 750// BLOCK, or COUNT. 751// 752// * You tried to create a RateBasedRule with a RateKey value other than 753// IP. 754// 755// * You tried to update a WebACL with a WafActionType other than ALLOW, 756// BLOCK, or COUNT. 757// 758// * You tried to update a ByteMatchSet with a FieldToMatchType other than 759// HEADER, QUERY_STRING, or URI. 760// 761// * You tried to update a ByteMatchSet with a Field of HEADER but no value 762// for Data. 763// 764// * Your request references an ARN that is malformed, or corresponds to 765// a resource with which a web ACL cannot be associated. 766// 767// * ErrCodeLimitsExceededException "LimitsExceededException" 768// The operation exceeds a resource limit, for example, the maximum number of 769// WebACL objects that you can create for an AWS account. For more information, 770// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 771// in the AWS WAF Developer Guide. 772// 773// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSet 774func (c *WAF) CreateSizeConstraintSet(input *CreateSizeConstraintSetInput) (*CreateSizeConstraintSetOutput, error) { 775 req, out := c.CreateSizeConstraintSetRequest(input) 776 return out, req.Send() 777} 778 779// CreateSizeConstraintSetWithContext is the same as CreateSizeConstraintSet with the addition of 780// the ability to pass a context and additional request options. 781// 782// See CreateSizeConstraintSet for details on how to use this API operation. 783// 784// The context must be non-nil and will be used for request cancellation. If 785// the context is nil a panic will occur. In the future the SDK may create 786// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 787// for more information on using Contexts. 788func (c *WAF) CreateSizeConstraintSetWithContext(ctx aws.Context, input *CreateSizeConstraintSetInput, opts ...request.Option) (*CreateSizeConstraintSetOutput, error) { 789 req, out := c.CreateSizeConstraintSetRequest(input) 790 req.SetContext(ctx) 791 req.ApplyOptions(opts...) 792 return out, req.Send() 793} 794 795const opCreateSqlInjectionMatchSet = "CreateSqlInjectionMatchSet" 796 797// CreateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the 798// client's request for the CreateSqlInjectionMatchSet operation. The "output" return 799// value will be populated with the request's response once the request complets 800// successfuly. 801// 802// Use "Send" method on the returned Request to send the API call to the service. 803// the "output" return value is not valid until after Send returns without error. 804// 805// See CreateSqlInjectionMatchSet for more information on using the CreateSqlInjectionMatchSet 806// API call, and error handling. 807// 808// This method is useful when you want to inject custom logic or configuration 809// into the SDK's request lifecycle. Such as custom headers, or retry logic. 810// 811// 812// // Example sending a request using the CreateSqlInjectionMatchSetRequest method. 813// req, resp := client.CreateSqlInjectionMatchSetRequest(params) 814// 815// err := req.Send() 816// if err == nil { // resp is now filled 817// fmt.Println(resp) 818// } 819// 820// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSet 821func (c *WAF) CreateSqlInjectionMatchSetRequest(input *CreateSqlInjectionMatchSetInput) (req *request.Request, output *CreateSqlInjectionMatchSetOutput) { 822 op := &request.Operation{ 823 Name: opCreateSqlInjectionMatchSet, 824 HTTPMethod: "POST", 825 HTTPPath: "/", 826 } 827 828 if input == nil { 829 input = &CreateSqlInjectionMatchSetInput{} 830 } 831 832 output = &CreateSqlInjectionMatchSetOutput{} 833 req = c.newRequest(op, input, output) 834 return 835} 836 837// CreateSqlInjectionMatchSet API operation for AWS WAF. 838// 839// Creates a SqlInjectionMatchSet, which you use to allow, block, or count requests 840// that contain snippets of SQL code in a specified part of web requests. AWS 841// WAF searches for character sequences that are likely to be malicious strings. 842// 843// To create and configure a SqlInjectionMatchSet, perform the following steps: 844// 845// Use GetChangeToken to get the change token that you provide in the ChangeToken 846// parameter of a CreateSqlInjectionMatchSet request. 847// 848// Submit a CreateSqlInjectionMatchSet request. 849// 850// Use GetChangeToken to get the change token that you provide in the ChangeToken 851// parameter of an UpdateSqlInjectionMatchSet request. 852// 853// Submit an UpdateSqlInjectionMatchSet request to specify the parts of web 854// requests in which you want to allow, block, or count malicious SQL code. 855// 856// For more information about how to use the AWS WAF API to allow or block HTTP 857// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 858// 859// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 860// with awserr.Error's Code and Message methods to get detailed information about 861// the error. 862// 863// See the AWS API reference guide for AWS WAF's 864// API operation CreateSqlInjectionMatchSet for usage and error information. 865// 866// Returned Error Codes: 867// * ErrCodeDisallowedNameException "DisallowedNameException" 868// The name specified is invalid. 869// 870// * ErrCodeInternalErrorException "InternalErrorException" 871// The operation failed because of a system problem, even though the request 872// was valid. Retry your request. 873// 874// * ErrCodeInvalidAccountException "InvalidAccountException" 875// The operation failed because you tried to create, update, or delete an object 876// by using an invalid account identifier. 877// 878// * ErrCodeInvalidParameterException "InvalidParameterException" 879// The operation failed because AWS WAF didn't recognize a parameter in the 880// request. For example: 881// 882// * You specified an invalid parameter name. 883// 884// * You specified an invalid value. 885// 886// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 887// using an action other than INSERT or DELETE. 888// 889// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 890// BLOCK, or COUNT. 891// 892// * You tried to create a RateBasedRule with a RateKey value other than 893// IP. 894// 895// * You tried to update a WebACL with a WafActionType other than ALLOW, 896// BLOCK, or COUNT. 897// 898// * You tried to update a ByteMatchSet with a FieldToMatchType other than 899// HEADER, QUERY_STRING, or URI. 900// 901// * You tried to update a ByteMatchSet with a Field of HEADER but no value 902// for Data. 903// 904// * Your request references an ARN that is malformed, or corresponds to 905// a resource with which a web ACL cannot be associated. 906// 907// * ErrCodeStaleDataException "StaleDataException" 908// The operation failed because you tried to create, update, or delete an object 909// by using a change token that has already been used. 910// 911// * ErrCodeLimitsExceededException "LimitsExceededException" 912// The operation exceeds a resource limit, for example, the maximum number of 913// WebACL objects that you can create for an AWS account. For more information, 914// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 915// in the AWS WAF Developer Guide. 916// 917// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSet 918func (c *WAF) CreateSqlInjectionMatchSet(input *CreateSqlInjectionMatchSetInput) (*CreateSqlInjectionMatchSetOutput, error) { 919 req, out := c.CreateSqlInjectionMatchSetRequest(input) 920 return out, req.Send() 921} 922 923// CreateSqlInjectionMatchSetWithContext is the same as CreateSqlInjectionMatchSet with the addition of 924// the ability to pass a context and additional request options. 925// 926// See CreateSqlInjectionMatchSet for details on how to use this API operation. 927// 928// The context must be non-nil and will be used for request cancellation. If 929// the context is nil a panic will occur. In the future the SDK may create 930// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 931// for more information on using Contexts. 932func (c *WAF) CreateSqlInjectionMatchSetWithContext(ctx aws.Context, input *CreateSqlInjectionMatchSetInput, opts ...request.Option) (*CreateSqlInjectionMatchSetOutput, error) { 933 req, out := c.CreateSqlInjectionMatchSetRequest(input) 934 req.SetContext(ctx) 935 req.ApplyOptions(opts...) 936 return out, req.Send() 937} 938 939const opCreateWebACL = "CreateWebACL" 940 941// CreateWebACLRequest generates a "aws/request.Request" representing the 942// client's request for the CreateWebACL operation. The "output" return 943// value will be populated with the request's response once the request complets 944// successfuly. 945// 946// Use "Send" method on the returned Request to send the API call to the service. 947// the "output" return value is not valid until after Send returns without error. 948// 949// See CreateWebACL for more information on using the CreateWebACL 950// API call, and error handling. 951// 952// This method is useful when you want to inject custom logic or configuration 953// into the SDK's request lifecycle. Such as custom headers, or retry logic. 954// 955// 956// // Example sending a request using the CreateWebACLRequest method. 957// req, resp := client.CreateWebACLRequest(params) 958// 959// err := req.Send() 960// if err == nil { // resp is now filled 961// fmt.Println(resp) 962// } 963// 964// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACL 965func (c *WAF) CreateWebACLRequest(input *CreateWebACLInput) (req *request.Request, output *CreateWebACLOutput) { 966 op := &request.Operation{ 967 Name: opCreateWebACL, 968 HTTPMethod: "POST", 969 HTTPPath: "/", 970 } 971 972 if input == nil { 973 input = &CreateWebACLInput{} 974 } 975 976 output = &CreateWebACLOutput{} 977 req = c.newRequest(op, input, output) 978 return 979} 980 981// CreateWebACL API operation for AWS WAF. 982// 983// Creates a WebACL, which contains the Rules that identify the CloudFront web 984// requests that you want to allow, block, or count. AWS WAF evaluates Rules 985// in order based on the value of Priority for each Rule. 986// 987// You also specify a default action, either ALLOW or BLOCK. If a web request 988// doesn't match any of the Rules in a WebACL, AWS WAF responds to the request 989// with the default action. 990// 991// To create and configure a WebACL, perform the following steps: 992// 993// Create and update the ByteMatchSet objects and other predicates that you 994// want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet, 995// CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. 996// 997// Create and update the Rules that you want to include in the WebACL. For more 998// information, see CreateRule and UpdateRule. 999// 1000// Use GetChangeToken to get the change token that you provide in the ChangeToken 1001// parameter of a CreateWebACL request. 1002// 1003// Submit a CreateWebACL request. 1004// 1005// Use GetChangeToken to get the change token that you provide in the ChangeToken 1006// parameter of an UpdateWebACL request. 1007// 1008// Submit an UpdateWebACL request to specify the Rules that you want to include 1009// in the WebACL, to specify the default action, and to associate the WebACL 1010// with a CloudFront distribution. 1011// 1012// For more information about how to use the AWS WAF API, see the AWS WAF Developer 1013// Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 1014// 1015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1016// with awserr.Error's Code and Message methods to get detailed information about 1017// the error. 1018// 1019// See the AWS API reference guide for AWS WAF's 1020// API operation CreateWebACL for usage and error information. 1021// 1022// Returned Error Codes: 1023// * ErrCodeStaleDataException "StaleDataException" 1024// The operation failed because you tried to create, update, or delete an object 1025// by using a change token that has already been used. 1026// 1027// * ErrCodeInternalErrorException "InternalErrorException" 1028// The operation failed because of a system problem, even though the request 1029// was valid. Retry your request. 1030// 1031// * ErrCodeInvalidAccountException "InvalidAccountException" 1032// The operation failed because you tried to create, update, or delete an object 1033// by using an invalid account identifier. 1034// 1035// * ErrCodeDisallowedNameException "DisallowedNameException" 1036// The name specified is invalid. 1037// 1038// * ErrCodeInvalidParameterException "InvalidParameterException" 1039// The operation failed because AWS WAF didn't recognize a parameter in the 1040// request. For example: 1041// 1042// * You specified an invalid parameter name. 1043// 1044// * You specified an invalid value. 1045// 1046// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 1047// using an action other than INSERT or DELETE. 1048// 1049// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 1050// BLOCK, or COUNT. 1051// 1052// * You tried to create a RateBasedRule with a RateKey value other than 1053// IP. 1054// 1055// * You tried to update a WebACL with a WafActionType other than ALLOW, 1056// BLOCK, or COUNT. 1057// 1058// * You tried to update a ByteMatchSet with a FieldToMatchType other than 1059// HEADER, QUERY_STRING, or URI. 1060// 1061// * You tried to update a ByteMatchSet with a Field of HEADER but no value 1062// for Data. 1063// 1064// * Your request references an ARN that is malformed, or corresponds to 1065// a resource with which a web ACL cannot be associated. 1066// 1067// * ErrCodeLimitsExceededException "LimitsExceededException" 1068// The operation exceeds a resource limit, for example, the maximum number of 1069// WebACL objects that you can create for an AWS account. For more information, 1070// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 1071// in the AWS WAF Developer Guide. 1072// 1073// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACL 1074func (c *WAF) CreateWebACL(input *CreateWebACLInput) (*CreateWebACLOutput, error) { 1075 req, out := c.CreateWebACLRequest(input) 1076 return out, req.Send() 1077} 1078 1079// CreateWebACLWithContext is the same as CreateWebACL with the addition of 1080// the ability to pass a context and additional request options. 1081// 1082// See CreateWebACL for details on how to use this API operation. 1083// 1084// The context must be non-nil and will be used for request cancellation. If 1085// the context is nil a panic will occur. In the future the SDK may create 1086// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1087// for more information on using Contexts. 1088func (c *WAF) CreateWebACLWithContext(ctx aws.Context, input *CreateWebACLInput, opts ...request.Option) (*CreateWebACLOutput, error) { 1089 req, out := c.CreateWebACLRequest(input) 1090 req.SetContext(ctx) 1091 req.ApplyOptions(opts...) 1092 return out, req.Send() 1093} 1094 1095const opCreateXssMatchSet = "CreateXssMatchSet" 1096 1097// CreateXssMatchSetRequest generates a "aws/request.Request" representing the 1098// client's request for the CreateXssMatchSet operation. The "output" return 1099// value will be populated with the request's response once the request complets 1100// successfuly. 1101// 1102// Use "Send" method on the returned Request to send the API call to the service. 1103// the "output" return value is not valid until after Send returns without error. 1104// 1105// See CreateXssMatchSet for more information on using the CreateXssMatchSet 1106// API call, and error handling. 1107// 1108// This method is useful when you want to inject custom logic or configuration 1109// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1110// 1111// 1112// // Example sending a request using the CreateXssMatchSetRequest method. 1113// req, resp := client.CreateXssMatchSetRequest(params) 1114// 1115// err := req.Send() 1116// if err == nil { // resp is now filled 1117// fmt.Println(resp) 1118// } 1119// 1120// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSet 1121func (c *WAF) CreateXssMatchSetRequest(input *CreateXssMatchSetInput) (req *request.Request, output *CreateXssMatchSetOutput) { 1122 op := &request.Operation{ 1123 Name: opCreateXssMatchSet, 1124 HTTPMethod: "POST", 1125 HTTPPath: "/", 1126 } 1127 1128 if input == nil { 1129 input = &CreateXssMatchSetInput{} 1130 } 1131 1132 output = &CreateXssMatchSetOutput{} 1133 req = c.newRequest(op, input, output) 1134 return 1135} 1136 1137// CreateXssMatchSet API operation for AWS WAF. 1138// 1139// Creates an XssMatchSet, which you use to allow, block, or count requests 1140// that contain cross-site scripting attacks in the specified part of web requests. 1141// AWS WAF searches for character sequences that are likely to be malicious 1142// strings. 1143// 1144// To create and configure an XssMatchSet, perform the following steps: 1145// 1146// Use GetChangeToken to get the change token that you provide in the ChangeToken 1147// parameter of a CreateXssMatchSet request. 1148// 1149// Submit a CreateXssMatchSet request. 1150// 1151// Use GetChangeToken to get the change token that you provide in the ChangeToken 1152// parameter of an UpdateXssMatchSet request. 1153// 1154// Submit an UpdateXssMatchSet request to specify the parts of web requests 1155// in which you want to allow, block, or count cross-site scripting attacks. 1156// 1157// For more information about how to use the AWS WAF API to allow or block HTTP 1158// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 1159// 1160// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1161// with awserr.Error's Code and Message methods to get detailed information about 1162// the error. 1163// 1164// See the AWS API reference guide for AWS WAF's 1165// API operation CreateXssMatchSet for usage and error information. 1166// 1167// Returned Error Codes: 1168// * ErrCodeDisallowedNameException "DisallowedNameException" 1169// The name specified is invalid. 1170// 1171// * ErrCodeInternalErrorException "InternalErrorException" 1172// The operation failed because of a system problem, even though the request 1173// was valid. Retry your request. 1174// 1175// * ErrCodeInvalidAccountException "InvalidAccountException" 1176// The operation failed because you tried to create, update, or delete an object 1177// by using an invalid account identifier. 1178// 1179// * ErrCodeInvalidParameterException "InvalidParameterException" 1180// The operation failed because AWS WAF didn't recognize a parameter in the 1181// request. For example: 1182// 1183// * You specified an invalid parameter name. 1184// 1185// * You specified an invalid value. 1186// 1187// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 1188// using an action other than INSERT or DELETE. 1189// 1190// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 1191// BLOCK, or COUNT. 1192// 1193// * You tried to create a RateBasedRule with a RateKey value other than 1194// IP. 1195// 1196// * You tried to update a WebACL with a WafActionType other than ALLOW, 1197// BLOCK, or COUNT. 1198// 1199// * You tried to update a ByteMatchSet with a FieldToMatchType other than 1200// HEADER, QUERY_STRING, or URI. 1201// 1202// * You tried to update a ByteMatchSet with a Field of HEADER but no value 1203// for Data. 1204// 1205// * Your request references an ARN that is malformed, or corresponds to 1206// a resource with which a web ACL cannot be associated. 1207// 1208// * ErrCodeStaleDataException "StaleDataException" 1209// The operation failed because you tried to create, update, or delete an object 1210// by using a change token that has already been used. 1211// 1212// * ErrCodeLimitsExceededException "LimitsExceededException" 1213// The operation exceeds a resource limit, for example, the maximum number of 1214// WebACL objects that you can create for an AWS account. For more information, 1215// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 1216// in the AWS WAF Developer Guide. 1217// 1218// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSet 1219func (c *WAF) CreateXssMatchSet(input *CreateXssMatchSetInput) (*CreateXssMatchSetOutput, error) { 1220 req, out := c.CreateXssMatchSetRequest(input) 1221 return out, req.Send() 1222} 1223 1224// CreateXssMatchSetWithContext is the same as CreateXssMatchSet with the addition of 1225// the ability to pass a context and additional request options. 1226// 1227// See CreateXssMatchSet for details on how to use this API operation. 1228// 1229// The context must be non-nil and will be used for request cancellation. If 1230// the context is nil a panic will occur. In the future the SDK may create 1231// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1232// for more information on using Contexts. 1233func (c *WAF) CreateXssMatchSetWithContext(ctx aws.Context, input *CreateXssMatchSetInput, opts ...request.Option) (*CreateXssMatchSetOutput, error) { 1234 req, out := c.CreateXssMatchSetRequest(input) 1235 req.SetContext(ctx) 1236 req.ApplyOptions(opts...) 1237 return out, req.Send() 1238} 1239 1240const opDeleteByteMatchSet = "DeleteByteMatchSet" 1241 1242// DeleteByteMatchSetRequest generates a "aws/request.Request" representing the 1243// client's request for the DeleteByteMatchSet operation. The "output" return 1244// value will be populated with the request's response once the request complets 1245// successfuly. 1246// 1247// Use "Send" method on the returned Request to send the API call to the service. 1248// the "output" return value is not valid until after Send returns without error. 1249// 1250// See DeleteByteMatchSet for more information on using the DeleteByteMatchSet 1251// API call, and error handling. 1252// 1253// This method is useful when you want to inject custom logic or configuration 1254// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1255// 1256// 1257// // Example sending a request using the DeleteByteMatchSetRequest method. 1258// req, resp := client.DeleteByteMatchSetRequest(params) 1259// 1260// err := req.Send() 1261// if err == nil { // resp is now filled 1262// fmt.Println(resp) 1263// } 1264// 1265// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteByteMatchSet 1266func (c *WAF) DeleteByteMatchSetRequest(input *DeleteByteMatchSetInput) (req *request.Request, output *DeleteByteMatchSetOutput) { 1267 op := &request.Operation{ 1268 Name: opDeleteByteMatchSet, 1269 HTTPMethod: "POST", 1270 HTTPPath: "/", 1271 } 1272 1273 if input == nil { 1274 input = &DeleteByteMatchSetInput{} 1275 } 1276 1277 output = &DeleteByteMatchSetOutput{} 1278 req = c.newRequest(op, input, output) 1279 return 1280} 1281 1282// DeleteByteMatchSet API operation for AWS WAF. 1283// 1284// Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's 1285// still used in any Rules or if it still includes any ByteMatchTuple objects 1286// (any filters). 1287// 1288// If you just want to remove a ByteMatchSet from a Rule, use UpdateRule. 1289// 1290// To permanently delete a ByteMatchSet, perform the following steps: 1291// 1292// Update the ByteMatchSet to remove filters, if any. For more information, 1293// see UpdateByteMatchSet. 1294// 1295// Use GetChangeToken to get the change token that you provide in the ChangeToken 1296// parameter of a DeleteByteMatchSet request. 1297// 1298// Submit a DeleteByteMatchSet request. 1299// 1300// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1301// with awserr.Error's Code and Message methods to get detailed information about 1302// the error. 1303// 1304// See the AWS API reference guide for AWS WAF's 1305// API operation DeleteByteMatchSet for usage and error information. 1306// 1307// Returned Error Codes: 1308// * ErrCodeInternalErrorException "InternalErrorException" 1309// The operation failed because of a system problem, even though the request 1310// was valid. Retry your request. 1311// 1312// * ErrCodeInvalidAccountException "InvalidAccountException" 1313// The operation failed because you tried to create, update, or delete an object 1314// by using an invalid account identifier. 1315// 1316// * ErrCodeNonexistentItemException "NonexistentItemException" 1317// The operation failed because the referenced object doesn't exist. 1318// 1319// * ErrCodeReferencedItemException "ReferencedItemException" 1320// The operation failed because you tried to delete an object that is still 1321// in use. For example: 1322// 1323// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 1324// 1325// * You tried to delete a Rule that is still referenced by a WebACL. 1326// 1327// * ErrCodeStaleDataException "StaleDataException" 1328// The operation failed because you tried to create, update, or delete an object 1329// by using a change token that has already been used. 1330// 1331// * ErrCodeNonEmptyEntityException "NonEmptyEntityException" 1332// The operation failed because you tried to delete an object that isn't empty. 1333// For example: 1334// 1335// * You tried to delete a WebACL that still contains one or more Rule objects. 1336// 1337// * You tried to delete a Rule that still contains one or more ByteMatchSet 1338// objects or other predicates. 1339// 1340// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple 1341// objects. 1342// 1343// * You tried to delete an IPSet that references one or more IP addresses. 1344// 1345// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteByteMatchSet 1346func (c *WAF) DeleteByteMatchSet(input *DeleteByteMatchSetInput) (*DeleteByteMatchSetOutput, error) { 1347 req, out := c.DeleteByteMatchSetRequest(input) 1348 return out, req.Send() 1349} 1350 1351// DeleteByteMatchSetWithContext is the same as DeleteByteMatchSet with the addition of 1352// the ability to pass a context and additional request options. 1353// 1354// See DeleteByteMatchSet for details on how to use this API operation. 1355// 1356// The context must be non-nil and will be used for request cancellation. If 1357// the context is nil a panic will occur. In the future the SDK may create 1358// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1359// for more information on using Contexts. 1360func (c *WAF) DeleteByteMatchSetWithContext(ctx aws.Context, input *DeleteByteMatchSetInput, opts ...request.Option) (*DeleteByteMatchSetOutput, error) { 1361 req, out := c.DeleteByteMatchSetRequest(input) 1362 req.SetContext(ctx) 1363 req.ApplyOptions(opts...) 1364 return out, req.Send() 1365} 1366 1367const opDeleteIPSet = "DeleteIPSet" 1368 1369// DeleteIPSetRequest generates a "aws/request.Request" representing the 1370// client's request for the DeleteIPSet operation. The "output" return 1371// value will be populated with the request's response once the request complets 1372// successfuly. 1373// 1374// Use "Send" method on the returned Request to send the API call to the service. 1375// the "output" return value is not valid until after Send returns without error. 1376// 1377// See DeleteIPSet for more information on using the DeleteIPSet 1378// API call, and error handling. 1379// 1380// This method is useful when you want to inject custom logic or configuration 1381// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1382// 1383// 1384// // Example sending a request using the DeleteIPSetRequest method. 1385// req, resp := client.DeleteIPSetRequest(params) 1386// 1387// err := req.Send() 1388// if err == nil { // resp is now filled 1389// fmt.Println(resp) 1390// } 1391// 1392// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteIPSet 1393func (c *WAF) DeleteIPSetRequest(input *DeleteIPSetInput) (req *request.Request, output *DeleteIPSetOutput) { 1394 op := &request.Operation{ 1395 Name: opDeleteIPSet, 1396 HTTPMethod: "POST", 1397 HTTPPath: "/", 1398 } 1399 1400 if input == nil { 1401 input = &DeleteIPSetInput{} 1402 } 1403 1404 output = &DeleteIPSetOutput{} 1405 req = c.newRequest(op, input, output) 1406 return 1407} 1408 1409// DeleteIPSet API operation for AWS WAF. 1410// 1411// Permanently deletes an IPSet. You can't delete an IPSet if it's still used 1412// in any Rules or if it still includes any IP addresses. 1413// 1414// If you just want to remove an IPSet from a Rule, use UpdateRule. 1415// 1416// To permanently delete an IPSet from AWS WAF, perform the following steps: 1417// 1418// Update the IPSet to remove IP address ranges, if any. For more information, 1419// see UpdateIPSet. 1420// 1421// Use GetChangeToken to get the change token that you provide in the ChangeToken 1422// parameter of a DeleteIPSet request. 1423// 1424// Submit a DeleteIPSet request. 1425// 1426// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1427// with awserr.Error's Code and Message methods to get detailed information about 1428// the error. 1429// 1430// See the AWS API reference guide for AWS WAF's 1431// API operation DeleteIPSet for usage and error information. 1432// 1433// Returned Error Codes: 1434// * ErrCodeStaleDataException "StaleDataException" 1435// The operation failed because you tried to create, update, or delete an object 1436// by using a change token that has already been used. 1437// 1438// * ErrCodeInternalErrorException "InternalErrorException" 1439// The operation failed because of a system problem, even though the request 1440// was valid. Retry your request. 1441// 1442// * ErrCodeInvalidAccountException "InvalidAccountException" 1443// The operation failed because you tried to create, update, or delete an object 1444// by using an invalid account identifier. 1445// 1446// * ErrCodeNonexistentItemException "NonexistentItemException" 1447// The operation failed because the referenced object doesn't exist. 1448// 1449// * ErrCodeReferencedItemException "ReferencedItemException" 1450// The operation failed because you tried to delete an object that is still 1451// in use. For example: 1452// 1453// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 1454// 1455// * You tried to delete a Rule that is still referenced by a WebACL. 1456// 1457// * ErrCodeNonEmptyEntityException "NonEmptyEntityException" 1458// The operation failed because you tried to delete an object that isn't empty. 1459// For example: 1460// 1461// * You tried to delete a WebACL that still contains one or more Rule objects. 1462// 1463// * You tried to delete a Rule that still contains one or more ByteMatchSet 1464// objects or other predicates. 1465// 1466// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple 1467// objects. 1468// 1469// * You tried to delete an IPSet that references one or more IP addresses. 1470// 1471// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteIPSet 1472func (c *WAF) DeleteIPSet(input *DeleteIPSetInput) (*DeleteIPSetOutput, error) { 1473 req, out := c.DeleteIPSetRequest(input) 1474 return out, req.Send() 1475} 1476 1477// DeleteIPSetWithContext is the same as DeleteIPSet with the addition of 1478// the ability to pass a context and additional request options. 1479// 1480// See DeleteIPSet for details on how to use this API operation. 1481// 1482// The context must be non-nil and will be used for request cancellation. If 1483// the context is nil a panic will occur. In the future the SDK may create 1484// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1485// for more information on using Contexts. 1486func (c *WAF) DeleteIPSetWithContext(ctx aws.Context, input *DeleteIPSetInput, opts ...request.Option) (*DeleteIPSetOutput, error) { 1487 req, out := c.DeleteIPSetRequest(input) 1488 req.SetContext(ctx) 1489 req.ApplyOptions(opts...) 1490 return out, req.Send() 1491} 1492 1493const opDeleteRateBasedRule = "DeleteRateBasedRule" 1494 1495// DeleteRateBasedRuleRequest generates a "aws/request.Request" representing the 1496// client's request for the DeleteRateBasedRule operation. The "output" return 1497// value will be populated with the request's response once the request complets 1498// successfuly. 1499// 1500// Use "Send" method on the returned Request to send the API call to the service. 1501// the "output" return value is not valid until after Send returns without error. 1502// 1503// See DeleteRateBasedRule for more information on using the DeleteRateBasedRule 1504// API call, and error handling. 1505// 1506// This method is useful when you want to inject custom logic or configuration 1507// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1508// 1509// 1510// // Example sending a request using the DeleteRateBasedRuleRequest method. 1511// req, resp := client.DeleteRateBasedRuleRequest(params) 1512// 1513// err := req.Send() 1514// if err == nil { // resp is now filled 1515// fmt.Println(resp) 1516// } 1517// 1518// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRule 1519func (c *WAF) DeleteRateBasedRuleRequest(input *DeleteRateBasedRuleInput) (req *request.Request, output *DeleteRateBasedRuleOutput) { 1520 op := &request.Operation{ 1521 Name: opDeleteRateBasedRule, 1522 HTTPMethod: "POST", 1523 HTTPPath: "/", 1524 } 1525 1526 if input == nil { 1527 input = &DeleteRateBasedRuleInput{} 1528 } 1529 1530 output = &DeleteRateBasedRuleOutput{} 1531 req = c.newRequest(op, input, output) 1532 return 1533} 1534 1535// DeleteRateBasedRule API operation for AWS WAF. 1536// 1537// Permanently deletes a RateBasedRule. You can't delete a rule if it's still 1538// used in any WebACL objects or if it still includes any predicates, such as 1539// ByteMatchSet objects. 1540// 1541// If you just want to remove a rule from a WebACL, use UpdateWebACL. 1542// 1543// To permanently delete a RateBasedRule from AWS WAF, perform the following 1544// steps: 1545// 1546// Update the RateBasedRule to remove predicates, if any. For more information, 1547// see UpdateRateBasedRule. 1548// 1549// Use GetChangeToken to get the change token that you provide in the ChangeToken 1550// parameter of a DeleteRateBasedRule request. 1551// 1552// Submit a DeleteRateBasedRule request. 1553// 1554// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1555// with awserr.Error's Code and Message methods to get detailed information about 1556// the error. 1557// 1558// See the AWS API reference guide for AWS WAF's 1559// API operation DeleteRateBasedRule for usage and error information. 1560// 1561// Returned Error Codes: 1562// * ErrCodeStaleDataException "StaleDataException" 1563// The operation failed because you tried to create, update, or delete an object 1564// by using a change token that has already been used. 1565// 1566// * ErrCodeInternalErrorException "InternalErrorException" 1567// The operation failed because of a system problem, even though the request 1568// was valid. Retry your request. 1569// 1570// * ErrCodeInvalidAccountException "InvalidAccountException" 1571// The operation failed because you tried to create, update, or delete an object 1572// by using an invalid account identifier. 1573// 1574// * ErrCodeNonexistentItemException "NonexistentItemException" 1575// The operation failed because the referenced object doesn't exist. 1576// 1577// * ErrCodeReferencedItemException "ReferencedItemException" 1578// The operation failed because you tried to delete an object that is still 1579// in use. For example: 1580// 1581// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 1582// 1583// * You tried to delete a Rule that is still referenced by a WebACL. 1584// 1585// * ErrCodeNonEmptyEntityException "NonEmptyEntityException" 1586// The operation failed because you tried to delete an object that isn't empty. 1587// For example: 1588// 1589// * You tried to delete a WebACL that still contains one or more Rule objects. 1590// 1591// * You tried to delete a Rule that still contains one or more ByteMatchSet 1592// objects or other predicates. 1593// 1594// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple 1595// objects. 1596// 1597// * You tried to delete an IPSet that references one or more IP addresses. 1598// 1599// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRule 1600func (c *WAF) DeleteRateBasedRule(input *DeleteRateBasedRuleInput) (*DeleteRateBasedRuleOutput, error) { 1601 req, out := c.DeleteRateBasedRuleRequest(input) 1602 return out, req.Send() 1603} 1604 1605// DeleteRateBasedRuleWithContext is the same as DeleteRateBasedRule with the addition of 1606// the ability to pass a context and additional request options. 1607// 1608// See DeleteRateBasedRule for details on how to use this API operation. 1609// 1610// The context must be non-nil and will be used for request cancellation. If 1611// the context is nil a panic will occur. In the future the SDK may create 1612// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1613// for more information on using Contexts. 1614func (c *WAF) DeleteRateBasedRuleWithContext(ctx aws.Context, input *DeleteRateBasedRuleInput, opts ...request.Option) (*DeleteRateBasedRuleOutput, error) { 1615 req, out := c.DeleteRateBasedRuleRequest(input) 1616 req.SetContext(ctx) 1617 req.ApplyOptions(opts...) 1618 return out, req.Send() 1619} 1620 1621const opDeleteRule = "DeleteRule" 1622 1623// DeleteRuleRequest generates a "aws/request.Request" representing the 1624// client's request for the DeleteRule operation. The "output" return 1625// value will be populated with the request's response once the request complets 1626// successfuly. 1627// 1628// Use "Send" method on the returned Request to send the API call to the service. 1629// the "output" return value is not valid until after Send returns without error. 1630// 1631// See DeleteRule for more information on using the DeleteRule 1632// API call, and error handling. 1633// 1634// This method is useful when you want to inject custom logic or configuration 1635// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1636// 1637// 1638// // Example sending a request using the DeleteRuleRequest method. 1639// req, resp := client.DeleteRuleRequest(params) 1640// 1641// err := req.Send() 1642// if err == nil { // resp is now filled 1643// fmt.Println(resp) 1644// } 1645// 1646// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRule 1647func (c *WAF) DeleteRuleRequest(input *DeleteRuleInput) (req *request.Request, output *DeleteRuleOutput) { 1648 op := &request.Operation{ 1649 Name: opDeleteRule, 1650 HTTPMethod: "POST", 1651 HTTPPath: "/", 1652 } 1653 1654 if input == nil { 1655 input = &DeleteRuleInput{} 1656 } 1657 1658 output = &DeleteRuleOutput{} 1659 req = c.newRequest(op, input, output) 1660 return 1661} 1662 1663// DeleteRule API operation for AWS WAF. 1664// 1665// Permanently deletes a Rule. You can't delete a Rule if it's still used in 1666// any WebACL objects or if it still includes any predicates, such as ByteMatchSet 1667// objects. 1668// 1669// If you just want to remove a Rule from a WebACL, use UpdateWebACL. 1670// 1671// To permanently delete a Rule from AWS WAF, perform the following steps: 1672// 1673// Update the Rule to remove predicates, if any. For more information, see UpdateRule. 1674// 1675// Use GetChangeToken to get the change token that you provide in the ChangeToken 1676// parameter of a DeleteRule request. 1677// 1678// Submit a DeleteRule request. 1679// 1680// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1681// with awserr.Error's Code and Message methods to get detailed information about 1682// the error. 1683// 1684// See the AWS API reference guide for AWS WAF's 1685// API operation DeleteRule for usage and error information. 1686// 1687// Returned Error Codes: 1688// * ErrCodeStaleDataException "StaleDataException" 1689// The operation failed because you tried to create, update, or delete an object 1690// by using a change token that has already been used. 1691// 1692// * ErrCodeInternalErrorException "InternalErrorException" 1693// The operation failed because of a system problem, even though the request 1694// was valid. Retry your request. 1695// 1696// * ErrCodeInvalidAccountException "InvalidAccountException" 1697// The operation failed because you tried to create, update, or delete an object 1698// by using an invalid account identifier. 1699// 1700// * ErrCodeNonexistentItemException "NonexistentItemException" 1701// The operation failed because the referenced object doesn't exist. 1702// 1703// * ErrCodeReferencedItemException "ReferencedItemException" 1704// The operation failed because you tried to delete an object that is still 1705// in use. For example: 1706// 1707// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 1708// 1709// * You tried to delete a Rule that is still referenced by a WebACL. 1710// 1711// * ErrCodeNonEmptyEntityException "NonEmptyEntityException" 1712// The operation failed because you tried to delete an object that isn't empty. 1713// For example: 1714// 1715// * You tried to delete a WebACL that still contains one or more Rule objects. 1716// 1717// * You tried to delete a Rule that still contains one or more ByteMatchSet 1718// objects or other predicates. 1719// 1720// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple 1721// objects. 1722// 1723// * You tried to delete an IPSet that references one or more IP addresses. 1724// 1725// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRule 1726func (c *WAF) DeleteRule(input *DeleteRuleInput) (*DeleteRuleOutput, error) { 1727 req, out := c.DeleteRuleRequest(input) 1728 return out, req.Send() 1729} 1730 1731// DeleteRuleWithContext is the same as DeleteRule with the addition of 1732// the ability to pass a context and additional request options. 1733// 1734// See DeleteRule for details on how to use this API operation. 1735// 1736// The context must be non-nil and will be used for request cancellation. If 1737// the context is nil a panic will occur. In the future the SDK may create 1738// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1739// for more information on using Contexts. 1740func (c *WAF) DeleteRuleWithContext(ctx aws.Context, input *DeleteRuleInput, opts ...request.Option) (*DeleteRuleOutput, error) { 1741 req, out := c.DeleteRuleRequest(input) 1742 req.SetContext(ctx) 1743 req.ApplyOptions(opts...) 1744 return out, req.Send() 1745} 1746 1747const opDeleteSizeConstraintSet = "DeleteSizeConstraintSet" 1748 1749// DeleteSizeConstraintSetRequest generates a "aws/request.Request" representing the 1750// client's request for the DeleteSizeConstraintSet operation. The "output" return 1751// value will be populated with the request's response once the request complets 1752// successfuly. 1753// 1754// Use "Send" method on the returned Request to send the API call to the service. 1755// the "output" return value is not valid until after Send returns without error. 1756// 1757// See DeleteSizeConstraintSet for more information on using the DeleteSizeConstraintSet 1758// API call, and error handling. 1759// 1760// This method is useful when you want to inject custom logic or configuration 1761// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1762// 1763// 1764// // Example sending a request using the DeleteSizeConstraintSetRequest method. 1765// req, resp := client.DeleteSizeConstraintSetRequest(params) 1766// 1767// err := req.Send() 1768// if err == nil { // resp is now filled 1769// fmt.Println(resp) 1770// } 1771// 1772// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSizeConstraintSet 1773func (c *WAF) DeleteSizeConstraintSetRequest(input *DeleteSizeConstraintSetInput) (req *request.Request, output *DeleteSizeConstraintSetOutput) { 1774 op := &request.Operation{ 1775 Name: opDeleteSizeConstraintSet, 1776 HTTPMethod: "POST", 1777 HTTPPath: "/", 1778 } 1779 1780 if input == nil { 1781 input = &DeleteSizeConstraintSetInput{} 1782 } 1783 1784 output = &DeleteSizeConstraintSetOutput{} 1785 req = c.newRequest(op, input, output) 1786 return 1787} 1788 1789// DeleteSizeConstraintSet API operation for AWS WAF. 1790// 1791// Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet 1792// if it's still used in any Rules or if it still includes any SizeConstraint 1793// objects (any filters). 1794// 1795// If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule. 1796// 1797// To permanently delete a SizeConstraintSet, perform the following steps: 1798// 1799// Update the SizeConstraintSet to remove filters, if any. For more information, 1800// see UpdateSizeConstraintSet. 1801// 1802// Use GetChangeToken to get the change token that you provide in the ChangeToken 1803// parameter of a DeleteSizeConstraintSet request. 1804// 1805// Submit a DeleteSizeConstraintSet request. 1806// 1807// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1808// with awserr.Error's Code and Message methods to get detailed information about 1809// the error. 1810// 1811// See the AWS API reference guide for AWS WAF's 1812// API operation DeleteSizeConstraintSet for usage and error information. 1813// 1814// Returned Error Codes: 1815// * ErrCodeStaleDataException "StaleDataException" 1816// The operation failed because you tried to create, update, or delete an object 1817// by using a change token that has already been used. 1818// 1819// * ErrCodeInternalErrorException "InternalErrorException" 1820// The operation failed because of a system problem, even though the request 1821// was valid. Retry your request. 1822// 1823// * ErrCodeInvalidAccountException "InvalidAccountException" 1824// The operation failed because you tried to create, update, or delete an object 1825// by using an invalid account identifier. 1826// 1827// * ErrCodeNonexistentItemException "NonexistentItemException" 1828// The operation failed because the referenced object doesn't exist. 1829// 1830// * ErrCodeReferencedItemException "ReferencedItemException" 1831// The operation failed because you tried to delete an object that is still 1832// in use. For example: 1833// 1834// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 1835// 1836// * You tried to delete a Rule that is still referenced by a WebACL. 1837// 1838// * ErrCodeNonEmptyEntityException "NonEmptyEntityException" 1839// The operation failed because you tried to delete an object that isn't empty. 1840// For example: 1841// 1842// * You tried to delete a WebACL that still contains one or more Rule objects. 1843// 1844// * You tried to delete a Rule that still contains one or more ByteMatchSet 1845// objects or other predicates. 1846// 1847// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple 1848// objects. 1849// 1850// * You tried to delete an IPSet that references one or more IP addresses. 1851// 1852// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSizeConstraintSet 1853func (c *WAF) DeleteSizeConstraintSet(input *DeleteSizeConstraintSetInput) (*DeleteSizeConstraintSetOutput, error) { 1854 req, out := c.DeleteSizeConstraintSetRequest(input) 1855 return out, req.Send() 1856} 1857 1858// DeleteSizeConstraintSetWithContext is the same as DeleteSizeConstraintSet with the addition of 1859// the ability to pass a context and additional request options. 1860// 1861// See DeleteSizeConstraintSet for details on how to use this API operation. 1862// 1863// The context must be non-nil and will be used for request cancellation. If 1864// the context is nil a panic will occur. In the future the SDK may create 1865// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1866// for more information on using Contexts. 1867func (c *WAF) DeleteSizeConstraintSetWithContext(ctx aws.Context, input *DeleteSizeConstraintSetInput, opts ...request.Option) (*DeleteSizeConstraintSetOutput, error) { 1868 req, out := c.DeleteSizeConstraintSetRequest(input) 1869 req.SetContext(ctx) 1870 req.ApplyOptions(opts...) 1871 return out, req.Send() 1872} 1873 1874const opDeleteSqlInjectionMatchSet = "DeleteSqlInjectionMatchSet" 1875 1876// DeleteSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the 1877// client's request for the DeleteSqlInjectionMatchSet operation. The "output" return 1878// value will be populated with the request's response once the request complets 1879// successfuly. 1880// 1881// Use "Send" method on the returned Request to send the API call to the service. 1882// the "output" return value is not valid until after Send returns without error. 1883// 1884// See DeleteSqlInjectionMatchSet for more information on using the DeleteSqlInjectionMatchSet 1885// API call, and error handling. 1886// 1887// This method is useful when you want to inject custom logic or configuration 1888// into the SDK's request lifecycle. Such as custom headers, or retry logic. 1889// 1890// 1891// // Example sending a request using the DeleteSqlInjectionMatchSetRequest method. 1892// req, resp := client.DeleteSqlInjectionMatchSetRequest(params) 1893// 1894// err := req.Send() 1895// if err == nil { // resp is now filled 1896// fmt.Println(resp) 1897// } 1898// 1899// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSqlInjectionMatchSet 1900func (c *WAF) DeleteSqlInjectionMatchSetRequest(input *DeleteSqlInjectionMatchSetInput) (req *request.Request, output *DeleteSqlInjectionMatchSetOutput) { 1901 op := &request.Operation{ 1902 Name: opDeleteSqlInjectionMatchSet, 1903 HTTPMethod: "POST", 1904 HTTPPath: "/", 1905 } 1906 1907 if input == nil { 1908 input = &DeleteSqlInjectionMatchSetInput{} 1909 } 1910 1911 output = &DeleteSqlInjectionMatchSetOutput{} 1912 req = c.newRequest(op, input, output) 1913 return 1914} 1915 1916// DeleteSqlInjectionMatchSet API operation for AWS WAF. 1917// 1918// Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet 1919// if it's still used in any Rules or if it still contains any SqlInjectionMatchTuple 1920// objects. 1921// 1922// If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule. 1923// 1924// To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following 1925// steps: 1926// 1927// Update the SqlInjectionMatchSet to remove filters, if any. For more information, 1928// see UpdateSqlInjectionMatchSet. 1929// 1930// Use GetChangeToken to get the change token that you provide in the ChangeToken 1931// parameter of a DeleteSqlInjectionMatchSet request. 1932// 1933// Submit a DeleteSqlInjectionMatchSet request. 1934// 1935// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 1936// with awserr.Error's Code and Message methods to get detailed information about 1937// the error. 1938// 1939// See the AWS API reference guide for AWS WAF's 1940// API operation DeleteSqlInjectionMatchSet for usage and error information. 1941// 1942// Returned Error Codes: 1943// * ErrCodeInternalErrorException "InternalErrorException" 1944// The operation failed because of a system problem, even though the request 1945// was valid. Retry your request. 1946// 1947// * ErrCodeInvalidAccountException "InvalidAccountException" 1948// The operation failed because you tried to create, update, or delete an object 1949// by using an invalid account identifier. 1950// 1951// * ErrCodeNonexistentItemException "NonexistentItemException" 1952// The operation failed because the referenced object doesn't exist. 1953// 1954// * ErrCodeReferencedItemException "ReferencedItemException" 1955// The operation failed because you tried to delete an object that is still 1956// in use. For example: 1957// 1958// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 1959// 1960// * You tried to delete a Rule that is still referenced by a WebACL. 1961// 1962// * ErrCodeStaleDataException "StaleDataException" 1963// The operation failed because you tried to create, update, or delete an object 1964// by using a change token that has already been used. 1965// 1966// * ErrCodeNonEmptyEntityException "NonEmptyEntityException" 1967// The operation failed because you tried to delete an object that isn't empty. 1968// For example: 1969// 1970// * You tried to delete a WebACL that still contains one or more Rule objects. 1971// 1972// * You tried to delete a Rule that still contains one or more ByteMatchSet 1973// objects or other predicates. 1974// 1975// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple 1976// objects. 1977// 1978// * You tried to delete an IPSet that references one or more IP addresses. 1979// 1980// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSqlInjectionMatchSet 1981func (c *WAF) DeleteSqlInjectionMatchSet(input *DeleteSqlInjectionMatchSetInput) (*DeleteSqlInjectionMatchSetOutput, error) { 1982 req, out := c.DeleteSqlInjectionMatchSetRequest(input) 1983 return out, req.Send() 1984} 1985 1986// DeleteSqlInjectionMatchSetWithContext is the same as DeleteSqlInjectionMatchSet with the addition of 1987// the ability to pass a context and additional request options. 1988// 1989// See DeleteSqlInjectionMatchSet for details on how to use this API operation. 1990// 1991// The context must be non-nil and will be used for request cancellation. If 1992// the context is nil a panic will occur. In the future the SDK may create 1993// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 1994// for more information on using Contexts. 1995func (c *WAF) DeleteSqlInjectionMatchSetWithContext(ctx aws.Context, input *DeleteSqlInjectionMatchSetInput, opts ...request.Option) (*DeleteSqlInjectionMatchSetOutput, error) { 1996 req, out := c.DeleteSqlInjectionMatchSetRequest(input) 1997 req.SetContext(ctx) 1998 req.ApplyOptions(opts...) 1999 return out, req.Send() 2000} 2001 2002const opDeleteWebACL = "DeleteWebACL" 2003 2004// DeleteWebACLRequest generates a "aws/request.Request" representing the 2005// client's request for the DeleteWebACL operation. The "output" return 2006// value will be populated with the request's response once the request complets 2007// successfuly. 2008// 2009// Use "Send" method on the returned Request to send the API call to the service. 2010// the "output" return value is not valid until after Send returns without error. 2011// 2012// See DeleteWebACL for more information on using the DeleteWebACL 2013// API call, and error handling. 2014// 2015// This method is useful when you want to inject custom logic or configuration 2016// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2017// 2018// 2019// // Example sending a request using the DeleteWebACLRequest method. 2020// req, resp := client.DeleteWebACLRequest(params) 2021// 2022// err := req.Send() 2023// if err == nil { // resp is now filled 2024// fmt.Println(resp) 2025// } 2026// 2027// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteWebACL 2028func (c *WAF) DeleteWebACLRequest(input *DeleteWebACLInput) (req *request.Request, output *DeleteWebACLOutput) { 2029 op := &request.Operation{ 2030 Name: opDeleteWebACL, 2031 HTTPMethod: "POST", 2032 HTTPPath: "/", 2033 } 2034 2035 if input == nil { 2036 input = &DeleteWebACLInput{} 2037 } 2038 2039 output = &DeleteWebACLOutput{} 2040 req = c.newRequest(op, input, output) 2041 return 2042} 2043 2044// DeleteWebACL API operation for AWS WAF. 2045// 2046// Permanently deletes a WebACL. You can't delete a WebACL if it still contains 2047// any Rules. 2048// 2049// To delete a WebACL, perform the following steps: 2050// 2051// Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL. 2052// 2053// Use GetChangeToken to get the change token that you provide in the ChangeToken 2054// parameter of a DeleteWebACL request. 2055// 2056// Submit a DeleteWebACL request. 2057// 2058// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2059// with awserr.Error's Code and Message methods to get detailed information about 2060// the error. 2061// 2062// See the AWS API reference guide for AWS WAF's 2063// API operation DeleteWebACL for usage and error information. 2064// 2065// Returned Error Codes: 2066// * ErrCodeStaleDataException "StaleDataException" 2067// The operation failed because you tried to create, update, or delete an object 2068// by using a change token that has already been used. 2069// 2070// * ErrCodeInternalErrorException "InternalErrorException" 2071// The operation failed because of a system problem, even though the request 2072// was valid. Retry your request. 2073// 2074// * ErrCodeInvalidAccountException "InvalidAccountException" 2075// The operation failed because you tried to create, update, or delete an object 2076// by using an invalid account identifier. 2077// 2078// * ErrCodeNonexistentItemException "NonexistentItemException" 2079// The operation failed because the referenced object doesn't exist. 2080// 2081// * ErrCodeReferencedItemException "ReferencedItemException" 2082// The operation failed because you tried to delete an object that is still 2083// in use. For example: 2084// 2085// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 2086// 2087// * You tried to delete a Rule that is still referenced by a WebACL. 2088// 2089// * ErrCodeNonEmptyEntityException "NonEmptyEntityException" 2090// The operation failed because you tried to delete an object that isn't empty. 2091// For example: 2092// 2093// * You tried to delete a WebACL that still contains one or more Rule objects. 2094// 2095// * You tried to delete a Rule that still contains one or more ByteMatchSet 2096// objects or other predicates. 2097// 2098// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple 2099// objects. 2100// 2101// * You tried to delete an IPSet that references one or more IP addresses. 2102// 2103// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteWebACL 2104func (c *WAF) DeleteWebACL(input *DeleteWebACLInput) (*DeleteWebACLOutput, error) { 2105 req, out := c.DeleteWebACLRequest(input) 2106 return out, req.Send() 2107} 2108 2109// DeleteWebACLWithContext is the same as DeleteWebACL with the addition of 2110// the ability to pass a context and additional request options. 2111// 2112// See DeleteWebACL for details on how to use this API operation. 2113// 2114// The context must be non-nil and will be used for request cancellation. If 2115// the context is nil a panic will occur. In the future the SDK may create 2116// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2117// for more information on using Contexts. 2118func (c *WAF) DeleteWebACLWithContext(ctx aws.Context, input *DeleteWebACLInput, opts ...request.Option) (*DeleteWebACLOutput, error) { 2119 req, out := c.DeleteWebACLRequest(input) 2120 req.SetContext(ctx) 2121 req.ApplyOptions(opts...) 2122 return out, req.Send() 2123} 2124 2125const opDeleteXssMatchSet = "DeleteXssMatchSet" 2126 2127// DeleteXssMatchSetRequest generates a "aws/request.Request" representing the 2128// client's request for the DeleteXssMatchSet operation. The "output" return 2129// value will be populated with the request's response once the request complets 2130// successfuly. 2131// 2132// Use "Send" method on the returned Request to send the API call to the service. 2133// the "output" return value is not valid until after Send returns without error. 2134// 2135// See DeleteXssMatchSet for more information on using the DeleteXssMatchSet 2136// API call, and error handling. 2137// 2138// This method is useful when you want to inject custom logic or configuration 2139// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2140// 2141// 2142// // Example sending a request using the DeleteXssMatchSetRequest method. 2143// req, resp := client.DeleteXssMatchSetRequest(params) 2144// 2145// err := req.Send() 2146// if err == nil { // resp is now filled 2147// fmt.Println(resp) 2148// } 2149// 2150// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteXssMatchSet 2151func (c *WAF) DeleteXssMatchSetRequest(input *DeleteXssMatchSetInput) (req *request.Request, output *DeleteXssMatchSetOutput) { 2152 op := &request.Operation{ 2153 Name: opDeleteXssMatchSet, 2154 HTTPMethod: "POST", 2155 HTTPPath: "/", 2156 } 2157 2158 if input == nil { 2159 input = &DeleteXssMatchSetInput{} 2160 } 2161 2162 output = &DeleteXssMatchSetOutput{} 2163 req = c.newRequest(op, input, output) 2164 return 2165} 2166 2167// DeleteXssMatchSet API operation for AWS WAF. 2168// 2169// Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's 2170// still used in any Rules or if it still contains any XssMatchTuple objects. 2171// 2172// If you just want to remove an XssMatchSet from a Rule, use UpdateRule. 2173// 2174// To permanently delete an XssMatchSet from AWS WAF, perform the following 2175// steps: 2176// 2177// Update the XssMatchSet to remove filters, if any. For more information, see 2178// UpdateXssMatchSet. 2179// 2180// Use GetChangeToken to get the change token that you provide in the ChangeToken 2181// parameter of a DeleteXssMatchSet request. 2182// 2183// Submit a DeleteXssMatchSet request. 2184// 2185// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2186// with awserr.Error's Code and Message methods to get detailed information about 2187// the error. 2188// 2189// See the AWS API reference guide for AWS WAF's 2190// API operation DeleteXssMatchSet for usage and error information. 2191// 2192// Returned Error Codes: 2193// * ErrCodeInternalErrorException "InternalErrorException" 2194// The operation failed because of a system problem, even though the request 2195// was valid. Retry your request. 2196// 2197// * ErrCodeInvalidAccountException "InvalidAccountException" 2198// The operation failed because you tried to create, update, or delete an object 2199// by using an invalid account identifier. 2200// 2201// * ErrCodeNonexistentItemException "NonexistentItemException" 2202// The operation failed because the referenced object doesn't exist. 2203// 2204// * ErrCodeReferencedItemException "ReferencedItemException" 2205// The operation failed because you tried to delete an object that is still 2206// in use. For example: 2207// 2208// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 2209// 2210// * You tried to delete a Rule that is still referenced by a WebACL. 2211// 2212// * ErrCodeStaleDataException "StaleDataException" 2213// The operation failed because you tried to create, update, or delete an object 2214// by using a change token that has already been used. 2215// 2216// * ErrCodeNonEmptyEntityException "NonEmptyEntityException" 2217// The operation failed because you tried to delete an object that isn't empty. 2218// For example: 2219// 2220// * You tried to delete a WebACL that still contains one or more Rule objects. 2221// 2222// * You tried to delete a Rule that still contains one or more ByteMatchSet 2223// objects or other predicates. 2224// 2225// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple 2226// objects. 2227// 2228// * You tried to delete an IPSet that references one or more IP addresses. 2229// 2230// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteXssMatchSet 2231func (c *WAF) DeleteXssMatchSet(input *DeleteXssMatchSetInput) (*DeleteXssMatchSetOutput, error) { 2232 req, out := c.DeleteXssMatchSetRequest(input) 2233 return out, req.Send() 2234} 2235 2236// DeleteXssMatchSetWithContext is the same as DeleteXssMatchSet with the addition of 2237// the ability to pass a context and additional request options. 2238// 2239// See DeleteXssMatchSet for details on how to use this API operation. 2240// 2241// The context must be non-nil and will be used for request cancellation. If 2242// the context is nil a panic will occur. In the future the SDK may create 2243// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2244// for more information on using Contexts. 2245func (c *WAF) DeleteXssMatchSetWithContext(ctx aws.Context, input *DeleteXssMatchSetInput, opts ...request.Option) (*DeleteXssMatchSetOutput, error) { 2246 req, out := c.DeleteXssMatchSetRequest(input) 2247 req.SetContext(ctx) 2248 req.ApplyOptions(opts...) 2249 return out, req.Send() 2250} 2251 2252const opGetByteMatchSet = "GetByteMatchSet" 2253 2254// GetByteMatchSetRequest generates a "aws/request.Request" representing the 2255// client's request for the GetByteMatchSet operation. The "output" return 2256// value will be populated with the request's response once the request complets 2257// successfuly. 2258// 2259// Use "Send" method on the returned Request to send the API call to the service. 2260// the "output" return value is not valid until after Send returns without error. 2261// 2262// See GetByteMatchSet for more information on using the GetByteMatchSet 2263// API call, and error handling. 2264// 2265// This method is useful when you want to inject custom logic or configuration 2266// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2267// 2268// 2269// // Example sending a request using the GetByteMatchSetRequest method. 2270// req, resp := client.GetByteMatchSetRequest(params) 2271// 2272// err := req.Send() 2273// if err == nil { // resp is now filled 2274// fmt.Println(resp) 2275// } 2276// 2277// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetByteMatchSet 2278func (c *WAF) GetByteMatchSetRequest(input *GetByteMatchSetInput) (req *request.Request, output *GetByteMatchSetOutput) { 2279 op := &request.Operation{ 2280 Name: opGetByteMatchSet, 2281 HTTPMethod: "POST", 2282 HTTPPath: "/", 2283 } 2284 2285 if input == nil { 2286 input = &GetByteMatchSetInput{} 2287 } 2288 2289 output = &GetByteMatchSetOutput{} 2290 req = c.newRequest(op, input, output) 2291 return 2292} 2293 2294// GetByteMatchSet API operation for AWS WAF. 2295// 2296// Returns the ByteMatchSet specified by ByteMatchSetId. 2297// 2298// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2299// with awserr.Error's Code and Message methods to get detailed information about 2300// the error. 2301// 2302// See the AWS API reference guide for AWS WAF's 2303// API operation GetByteMatchSet for usage and error information. 2304// 2305// Returned Error Codes: 2306// * ErrCodeInternalErrorException "InternalErrorException" 2307// The operation failed because of a system problem, even though the request 2308// was valid. Retry your request. 2309// 2310// * ErrCodeInvalidAccountException "InvalidAccountException" 2311// The operation failed because you tried to create, update, or delete an object 2312// by using an invalid account identifier. 2313// 2314// * ErrCodeNonexistentItemException "NonexistentItemException" 2315// The operation failed because the referenced object doesn't exist. 2316// 2317// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetByteMatchSet 2318func (c *WAF) GetByteMatchSet(input *GetByteMatchSetInput) (*GetByteMatchSetOutput, error) { 2319 req, out := c.GetByteMatchSetRequest(input) 2320 return out, req.Send() 2321} 2322 2323// GetByteMatchSetWithContext is the same as GetByteMatchSet with the addition of 2324// the ability to pass a context and additional request options. 2325// 2326// See GetByteMatchSet for details on how to use this API operation. 2327// 2328// The context must be non-nil and will be used for request cancellation. If 2329// the context is nil a panic will occur. In the future the SDK may create 2330// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2331// for more information on using Contexts. 2332func (c *WAF) GetByteMatchSetWithContext(ctx aws.Context, input *GetByteMatchSetInput, opts ...request.Option) (*GetByteMatchSetOutput, error) { 2333 req, out := c.GetByteMatchSetRequest(input) 2334 req.SetContext(ctx) 2335 req.ApplyOptions(opts...) 2336 return out, req.Send() 2337} 2338 2339const opGetChangeToken = "GetChangeToken" 2340 2341// GetChangeTokenRequest generates a "aws/request.Request" representing the 2342// client's request for the GetChangeToken operation. The "output" return 2343// value will be populated with the request's response once the request complets 2344// successfuly. 2345// 2346// Use "Send" method on the returned Request to send the API call to the service. 2347// the "output" return value is not valid until after Send returns without error. 2348// 2349// See GetChangeToken for more information on using the GetChangeToken 2350// API call, and error handling. 2351// 2352// This method is useful when you want to inject custom logic or configuration 2353// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2354// 2355// 2356// // Example sending a request using the GetChangeTokenRequest method. 2357// req, resp := client.GetChangeTokenRequest(params) 2358// 2359// err := req.Send() 2360// if err == nil { // resp is now filled 2361// fmt.Println(resp) 2362// } 2363// 2364// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeToken 2365func (c *WAF) GetChangeTokenRequest(input *GetChangeTokenInput) (req *request.Request, output *GetChangeTokenOutput) { 2366 op := &request.Operation{ 2367 Name: opGetChangeToken, 2368 HTTPMethod: "POST", 2369 HTTPPath: "/", 2370 } 2371 2372 if input == nil { 2373 input = &GetChangeTokenInput{} 2374 } 2375 2376 output = &GetChangeTokenOutput{} 2377 req = c.newRequest(op, input, output) 2378 return 2379} 2380 2381// GetChangeToken API operation for AWS WAF. 2382// 2383// When you want to create, update, or delete AWS WAF objects, get a change 2384// token and include the change token in the create, update, or delete request. 2385// Change tokens ensure that your application doesn't submit conflicting requests 2386// to AWS WAF. 2387// 2388// Each create, update, or delete request must use a unique change token. If 2389// your application submits a GetChangeToken request and then submits a second 2390// GetChangeToken request before submitting a create, update, or delete request, 2391// the second GetChangeToken request returns the same value as the first GetChangeToken 2392// request. 2393// 2394// When you use a change token in a create, update, or delete request, the status 2395// of the change token changes to PENDING, which indicates that AWS WAF is propagating 2396// the change to all AWS WAF servers. Use GetChangeTokenStatus to determine 2397// the status of your change token. 2398// 2399// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2400// with awserr.Error's Code and Message methods to get detailed information about 2401// the error. 2402// 2403// See the AWS API reference guide for AWS WAF's 2404// API operation GetChangeToken for usage and error information. 2405// 2406// Returned Error Codes: 2407// * ErrCodeInternalErrorException "InternalErrorException" 2408// The operation failed because of a system problem, even though the request 2409// was valid. Retry your request. 2410// 2411// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeToken 2412func (c *WAF) GetChangeToken(input *GetChangeTokenInput) (*GetChangeTokenOutput, error) { 2413 req, out := c.GetChangeTokenRequest(input) 2414 return out, req.Send() 2415} 2416 2417// GetChangeTokenWithContext is the same as GetChangeToken with the addition of 2418// the ability to pass a context and additional request options. 2419// 2420// See GetChangeToken for details on how to use this API operation. 2421// 2422// The context must be non-nil and will be used for request cancellation. If 2423// the context is nil a panic will occur. In the future the SDK may create 2424// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2425// for more information on using Contexts. 2426func (c *WAF) GetChangeTokenWithContext(ctx aws.Context, input *GetChangeTokenInput, opts ...request.Option) (*GetChangeTokenOutput, error) { 2427 req, out := c.GetChangeTokenRequest(input) 2428 req.SetContext(ctx) 2429 req.ApplyOptions(opts...) 2430 return out, req.Send() 2431} 2432 2433const opGetChangeTokenStatus = "GetChangeTokenStatus" 2434 2435// GetChangeTokenStatusRequest generates a "aws/request.Request" representing the 2436// client's request for the GetChangeTokenStatus operation. The "output" return 2437// value will be populated with the request's response once the request complets 2438// successfuly. 2439// 2440// Use "Send" method on the returned Request to send the API call to the service. 2441// the "output" return value is not valid until after Send returns without error. 2442// 2443// See GetChangeTokenStatus for more information on using the GetChangeTokenStatus 2444// API call, and error handling. 2445// 2446// This method is useful when you want to inject custom logic or configuration 2447// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2448// 2449// 2450// // Example sending a request using the GetChangeTokenStatusRequest method. 2451// req, resp := client.GetChangeTokenStatusRequest(params) 2452// 2453// err := req.Send() 2454// if err == nil { // resp is now filled 2455// fmt.Println(resp) 2456// } 2457// 2458// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenStatus 2459func (c *WAF) GetChangeTokenStatusRequest(input *GetChangeTokenStatusInput) (req *request.Request, output *GetChangeTokenStatusOutput) { 2460 op := &request.Operation{ 2461 Name: opGetChangeTokenStatus, 2462 HTTPMethod: "POST", 2463 HTTPPath: "/", 2464 } 2465 2466 if input == nil { 2467 input = &GetChangeTokenStatusInput{} 2468 } 2469 2470 output = &GetChangeTokenStatusOutput{} 2471 req = c.newRequest(op, input, output) 2472 return 2473} 2474 2475// GetChangeTokenStatus API operation for AWS WAF. 2476// 2477// Returns the status of a ChangeToken that you got by calling GetChangeToken. 2478// ChangeTokenStatus is one of the following values: 2479// 2480// * PROVISIONED: You requested the change token by calling GetChangeToken, 2481// but you haven't used it yet in a call to create, update, or delete an 2482// AWS WAF object. 2483// 2484// * PENDING: AWS WAF is propagating the create, update, or delete request 2485// to all AWS WAF servers. 2486// 2487// * IN_SYNC: Propagation is complete. 2488// 2489// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2490// with awserr.Error's Code and Message methods to get detailed information about 2491// the error. 2492// 2493// See the AWS API reference guide for AWS WAF's 2494// API operation GetChangeTokenStatus for usage and error information. 2495// 2496// Returned Error Codes: 2497// * ErrCodeNonexistentItemException "NonexistentItemException" 2498// The operation failed because the referenced object doesn't exist. 2499// 2500// * ErrCodeInternalErrorException "InternalErrorException" 2501// The operation failed because of a system problem, even though the request 2502// was valid. Retry your request. 2503// 2504// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenStatus 2505func (c *WAF) GetChangeTokenStatus(input *GetChangeTokenStatusInput) (*GetChangeTokenStatusOutput, error) { 2506 req, out := c.GetChangeTokenStatusRequest(input) 2507 return out, req.Send() 2508} 2509 2510// GetChangeTokenStatusWithContext is the same as GetChangeTokenStatus with the addition of 2511// the ability to pass a context and additional request options. 2512// 2513// See GetChangeTokenStatus for details on how to use this API operation. 2514// 2515// The context must be non-nil and will be used for request cancellation. If 2516// the context is nil a panic will occur. In the future the SDK may create 2517// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2518// for more information on using Contexts. 2519func (c *WAF) GetChangeTokenStatusWithContext(ctx aws.Context, input *GetChangeTokenStatusInput, opts ...request.Option) (*GetChangeTokenStatusOutput, error) { 2520 req, out := c.GetChangeTokenStatusRequest(input) 2521 req.SetContext(ctx) 2522 req.ApplyOptions(opts...) 2523 return out, req.Send() 2524} 2525 2526const opGetIPSet = "GetIPSet" 2527 2528// GetIPSetRequest generates a "aws/request.Request" representing the 2529// client's request for the GetIPSet operation. The "output" return 2530// value will be populated with the request's response once the request complets 2531// successfuly. 2532// 2533// Use "Send" method on the returned Request to send the API call to the service. 2534// the "output" return value is not valid until after Send returns without error. 2535// 2536// See GetIPSet for more information on using the GetIPSet 2537// API call, and error handling. 2538// 2539// This method is useful when you want to inject custom logic or configuration 2540// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2541// 2542// 2543// // Example sending a request using the GetIPSetRequest method. 2544// req, resp := client.GetIPSetRequest(params) 2545// 2546// err := req.Send() 2547// if err == nil { // resp is now filled 2548// fmt.Println(resp) 2549// } 2550// 2551// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetIPSet 2552func (c *WAF) GetIPSetRequest(input *GetIPSetInput) (req *request.Request, output *GetIPSetOutput) { 2553 op := &request.Operation{ 2554 Name: opGetIPSet, 2555 HTTPMethod: "POST", 2556 HTTPPath: "/", 2557 } 2558 2559 if input == nil { 2560 input = &GetIPSetInput{} 2561 } 2562 2563 output = &GetIPSetOutput{} 2564 req = c.newRequest(op, input, output) 2565 return 2566} 2567 2568// GetIPSet API operation for AWS WAF. 2569// 2570// Returns the IPSet that is specified by IPSetId. 2571// 2572// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2573// with awserr.Error's Code and Message methods to get detailed information about 2574// the error. 2575// 2576// See the AWS API reference guide for AWS WAF's 2577// API operation GetIPSet for usage and error information. 2578// 2579// Returned Error Codes: 2580// * ErrCodeInternalErrorException "InternalErrorException" 2581// The operation failed because of a system problem, even though the request 2582// was valid. Retry your request. 2583// 2584// * ErrCodeInvalidAccountException "InvalidAccountException" 2585// The operation failed because you tried to create, update, or delete an object 2586// by using an invalid account identifier. 2587// 2588// * ErrCodeNonexistentItemException "NonexistentItemException" 2589// The operation failed because the referenced object doesn't exist. 2590// 2591// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetIPSet 2592func (c *WAF) GetIPSet(input *GetIPSetInput) (*GetIPSetOutput, error) { 2593 req, out := c.GetIPSetRequest(input) 2594 return out, req.Send() 2595} 2596 2597// GetIPSetWithContext is the same as GetIPSet with the addition of 2598// the ability to pass a context and additional request options. 2599// 2600// See GetIPSet for details on how to use this API operation. 2601// 2602// The context must be non-nil and will be used for request cancellation. If 2603// the context is nil a panic will occur. In the future the SDK may create 2604// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2605// for more information on using Contexts. 2606func (c *WAF) GetIPSetWithContext(ctx aws.Context, input *GetIPSetInput, opts ...request.Option) (*GetIPSetOutput, error) { 2607 req, out := c.GetIPSetRequest(input) 2608 req.SetContext(ctx) 2609 req.ApplyOptions(opts...) 2610 return out, req.Send() 2611} 2612 2613const opGetRateBasedRule = "GetRateBasedRule" 2614 2615// GetRateBasedRuleRequest generates a "aws/request.Request" representing the 2616// client's request for the GetRateBasedRule operation. The "output" return 2617// value will be populated with the request's response once the request complets 2618// successfuly. 2619// 2620// Use "Send" method on the returned Request to send the API call to the service. 2621// the "output" return value is not valid until after Send returns without error. 2622// 2623// See GetRateBasedRule for more information on using the GetRateBasedRule 2624// API call, and error handling. 2625// 2626// This method is useful when you want to inject custom logic or configuration 2627// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2628// 2629// 2630// // Example sending a request using the GetRateBasedRuleRequest method. 2631// req, resp := client.GetRateBasedRuleRequest(params) 2632// 2633// err := req.Send() 2634// if err == nil { // resp is now filled 2635// fmt.Println(resp) 2636// } 2637// 2638// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRule 2639func (c *WAF) GetRateBasedRuleRequest(input *GetRateBasedRuleInput) (req *request.Request, output *GetRateBasedRuleOutput) { 2640 op := &request.Operation{ 2641 Name: opGetRateBasedRule, 2642 HTTPMethod: "POST", 2643 HTTPPath: "/", 2644 } 2645 2646 if input == nil { 2647 input = &GetRateBasedRuleInput{} 2648 } 2649 2650 output = &GetRateBasedRuleOutput{} 2651 req = c.newRequest(op, input, output) 2652 return 2653} 2654 2655// GetRateBasedRule API operation for AWS WAF. 2656// 2657// Returns the RateBasedRule that is specified by the RuleId that you included 2658// in the GetRateBasedRule request. 2659// 2660// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2661// with awserr.Error's Code and Message methods to get detailed information about 2662// the error. 2663// 2664// See the AWS API reference guide for AWS WAF's 2665// API operation GetRateBasedRule for usage and error information. 2666// 2667// Returned Error Codes: 2668// * ErrCodeInternalErrorException "InternalErrorException" 2669// The operation failed because of a system problem, even though the request 2670// was valid. Retry your request. 2671// 2672// * ErrCodeInvalidAccountException "InvalidAccountException" 2673// The operation failed because you tried to create, update, or delete an object 2674// by using an invalid account identifier. 2675// 2676// * ErrCodeNonexistentItemException "NonexistentItemException" 2677// The operation failed because the referenced object doesn't exist. 2678// 2679// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRule 2680func (c *WAF) GetRateBasedRule(input *GetRateBasedRuleInput) (*GetRateBasedRuleOutput, error) { 2681 req, out := c.GetRateBasedRuleRequest(input) 2682 return out, req.Send() 2683} 2684 2685// GetRateBasedRuleWithContext is the same as GetRateBasedRule with the addition of 2686// the ability to pass a context and additional request options. 2687// 2688// See GetRateBasedRule for details on how to use this API operation. 2689// 2690// The context must be non-nil and will be used for request cancellation. If 2691// the context is nil a panic will occur. In the future the SDK may create 2692// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2693// for more information on using Contexts. 2694func (c *WAF) GetRateBasedRuleWithContext(ctx aws.Context, input *GetRateBasedRuleInput, opts ...request.Option) (*GetRateBasedRuleOutput, error) { 2695 req, out := c.GetRateBasedRuleRequest(input) 2696 req.SetContext(ctx) 2697 req.ApplyOptions(opts...) 2698 return out, req.Send() 2699} 2700 2701const opGetRateBasedRuleManagedKeys = "GetRateBasedRuleManagedKeys" 2702 2703// GetRateBasedRuleManagedKeysRequest generates a "aws/request.Request" representing the 2704// client's request for the GetRateBasedRuleManagedKeys operation. The "output" return 2705// value will be populated with the request's response once the request complets 2706// successfuly. 2707// 2708// Use "Send" method on the returned Request to send the API call to the service. 2709// the "output" return value is not valid until after Send returns without error. 2710// 2711// See GetRateBasedRuleManagedKeys for more information on using the GetRateBasedRuleManagedKeys 2712// API call, and error handling. 2713// 2714// This method is useful when you want to inject custom logic or configuration 2715// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2716// 2717// 2718// // Example sending a request using the GetRateBasedRuleManagedKeysRequest method. 2719// req, resp := client.GetRateBasedRuleManagedKeysRequest(params) 2720// 2721// err := req.Send() 2722// if err == nil { // resp is now filled 2723// fmt.Println(resp) 2724// } 2725// 2726// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeys 2727func (c *WAF) GetRateBasedRuleManagedKeysRequest(input *GetRateBasedRuleManagedKeysInput) (req *request.Request, output *GetRateBasedRuleManagedKeysOutput) { 2728 op := &request.Operation{ 2729 Name: opGetRateBasedRuleManagedKeys, 2730 HTTPMethod: "POST", 2731 HTTPPath: "/", 2732 } 2733 2734 if input == nil { 2735 input = &GetRateBasedRuleManagedKeysInput{} 2736 } 2737 2738 output = &GetRateBasedRuleManagedKeysOutput{} 2739 req = c.newRequest(op, input, output) 2740 return 2741} 2742 2743// GetRateBasedRuleManagedKeys API operation for AWS WAF. 2744// 2745// Returns an array of IP addresses currently being blocked by the RateBasedRule 2746// that is specified by the RuleId. The maximum number of managed keys that 2747// will be blocked is 10,000. If more than 10,000 addresses exceed the rate 2748// limit, the 10,000 addresses with the highest rates will be blocked. 2749// 2750// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2751// with awserr.Error's Code and Message methods to get detailed information about 2752// the error. 2753// 2754// See the AWS API reference guide for AWS WAF's 2755// API operation GetRateBasedRuleManagedKeys for usage and error information. 2756// 2757// Returned Error Codes: 2758// * ErrCodeInternalErrorException "InternalErrorException" 2759// The operation failed because of a system problem, even though the request 2760// was valid. Retry your request. 2761// 2762// * ErrCodeInvalidAccountException "InvalidAccountException" 2763// The operation failed because you tried to create, update, or delete an object 2764// by using an invalid account identifier. 2765// 2766// * ErrCodeNonexistentItemException "NonexistentItemException" 2767// The operation failed because the referenced object doesn't exist. 2768// 2769// * ErrCodeInvalidParameterException "InvalidParameterException" 2770// The operation failed because AWS WAF didn't recognize a parameter in the 2771// request. For example: 2772// 2773// * You specified an invalid parameter name. 2774// 2775// * You specified an invalid value. 2776// 2777// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 2778// using an action other than INSERT or DELETE. 2779// 2780// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 2781// BLOCK, or COUNT. 2782// 2783// * You tried to create a RateBasedRule with a RateKey value other than 2784// IP. 2785// 2786// * You tried to update a WebACL with a WafActionType other than ALLOW, 2787// BLOCK, or COUNT. 2788// 2789// * You tried to update a ByteMatchSet with a FieldToMatchType other than 2790// HEADER, QUERY_STRING, or URI. 2791// 2792// * You tried to update a ByteMatchSet with a Field of HEADER but no value 2793// for Data. 2794// 2795// * Your request references an ARN that is malformed, or corresponds to 2796// a resource with which a web ACL cannot be associated. 2797// 2798// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeys 2799func (c *WAF) GetRateBasedRuleManagedKeys(input *GetRateBasedRuleManagedKeysInput) (*GetRateBasedRuleManagedKeysOutput, error) { 2800 req, out := c.GetRateBasedRuleManagedKeysRequest(input) 2801 return out, req.Send() 2802} 2803 2804// GetRateBasedRuleManagedKeysWithContext is the same as GetRateBasedRuleManagedKeys with the addition of 2805// the ability to pass a context and additional request options. 2806// 2807// See GetRateBasedRuleManagedKeys for details on how to use this API operation. 2808// 2809// The context must be non-nil and will be used for request cancellation. If 2810// the context is nil a panic will occur. In the future the SDK may create 2811// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2812// for more information on using Contexts. 2813func (c *WAF) GetRateBasedRuleManagedKeysWithContext(ctx aws.Context, input *GetRateBasedRuleManagedKeysInput, opts ...request.Option) (*GetRateBasedRuleManagedKeysOutput, error) { 2814 req, out := c.GetRateBasedRuleManagedKeysRequest(input) 2815 req.SetContext(ctx) 2816 req.ApplyOptions(opts...) 2817 return out, req.Send() 2818} 2819 2820const opGetRule = "GetRule" 2821 2822// GetRuleRequest generates a "aws/request.Request" representing the 2823// client's request for the GetRule operation. The "output" return 2824// value will be populated with the request's response once the request complets 2825// successfuly. 2826// 2827// Use "Send" method on the returned Request to send the API call to the service. 2828// the "output" return value is not valid until after Send returns without error. 2829// 2830// See GetRule for more information on using the GetRule 2831// API call, and error handling. 2832// 2833// This method is useful when you want to inject custom logic or configuration 2834// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2835// 2836// 2837// // Example sending a request using the GetRuleRequest method. 2838// req, resp := client.GetRuleRequest(params) 2839// 2840// err := req.Send() 2841// if err == nil { // resp is now filled 2842// fmt.Println(resp) 2843// } 2844// 2845// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRule 2846func (c *WAF) GetRuleRequest(input *GetRuleInput) (req *request.Request, output *GetRuleOutput) { 2847 op := &request.Operation{ 2848 Name: opGetRule, 2849 HTTPMethod: "POST", 2850 HTTPPath: "/", 2851 } 2852 2853 if input == nil { 2854 input = &GetRuleInput{} 2855 } 2856 2857 output = &GetRuleOutput{} 2858 req = c.newRequest(op, input, output) 2859 return 2860} 2861 2862// GetRule API operation for AWS WAF. 2863// 2864// Returns the Rule that is specified by the RuleId that you included in the 2865// GetRule request. 2866// 2867// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2868// with awserr.Error's Code and Message methods to get detailed information about 2869// the error. 2870// 2871// See the AWS API reference guide for AWS WAF's 2872// API operation GetRule for usage and error information. 2873// 2874// Returned Error Codes: 2875// * ErrCodeInternalErrorException "InternalErrorException" 2876// The operation failed because of a system problem, even though the request 2877// was valid. Retry your request. 2878// 2879// * ErrCodeInvalidAccountException "InvalidAccountException" 2880// The operation failed because you tried to create, update, or delete an object 2881// by using an invalid account identifier. 2882// 2883// * ErrCodeNonexistentItemException "NonexistentItemException" 2884// The operation failed because the referenced object doesn't exist. 2885// 2886// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRule 2887func (c *WAF) GetRule(input *GetRuleInput) (*GetRuleOutput, error) { 2888 req, out := c.GetRuleRequest(input) 2889 return out, req.Send() 2890} 2891 2892// GetRuleWithContext is the same as GetRule with the addition of 2893// the ability to pass a context and additional request options. 2894// 2895// See GetRule for details on how to use this API operation. 2896// 2897// The context must be non-nil and will be used for request cancellation. If 2898// the context is nil a panic will occur. In the future the SDK may create 2899// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2900// for more information on using Contexts. 2901func (c *WAF) GetRuleWithContext(ctx aws.Context, input *GetRuleInput, opts ...request.Option) (*GetRuleOutput, error) { 2902 req, out := c.GetRuleRequest(input) 2903 req.SetContext(ctx) 2904 req.ApplyOptions(opts...) 2905 return out, req.Send() 2906} 2907 2908const opGetSampledRequests = "GetSampledRequests" 2909 2910// GetSampledRequestsRequest generates a "aws/request.Request" representing the 2911// client's request for the GetSampledRequests operation. The "output" return 2912// value will be populated with the request's response once the request complets 2913// successfuly. 2914// 2915// Use "Send" method on the returned Request to send the API call to the service. 2916// the "output" return value is not valid until after Send returns without error. 2917// 2918// See GetSampledRequests for more information on using the GetSampledRequests 2919// API call, and error handling. 2920// 2921// This method is useful when you want to inject custom logic or configuration 2922// into the SDK's request lifecycle. Such as custom headers, or retry logic. 2923// 2924// 2925// // Example sending a request using the GetSampledRequestsRequest method. 2926// req, resp := client.GetSampledRequestsRequest(params) 2927// 2928// err := req.Send() 2929// if err == nil { // resp is now filled 2930// fmt.Println(resp) 2931// } 2932// 2933// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSampledRequests 2934func (c *WAF) GetSampledRequestsRequest(input *GetSampledRequestsInput) (req *request.Request, output *GetSampledRequestsOutput) { 2935 op := &request.Operation{ 2936 Name: opGetSampledRequests, 2937 HTTPMethod: "POST", 2938 HTTPPath: "/", 2939 } 2940 2941 if input == nil { 2942 input = &GetSampledRequestsInput{} 2943 } 2944 2945 output = &GetSampledRequestsOutput{} 2946 req = c.newRequest(op, input, output) 2947 return 2948} 2949 2950// GetSampledRequests API operation for AWS WAF. 2951// 2952// Gets detailed information about a specified number of requests--a sample--that 2953// AWS WAF randomly selects from among the first 5,000 requests that your AWS 2954// resource received during a time range that you choose. You can specify a 2955// sample size of up to 500 requests, and you can specify any time range in 2956// the previous three hours. 2957// 2958// GetSampledRequests returns a time range, which is usually the time range 2959// that you specified. However, if your resource (such as a CloudFront distribution) 2960// received 5,000 requests before the specified time range elapsed, GetSampledRequests 2961// returns an updated time range. This new time range indicates the actual period 2962// during which AWS WAF selected the requests in the sample. 2963// 2964// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 2965// with awserr.Error's Code and Message methods to get detailed information about 2966// the error. 2967// 2968// See the AWS API reference guide for AWS WAF's 2969// API operation GetSampledRequests for usage and error information. 2970// 2971// Returned Error Codes: 2972// * ErrCodeNonexistentItemException "NonexistentItemException" 2973// The operation failed because the referenced object doesn't exist. 2974// 2975// * ErrCodeInternalErrorException "InternalErrorException" 2976// The operation failed because of a system problem, even though the request 2977// was valid. Retry your request. 2978// 2979// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSampledRequests 2980func (c *WAF) GetSampledRequests(input *GetSampledRequestsInput) (*GetSampledRequestsOutput, error) { 2981 req, out := c.GetSampledRequestsRequest(input) 2982 return out, req.Send() 2983} 2984 2985// GetSampledRequestsWithContext is the same as GetSampledRequests with the addition of 2986// the ability to pass a context and additional request options. 2987// 2988// See GetSampledRequests for details on how to use this API operation. 2989// 2990// The context must be non-nil and will be used for request cancellation. If 2991// the context is nil a panic will occur. In the future the SDK may create 2992// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 2993// for more information on using Contexts. 2994func (c *WAF) GetSampledRequestsWithContext(ctx aws.Context, input *GetSampledRequestsInput, opts ...request.Option) (*GetSampledRequestsOutput, error) { 2995 req, out := c.GetSampledRequestsRequest(input) 2996 req.SetContext(ctx) 2997 req.ApplyOptions(opts...) 2998 return out, req.Send() 2999} 3000 3001const opGetSizeConstraintSet = "GetSizeConstraintSet" 3002 3003// GetSizeConstraintSetRequest generates a "aws/request.Request" representing the 3004// client's request for the GetSizeConstraintSet operation. The "output" return 3005// value will be populated with the request's response once the request complets 3006// successfuly. 3007// 3008// Use "Send" method on the returned Request to send the API call to the service. 3009// the "output" return value is not valid until after Send returns without error. 3010// 3011// See GetSizeConstraintSet for more information on using the GetSizeConstraintSet 3012// API call, and error handling. 3013// 3014// This method is useful when you want to inject custom logic or configuration 3015// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3016// 3017// 3018// // Example sending a request using the GetSizeConstraintSetRequest method. 3019// req, resp := client.GetSizeConstraintSetRequest(params) 3020// 3021// err := req.Send() 3022// if err == nil { // resp is now filled 3023// fmt.Println(resp) 3024// } 3025// 3026// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSizeConstraintSet 3027func (c *WAF) GetSizeConstraintSetRequest(input *GetSizeConstraintSetInput) (req *request.Request, output *GetSizeConstraintSetOutput) { 3028 op := &request.Operation{ 3029 Name: opGetSizeConstraintSet, 3030 HTTPMethod: "POST", 3031 HTTPPath: "/", 3032 } 3033 3034 if input == nil { 3035 input = &GetSizeConstraintSetInput{} 3036 } 3037 3038 output = &GetSizeConstraintSetOutput{} 3039 req = c.newRequest(op, input, output) 3040 return 3041} 3042 3043// GetSizeConstraintSet API operation for AWS WAF. 3044// 3045// Returns the SizeConstraintSet specified by SizeConstraintSetId. 3046// 3047// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3048// with awserr.Error's Code and Message methods to get detailed information about 3049// the error. 3050// 3051// See the AWS API reference guide for AWS WAF's 3052// API operation GetSizeConstraintSet for usage and error information. 3053// 3054// Returned Error Codes: 3055// * ErrCodeInternalErrorException "InternalErrorException" 3056// The operation failed because of a system problem, even though the request 3057// was valid. Retry your request. 3058// 3059// * ErrCodeInvalidAccountException "InvalidAccountException" 3060// The operation failed because you tried to create, update, or delete an object 3061// by using an invalid account identifier. 3062// 3063// * ErrCodeNonexistentItemException "NonexistentItemException" 3064// The operation failed because the referenced object doesn't exist. 3065// 3066// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSizeConstraintSet 3067func (c *WAF) GetSizeConstraintSet(input *GetSizeConstraintSetInput) (*GetSizeConstraintSetOutput, error) { 3068 req, out := c.GetSizeConstraintSetRequest(input) 3069 return out, req.Send() 3070} 3071 3072// GetSizeConstraintSetWithContext is the same as GetSizeConstraintSet with the addition of 3073// the ability to pass a context and additional request options. 3074// 3075// See GetSizeConstraintSet for details on how to use this API operation. 3076// 3077// The context must be non-nil and will be used for request cancellation. If 3078// the context is nil a panic will occur. In the future the SDK may create 3079// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3080// for more information on using Contexts. 3081func (c *WAF) GetSizeConstraintSetWithContext(ctx aws.Context, input *GetSizeConstraintSetInput, opts ...request.Option) (*GetSizeConstraintSetOutput, error) { 3082 req, out := c.GetSizeConstraintSetRequest(input) 3083 req.SetContext(ctx) 3084 req.ApplyOptions(opts...) 3085 return out, req.Send() 3086} 3087 3088const opGetSqlInjectionMatchSet = "GetSqlInjectionMatchSet" 3089 3090// GetSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the 3091// client's request for the GetSqlInjectionMatchSet operation. The "output" return 3092// value will be populated with the request's response once the request complets 3093// successfuly. 3094// 3095// Use "Send" method on the returned Request to send the API call to the service. 3096// the "output" return value is not valid until after Send returns without error. 3097// 3098// See GetSqlInjectionMatchSet for more information on using the GetSqlInjectionMatchSet 3099// API call, and error handling. 3100// 3101// This method is useful when you want to inject custom logic or configuration 3102// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3103// 3104// 3105// // Example sending a request using the GetSqlInjectionMatchSetRequest method. 3106// req, resp := client.GetSqlInjectionMatchSetRequest(params) 3107// 3108// err := req.Send() 3109// if err == nil { // resp is now filled 3110// fmt.Println(resp) 3111// } 3112// 3113// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSqlInjectionMatchSet 3114func (c *WAF) GetSqlInjectionMatchSetRequest(input *GetSqlInjectionMatchSetInput) (req *request.Request, output *GetSqlInjectionMatchSetOutput) { 3115 op := &request.Operation{ 3116 Name: opGetSqlInjectionMatchSet, 3117 HTTPMethod: "POST", 3118 HTTPPath: "/", 3119 } 3120 3121 if input == nil { 3122 input = &GetSqlInjectionMatchSetInput{} 3123 } 3124 3125 output = &GetSqlInjectionMatchSetOutput{} 3126 req = c.newRequest(op, input, output) 3127 return 3128} 3129 3130// GetSqlInjectionMatchSet API operation for AWS WAF. 3131// 3132// Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId. 3133// 3134// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3135// with awserr.Error's Code and Message methods to get detailed information about 3136// the error. 3137// 3138// See the AWS API reference guide for AWS WAF's 3139// API operation GetSqlInjectionMatchSet for usage and error information. 3140// 3141// Returned Error Codes: 3142// * ErrCodeInternalErrorException "InternalErrorException" 3143// The operation failed because of a system problem, even though the request 3144// was valid. Retry your request. 3145// 3146// * ErrCodeInvalidAccountException "InvalidAccountException" 3147// The operation failed because you tried to create, update, or delete an object 3148// by using an invalid account identifier. 3149// 3150// * ErrCodeNonexistentItemException "NonexistentItemException" 3151// The operation failed because the referenced object doesn't exist. 3152// 3153// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSqlInjectionMatchSet 3154func (c *WAF) GetSqlInjectionMatchSet(input *GetSqlInjectionMatchSetInput) (*GetSqlInjectionMatchSetOutput, error) { 3155 req, out := c.GetSqlInjectionMatchSetRequest(input) 3156 return out, req.Send() 3157} 3158 3159// GetSqlInjectionMatchSetWithContext is the same as GetSqlInjectionMatchSet with the addition of 3160// the ability to pass a context and additional request options. 3161// 3162// See GetSqlInjectionMatchSet for details on how to use this API operation. 3163// 3164// The context must be non-nil and will be used for request cancellation. If 3165// the context is nil a panic will occur. In the future the SDK may create 3166// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3167// for more information on using Contexts. 3168func (c *WAF) GetSqlInjectionMatchSetWithContext(ctx aws.Context, input *GetSqlInjectionMatchSetInput, opts ...request.Option) (*GetSqlInjectionMatchSetOutput, error) { 3169 req, out := c.GetSqlInjectionMatchSetRequest(input) 3170 req.SetContext(ctx) 3171 req.ApplyOptions(opts...) 3172 return out, req.Send() 3173} 3174 3175const opGetWebACL = "GetWebACL" 3176 3177// GetWebACLRequest generates a "aws/request.Request" representing the 3178// client's request for the GetWebACL operation. The "output" return 3179// value will be populated with the request's response once the request complets 3180// successfuly. 3181// 3182// Use "Send" method on the returned Request to send the API call to the service. 3183// the "output" return value is not valid until after Send returns without error. 3184// 3185// See GetWebACL for more information on using the GetWebACL 3186// API call, and error handling. 3187// 3188// This method is useful when you want to inject custom logic or configuration 3189// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3190// 3191// 3192// // Example sending a request using the GetWebACLRequest method. 3193// req, resp := client.GetWebACLRequest(params) 3194// 3195// err := req.Send() 3196// if err == nil { // resp is now filled 3197// fmt.Println(resp) 3198// } 3199// 3200// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACL 3201func (c *WAF) GetWebACLRequest(input *GetWebACLInput) (req *request.Request, output *GetWebACLOutput) { 3202 op := &request.Operation{ 3203 Name: opGetWebACL, 3204 HTTPMethod: "POST", 3205 HTTPPath: "/", 3206 } 3207 3208 if input == nil { 3209 input = &GetWebACLInput{} 3210 } 3211 3212 output = &GetWebACLOutput{} 3213 req = c.newRequest(op, input, output) 3214 return 3215} 3216 3217// GetWebACL API operation for AWS WAF. 3218// 3219// Returns the WebACL that is specified by WebACLId. 3220// 3221// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3222// with awserr.Error's Code and Message methods to get detailed information about 3223// the error. 3224// 3225// See the AWS API reference guide for AWS WAF's 3226// API operation GetWebACL for usage and error information. 3227// 3228// Returned Error Codes: 3229// * ErrCodeInternalErrorException "InternalErrorException" 3230// The operation failed because of a system problem, even though the request 3231// was valid. Retry your request. 3232// 3233// * ErrCodeInvalidAccountException "InvalidAccountException" 3234// The operation failed because you tried to create, update, or delete an object 3235// by using an invalid account identifier. 3236// 3237// * ErrCodeNonexistentItemException "NonexistentItemException" 3238// The operation failed because the referenced object doesn't exist. 3239// 3240// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACL 3241func (c *WAF) GetWebACL(input *GetWebACLInput) (*GetWebACLOutput, error) { 3242 req, out := c.GetWebACLRequest(input) 3243 return out, req.Send() 3244} 3245 3246// GetWebACLWithContext is the same as GetWebACL with the addition of 3247// the ability to pass a context and additional request options. 3248// 3249// See GetWebACL for details on how to use this API operation. 3250// 3251// The context must be non-nil and will be used for request cancellation. If 3252// the context is nil a panic will occur. In the future the SDK may create 3253// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3254// for more information on using Contexts. 3255func (c *WAF) GetWebACLWithContext(ctx aws.Context, input *GetWebACLInput, opts ...request.Option) (*GetWebACLOutput, error) { 3256 req, out := c.GetWebACLRequest(input) 3257 req.SetContext(ctx) 3258 req.ApplyOptions(opts...) 3259 return out, req.Send() 3260} 3261 3262const opGetXssMatchSet = "GetXssMatchSet" 3263 3264// GetXssMatchSetRequest generates a "aws/request.Request" representing the 3265// client's request for the GetXssMatchSet operation. The "output" return 3266// value will be populated with the request's response once the request complets 3267// successfuly. 3268// 3269// Use "Send" method on the returned Request to send the API call to the service. 3270// the "output" return value is not valid until after Send returns without error. 3271// 3272// See GetXssMatchSet for more information on using the GetXssMatchSet 3273// API call, and error handling. 3274// 3275// This method is useful when you want to inject custom logic or configuration 3276// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3277// 3278// 3279// // Example sending a request using the GetXssMatchSetRequest method. 3280// req, resp := client.GetXssMatchSetRequest(params) 3281// 3282// err := req.Send() 3283// if err == nil { // resp is now filled 3284// fmt.Println(resp) 3285// } 3286// 3287// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetXssMatchSet 3288func (c *WAF) GetXssMatchSetRequest(input *GetXssMatchSetInput) (req *request.Request, output *GetXssMatchSetOutput) { 3289 op := &request.Operation{ 3290 Name: opGetXssMatchSet, 3291 HTTPMethod: "POST", 3292 HTTPPath: "/", 3293 } 3294 3295 if input == nil { 3296 input = &GetXssMatchSetInput{} 3297 } 3298 3299 output = &GetXssMatchSetOutput{} 3300 req = c.newRequest(op, input, output) 3301 return 3302} 3303 3304// GetXssMatchSet API operation for AWS WAF. 3305// 3306// Returns the XssMatchSet that is specified by XssMatchSetId. 3307// 3308// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3309// with awserr.Error's Code and Message methods to get detailed information about 3310// the error. 3311// 3312// See the AWS API reference guide for AWS WAF's 3313// API operation GetXssMatchSet for usage and error information. 3314// 3315// Returned Error Codes: 3316// * ErrCodeInternalErrorException "InternalErrorException" 3317// The operation failed because of a system problem, even though the request 3318// was valid. Retry your request. 3319// 3320// * ErrCodeInvalidAccountException "InvalidAccountException" 3321// The operation failed because you tried to create, update, or delete an object 3322// by using an invalid account identifier. 3323// 3324// * ErrCodeNonexistentItemException "NonexistentItemException" 3325// The operation failed because the referenced object doesn't exist. 3326// 3327// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetXssMatchSet 3328func (c *WAF) GetXssMatchSet(input *GetXssMatchSetInput) (*GetXssMatchSetOutput, error) { 3329 req, out := c.GetXssMatchSetRequest(input) 3330 return out, req.Send() 3331} 3332 3333// GetXssMatchSetWithContext is the same as GetXssMatchSet with the addition of 3334// the ability to pass a context and additional request options. 3335// 3336// See GetXssMatchSet for details on how to use this API operation. 3337// 3338// The context must be non-nil and will be used for request cancellation. If 3339// the context is nil a panic will occur. In the future the SDK may create 3340// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3341// for more information on using Contexts. 3342func (c *WAF) GetXssMatchSetWithContext(ctx aws.Context, input *GetXssMatchSetInput, opts ...request.Option) (*GetXssMatchSetOutput, error) { 3343 req, out := c.GetXssMatchSetRequest(input) 3344 req.SetContext(ctx) 3345 req.ApplyOptions(opts...) 3346 return out, req.Send() 3347} 3348 3349const opListByteMatchSets = "ListByteMatchSets" 3350 3351// ListByteMatchSetsRequest generates a "aws/request.Request" representing the 3352// client's request for the ListByteMatchSets operation. The "output" return 3353// value will be populated with the request's response once the request complets 3354// successfuly. 3355// 3356// Use "Send" method on the returned Request to send the API call to the service. 3357// the "output" return value is not valid until after Send returns without error. 3358// 3359// See ListByteMatchSets for more information on using the ListByteMatchSets 3360// API call, and error handling. 3361// 3362// This method is useful when you want to inject custom logic or configuration 3363// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3364// 3365// 3366// // Example sending a request using the ListByteMatchSetsRequest method. 3367// req, resp := client.ListByteMatchSetsRequest(params) 3368// 3369// err := req.Send() 3370// if err == nil { // resp is now filled 3371// fmt.Println(resp) 3372// } 3373// 3374// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListByteMatchSets 3375func (c *WAF) ListByteMatchSetsRequest(input *ListByteMatchSetsInput) (req *request.Request, output *ListByteMatchSetsOutput) { 3376 op := &request.Operation{ 3377 Name: opListByteMatchSets, 3378 HTTPMethod: "POST", 3379 HTTPPath: "/", 3380 } 3381 3382 if input == nil { 3383 input = &ListByteMatchSetsInput{} 3384 } 3385 3386 output = &ListByteMatchSetsOutput{} 3387 req = c.newRequest(op, input, output) 3388 return 3389} 3390 3391// ListByteMatchSets API operation for AWS WAF. 3392// 3393// Returns an array of ByteMatchSetSummary objects. 3394// 3395// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3396// with awserr.Error's Code and Message methods to get detailed information about 3397// the error. 3398// 3399// See the AWS API reference guide for AWS WAF's 3400// API operation ListByteMatchSets for usage and error information. 3401// 3402// Returned Error Codes: 3403// * ErrCodeInternalErrorException "InternalErrorException" 3404// The operation failed because of a system problem, even though the request 3405// was valid. Retry your request. 3406// 3407// * ErrCodeInvalidAccountException "InvalidAccountException" 3408// The operation failed because you tried to create, update, or delete an object 3409// by using an invalid account identifier. 3410// 3411// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListByteMatchSets 3412func (c *WAF) ListByteMatchSets(input *ListByteMatchSetsInput) (*ListByteMatchSetsOutput, error) { 3413 req, out := c.ListByteMatchSetsRequest(input) 3414 return out, req.Send() 3415} 3416 3417// ListByteMatchSetsWithContext is the same as ListByteMatchSets with the addition of 3418// the ability to pass a context and additional request options. 3419// 3420// See ListByteMatchSets for details on how to use this API operation. 3421// 3422// The context must be non-nil and will be used for request cancellation. If 3423// the context is nil a panic will occur. In the future the SDK may create 3424// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3425// for more information on using Contexts. 3426func (c *WAF) ListByteMatchSetsWithContext(ctx aws.Context, input *ListByteMatchSetsInput, opts ...request.Option) (*ListByteMatchSetsOutput, error) { 3427 req, out := c.ListByteMatchSetsRequest(input) 3428 req.SetContext(ctx) 3429 req.ApplyOptions(opts...) 3430 return out, req.Send() 3431} 3432 3433const opListIPSets = "ListIPSets" 3434 3435// ListIPSetsRequest generates a "aws/request.Request" representing the 3436// client's request for the ListIPSets operation. The "output" return 3437// value will be populated with the request's response once the request complets 3438// successfuly. 3439// 3440// Use "Send" method on the returned Request to send the API call to the service. 3441// the "output" return value is not valid until after Send returns without error. 3442// 3443// See ListIPSets for more information on using the ListIPSets 3444// API call, and error handling. 3445// 3446// This method is useful when you want to inject custom logic or configuration 3447// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3448// 3449// 3450// // Example sending a request using the ListIPSetsRequest method. 3451// req, resp := client.ListIPSetsRequest(params) 3452// 3453// err := req.Send() 3454// if err == nil { // resp is now filled 3455// fmt.Println(resp) 3456// } 3457// 3458// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListIPSets 3459func (c *WAF) ListIPSetsRequest(input *ListIPSetsInput) (req *request.Request, output *ListIPSetsOutput) { 3460 op := &request.Operation{ 3461 Name: opListIPSets, 3462 HTTPMethod: "POST", 3463 HTTPPath: "/", 3464 } 3465 3466 if input == nil { 3467 input = &ListIPSetsInput{} 3468 } 3469 3470 output = &ListIPSetsOutput{} 3471 req = c.newRequest(op, input, output) 3472 return 3473} 3474 3475// ListIPSets API operation for AWS WAF. 3476// 3477// Returns an array of IPSetSummary objects in the response. 3478// 3479// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3480// with awserr.Error's Code and Message methods to get detailed information about 3481// the error. 3482// 3483// See the AWS API reference guide for AWS WAF's 3484// API operation ListIPSets for usage and error information. 3485// 3486// Returned Error Codes: 3487// * ErrCodeInternalErrorException "InternalErrorException" 3488// The operation failed because of a system problem, even though the request 3489// was valid. Retry your request. 3490// 3491// * ErrCodeInvalidAccountException "InvalidAccountException" 3492// The operation failed because you tried to create, update, or delete an object 3493// by using an invalid account identifier. 3494// 3495// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListIPSets 3496func (c *WAF) ListIPSets(input *ListIPSetsInput) (*ListIPSetsOutput, error) { 3497 req, out := c.ListIPSetsRequest(input) 3498 return out, req.Send() 3499} 3500 3501// ListIPSetsWithContext is the same as ListIPSets with the addition of 3502// the ability to pass a context and additional request options. 3503// 3504// See ListIPSets for details on how to use this API operation. 3505// 3506// The context must be non-nil and will be used for request cancellation. If 3507// the context is nil a panic will occur. In the future the SDK may create 3508// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3509// for more information on using Contexts. 3510func (c *WAF) ListIPSetsWithContext(ctx aws.Context, input *ListIPSetsInput, opts ...request.Option) (*ListIPSetsOutput, error) { 3511 req, out := c.ListIPSetsRequest(input) 3512 req.SetContext(ctx) 3513 req.ApplyOptions(opts...) 3514 return out, req.Send() 3515} 3516 3517const opListRateBasedRules = "ListRateBasedRules" 3518 3519// ListRateBasedRulesRequest generates a "aws/request.Request" representing the 3520// client's request for the ListRateBasedRules operation. The "output" return 3521// value will be populated with the request's response once the request complets 3522// successfuly. 3523// 3524// Use "Send" method on the returned Request to send the API call to the service. 3525// the "output" return value is not valid until after Send returns without error. 3526// 3527// See ListRateBasedRules for more information on using the ListRateBasedRules 3528// API call, and error handling. 3529// 3530// This method is useful when you want to inject custom logic or configuration 3531// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3532// 3533// 3534// // Example sending a request using the ListRateBasedRulesRequest method. 3535// req, resp := client.ListRateBasedRulesRequest(params) 3536// 3537// err := req.Send() 3538// if err == nil { // resp is now filled 3539// fmt.Println(resp) 3540// } 3541// 3542// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRules 3543func (c *WAF) ListRateBasedRulesRequest(input *ListRateBasedRulesInput) (req *request.Request, output *ListRateBasedRulesOutput) { 3544 op := &request.Operation{ 3545 Name: opListRateBasedRules, 3546 HTTPMethod: "POST", 3547 HTTPPath: "/", 3548 } 3549 3550 if input == nil { 3551 input = &ListRateBasedRulesInput{} 3552 } 3553 3554 output = &ListRateBasedRulesOutput{} 3555 req = c.newRequest(op, input, output) 3556 return 3557} 3558 3559// ListRateBasedRules API operation for AWS WAF. 3560// 3561// Returns an array of RuleSummary objects. 3562// 3563// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3564// with awserr.Error's Code and Message methods to get detailed information about 3565// the error. 3566// 3567// See the AWS API reference guide for AWS WAF's 3568// API operation ListRateBasedRules for usage and error information. 3569// 3570// Returned Error Codes: 3571// * ErrCodeInternalErrorException "InternalErrorException" 3572// The operation failed because of a system problem, even though the request 3573// was valid. Retry your request. 3574// 3575// * ErrCodeInvalidAccountException "InvalidAccountException" 3576// The operation failed because you tried to create, update, or delete an object 3577// by using an invalid account identifier. 3578// 3579// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRules 3580func (c *WAF) ListRateBasedRules(input *ListRateBasedRulesInput) (*ListRateBasedRulesOutput, error) { 3581 req, out := c.ListRateBasedRulesRequest(input) 3582 return out, req.Send() 3583} 3584 3585// ListRateBasedRulesWithContext is the same as ListRateBasedRules with the addition of 3586// the ability to pass a context and additional request options. 3587// 3588// See ListRateBasedRules for details on how to use this API operation. 3589// 3590// The context must be non-nil and will be used for request cancellation. If 3591// the context is nil a panic will occur. In the future the SDK may create 3592// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3593// for more information on using Contexts. 3594func (c *WAF) ListRateBasedRulesWithContext(ctx aws.Context, input *ListRateBasedRulesInput, opts ...request.Option) (*ListRateBasedRulesOutput, error) { 3595 req, out := c.ListRateBasedRulesRequest(input) 3596 req.SetContext(ctx) 3597 req.ApplyOptions(opts...) 3598 return out, req.Send() 3599} 3600 3601const opListRules = "ListRules" 3602 3603// ListRulesRequest generates a "aws/request.Request" representing the 3604// client's request for the ListRules operation. The "output" return 3605// value will be populated with the request's response once the request complets 3606// successfuly. 3607// 3608// Use "Send" method on the returned Request to send the API call to the service. 3609// the "output" return value is not valid until after Send returns without error. 3610// 3611// See ListRules for more information on using the ListRules 3612// API call, and error handling. 3613// 3614// This method is useful when you want to inject custom logic or configuration 3615// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3616// 3617// 3618// // Example sending a request using the ListRulesRequest method. 3619// req, resp := client.ListRulesRequest(params) 3620// 3621// err := req.Send() 3622// if err == nil { // resp is now filled 3623// fmt.Println(resp) 3624// } 3625// 3626// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRules 3627func (c *WAF) ListRulesRequest(input *ListRulesInput) (req *request.Request, output *ListRulesOutput) { 3628 op := &request.Operation{ 3629 Name: opListRules, 3630 HTTPMethod: "POST", 3631 HTTPPath: "/", 3632 } 3633 3634 if input == nil { 3635 input = &ListRulesInput{} 3636 } 3637 3638 output = &ListRulesOutput{} 3639 req = c.newRequest(op, input, output) 3640 return 3641} 3642 3643// ListRules API operation for AWS WAF. 3644// 3645// Returns an array of RuleSummary objects. 3646// 3647// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3648// with awserr.Error's Code and Message methods to get detailed information about 3649// the error. 3650// 3651// See the AWS API reference guide for AWS WAF's 3652// API operation ListRules for usage and error information. 3653// 3654// Returned Error Codes: 3655// * ErrCodeInternalErrorException "InternalErrorException" 3656// The operation failed because of a system problem, even though the request 3657// was valid. Retry your request. 3658// 3659// * ErrCodeInvalidAccountException "InvalidAccountException" 3660// The operation failed because you tried to create, update, or delete an object 3661// by using an invalid account identifier. 3662// 3663// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRules 3664func (c *WAF) ListRules(input *ListRulesInput) (*ListRulesOutput, error) { 3665 req, out := c.ListRulesRequest(input) 3666 return out, req.Send() 3667} 3668 3669// ListRulesWithContext is the same as ListRules with the addition of 3670// the ability to pass a context and additional request options. 3671// 3672// See ListRules for details on how to use this API operation. 3673// 3674// The context must be non-nil and will be used for request cancellation. If 3675// the context is nil a panic will occur. In the future the SDK may create 3676// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3677// for more information on using Contexts. 3678func (c *WAF) ListRulesWithContext(ctx aws.Context, input *ListRulesInput, opts ...request.Option) (*ListRulesOutput, error) { 3679 req, out := c.ListRulesRequest(input) 3680 req.SetContext(ctx) 3681 req.ApplyOptions(opts...) 3682 return out, req.Send() 3683} 3684 3685const opListSizeConstraintSets = "ListSizeConstraintSets" 3686 3687// ListSizeConstraintSetsRequest generates a "aws/request.Request" representing the 3688// client's request for the ListSizeConstraintSets operation. The "output" return 3689// value will be populated with the request's response once the request complets 3690// successfuly. 3691// 3692// Use "Send" method on the returned Request to send the API call to the service. 3693// the "output" return value is not valid until after Send returns without error. 3694// 3695// See ListSizeConstraintSets for more information on using the ListSizeConstraintSets 3696// API call, and error handling. 3697// 3698// This method is useful when you want to inject custom logic or configuration 3699// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3700// 3701// 3702// // Example sending a request using the ListSizeConstraintSetsRequest method. 3703// req, resp := client.ListSizeConstraintSetsRequest(params) 3704// 3705// err := req.Send() 3706// if err == nil { // resp is now filled 3707// fmt.Println(resp) 3708// } 3709// 3710// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSizeConstraintSets 3711func (c *WAF) ListSizeConstraintSetsRequest(input *ListSizeConstraintSetsInput) (req *request.Request, output *ListSizeConstraintSetsOutput) { 3712 op := &request.Operation{ 3713 Name: opListSizeConstraintSets, 3714 HTTPMethod: "POST", 3715 HTTPPath: "/", 3716 } 3717 3718 if input == nil { 3719 input = &ListSizeConstraintSetsInput{} 3720 } 3721 3722 output = &ListSizeConstraintSetsOutput{} 3723 req = c.newRequest(op, input, output) 3724 return 3725} 3726 3727// ListSizeConstraintSets API operation for AWS WAF. 3728// 3729// Returns an array of SizeConstraintSetSummary objects. 3730// 3731// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3732// with awserr.Error's Code and Message methods to get detailed information about 3733// the error. 3734// 3735// See the AWS API reference guide for AWS WAF's 3736// API operation ListSizeConstraintSets for usage and error information. 3737// 3738// Returned Error Codes: 3739// * ErrCodeInternalErrorException "InternalErrorException" 3740// The operation failed because of a system problem, even though the request 3741// was valid. Retry your request. 3742// 3743// * ErrCodeInvalidAccountException "InvalidAccountException" 3744// The operation failed because you tried to create, update, or delete an object 3745// by using an invalid account identifier. 3746// 3747// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSizeConstraintSets 3748func (c *WAF) ListSizeConstraintSets(input *ListSizeConstraintSetsInput) (*ListSizeConstraintSetsOutput, error) { 3749 req, out := c.ListSizeConstraintSetsRequest(input) 3750 return out, req.Send() 3751} 3752 3753// ListSizeConstraintSetsWithContext is the same as ListSizeConstraintSets with the addition of 3754// the ability to pass a context and additional request options. 3755// 3756// See ListSizeConstraintSets for details on how to use this API operation. 3757// 3758// The context must be non-nil and will be used for request cancellation. If 3759// the context is nil a panic will occur. In the future the SDK may create 3760// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3761// for more information on using Contexts. 3762func (c *WAF) ListSizeConstraintSetsWithContext(ctx aws.Context, input *ListSizeConstraintSetsInput, opts ...request.Option) (*ListSizeConstraintSetsOutput, error) { 3763 req, out := c.ListSizeConstraintSetsRequest(input) 3764 req.SetContext(ctx) 3765 req.ApplyOptions(opts...) 3766 return out, req.Send() 3767} 3768 3769const opListSqlInjectionMatchSets = "ListSqlInjectionMatchSets" 3770 3771// ListSqlInjectionMatchSetsRequest generates a "aws/request.Request" representing the 3772// client's request for the ListSqlInjectionMatchSets operation. The "output" return 3773// value will be populated with the request's response once the request complets 3774// successfuly. 3775// 3776// Use "Send" method on the returned Request to send the API call to the service. 3777// the "output" return value is not valid until after Send returns without error. 3778// 3779// See ListSqlInjectionMatchSets for more information on using the ListSqlInjectionMatchSets 3780// API call, and error handling. 3781// 3782// This method is useful when you want to inject custom logic or configuration 3783// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3784// 3785// 3786// // Example sending a request using the ListSqlInjectionMatchSetsRequest method. 3787// req, resp := client.ListSqlInjectionMatchSetsRequest(params) 3788// 3789// err := req.Send() 3790// if err == nil { // resp is now filled 3791// fmt.Println(resp) 3792// } 3793// 3794// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSqlInjectionMatchSets 3795func (c *WAF) ListSqlInjectionMatchSetsRequest(input *ListSqlInjectionMatchSetsInput) (req *request.Request, output *ListSqlInjectionMatchSetsOutput) { 3796 op := &request.Operation{ 3797 Name: opListSqlInjectionMatchSets, 3798 HTTPMethod: "POST", 3799 HTTPPath: "/", 3800 } 3801 3802 if input == nil { 3803 input = &ListSqlInjectionMatchSetsInput{} 3804 } 3805 3806 output = &ListSqlInjectionMatchSetsOutput{} 3807 req = c.newRequest(op, input, output) 3808 return 3809} 3810 3811// ListSqlInjectionMatchSets API operation for AWS WAF. 3812// 3813// Returns an array of SqlInjectionMatchSet objects. 3814// 3815// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3816// with awserr.Error's Code and Message methods to get detailed information about 3817// the error. 3818// 3819// See the AWS API reference guide for AWS WAF's 3820// API operation ListSqlInjectionMatchSets for usage and error information. 3821// 3822// Returned Error Codes: 3823// * ErrCodeInternalErrorException "InternalErrorException" 3824// The operation failed because of a system problem, even though the request 3825// was valid. Retry your request. 3826// 3827// * ErrCodeInvalidAccountException "InvalidAccountException" 3828// The operation failed because you tried to create, update, or delete an object 3829// by using an invalid account identifier. 3830// 3831// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSqlInjectionMatchSets 3832func (c *WAF) ListSqlInjectionMatchSets(input *ListSqlInjectionMatchSetsInput) (*ListSqlInjectionMatchSetsOutput, error) { 3833 req, out := c.ListSqlInjectionMatchSetsRequest(input) 3834 return out, req.Send() 3835} 3836 3837// ListSqlInjectionMatchSetsWithContext is the same as ListSqlInjectionMatchSets with the addition of 3838// the ability to pass a context and additional request options. 3839// 3840// See ListSqlInjectionMatchSets 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. 3846func (c *WAF) ListSqlInjectionMatchSetsWithContext(ctx aws.Context, input *ListSqlInjectionMatchSetsInput, opts ...request.Option) (*ListSqlInjectionMatchSetsOutput, error) { 3847 req, out := c.ListSqlInjectionMatchSetsRequest(input) 3848 req.SetContext(ctx) 3849 req.ApplyOptions(opts...) 3850 return out, req.Send() 3851} 3852 3853const opListWebACLs = "ListWebACLs" 3854 3855// ListWebACLsRequest generates a "aws/request.Request" representing the 3856// client's request for the ListWebACLs operation. The "output" return 3857// value will be populated with the request's response once the request complets 3858// successfuly. 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 ListWebACLs for more information on using the ListWebACLs 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 ListWebACLsRequest method. 3871// req, resp := client.ListWebACLsRequest(params) 3872// 3873// err := req.Send() 3874// if err == nil { // resp is now filled 3875// fmt.Println(resp) 3876// } 3877// 3878// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListWebACLs 3879func (c *WAF) ListWebACLsRequest(input *ListWebACLsInput) (req *request.Request, output *ListWebACLsOutput) { 3880 op := &request.Operation{ 3881 Name: opListWebACLs, 3882 HTTPMethod: "POST", 3883 HTTPPath: "/", 3884 } 3885 3886 if input == nil { 3887 input = &ListWebACLsInput{} 3888 } 3889 3890 output = &ListWebACLsOutput{} 3891 req = c.newRequest(op, input, output) 3892 return 3893} 3894 3895// ListWebACLs API operation for AWS WAF. 3896// 3897// Returns an array of WebACLSummary objects in the response. 3898// 3899// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3900// with awserr.Error's Code and Message methods to get detailed information about 3901// the error. 3902// 3903// See the AWS API reference guide for AWS WAF's 3904// API operation ListWebACLs for usage and error information. 3905// 3906// Returned Error Codes: 3907// * ErrCodeInternalErrorException "InternalErrorException" 3908// The operation failed because of a system problem, even though the request 3909// was valid. Retry your request. 3910// 3911// * ErrCodeInvalidAccountException "InvalidAccountException" 3912// The operation failed because you tried to create, update, or delete an object 3913// by using an invalid account identifier. 3914// 3915// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListWebACLs 3916func (c *WAF) ListWebACLs(input *ListWebACLsInput) (*ListWebACLsOutput, error) { 3917 req, out := c.ListWebACLsRequest(input) 3918 return out, req.Send() 3919} 3920 3921// ListWebACLsWithContext is the same as ListWebACLs with the addition of 3922// the ability to pass a context and additional request options. 3923// 3924// See ListWebACLs for details on how to use this API operation. 3925// 3926// The context must be non-nil and will be used for request cancellation. If 3927// the context is nil a panic will occur. In the future the SDK may create 3928// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 3929// for more information on using Contexts. 3930func (c *WAF) ListWebACLsWithContext(ctx aws.Context, input *ListWebACLsInput, opts ...request.Option) (*ListWebACLsOutput, error) { 3931 req, out := c.ListWebACLsRequest(input) 3932 req.SetContext(ctx) 3933 req.ApplyOptions(opts...) 3934 return out, req.Send() 3935} 3936 3937const opListXssMatchSets = "ListXssMatchSets" 3938 3939// ListXssMatchSetsRequest generates a "aws/request.Request" representing the 3940// client's request for the ListXssMatchSets operation. The "output" return 3941// value will be populated with the request's response once the request complets 3942// successfuly. 3943// 3944// Use "Send" method on the returned Request to send the API call to the service. 3945// the "output" return value is not valid until after Send returns without error. 3946// 3947// See ListXssMatchSets for more information on using the ListXssMatchSets 3948// API call, and error handling. 3949// 3950// This method is useful when you want to inject custom logic or configuration 3951// into the SDK's request lifecycle. Such as custom headers, or retry logic. 3952// 3953// 3954// // Example sending a request using the ListXssMatchSetsRequest method. 3955// req, resp := client.ListXssMatchSetsRequest(params) 3956// 3957// err := req.Send() 3958// if err == nil { // resp is now filled 3959// fmt.Println(resp) 3960// } 3961// 3962// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListXssMatchSets 3963func (c *WAF) ListXssMatchSetsRequest(input *ListXssMatchSetsInput) (req *request.Request, output *ListXssMatchSetsOutput) { 3964 op := &request.Operation{ 3965 Name: opListXssMatchSets, 3966 HTTPMethod: "POST", 3967 HTTPPath: "/", 3968 } 3969 3970 if input == nil { 3971 input = &ListXssMatchSetsInput{} 3972 } 3973 3974 output = &ListXssMatchSetsOutput{} 3975 req = c.newRequest(op, input, output) 3976 return 3977} 3978 3979// ListXssMatchSets API operation for AWS WAF. 3980// 3981// Returns an array of XssMatchSet objects. 3982// 3983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 3984// with awserr.Error's Code and Message methods to get detailed information about 3985// the error. 3986// 3987// See the AWS API reference guide for AWS WAF's 3988// API operation ListXssMatchSets for usage and error information. 3989// 3990// Returned Error Codes: 3991// * ErrCodeInternalErrorException "InternalErrorException" 3992// The operation failed because of a system problem, even though the request 3993// was valid. Retry your request. 3994// 3995// * ErrCodeInvalidAccountException "InvalidAccountException" 3996// The operation failed because you tried to create, update, or delete an object 3997// by using an invalid account identifier. 3998// 3999// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListXssMatchSets 4000func (c *WAF) ListXssMatchSets(input *ListXssMatchSetsInput) (*ListXssMatchSetsOutput, error) { 4001 req, out := c.ListXssMatchSetsRequest(input) 4002 return out, req.Send() 4003} 4004 4005// ListXssMatchSetsWithContext is the same as ListXssMatchSets with the addition of 4006// the ability to pass a context and additional request options. 4007// 4008// See ListXssMatchSets for details on how to use this API operation. 4009// 4010// The context must be non-nil and will be used for request cancellation. If 4011// the context is nil a panic will occur. In the future the SDK may create 4012// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4013// for more information on using Contexts. 4014func (c *WAF) ListXssMatchSetsWithContext(ctx aws.Context, input *ListXssMatchSetsInput, opts ...request.Option) (*ListXssMatchSetsOutput, error) { 4015 req, out := c.ListXssMatchSetsRequest(input) 4016 req.SetContext(ctx) 4017 req.ApplyOptions(opts...) 4018 return out, req.Send() 4019} 4020 4021const opUpdateByteMatchSet = "UpdateByteMatchSet" 4022 4023// UpdateByteMatchSetRequest generates a "aws/request.Request" representing the 4024// client's request for the UpdateByteMatchSet operation. The "output" return 4025// value will be populated with the request's response once the request complets 4026// successfuly. 4027// 4028// Use "Send" method on the returned Request to send the API call to the service. 4029// the "output" return value is not valid until after Send returns without error. 4030// 4031// See UpdateByteMatchSet for more information on using the UpdateByteMatchSet 4032// API call, and error handling. 4033// 4034// This method is useful when you want to inject custom logic or configuration 4035// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4036// 4037// 4038// // Example sending a request using the UpdateByteMatchSetRequest method. 4039// req, resp := client.UpdateByteMatchSetRequest(params) 4040// 4041// err := req.Send() 4042// if err == nil { // resp is now filled 4043// fmt.Println(resp) 4044// } 4045// 4046// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSet 4047func (c *WAF) UpdateByteMatchSetRequest(input *UpdateByteMatchSetInput) (req *request.Request, output *UpdateByteMatchSetOutput) { 4048 op := &request.Operation{ 4049 Name: opUpdateByteMatchSet, 4050 HTTPMethod: "POST", 4051 HTTPPath: "/", 4052 } 4053 4054 if input == nil { 4055 input = &UpdateByteMatchSetInput{} 4056 } 4057 4058 output = &UpdateByteMatchSetOutput{} 4059 req = c.newRequest(op, input, output) 4060 return 4061} 4062 4063// UpdateByteMatchSet API operation for AWS WAF. 4064// 4065// Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For 4066// each ByteMatchTuple object, you specify the following values: 4067// 4068// * Whether to insert or delete the object from the array. If you want to 4069// change a ByteMatchSetUpdate object, you delete the existing object and 4070// add a new one. 4071// 4072// * The part of a web request that you want AWS WAF to inspect, such as 4073// a query string or the value of the User-Agent header. 4074// 4075// * The bytes (typically a string that corresponds with ASCII characters) 4076// that you want AWS WAF to look for. For more information, including how 4077// you specify the values for the AWS WAF API and the AWS CLI or SDKs, see 4078// TargetString in the ByteMatchTuple data type. 4079// 4080// * Where to look, such as at the beginning or the end of a query string. 4081// 4082// * Whether to perform any conversions on the request, such as converting 4083// it to lowercase, before inspecting it for the specified string. 4084// 4085// For example, you can add a ByteMatchSetUpdate object that matches web requests 4086// in which User-Agent headers contain the string BadBot. You can then configure 4087// AWS WAF to block those requests. 4088// 4089// To create and configure a ByteMatchSet, perform the following steps: 4090// 4091// Create a ByteMatchSet. For more information, see CreateByteMatchSet. 4092// 4093// Use GetChangeToken to get the change token that you provide in the ChangeToken 4094// parameter of an UpdateByteMatchSet request. 4095// 4096// Submit an UpdateByteMatchSet request to specify the part of the request that 4097// you want AWS WAF to inspect (for example, the header or the URI) and the 4098// value that you want AWS WAF to watch for. 4099// 4100// For more information about how to use the AWS WAF API to allow or block HTTP 4101// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 4102// 4103// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4104// with awserr.Error's Code and Message methods to get detailed information about 4105// the error. 4106// 4107// See the AWS API reference guide for AWS WAF's 4108// API operation UpdateByteMatchSet for usage and error information. 4109// 4110// Returned Error Codes: 4111// * ErrCodeInternalErrorException "InternalErrorException" 4112// The operation failed because of a system problem, even though the request 4113// was valid. Retry your request. 4114// 4115// * ErrCodeInvalidAccountException "InvalidAccountException" 4116// The operation failed because you tried to create, update, or delete an object 4117// by using an invalid account identifier. 4118// 4119// * ErrCodeInvalidOperationException "InvalidOperationException" 4120// The operation failed because there was nothing to do. For example: 4121// 4122// * You tried to remove a Rule from a WebACL, but the Rule isn't in the 4123// specified WebACL. 4124// 4125// * You tried to remove an IP address from an IPSet, but the IP address 4126// isn't in the specified IPSet. 4127// 4128// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple 4129// isn't in the specified WebACL. 4130// 4131// * You tried to add a Rule to a WebACL, but the Rule already exists in 4132// the specified WebACL. 4133// 4134// * You tried to add an IP address to an IPSet, but the IP address already 4135// exists in the specified IPSet. 4136// 4137// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple 4138// already exists in the specified WebACL. 4139// 4140// * ErrCodeInvalidParameterException "InvalidParameterException" 4141// The operation failed because AWS WAF didn't recognize a parameter in the 4142// request. For example: 4143// 4144// * You specified an invalid parameter name. 4145// 4146// * You specified an invalid value. 4147// 4148// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 4149// using an action other than INSERT or DELETE. 4150// 4151// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 4152// BLOCK, or COUNT. 4153// 4154// * You tried to create a RateBasedRule with a RateKey value other than 4155// IP. 4156// 4157// * You tried to update a WebACL with a WafActionType other than ALLOW, 4158// BLOCK, or COUNT. 4159// 4160// * You tried to update a ByteMatchSet with a FieldToMatchType other than 4161// HEADER, QUERY_STRING, or URI. 4162// 4163// * You tried to update a ByteMatchSet with a Field of HEADER but no value 4164// for Data. 4165// 4166// * Your request references an ARN that is malformed, or corresponds to 4167// a resource with which a web ACL cannot be associated. 4168// 4169// * ErrCodeNonexistentContainerException "NonexistentContainerException" 4170// The operation failed because you tried to add an object to or delete an object 4171// from another object that doesn't exist. For example: 4172// 4173// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't 4174// exist. 4175// 4176// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule 4177// that doesn't exist. 4178// 4179// * You tried to add an IP address to or delete an IP address from an IPSet 4180// that doesn't exist. 4181// 4182// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from 4183// a ByteMatchSet that doesn't exist. 4184// 4185// * ErrCodeNonexistentItemException "NonexistentItemException" 4186// The operation failed because the referenced object doesn't exist. 4187// 4188// * ErrCodeStaleDataException "StaleDataException" 4189// The operation failed because you tried to create, update, or delete an object 4190// by using a change token that has already been used. 4191// 4192// * ErrCodeLimitsExceededException "LimitsExceededException" 4193// The operation exceeds a resource limit, for example, the maximum number of 4194// WebACL objects that you can create for an AWS account. For more information, 4195// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 4196// in the AWS WAF Developer Guide. 4197// 4198// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSet 4199func (c *WAF) UpdateByteMatchSet(input *UpdateByteMatchSetInput) (*UpdateByteMatchSetOutput, error) { 4200 req, out := c.UpdateByteMatchSetRequest(input) 4201 return out, req.Send() 4202} 4203 4204// UpdateByteMatchSetWithContext is the same as UpdateByteMatchSet with the addition of 4205// the ability to pass a context and additional request options. 4206// 4207// See UpdateByteMatchSet for details on how to use this API operation. 4208// 4209// The context must be non-nil and will be used for request cancellation. If 4210// the context is nil a panic will occur. In the future the SDK may create 4211// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4212// for more information on using Contexts. 4213func (c *WAF) UpdateByteMatchSetWithContext(ctx aws.Context, input *UpdateByteMatchSetInput, opts ...request.Option) (*UpdateByteMatchSetOutput, error) { 4214 req, out := c.UpdateByteMatchSetRequest(input) 4215 req.SetContext(ctx) 4216 req.ApplyOptions(opts...) 4217 return out, req.Send() 4218} 4219 4220const opUpdateIPSet = "UpdateIPSet" 4221 4222// UpdateIPSetRequest generates a "aws/request.Request" representing the 4223// client's request for the UpdateIPSet operation. The "output" return 4224// value will be populated with the request's response once the request complets 4225// successfuly. 4226// 4227// Use "Send" method on the returned Request to send the API call to the service. 4228// the "output" return value is not valid until after Send returns without error. 4229// 4230// See UpdateIPSet for more information on using the UpdateIPSet 4231// API call, and error handling. 4232// 4233// This method is useful when you want to inject custom logic or configuration 4234// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4235// 4236// 4237// // Example sending a request using the UpdateIPSetRequest method. 4238// req, resp := client.UpdateIPSetRequest(params) 4239// 4240// err := req.Send() 4241// if err == nil { // resp is now filled 4242// fmt.Println(resp) 4243// } 4244// 4245// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSet 4246func (c *WAF) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request, output *UpdateIPSetOutput) { 4247 op := &request.Operation{ 4248 Name: opUpdateIPSet, 4249 HTTPMethod: "POST", 4250 HTTPPath: "/", 4251 } 4252 4253 if input == nil { 4254 input = &UpdateIPSetInput{} 4255 } 4256 4257 output = &UpdateIPSetOutput{} 4258 req = c.newRequest(op, input, output) 4259 return 4260} 4261 4262// UpdateIPSet API operation for AWS WAF. 4263// 4264// Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor 4265// object, you specify the following values: 4266// 4267// * Whether to insert or delete the object from the array. If you want to 4268// change an IPSetDescriptor object, you delete the existing object and add 4269// a new one. 4270// 4271// * The IP address version, IPv4 or IPv6. 4272// 4273// * The IP address in CIDR notation, for example, 192.0.2.0/24 (for the 4274// range of IP addresses from 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32 4275// (for the individual IP address 192.0.2.44). 4276// 4277// AWS WAF supports /8, /16, /24, and /32 IP address ranges for IPv4, and /24, 4278// /32, /48, /56, /64 and /128 for IPv6. For more information about CIDR notation, 4279// see the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 4280// 4281// IPv6 addresses can be represented using any of the following formats: 4282// 4283// * 1111:0000:0000:0000:0000:0000:0000:0111/128 4284// 4285// * 1111:0:0:0:0:0:0:0111/128 4286// 4287// * 1111::0111/128 4288// 4289// * 1111::111/128 4290// 4291// You use an IPSet to specify which web requests you want to allow or block 4292// based on the IP addresses that the requests originated from. For example, 4293// if you're receiving a lot of requests from one or a small number of IP addresses 4294// and you want to block the requests, you can create an IPSet that specifies 4295// those IP addresses, and then configure AWS WAF to block the requests. 4296// 4297// To create and configure an IPSet, perform the following steps: 4298// 4299// Submit a CreateIPSet request. 4300// 4301// Use GetChangeToken to get the change token that you provide in the ChangeToken 4302// parameter of an UpdateIPSet request. 4303// 4304// Submit an UpdateIPSet request to specify the IP addresses that you want AWS 4305// WAF to watch for. 4306// 4307// When you update an IPSet, you specify the IP addresses that you want to add 4308// and/or the IP addresses that you want to delete. If you want to change an 4309// IP address, you delete the existing IP address and add the new one. 4310// 4311// For more information about how to use the AWS WAF API to allow or block HTTP 4312// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 4313// 4314// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4315// with awserr.Error's Code and Message methods to get detailed information about 4316// the error. 4317// 4318// See the AWS API reference guide for AWS WAF's 4319// API operation UpdateIPSet for usage and error information. 4320// 4321// Returned Error Codes: 4322// * ErrCodeStaleDataException "StaleDataException" 4323// The operation failed because you tried to create, update, or delete an object 4324// by using a change token that has already been used. 4325// 4326// * ErrCodeInternalErrorException "InternalErrorException" 4327// The operation failed because of a system problem, even though the request 4328// was valid. Retry your request. 4329// 4330// * ErrCodeInvalidAccountException "InvalidAccountException" 4331// The operation failed because you tried to create, update, or delete an object 4332// by using an invalid account identifier. 4333// 4334// * ErrCodeInvalidOperationException "InvalidOperationException" 4335// The operation failed because there was nothing to do. For example: 4336// 4337// * You tried to remove a Rule from a WebACL, but the Rule isn't in the 4338// specified WebACL. 4339// 4340// * You tried to remove an IP address from an IPSet, but the IP address 4341// isn't in the specified IPSet. 4342// 4343// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple 4344// isn't in the specified WebACL. 4345// 4346// * You tried to add a Rule to a WebACL, but the Rule already exists in 4347// the specified WebACL. 4348// 4349// * You tried to add an IP address to an IPSet, but the IP address already 4350// exists in the specified IPSet. 4351// 4352// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple 4353// already exists in the specified WebACL. 4354// 4355// * ErrCodeInvalidParameterException "InvalidParameterException" 4356// The operation failed because AWS WAF didn't recognize a parameter in the 4357// request. For example: 4358// 4359// * You specified an invalid parameter name. 4360// 4361// * You specified an invalid value. 4362// 4363// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 4364// using an action other than INSERT or DELETE. 4365// 4366// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 4367// BLOCK, or COUNT. 4368// 4369// * You tried to create a RateBasedRule with a RateKey value other than 4370// IP. 4371// 4372// * You tried to update a WebACL with a WafActionType other than ALLOW, 4373// BLOCK, or COUNT. 4374// 4375// * You tried to update a ByteMatchSet with a FieldToMatchType other than 4376// HEADER, QUERY_STRING, or URI. 4377// 4378// * You tried to update a ByteMatchSet with a Field of HEADER but no value 4379// for Data. 4380// 4381// * Your request references an ARN that is malformed, or corresponds to 4382// a resource with which a web ACL cannot be associated. 4383// 4384// * ErrCodeNonexistentContainerException "NonexistentContainerException" 4385// The operation failed because you tried to add an object to or delete an object 4386// from another object that doesn't exist. For example: 4387// 4388// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't 4389// exist. 4390// 4391// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule 4392// that doesn't exist. 4393// 4394// * You tried to add an IP address to or delete an IP address from an IPSet 4395// that doesn't exist. 4396// 4397// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from 4398// a ByteMatchSet that doesn't exist. 4399// 4400// * ErrCodeNonexistentItemException "NonexistentItemException" 4401// The operation failed because the referenced object doesn't exist. 4402// 4403// * ErrCodeReferencedItemException "ReferencedItemException" 4404// The operation failed because you tried to delete an object that is still 4405// in use. For example: 4406// 4407// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 4408// 4409// * You tried to delete a Rule that is still referenced by a WebACL. 4410// 4411// * ErrCodeLimitsExceededException "LimitsExceededException" 4412// The operation exceeds a resource limit, for example, the maximum number of 4413// WebACL objects that you can create for an AWS account. For more information, 4414// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 4415// in the AWS WAF Developer Guide. 4416// 4417// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSet 4418func (c *WAF) UpdateIPSet(input *UpdateIPSetInput) (*UpdateIPSetOutput, error) { 4419 req, out := c.UpdateIPSetRequest(input) 4420 return out, req.Send() 4421} 4422 4423// UpdateIPSetWithContext is the same as UpdateIPSet with the addition of 4424// the ability to pass a context and additional request options. 4425// 4426// See UpdateIPSet for details on how to use this API operation. 4427// 4428// The context must be non-nil and will be used for request cancellation. If 4429// the context is nil a panic will occur. In the future the SDK may create 4430// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4431// for more information on using Contexts. 4432func (c *WAF) UpdateIPSetWithContext(ctx aws.Context, input *UpdateIPSetInput, opts ...request.Option) (*UpdateIPSetOutput, error) { 4433 req, out := c.UpdateIPSetRequest(input) 4434 req.SetContext(ctx) 4435 req.ApplyOptions(opts...) 4436 return out, req.Send() 4437} 4438 4439const opUpdateRateBasedRule = "UpdateRateBasedRule" 4440 4441// UpdateRateBasedRuleRequest generates a "aws/request.Request" representing the 4442// client's request for the UpdateRateBasedRule operation. The "output" return 4443// value will be populated with the request's response once the request complets 4444// successfuly. 4445// 4446// Use "Send" method on the returned Request to send the API call to the service. 4447// the "output" return value is not valid until after Send returns without error. 4448// 4449// See UpdateRateBasedRule for more information on using the UpdateRateBasedRule 4450// API call, and error handling. 4451// 4452// This method is useful when you want to inject custom logic or configuration 4453// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4454// 4455// 4456// // Example sending a request using the UpdateRateBasedRuleRequest method. 4457// req, resp := client.UpdateRateBasedRuleRequest(params) 4458// 4459// err := req.Send() 4460// if err == nil { // resp is now filled 4461// fmt.Println(resp) 4462// } 4463// 4464// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRule 4465func (c *WAF) UpdateRateBasedRuleRequest(input *UpdateRateBasedRuleInput) (req *request.Request, output *UpdateRateBasedRuleOutput) { 4466 op := &request.Operation{ 4467 Name: opUpdateRateBasedRule, 4468 HTTPMethod: "POST", 4469 HTTPPath: "/", 4470 } 4471 4472 if input == nil { 4473 input = &UpdateRateBasedRuleInput{} 4474 } 4475 4476 output = &UpdateRateBasedRuleOutput{} 4477 req = c.newRequest(op, input, output) 4478 return 4479} 4480 4481// UpdateRateBasedRule API operation for AWS WAF. 4482// 4483// Inserts or deletes Predicate objects in a rule and updates the RateLimit 4484// in the rule. 4485// 4486// Each Predicate object identifies a predicate, such as a ByteMatchSet or an 4487// IPSet, that specifies the web requests that you want to block or count. The 4488// RateLimit specifies the number of requests every five minutes that triggers 4489// the rule. 4490// 4491// If you add more than one predicate to a RateBasedRule, a request must match 4492// all the predicates and exceed the RateLimit to be counted or blocked. For 4493// example, suppose you add the following to a RateBasedRule: 4494// 4495// * An IPSet that matches the IP address 192.0.2.44/32 4496// 4497// * A ByteMatchSet that matches BadBot in the User-Agent header 4498// 4499// Further, you specify a RateLimit of 15,000. 4500// 4501// You then add the RateBasedRule to a WebACL and specify that you want to block 4502// requests that satisfy the rule. For a request to be blocked, it must come 4503// from the IP address 192.0.2.44 and the User-Agent header in the request must 4504// contain the value BadBot. Further, requests that match these two conditions 4505// much be received at a rate of more than 15,000 every five minutes. If the 4506// rate drops below this limit, AWS WAF no longer blocks the requests. 4507// 4508// As a second example, suppose you want to limit requests to a particular page 4509// on your site. To do this, you could add the following to a RateBasedRule: 4510// 4511// * A ByteMatchSet with FieldToMatch of URI 4512// 4513// * A PositionalConstraint of STARTS_WITH 4514// 4515// * A TargetString of login 4516// 4517// Further, you specify a RateLimit of 15,000. 4518// 4519// By adding this RateBasedRule to a WebACL, you could limit requests to your 4520// login page without affecting the rest of your site. 4521// 4522// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4523// with awserr.Error's Code and Message methods to get detailed information about 4524// the error. 4525// 4526// See the AWS API reference guide for AWS WAF's 4527// API operation UpdateRateBasedRule for usage and error information. 4528// 4529// Returned Error Codes: 4530// * ErrCodeStaleDataException "StaleDataException" 4531// The operation failed because you tried to create, update, or delete an object 4532// by using a change token that has already been used. 4533// 4534// * ErrCodeInternalErrorException "InternalErrorException" 4535// The operation failed because of a system problem, even though the request 4536// was valid. Retry your request. 4537// 4538// * ErrCodeInvalidAccountException "InvalidAccountException" 4539// The operation failed because you tried to create, update, or delete an object 4540// by using an invalid account identifier. 4541// 4542// * ErrCodeInvalidOperationException "InvalidOperationException" 4543// The operation failed because there was nothing to do. For example: 4544// 4545// * You tried to remove a Rule from a WebACL, but the Rule isn't in the 4546// specified WebACL. 4547// 4548// * You tried to remove an IP address from an IPSet, but the IP address 4549// isn't in the specified IPSet. 4550// 4551// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple 4552// isn't in the specified WebACL. 4553// 4554// * You tried to add a Rule to a WebACL, but the Rule already exists in 4555// the specified WebACL. 4556// 4557// * You tried to add an IP address to an IPSet, but the IP address already 4558// exists in the specified IPSet. 4559// 4560// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple 4561// already exists in the specified WebACL. 4562// 4563// * ErrCodeInvalidParameterException "InvalidParameterException" 4564// The operation failed because AWS WAF didn't recognize a parameter in the 4565// request. For example: 4566// 4567// * You specified an invalid parameter name. 4568// 4569// * You specified an invalid value. 4570// 4571// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 4572// using an action other than INSERT or DELETE. 4573// 4574// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 4575// BLOCK, or COUNT. 4576// 4577// * You tried to create a RateBasedRule with a RateKey value other than 4578// IP. 4579// 4580// * You tried to update a WebACL with a WafActionType other than ALLOW, 4581// BLOCK, or COUNT. 4582// 4583// * You tried to update a ByteMatchSet with a FieldToMatchType other than 4584// HEADER, QUERY_STRING, or URI. 4585// 4586// * You tried to update a ByteMatchSet with a Field of HEADER but no value 4587// for Data. 4588// 4589// * Your request references an ARN that is malformed, or corresponds to 4590// a resource with which a web ACL cannot be associated. 4591// 4592// * ErrCodeNonexistentContainerException "NonexistentContainerException" 4593// The operation failed because you tried to add an object to or delete an object 4594// from another object that doesn't exist. For example: 4595// 4596// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't 4597// exist. 4598// 4599// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule 4600// that doesn't exist. 4601// 4602// * You tried to add an IP address to or delete an IP address from an IPSet 4603// that doesn't exist. 4604// 4605// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from 4606// a ByteMatchSet that doesn't exist. 4607// 4608// * ErrCodeNonexistentItemException "NonexistentItemException" 4609// The operation failed because the referenced object doesn't exist. 4610// 4611// * ErrCodeReferencedItemException "ReferencedItemException" 4612// The operation failed because you tried to delete an object that is still 4613// in use. For example: 4614// 4615// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 4616// 4617// * You tried to delete a Rule that is still referenced by a WebACL. 4618// 4619// * ErrCodeLimitsExceededException "LimitsExceededException" 4620// The operation exceeds a resource limit, for example, the maximum number of 4621// WebACL objects that you can create for an AWS account. For more information, 4622// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 4623// in the AWS WAF Developer Guide. 4624// 4625// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRule 4626func (c *WAF) UpdateRateBasedRule(input *UpdateRateBasedRuleInput) (*UpdateRateBasedRuleOutput, error) { 4627 req, out := c.UpdateRateBasedRuleRequest(input) 4628 return out, req.Send() 4629} 4630 4631// UpdateRateBasedRuleWithContext is the same as UpdateRateBasedRule with the addition of 4632// the ability to pass a context and additional request options. 4633// 4634// See UpdateRateBasedRule for details on how to use this API operation. 4635// 4636// The context must be non-nil and will be used for request cancellation. If 4637// the context is nil a panic will occur. In the future the SDK may create 4638// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4639// for more information on using Contexts. 4640func (c *WAF) UpdateRateBasedRuleWithContext(ctx aws.Context, input *UpdateRateBasedRuleInput, opts ...request.Option) (*UpdateRateBasedRuleOutput, error) { 4641 req, out := c.UpdateRateBasedRuleRequest(input) 4642 req.SetContext(ctx) 4643 req.ApplyOptions(opts...) 4644 return out, req.Send() 4645} 4646 4647const opUpdateRule = "UpdateRule" 4648 4649// UpdateRuleRequest generates a "aws/request.Request" representing the 4650// client's request for the UpdateRule operation. The "output" return 4651// value will be populated with the request's response once the request complets 4652// successfuly. 4653// 4654// Use "Send" method on the returned Request to send the API call to the service. 4655// the "output" return value is not valid until after Send returns without error. 4656// 4657// See UpdateRule for more information on using the UpdateRule 4658// API call, and error handling. 4659// 4660// This method is useful when you want to inject custom logic or configuration 4661// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4662// 4663// 4664// // Example sending a request using the UpdateRuleRequest method. 4665// req, resp := client.UpdateRuleRequest(params) 4666// 4667// err := req.Send() 4668// if err == nil { // resp is now filled 4669// fmt.Println(resp) 4670// } 4671// 4672// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRule 4673func (c *WAF) UpdateRuleRequest(input *UpdateRuleInput) (req *request.Request, output *UpdateRuleOutput) { 4674 op := &request.Operation{ 4675 Name: opUpdateRule, 4676 HTTPMethod: "POST", 4677 HTTPPath: "/", 4678 } 4679 4680 if input == nil { 4681 input = &UpdateRuleInput{} 4682 } 4683 4684 output = &UpdateRuleOutput{} 4685 req = c.newRequest(op, input, output) 4686 return 4687} 4688 4689// UpdateRule API operation for AWS WAF. 4690// 4691// Inserts or deletes Predicate objects in a Rule. Each Predicate object identifies 4692// a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests 4693// that you want to allow, block, or count. If you add more than one predicate 4694// to a Rule, a request must match all of the specifications to be allowed, 4695// blocked, or counted. For example, suppose you add the following to a Rule: 4696// 4697// * A ByteMatchSet that matches the value BadBot in the User-Agent header 4698// 4699// * An IPSet that matches the IP address 192.0.2.44 4700// 4701// You then add the Rule to a WebACL and specify that you want to block requests 4702// that satisfy the Rule. For a request to be blocked, the User-Agent header 4703// in the request must contain the value BadBotand the request must originate 4704// from the IP address 192.0.2.44. 4705// 4706// To create and configure a Rule, perform the following steps: 4707// 4708// Create and update the predicates that you want to include in the Rule. 4709// 4710// Create the Rule. See CreateRule. 4711// 4712// Use GetChangeToken to get the change token that you provide in the ChangeToken 4713// parameter of an UpdateRule request. 4714// 4715// Submit an UpdateRule request to add predicates to the Rule. 4716// 4717// Create and update a WebACL that contains the Rule. See CreateWebACL. 4718// 4719// If you want to replace one ByteMatchSet or IPSet with another, you delete 4720// the existing one and add the new one. 4721// 4722// For more information about how to use the AWS WAF API to allow or block HTTP 4723// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 4724// 4725// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4726// with awserr.Error's Code and Message methods to get detailed information about 4727// the error. 4728// 4729// See the AWS API reference guide for AWS WAF's 4730// API operation UpdateRule for usage and error information. 4731// 4732// Returned Error Codes: 4733// * ErrCodeStaleDataException "StaleDataException" 4734// The operation failed because you tried to create, update, or delete an object 4735// by using a change token that has already been used. 4736// 4737// * ErrCodeInternalErrorException "InternalErrorException" 4738// The operation failed because of a system problem, even though the request 4739// was valid. Retry your request. 4740// 4741// * ErrCodeInvalidAccountException "InvalidAccountException" 4742// The operation failed because you tried to create, update, or delete an object 4743// by using an invalid account identifier. 4744// 4745// * ErrCodeInvalidOperationException "InvalidOperationException" 4746// The operation failed because there was nothing to do. For example: 4747// 4748// * You tried to remove a Rule from a WebACL, but the Rule isn't in the 4749// specified WebACL. 4750// 4751// * You tried to remove an IP address from an IPSet, but the IP address 4752// isn't in the specified IPSet. 4753// 4754// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple 4755// isn't in the specified WebACL. 4756// 4757// * You tried to add a Rule to a WebACL, but the Rule already exists in 4758// the specified WebACL. 4759// 4760// * You tried to add an IP address to an IPSet, but the IP address already 4761// exists in the specified IPSet. 4762// 4763// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple 4764// already exists in the specified WebACL. 4765// 4766// * ErrCodeInvalidParameterException "InvalidParameterException" 4767// The operation failed because AWS WAF didn't recognize a parameter in the 4768// request. For example: 4769// 4770// * You specified an invalid parameter name. 4771// 4772// * You specified an invalid value. 4773// 4774// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 4775// using an action other than INSERT or DELETE. 4776// 4777// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 4778// BLOCK, or COUNT. 4779// 4780// * You tried to create a RateBasedRule with a RateKey value other than 4781// IP. 4782// 4783// * You tried to update a WebACL with a WafActionType other than ALLOW, 4784// BLOCK, or COUNT. 4785// 4786// * You tried to update a ByteMatchSet with a FieldToMatchType other than 4787// HEADER, QUERY_STRING, or URI. 4788// 4789// * You tried to update a ByteMatchSet with a Field of HEADER but no value 4790// for Data. 4791// 4792// * Your request references an ARN that is malformed, or corresponds to 4793// a resource with which a web ACL cannot be associated. 4794// 4795// * ErrCodeNonexistentContainerException "NonexistentContainerException" 4796// The operation failed because you tried to add an object to or delete an object 4797// from another object that doesn't exist. For example: 4798// 4799// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't 4800// exist. 4801// 4802// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule 4803// that doesn't exist. 4804// 4805// * You tried to add an IP address to or delete an IP address from an IPSet 4806// that doesn't exist. 4807// 4808// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from 4809// a ByteMatchSet that doesn't exist. 4810// 4811// * ErrCodeNonexistentItemException "NonexistentItemException" 4812// The operation failed because the referenced object doesn't exist. 4813// 4814// * ErrCodeReferencedItemException "ReferencedItemException" 4815// The operation failed because you tried to delete an object that is still 4816// in use. For example: 4817// 4818// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 4819// 4820// * You tried to delete a Rule that is still referenced by a WebACL. 4821// 4822// * ErrCodeLimitsExceededException "LimitsExceededException" 4823// The operation exceeds a resource limit, for example, the maximum number of 4824// WebACL objects that you can create for an AWS account. For more information, 4825// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 4826// in the AWS WAF Developer Guide. 4827// 4828// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRule 4829func (c *WAF) UpdateRule(input *UpdateRuleInput) (*UpdateRuleOutput, error) { 4830 req, out := c.UpdateRuleRequest(input) 4831 return out, req.Send() 4832} 4833 4834// UpdateRuleWithContext is the same as UpdateRule with the addition of 4835// the ability to pass a context and additional request options. 4836// 4837// See UpdateRule for details on how to use this API operation. 4838// 4839// The context must be non-nil and will be used for request cancellation. If 4840// the context is nil a panic will occur. In the future the SDK may create 4841// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 4842// for more information on using Contexts. 4843func (c *WAF) UpdateRuleWithContext(ctx aws.Context, input *UpdateRuleInput, opts ...request.Option) (*UpdateRuleOutput, error) { 4844 req, out := c.UpdateRuleRequest(input) 4845 req.SetContext(ctx) 4846 req.ApplyOptions(opts...) 4847 return out, req.Send() 4848} 4849 4850const opUpdateSizeConstraintSet = "UpdateSizeConstraintSet" 4851 4852// UpdateSizeConstraintSetRequest generates a "aws/request.Request" representing the 4853// client's request for the UpdateSizeConstraintSet operation. The "output" return 4854// value will be populated with the request's response once the request complets 4855// successfuly. 4856// 4857// Use "Send" method on the returned Request to send the API call to the service. 4858// the "output" return value is not valid until after Send returns without error. 4859// 4860// See UpdateSizeConstraintSet for more information on using the UpdateSizeConstraintSet 4861// API call, and error handling. 4862// 4863// This method is useful when you want to inject custom logic or configuration 4864// into the SDK's request lifecycle. Such as custom headers, or retry logic. 4865// 4866// 4867// // Example sending a request using the UpdateSizeConstraintSetRequest method. 4868// req, resp := client.UpdateSizeConstraintSetRequest(params) 4869// 4870// err := req.Send() 4871// if err == nil { // resp is now filled 4872// fmt.Println(resp) 4873// } 4874// 4875// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSet 4876func (c *WAF) UpdateSizeConstraintSetRequest(input *UpdateSizeConstraintSetInput) (req *request.Request, output *UpdateSizeConstraintSetOutput) { 4877 op := &request.Operation{ 4878 Name: opUpdateSizeConstraintSet, 4879 HTTPMethod: "POST", 4880 HTTPPath: "/", 4881 } 4882 4883 if input == nil { 4884 input = &UpdateSizeConstraintSetInput{} 4885 } 4886 4887 output = &UpdateSizeConstraintSetOutput{} 4888 req = c.newRequest(op, input, output) 4889 return 4890} 4891 4892// UpdateSizeConstraintSet API operation for AWS WAF. 4893// 4894// Inserts or deletes SizeConstraint objects (filters) in a SizeConstraintSet. 4895// For each SizeConstraint object, you specify the following values: 4896// 4897// * Whether to insert or delete the object from the array. If you want to 4898// change a SizeConstraintSetUpdate object, you delete the existing object 4899// and add a new one. 4900// 4901// * The part of a web request that you want AWS WAF to evaluate, such as 4902// the length of a query string or the length of the User-Agent header. 4903// 4904// * Whether to perform any transformations on the request, such as converting 4905// it to lowercase, before checking its length. Note that transformations 4906// of the request body are not supported because the AWS resource forwards 4907// only the first 8192 bytes of your request to AWS WAF. 4908// 4909// * A ComparisonOperator used for evaluating the selected part of the request 4910// against the specified Size, such as equals, greater than, less than, and 4911// so on. 4912// 4913// * The length, in bytes, that you want AWS WAF to watch for in selected 4914// part of the request. The length is computed after applying the transformation. 4915// 4916// For example, you can add a SizeConstraintSetUpdate object that matches web 4917// requests in which the length of the User-Agent header is greater than 100 4918// bytes. You can then configure AWS WAF to block those requests. 4919// 4920// To create and configure a SizeConstraintSet, perform the following steps: 4921// 4922// Create a SizeConstraintSet. For more information, see CreateSizeConstraintSet. 4923// 4924// Use GetChangeToken to get the change token that you provide in the ChangeToken 4925// parameter of an UpdateSizeConstraintSet request. 4926// 4927// Submit an UpdateSizeConstraintSet request to specify the part of the request 4928// that you want AWS WAF to inspect (for example, the header or the URI) and 4929// the value that you want AWS WAF to watch for. 4930// 4931// For more information about how to use the AWS WAF API to allow or block HTTP 4932// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 4933// 4934// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 4935// with awserr.Error's Code and Message methods to get detailed information about 4936// the error. 4937// 4938// See the AWS API reference guide for AWS WAF's 4939// API operation UpdateSizeConstraintSet for usage and error information. 4940// 4941// Returned Error Codes: 4942// * ErrCodeStaleDataException "StaleDataException" 4943// The operation failed because you tried to create, update, or delete an object 4944// by using a change token that has already been used. 4945// 4946// * ErrCodeInternalErrorException "InternalErrorException" 4947// The operation failed because of a system problem, even though the request 4948// was valid. Retry your request. 4949// 4950// * ErrCodeInvalidAccountException "InvalidAccountException" 4951// The operation failed because you tried to create, update, or delete an object 4952// by using an invalid account identifier. 4953// 4954// * ErrCodeInvalidOperationException "InvalidOperationException" 4955// The operation failed because there was nothing to do. For example: 4956// 4957// * You tried to remove a Rule from a WebACL, but the Rule isn't in the 4958// specified WebACL. 4959// 4960// * You tried to remove an IP address from an IPSet, but the IP address 4961// isn't in the specified IPSet. 4962// 4963// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple 4964// isn't in the specified WebACL. 4965// 4966// * You tried to add a Rule to a WebACL, but the Rule already exists in 4967// the specified WebACL. 4968// 4969// * You tried to add an IP address to an IPSet, but the IP address already 4970// exists in the specified IPSet. 4971// 4972// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple 4973// already exists in the specified WebACL. 4974// 4975// * ErrCodeInvalidParameterException "InvalidParameterException" 4976// The operation failed because AWS WAF didn't recognize a parameter in the 4977// request. For example: 4978// 4979// * You specified an invalid parameter name. 4980// 4981// * You specified an invalid value. 4982// 4983// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 4984// using an action other than INSERT or DELETE. 4985// 4986// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 4987// BLOCK, or COUNT. 4988// 4989// * You tried to create a RateBasedRule with a RateKey value other than 4990// IP. 4991// 4992// * You tried to update a WebACL with a WafActionType other than ALLOW, 4993// BLOCK, or COUNT. 4994// 4995// * You tried to update a ByteMatchSet with a FieldToMatchType other than 4996// HEADER, QUERY_STRING, or URI. 4997// 4998// * You tried to update a ByteMatchSet with a Field of HEADER but no value 4999// for Data. 5000// 5001// * Your request references an ARN that is malformed, or corresponds to 5002// a resource with which a web ACL cannot be associated. 5003// 5004// * ErrCodeNonexistentContainerException "NonexistentContainerException" 5005// The operation failed because you tried to add an object to or delete an object 5006// from another object that doesn't exist. For example: 5007// 5008// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't 5009// exist. 5010// 5011// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule 5012// that doesn't exist. 5013// 5014// * You tried to add an IP address to or delete an IP address from an IPSet 5015// that doesn't exist. 5016// 5017// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from 5018// a ByteMatchSet that doesn't exist. 5019// 5020// * ErrCodeNonexistentItemException "NonexistentItemException" 5021// The operation failed because the referenced object doesn't exist. 5022// 5023// * ErrCodeReferencedItemException "ReferencedItemException" 5024// The operation failed because you tried to delete an object that is still 5025// in use. For example: 5026// 5027// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 5028// 5029// * You tried to delete a Rule that is still referenced by a WebACL. 5030// 5031// * ErrCodeLimitsExceededException "LimitsExceededException" 5032// The operation exceeds a resource limit, for example, the maximum number of 5033// WebACL objects that you can create for an AWS account. For more information, 5034// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 5035// in the AWS WAF Developer Guide. 5036// 5037// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSet 5038func (c *WAF) UpdateSizeConstraintSet(input *UpdateSizeConstraintSetInput) (*UpdateSizeConstraintSetOutput, error) { 5039 req, out := c.UpdateSizeConstraintSetRequest(input) 5040 return out, req.Send() 5041} 5042 5043// UpdateSizeConstraintSetWithContext is the same as UpdateSizeConstraintSet with the addition of 5044// the ability to pass a context and additional request options. 5045// 5046// See UpdateSizeConstraintSet for details on how to use this API operation. 5047// 5048// The context must be non-nil and will be used for request cancellation. If 5049// the context is nil a panic will occur. In the future the SDK may create 5050// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5051// for more information on using Contexts. 5052func (c *WAF) UpdateSizeConstraintSetWithContext(ctx aws.Context, input *UpdateSizeConstraintSetInput, opts ...request.Option) (*UpdateSizeConstraintSetOutput, error) { 5053 req, out := c.UpdateSizeConstraintSetRequest(input) 5054 req.SetContext(ctx) 5055 req.ApplyOptions(opts...) 5056 return out, req.Send() 5057} 5058 5059const opUpdateSqlInjectionMatchSet = "UpdateSqlInjectionMatchSet" 5060 5061// UpdateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the 5062// client's request for the UpdateSqlInjectionMatchSet operation. The "output" return 5063// value will be populated with the request's response once the request complets 5064// successfuly. 5065// 5066// Use "Send" method on the returned Request to send the API call to the service. 5067// the "output" return value is not valid until after Send returns without error. 5068// 5069// See UpdateSqlInjectionMatchSet for more information on using the UpdateSqlInjectionMatchSet 5070// API call, and error handling. 5071// 5072// This method is useful when you want to inject custom logic or configuration 5073// into the SDK's request lifecycle. Such as custom headers, or retry logic. 5074// 5075// 5076// // Example sending a request using the UpdateSqlInjectionMatchSetRequest method. 5077// req, resp := client.UpdateSqlInjectionMatchSetRequest(params) 5078// 5079// err := req.Send() 5080// if err == nil { // resp is now filled 5081// fmt.Println(resp) 5082// } 5083// 5084// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSet 5085func (c *WAF) UpdateSqlInjectionMatchSetRequest(input *UpdateSqlInjectionMatchSetInput) (req *request.Request, output *UpdateSqlInjectionMatchSetOutput) { 5086 op := &request.Operation{ 5087 Name: opUpdateSqlInjectionMatchSet, 5088 HTTPMethod: "POST", 5089 HTTPPath: "/", 5090 } 5091 5092 if input == nil { 5093 input = &UpdateSqlInjectionMatchSetInput{} 5094 } 5095 5096 output = &UpdateSqlInjectionMatchSetOutput{} 5097 req = c.newRequest(op, input, output) 5098 return 5099} 5100 5101// UpdateSqlInjectionMatchSet API operation for AWS WAF. 5102// 5103// Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet. 5104// For each SqlInjectionMatchTuple object, you specify the following values: 5105// 5106// * Action: Whether to insert the object into or delete the object from 5107// the array. To change a SqlInjectionMatchTuple, you delete the existing 5108// object and add a new one. 5109// 5110// * FieldToMatch: The part of web requests that you want AWS WAF to inspect 5111// and, if you want AWS WAF to inspect a header, the name of the header. 5112// 5113// * TextTransformation: Which text transformation, if any, to perform on 5114// the web request before inspecting the request for snippets of malicious 5115// SQL code. 5116// 5117// You use SqlInjectionMatchSet objects to specify which CloudFront requests 5118// you want to allow, block, or count. For example, if you're receiving requests 5119// that contain snippets of SQL code in the query string and you want to block 5120// the requests, you can create a SqlInjectionMatchSet with the applicable settings, 5121// and then configure AWS WAF to block the requests. 5122// 5123// To create and configure a SqlInjectionMatchSet, perform the following steps: 5124// 5125// Submit a CreateSqlInjectionMatchSet request. 5126// 5127// Use GetChangeToken to get the change token that you provide in the ChangeToken 5128// parameter of an UpdateIPSet request. 5129// 5130// Submit an UpdateSqlInjectionMatchSet request to specify the parts of web 5131// requests that you want AWS WAF to inspect for snippets of SQL code. 5132// 5133// For more information about how to use the AWS WAF API to allow or block HTTP 5134// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 5135// 5136// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5137// with awserr.Error's Code and Message methods to get detailed information about 5138// the error. 5139// 5140// See the AWS API reference guide for AWS WAF's 5141// API operation UpdateSqlInjectionMatchSet for usage and error information. 5142// 5143// Returned Error Codes: 5144// * ErrCodeInternalErrorException "InternalErrorException" 5145// The operation failed because of a system problem, even though the request 5146// was valid. Retry your request. 5147// 5148// * ErrCodeInvalidAccountException "InvalidAccountException" 5149// The operation failed because you tried to create, update, or delete an object 5150// by using an invalid account identifier. 5151// 5152// * ErrCodeInvalidOperationException "InvalidOperationException" 5153// The operation failed because there was nothing to do. For example: 5154// 5155// * You tried to remove a Rule from a WebACL, but the Rule isn't in the 5156// specified WebACL. 5157// 5158// * You tried to remove an IP address from an IPSet, but the IP address 5159// isn't in the specified IPSet. 5160// 5161// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple 5162// isn't in the specified WebACL. 5163// 5164// * You tried to add a Rule to a WebACL, but the Rule already exists in 5165// the specified WebACL. 5166// 5167// * You tried to add an IP address to an IPSet, but the IP address already 5168// exists in the specified IPSet. 5169// 5170// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple 5171// already exists in the specified WebACL. 5172// 5173// * ErrCodeInvalidParameterException "InvalidParameterException" 5174// The operation failed because AWS WAF didn't recognize a parameter in the 5175// request. For example: 5176// 5177// * You specified an invalid parameter name. 5178// 5179// * You specified an invalid value. 5180// 5181// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 5182// using an action other than INSERT or DELETE. 5183// 5184// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 5185// BLOCK, or COUNT. 5186// 5187// * You tried to create a RateBasedRule with a RateKey value other than 5188// IP. 5189// 5190// * You tried to update a WebACL with a WafActionType other than ALLOW, 5191// BLOCK, or COUNT. 5192// 5193// * You tried to update a ByteMatchSet with a FieldToMatchType other than 5194// HEADER, QUERY_STRING, or URI. 5195// 5196// * You tried to update a ByteMatchSet with a Field of HEADER but no value 5197// for Data. 5198// 5199// * Your request references an ARN that is malformed, or corresponds to 5200// a resource with which a web ACL cannot be associated. 5201// 5202// * ErrCodeNonexistentContainerException "NonexistentContainerException" 5203// The operation failed because you tried to add an object to or delete an object 5204// from another object that doesn't exist. For example: 5205// 5206// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't 5207// exist. 5208// 5209// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule 5210// that doesn't exist. 5211// 5212// * You tried to add an IP address to or delete an IP address from an IPSet 5213// that doesn't exist. 5214// 5215// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from 5216// a ByteMatchSet that doesn't exist. 5217// 5218// * ErrCodeNonexistentItemException "NonexistentItemException" 5219// The operation failed because the referenced object doesn't exist. 5220// 5221// * ErrCodeStaleDataException "StaleDataException" 5222// The operation failed because you tried to create, update, or delete an object 5223// by using a change token that has already been used. 5224// 5225// * ErrCodeLimitsExceededException "LimitsExceededException" 5226// The operation exceeds a resource limit, for example, the maximum number of 5227// WebACL objects that you can create for an AWS account. For more information, 5228// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 5229// in the AWS WAF Developer Guide. 5230// 5231// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSet 5232func (c *WAF) UpdateSqlInjectionMatchSet(input *UpdateSqlInjectionMatchSetInput) (*UpdateSqlInjectionMatchSetOutput, error) { 5233 req, out := c.UpdateSqlInjectionMatchSetRequest(input) 5234 return out, req.Send() 5235} 5236 5237// UpdateSqlInjectionMatchSetWithContext is the same as UpdateSqlInjectionMatchSet with the addition of 5238// the ability to pass a context and additional request options. 5239// 5240// See UpdateSqlInjectionMatchSet for details on how to use this API operation. 5241// 5242// The context must be non-nil and will be used for request cancellation. If 5243// the context is nil a panic will occur. In the future the SDK may create 5244// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5245// for more information on using Contexts. 5246func (c *WAF) UpdateSqlInjectionMatchSetWithContext(ctx aws.Context, input *UpdateSqlInjectionMatchSetInput, opts ...request.Option) (*UpdateSqlInjectionMatchSetOutput, error) { 5247 req, out := c.UpdateSqlInjectionMatchSetRequest(input) 5248 req.SetContext(ctx) 5249 req.ApplyOptions(opts...) 5250 return out, req.Send() 5251} 5252 5253const opUpdateWebACL = "UpdateWebACL" 5254 5255// UpdateWebACLRequest generates a "aws/request.Request" representing the 5256// client's request for the UpdateWebACL operation. The "output" return 5257// value will be populated with the request's response once the request complets 5258// successfuly. 5259// 5260// Use "Send" method on the returned Request to send the API call to the service. 5261// the "output" return value is not valid until after Send returns without error. 5262// 5263// See UpdateWebACL for more information on using the UpdateWebACL 5264// API call, and error handling. 5265// 5266// This method is useful when you want to inject custom logic or configuration 5267// into the SDK's request lifecycle. Such as custom headers, or retry logic. 5268// 5269// 5270// // Example sending a request using the UpdateWebACLRequest method. 5271// req, resp := client.UpdateWebACLRequest(params) 5272// 5273// err := req.Send() 5274// if err == nil { // resp is now filled 5275// fmt.Println(resp) 5276// } 5277// 5278// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateWebACL 5279func (c *WAF) UpdateWebACLRequest(input *UpdateWebACLInput) (req *request.Request, output *UpdateWebACLOutput) { 5280 op := &request.Operation{ 5281 Name: opUpdateWebACL, 5282 HTTPMethod: "POST", 5283 HTTPPath: "/", 5284 } 5285 5286 if input == nil { 5287 input = &UpdateWebACLInput{} 5288 } 5289 5290 output = &UpdateWebACLOutput{} 5291 req = c.newRequest(op, input, output) 5292 return 5293} 5294 5295// UpdateWebACL API operation for AWS WAF. 5296// 5297// Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies 5298// web requests that you want to allow, block, or count. When you update a WebACL, 5299// you specify the following values: 5300// 5301// * A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs 5302// the default action if a request doesn't match the criteria in any of the 5303// Rules in a WebACL. 5304// 5305// * The Rules that you want to add and/or delete. If you want to replace 5306// one Rule with another, you delete the existing Rule and add the new one. 5307// 5308// * For each Rule, whether you want AWS WAF to allow requests, block requests, 5309// or count requests that match the conditions in the Rule. 5310// 5311// * The order in which you want AWS WAF to evaluate the Rules in a WebACL. 5312// If you add more than one Rule to a WebACL, AWS WAF evaluates each request 5313// against the Rules in order based on the value of Priority. (The Rule that 5314// has the lowest value for Priority is evaluated first.) When a web request 5315// matches all of the predicates (such as ByteMatchSets and IPSets) in a 5316// Rule, AWS WAF immediately takes the corresponding action, allow or block, 5317// and doesn't evaluate the request against the remaining Rules in the WebACL, 5318// if any. 5319// 5320// To create and configure a WebACL, perform the following steps: 5321// 5322// Create and update the predicates that you want to include in Rules. For more 5323// information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet, 5324// CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet. 5325// 5326// Create and update the Rules that you want to include in the WebACL. For more 5327// information, see CreateRule and UpdateRule. 5328// 5329// Create a WebACL. See CreateWebACL. 5330// 5331// Use GetChangeToken to get the change token that you provide in the ChangeToken 5332// parameter of an UpdateWebACL request. 5333// 5334// Submit an UpdateWebACL request to specify the Rules that you want to include 5335// in the WebACL, to specify the default action, and to associate the WebACL 5336// with a CloudFront distribution. 5337// 5338// Be aware that if you try to add a RATE_BASED rule to a web ACL without setting 5339// the rule type when first creating the rule, the UpdateWebACL request will 5340// fail because the request tries to add a REGULAR rule (the default rule type) 5341// with the specified ID, which does not exist. 5342// 5343// For more information about how to use the AWS WAF API to allow or block HTTP 5344// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 5345// 5346// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5347// with awserr.Error's Code and Message methods to get detailed information about 5348// the error. 5349// 5350// See the AWS API reference guide for AWS WAF's 5351// API operation UpdateWebACL for usage and error information. 5352// 5353// Returned Error Codes: 5354// * ErrCodeStaleDataException "StaleDataException" 5355// The operation failed because you tried to create, update, or delete an object 5356// by using a change token that has already been used. 5357// 5358// * ErrCodeInternalErrorException "InternalErrorException" 5359// The operation failed because of a system problem, even though the request 5360// was valid. Retry your request. 5361// 5362// * ErrCodeInvalidAccountException "InvalidAccountException" 5363// The operation failed because you tried to create, update, or delete an object 5364// by using an invalid account identifier. 5365// 5366// * ErrCodeInvalidOperationException "InvalidOperationException" 5367// The operation failed because there was nothing to do. For example: 5368// 5369// * You tried to remove a Rule from a WebACL, but the Rule isn't in the 5370// specified WebACL. 5371// 5372// * You tried to remove an IP address from an IPSet, but the IP address 5373// isn't in the specified IPSet. 5374// 5375// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple 5376// isn't in the specified WebACL. 5377// 5378// * You tried to add a Rule to a WebACL, but the Rule already exists in 5379// the specified WebACL. 5380// 5381// * You tried to add an IP address to an IPSet, but the IP address already 5382// exists in the specified IPSet. 5383// 5384// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple 5385// already exists in the specified WebACL. 5386// 5387// * ErrCodeInvalidParameterException "InvalidParameterException" 5388// The operation failed because AWS WAF didn't recognize a parameter in the 5389// request. For example: 5390// 5391// * You specified an invalid parameter name. 5392// 5393// * You specified an invalid value. 5394// 5395// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 5396// using an action other than INSERT or DELETE. 5397// 5398// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 5399// BLOCK, or COUNT. 5400// 5401// * You tried to create a RateBasedRule with a RateKey value other than 5402// IP. 5403// 5404// * You tried to update a WebACL with a WafActionType other than ALLOW, 5405// BLOCK, or COUNT. 5406// 5407// * You tried to update a ByteMatchSet with a FieldToMatchType other than 5408// HEADER, QUERY_STRING, or URI. 5409// 5410// * You tried to update a ByteMatchSet with a Field of HEADER but no value 5411// for Data. 5412// 5413// * Your request references an ARN that is malformed, or corresponds to 5414// a resource with which a web ACL cannot be associated. 5415// 5416// * ErrCodeNonexistentContainerException "NonexistentContainerException" 5417// The operation failed because you tried to add an object to or delete an object 5418// from another object that doesn't exist. For example: 5419// 5420// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't 5421// exist. 5422// 5423// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule 5424// that doesn't exist. 5425// 5426// * You tried to add an IP address to or delete an IP address from an IPSet 5427// that doesn't exist. 5428// 5429// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from 5430// a ByteMatchSet that doesn't exist. 5431// 5432// * ErrCodeNonexistentItemException "NonexistentItemException" 5433// The operation failed because the referenced object doesn't exist. 5434// 5435// * ErrCodeReferencedItemException "ReferencedItemException" 5436// The operation failed because you tried to delete an object that is still 5437// in use. For example: 5438// 5439// * You tried to delete a ByteMatchSet that is still referenced by a Rule. 5440// 5441// * You tried to delete a Rule that is still referenced by a WebACL. 5442// 5443// * ErrCodeLimitsExceededException "LimitsExceededException" 5444// The operation exceeds a resource limit, for example, the maximum number of 5445// WebACL objects that you can create for an AWS account. For more information, 5446// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 5447// in the AWS WAF Developer Guide. 5448// 5449// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateWebACL 5450func (c *WAF) UpdateWebACL(input *UpdateWebACLInput) (*UpdateWebACLOutput, error) { 5451 req, out := c.UpdateWebACLRequest(input) 5452 return out, req.Send() 5453} 5454 5455// UpdateWebACLWithContext is the same as UpdateWebACL with the addition of 5456// the ability to pass a context and additional request options. 5457// 5458// See UpdateWebACL for details on how to use this API operation. 5459// 5460// The context must be non-nil and will be used for request cancellation. If 5461// the context is nil a panic will occur. In the future the SDK may create 5462// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5463// for more information on using Contexts. 5464func (c *WAF) UpdateWebACLWithContext(ctx aws.Context, input *UpdateWebACLInput, opts ...request.Option) (*UpdateWebACLOutput, error) { 5465 req, out := c.UpdateWebACLRequest(input) 5466 req.SetContext(ctx) 5467 req.ApplyOptions(opts...) 5468 return out, req.Send() 5469} 5470 5471const opUpdateXssMatchSet = "UpdateXssMatchSet" 5472 5473// UpdateXssMatchSetRequest generates a "aws/request.Request" representing the 5474// client's request for the UpdateXssMatchSet operation. The "output" return 5475// value will be populated with the request's response once the request complets 5476// successfuly. 5477// 5478// Use "Send" method on the returned Request to send the API call to the service. 5479// the "output" return value is not valid until after Send returns without error. 5480// 5481// See UpdateXssMatchSet for more information on using the UpdateXssMatchSet 5482// API call, and error handling. 5483// 5484// This method is useful when you want to inject custom logic or configuration 5485// into the SDK's request lifecycle. Such as custom headers, or retry logic. 5486// 5487// 5488// // Example sending a request using the UpdateXssMatchSetRequest method. 5489// req, resp := client.UpdateXssMatchSetRequest(params) 5490// 5491// err := req.Send() 5492// if err == nil { // resp is now filled 5493// fmt.Println(resp) 5494// } 5495// 5496// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSet 5497func (c *WAF) UpdateXssMatchSetRequest(input *UpdateXssMatchSetInput) (req *request.Request, output *UpdateXssMatchSetOutput) { 5498 op := &request.Operation{ 5499 Name: opUpdateXssMatchSet, 5500 HTTPMethod: "POST", 5501 HTTPPath: "/", 5502 } 5503 5504 if input == nil { 5505 input = &UpdateXssMatchSetInput{} 5506 } 5507 5508 output = &UpdateXssMatchSetOutput{} 5509 req = c.newRequest(op, input, output) 5510 return 5511} 5512 5513// UpdateXssMatchSet API operation for AWS WAF. 5514// 5515// Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet. For 5516// each XssMatchTuple object, you specify the following values: 5517// 5518// * Action: Whether to insert the object into or delete the object from 5519// the array. To change a XssMatchTuple, you delete the existing object and 5520// add a new one. 5521// 5522// * FieldToMatch: The part of web requests that you want AWS WAF to inspect 5523// and, if you want AWS WAF to inspect a header, the name of the header. 5524// 5525// * TextTransformation: Which text transformation, if any, to perform on 5526// the web request before inspecting the request for cross-site scripting 5527// attacks. 5528// 5529// You use XssMatchSet objects to specify which CloudFront requests you want 5530// to allow, block, or count. For example, if you're receiving requests that 5531// contain cross-site scripting attacks in the request body and you want to 5532// block the requests, you can create an XssMatchSet with the applicable settings, 5533// and then configure AWS WAF to block the requests. 5534// 5535// To create and configure an XssMatchSet, perform the following steps: 5536// 5537// Submit a CreateXssMatchSet request. 5538// 5539// Use GetChangeToken to get the change token that you provide in the ChangeToken 5540// parameter of an UpdateIPSet request. 5541// 5542// Submit an UpdateXssMatchSet request to specify the parts of web requests 5543// that you want AWS WAF to inspect for cross-site scripting attacks. 5544// 5545// For more information about how to use the AWS WAF API to allow or block HTTP 5546// requests, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/). 5547// 5548// Returns awserr.Error for service API and SDK errors. Use runtime type assertions 5549// with awserr.Error's Code and Message methods to get detailed information about 5550// the error. 5551// 5552// See the AWS API reference guide for AWS WAF's 5553// API operation UpdateXssMatchSet for usage and error information. 5554// 5555// Returned Error Codes: 5556// * ErrCodeInternalErrorException "InternalErrorException" 5557// The operation failed because of a system problem, even though the request 5558// was valid. Retry your request. 5559// 5560// * ErrCodeInvalidAccountException "InvalidAccountException" 5561// The operation failed because you tried to create, update, or delete an object 5562// by using an invalid account identifier. 5563// 5564// * ErrCodeInvalidOperationException "InvalidOperationException" 5565// The operation failed because there was nothing to do. For example: 5566// 5567// * You tried to remove a Rule from a WebACL, but the Rule isn't in the 5568// specified WebACL. 5569// 5570// * You tried to remove an IP address from an IPSet, but the IP address 5571// isn't in the specified IPSet. 5572// 5573// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple 5574// isn't in the specified WebACL. 5575// 5576// * You tried to add a Rule to a WebACL, but the Rule already exists in 5577// the specified WebACL. 5578// 5579// * You tried to add an IP address to an IPSet, but the IP address already 5580// exists in the specified IPSet. 5581// 5582// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple 5583// already exists in the specified WebACL. 5584// 5585// * ErrCodeInvalidParameterException "InvalidParameterException" 5586// The operation failed because AWS WAF didn't recognize a parameter in the 5587// request. For example: 5588// 5589// * You specified an invalid parameter name. 5590// 5591// * You specified an invalid value. 5592// 5593// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL) 5594// using an action other than INSERT or DELETE. 5595// 5596// * You tried to create a WebACL with a DefaultActionType other than ALLOW, 5597// BLOCK, or COUNT. 5598// 5599// * You tried to create a RateBasedRule with a RateKey value other than 5600// IP. 5601// 5602// * You tried to update a WebACL with a WafActionType other than ALLOW, 5603// BLOCK, or COUNT. 5604// 5605// * You tried to update a ByteMatchSet with a FieldToMatchType other than 5606// HEADER, QUERY_STRING, or URI. 5607// 5608// * You tried to update a ByteMatchSet with a Field of HEADER but no value 5609// for Data. 5610// 5611// * Your request references an ARN that is malformed, or corresponds to 5612// a resource with which a web ACL cannot be associated. 5613// 5614// * ErrCodeNonexistentContainerException "NonexistentContainerException" 5615// The operation failed because you tried to add an object to or delete an object 5616// from another object that doesn't exist. For example: 5617// 5618// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't 5619// exist. 5620// 5621// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule 5622// that doesn't exist. 5623// 5624// * You tried to add an IP address to or delete an IP address from an IPSet 5625// that doesn't exist. 5626// 5627// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from 5628// a ByteMatchSet that doesn't exist. 5629// 5630// * ErrCodeNonexistentItemException "NonexistentItemException" 5631// The operation failed because the referenced object doesn't exist. 5632// 5633// * ErrCodeStaleDataException "StaleDataException" 5634// The operation failed because you tried to create, update, or delete an object 5635// by using a change token that has already been used. 5636// 5637// * ErrCodeLimitsExceededException "LimitsExceededException" 5638// The operation exceeds a resource limit, for example, the maximum number of 5639// WebACL objects that you can create for an AWS account. For more information, 5640// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html) 5641// in the AWS WAF Developer Guide. 5642// 5643// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSet 5644func (c *WAF) UpdateXssMatchSet(input *UpdateXssMatchSetInput) (*UpdateXssMatchSetOutput, error) { 5645 req, out := c.UpdateXssMatchSetRequest(input) 5646 return out, req.Send() 5647} 5648 5649// UpdateXssMatchSetWithContext is the same as UpdateXssMatchSet with the addition of 5650// the ability to pass a context and additional request options. 5651// 5652// See UpdateXssMatchSet for details on how to use this API operation. 5653// 5654// The context must be non-nil and will be used for request cancellation. If 5655// the context is nil a panic will occur. In the future the SDK may create 5656// sub-contexts for http.Requests. See https://golang.org/pkg/context/ 5657// for more information on using Contexts. 5658func (c *WAF) UpdateXssMatchSetWithContext(ctx aws.Context, input *UpdateXssMatchSetInput, opts ...request.Option) (*UpdateXssMatchSetOutput, error) { 5659 req, out := c.UpdateXssMatchSetRequest(input) 5660 req.SetContext(ctx) 5661 req.ApplyOptions(opts...) 5662 return out, req.Send() 5663} 5664 5665// The ActivatedRule object in an UpdateWebACL request specifies a Rule that 5666// you want to insert or delete, the priority of the Rule in the WebACL, and 5667// the action that you want AWS WAF to take when a web request matches the Rule 5668// (ALLOW, BLOCK, or COUNT). 5669// 5670// To specify whether to insert or delete a Rule, use the Action parameter in 5671// the WebACLUpdate data type. 5672// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ActivatedRule 5673type ActivatedRule struct { 5674 _ struct{} `type:"structure"` 5675 5676 // Specifies the action that CloudFront or AWS WAF takes when a web request 5677 // matches the conditions in the Rule. Valid values for Action include the following: 5678 // 5679 // * ALLOW: CloudFront responds with the requested object. 5680 // 5681 // * BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code. 5682 // 5683 // * COUNT: AWS WAF increments a counter of requests that match the conditions 5684 // in the rule and then continues to inspect the web request based on the 5685 // remaining rules in the web ACL. 5686 // 5687 // Action is a required field 5688 Action *WafAction `type:"structure" required:"true"` 5689 5690 // Specifies the order in which the Rules in a WebACL are evaluated. Rules with 5691 // a lower value for Priority are evaluated before Rules with a higher value. 5692 // The value must be a unique integer. If you add multiple Rules to a WebACL, 5693 // the values don't need to be consecutive. 5694 // 5695 // Priority is a required field 5696 Priority *int64 `type:"integer" required:"true"` 5697 5698 // The RuleId for a Rule. You use RuleId to get more information about a Rule 5699 // (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL 5700 // or delete a one from a WebACL (see UpdateWebACL), or delete a Rule from AWS 5701 // WAF (see DeleteRule). 5702 // 5703 // RuleId is returned by CreateRule and by ListRules. 5704 // 5705 // RuleId is a required field 5706 RuleId *string `min:"1" type:"string" required:"true"` 5707 5708 // The rule type, either REGULAR, as defined by Rule, or RATE_BASED, as defined 5709 // by RateBasedRule. The default is REGULAR. Although this field is optional, 5710 // be aware that if you try to add a RATE_BASED rule to a web ACL without setting 5711 // the type, the UpdateWebACL request will fail because the request tries to 5712 // add a REGULAR rule with the specified ID, which does not exist. 5713 Type *string `type:"string" enum:"WafRuleType"` 5714} 5715 5716// String returns the string representation 5717func (s ActivatedRule) String() string { 5718 return awsutil.Prettify(s) 5719} 5720 5721// GoString returns the string representation 5722func (s ActivatedRule) GoString() string { 5723 return s.String() 5724} 5725 5726// Validate inspects the fields of the type to determine if they are valid. 5727func (s *ActivatedRule) Validate() error { 5728 invalidParams := request.ErrInvalidParams{Context: "ActivatedRule"} 5729 if s.Action == nil { 5730 invalidParams.Add(request.NewErrParamRequired("Action")) 5731 } 5732 if s.Priority == nil { 5733 invalidParams.Add(request.NewErrParamRequired("Priority")) 5734 } 5735 if s.RuleId == nil { 5736 invalidParams.Add(request.NewErrParamRequired("RuleId")) 5737 } 5738 if s.RuleId != nil && len(*s.RuleId) < 1 { 5739 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 5740 } 5741 if s.Action != nil { 5742 if err := s.Action.Validate(); err != nil { 5743 invalidParams.AddNested("Action", err.(request.ErrInvalidParams)) 5744 } 5745 } 5746 5747 if invalidParams.Len() > 0 { 5748 return invalidParams 5749 } 5750 return nil 5751} 5752 5753// SetAction sets the Action field's value. 5754func (s *ActivatedRule) SetAction(v *WafAction) *ActivatedRule { 5755 s.Action = v 5756 return s 5757} 5758 5759// SetPriority sets the Priority field's value. 5760func (s *ActivatedRule) SetPriority(v int64) *ActivatedRule { 5761 s.Priority = &v 5762 return s 5763} 5764 5765// SetRuleId sets the RuleId field's value. 5766func (s *ActivatedRule) SetRuleId(v string) *ActivatedRule { 5767 s.RuleId = &v 5768 return s 5769} 5770 5771// SetType sets the Type field's value. 5772func (s *ActivatedRule) SetType(v string) *ActivatedRule { 5773 s.Type = &v 5774 return s 5775} 5776 5777// In a GetByteMatchSet request, ByteMatchSet is a complex type that contains 5778// the ByteMatchSetId and Name of a ByteMatchSet, and the values that you specified 5779// when you updated the ByteMatchSet. 5780// 5781// A complex type that contains ByteMatchTuple objects, which specify the parts 5782// of web requests that you want AWS WAF to inspect and the values that you 5783// want AWS WAF to search for. If a ByteMatchSet contains more than one ByteMatchTuple 5784// object, a request needs to match the settings in only one ByteMatchTuple 5785// to be considered a match. 5786// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ByteMatchSet 5787type ByteMatchSet struct { 5788 _ struct{} `type:"structure"` 5789 5790 // The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information 5791 // about a ByteMatchSet (see GetByteMatchSet), update a ByteMatchSet (see UpdateByteMatchSet), 5792 // insert a ByteMatchSet into a Rule or delete one from a Rule (see UpdateRule), 5793 // and delete a ByteMatchSet from AWS WAF (see DeleteByteMatchSet). 5794 // 5795 // ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets. 5796 // 5797 // ByteMatchSetId is a required field 5798 ByteMatchSetId *string `min:"1" type:"string" required:"true"` 5799 5800 // Specifies the bytes (typically a string that corresponds with ASCII characters) 5801 // that you want AWS WAF to search for in web requests, the location in requests 5802 // that you want AWS WAF to search, and other settings. 5803 // 5804 // ByteMatchTuples is a required field 5805 ByteMatchTuples []*ByteMatchTuple `type:"list" required:"true"` 5806 5807 // A friendly name or description of the ByteMatchSet. You can't change Name 5808 // after you create a ByteMatchSet. 5809 Name *string `min:"1" type:"string"` 5810} 5811 5812// String returns the string representation 5813func (s ByteMatchSet) String() string { 5814 return awsutil.Prettify(s) 5815} 5816 5817// GoString returns the string representation 5818func (s ByteMatchSet) GoString() string { 5819 return s.String() 5820} 5821 5822// SetByteMatchSetId sets the ByteMatchSetId field's value. 5823func (s *ByteMatchSet) SetByteMatchSetId(v string) *ByteMatchSet { 5824 s.ByteMatchSetId = &v 5825 return s 5826} 5827 5828// SetByteMatchTuples sets the ByteMatchTuples field's value. 5829func (s *ByteMatchSet) SetByteMatchTuples(v []*ByteMatchTuple) *ByteMatchSet { 5830 s.ByteMatchTuples = v 5831 return s 5832} 5833 5834// SetName sets the Name field's value. 5835func (s *ByteMatchSet) SetName(v string) *ByteMatchSet { 5836 s.Name = &v 5837 return s 5838} 5839 5840// Returned by ListByteMatchSets. Each ByteMatchSetSummary object includes the 5841// Name and ByteMatchSetId for one ByteMatchSet. 5842// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ByteMatchSetSummary 5843type ByteMatchSetSummary struct { 5844 _ struct{} `type:"structure"` 5845 5846 // The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information 5847 // about a ByteMatchSet, update a ByteMatchSet, remove a ByteMatchSet from a 5848 // Rule, and delete a ByteMatchSet from AWS WAF. 5849 // 5850 // ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets. 5851 // 5852 // ByteMatchSetId is a required field 5853 ByteMatchSetId *string `min:"1" type:"string" required:"true"` 5854 5855 // A friendly name or description of the ByteMatchSet. You can't change Name 5856 // after you create a ByteMatchSet. 5857 // 5858 // Name is a required field 5859 Name *string `min:"1" type:"string" required:"true"` 5860} 5861 5862// String returns the string representation 5863func (s ByteMatchSetSummary) String() string { 5864 return awsutil.Prettify(s) 5865} 5866 5867// GoString returns the string representation 5868func (s ByteMatchSetSummary) GoString() string { 5869 return s.String() 5870} 5871 5872// SetByteMatchSetId sets the ByteMatchSetId field's value. 5873func (s *ByteMatchSetSummary) SetByteMatchSetId(v string) *ByteMatchSetSummary { 5874 s.ByteMatchSetId = &v 5875 return s 5876} 5877 5878// SetName sets the Name field's value. 5879func (s *ByteMatchSetSummary) SetName(v string) *ByteMatchSetSummary { 5880 s.Name = &v 5881 return s 5882} 5883 5884// In an UpdateByteMatchSet request, ByteMatchSetUpdate specifies whether to 5885// insert or delete a ByteMatchTuple and includes the settings for the ByteMatchTuple. 5886// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ByteMatchSetUpdate 5887type ByteMatchSetUpdate struct { 5888 _ struct{} `type:"structure"` 5889 5890 // Specifies whether to insert or delete a ByteMatchTuple. 5891 // 5892 // Action is a required field 5893 Action *string `type:"string" required:"true" enum:"ChangeAction"` 5894 5895 // Information about the part of a web request that you want AWS WAF to inspect 5896 // and the value that you want AWS WAF to search for. If you specify DELETE 5897 // for the value of Action, the ByteMatchTuple values must exactly match the 5898 // values in the ByteMatchTuple that you want to delete from the ByteMatchSet. 5899 // 5900 // ByteMatchTuple is a required field 5901 ByteMatchTuple *ByteMatchTuple `type:"structure" required:"true"` 5902} 5903 5904// String returns the string representation 5905func (s ByteMatchSetUpdate) String() string { 5906 return awsutil.Prettify(s) 5907} 5908 5909// GoString returns the string representation 5910func (s ByteMatchSetUpdate) GoString() string { 5911 return s.String() 5912} 5913 5914// Validate inspects the fields of the type to determine if they are valid. 5915func (s *ByteMatchSetUpdate) Validate() error { 5916 invalidParams := request.ErrInvalidParams{Context: "ByteMatchSetUpdate"} 5917 if s.Action == nil { 5918 invalidParams.Add(request.NewErrParamRequired("Action")) 5919 } 5920 if s.ByteMatchTuple == nil { 5921 invalidParams.Add(request.NewErrParamRequired("ByteMatchTuple")) 5922 } 5923 if s.ByteMatchTuple != nil { 5924 if err := s.ByteMatchTuple.Validate(); err != nil { 5925 invalidParams.AddNested("ByteMatchTuple", err.(request.ErrInvalidParams)) 5926 } 5927 } 5928 5929 if invalidParams.Len() > 0 { 5930 return invalidParams 5931 } 5932 return nil 5933} 5934 5935// SetAction sets the Action field's value. 5936func (s *ByteMatchSetUpdate) SetAction(v string) *ByteMatchSetUpdate { 5937 s.Action = &v 5938 return s 5939} 5940 5941// SetByteMatchTuple sets the ByteMatchTuple field's value. 5942func (s *ByteMatchSetUpdate) SetByteMatchTuple(v *ByteMatchTuple) *ByteMatchSetUpdate { 5943 s.ByteMatchTuple = v 5944 return s 5945} 5946 5947// The bytes (typically a string that corresponds with ASCII characters) that 5948// you want AWS WAF to search for in web requests, the location in requests 5949// that you want AWS WAF to search, and other settings. 5950// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ByteMatchTuple 5951type ByteMatchTuple struct { 5952 _ struct{} `type:"structure"` 5953 5954 // The part of a web request that you want AWS WAF to search, such as a specified 5955 // header or a query string. For more information, see FieldToMatch. 5956 // 5957 // FieldToMatch is a required field 5958 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 5959 5960 // Within the portion of a web request that you want to search (for example, 5961 // in the query string, if any), specify where you want AWS WAF to search. Valid 5962 // values include the following: 5963 // 5964 // CONTAINS 5965 // 5966 // The specified part of the web request must include the value of TargetString, 5967 // but the location doesn't matter. 5968 // 5969 // CONTAINS_WORD 5970 // 5971 // The specified part of the web request must include the value of TargetString, 5972 // and TargetString must contain only alphanumeric characters or underscore 5973 // (A-Z, a-z, 0-9, or _). In addition, TargetString must be a word, which means 5974 // one of the following: 5975 // 5976 // * TargetString exactly matches the value of the specified part of the 5977 // web request, such as the value of a header. 5978 // 5979 // * TargetString is at the beginning of the specified part of the web request 5980 // and is followed by a character other than an alphanumeric character or 5981 // underscore (_), for example, BadBot;. 5982 // 5983 // * TargetString is at the end of the specified part of the web request 5984 // and is preceded by a character other than an alphanumeric character or 5985 // underscore (_), for example, ;BadBot. 5986 // 5987 // * TargetString is in the middle of the specified part of the web request 5988 // and is preceded and followed by characters other than alphanumeric characters 5989 // or underscore (_), for example, -BadBot;. 5990 // 5991 // EXACTLY 5992 // 5993 // The value of the specified part of the web request must exactly match the 5994 // value of TargetString. 5995 // 5996 // STARTS_WITH 5997 // 5998 // The value of TargetString must appear at the beginning of the specified part 5999 // of the web request. 6000 // 6001 // ENDS_WITH 6002 // 6003 // The value of TargetString must appear at the end of the specified part of 6004 // the web request. 6005 // 6006 // PositionalConstraint is a required field 6007 PositionalConstraint *string `type:"string" required:"true" enum:"PositionalConstraint"` 6008 6009 // The value that you want AWS WAF to search for. AWS WAF searches for the specified 6010 // string in the part of web requests that you specified in FieldToMatch. The 6011 // maximum length of the value is 50 bytes. 6012 // 6013 // Valid values depend on the values that you specified for FieldToMatch: 6014 // 6015 // * HEADER: The value that you want AWS WAF to search for in the request 6016 // header that you specified in FieldToMatch, for example, the value of the 6017 // User-Agent or Referer header. 6018 // 6019 // * METHOD: The HTTP method, which indicates the type of operation specified 6020 // in the request. CloudFront supports the following methods: DELETE, GET, 6021 // HEAD, OPTIONS, PATCH, POST, and PUT. 6022 // 6023 // * QUERY_STRING: The value that you want AWS WAF to search for in the query 6024 // string, which is the part of a URL that appears after a ? character. 6025 // 6026 // * URI: The value that you want AWS WAF to search for in the part of a 6027 // URL that identifies a resource, for example, /images/daily-ad.jpg. 6028 // 6029 // * BODY: The part of a request that contains any additional data that you 6030 // want to send to your web server as the HTTP request body, such as data 6031 // from a form. The request body immediately follows the request headers. 6032 // Note that only the first 8192 bytes of the request body are forwarded 6033 // to AWS WAF for inspection. To allow or block requests based on the length 6034 // of the body, you can create a size constraint set. For more information, 6035 // see CreateSizeConstraintSet. 6036 // 6037 // If TargetString includes alphabetic characters A-Z and a-z, note that the 6038 // value is case sensitive. 6039 // 6040 // If you're using the AWS WAF API 6041 // 6042 // Specify a base64-encoded version of the value. The maximum length of the 6043 // value before you base64-encode it is 50 bytes. 6044 // 6045 // For example, suppose the value of Type is HEADER and the value of Data is 6046 // User-Agent. If you want to search the User-Agent header for the value BadBot, 6047 // you base64-encode BadBot using MIME base64 encoding and include the resulting 6048 // value, QmFkQm90, in the value of TargetString. 6049 // 6050 // If you're using the AWS CLI or one of the AWS SDKs 6051 // 6052 // The value that you want AWS WAF to search for. The SDK automatically base64 6053 // encodes the value. 6054 // 6055 // TargetString is automatically base64 encoded/decoded by the SDK. 6056 // 6057 // TargetString is a required field 6058 TargetString []byte `type:"blob" required:"true"` 6059 6060 // Text transformations eliminate some of the unusual formatting that attackers 6061 // use in web requests in an effort to bypass AWS WAF. If you specify a transformation, 6062 // AWS WAF performs the transformation on TargetString before inspecting a request 6063 // for a match. 6064 // 6065 // CMD_LINE 6066 // 6067 // When you're concerned that attackers are injecting an operating system commandline 6068 // command and using unusual formatting to disguise some or all of the command, 6069 // use this option to perform the following transformations: 6070 // 6071 // * Delete the following characters: \ " ' ^ 6072 // 6073 // * Delete spaces before the following characters: / ( 6074 // 6075 // * Replace the following characters with a space: , ; 6076 // 6077 // * Replace multiple spaces with one space 6078 // 6079 // * Convert uppercase letters (A-Z) to lowercase (a-z) 6080 // 6081 // COMPRESS_WHITE_SPACE 6082 // 6083 // Use this option to replace the following characters with a space character 6084 // (decimal 32): 6085 // 6086 // * \f, formfeed, decimal 12 6087 // 6088 // * \t, tab, decimal 9 6089 // 6090 // * \n, newline, decimal 10 6091 // 6092 // * \r, carriage return, decimal 13 6093 // 6094 // * \v, vertical tab, decimal 11 6095 // 6096 // * non-breaking space, decimal 160 6097 // 6098 // COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. 6099 // 6100 // HTML_ENTITY_DECODE 6101 // 6102 // Use this option to replace HTML-encoded characters with unencoded characters. 6103 // HTML_ENTITY_DECODE performs the following operations: 6104 // 6105 // * Replaces (ampersand)quot; with " 6106 // 6107 // * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160 6108 // 6109 // * Replaces (ampersand)lt; with a "less than" symbol 6110 // 6111 // * Replaces (ampersand)gt; with > 6112 // 6113 // * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, 6114 // with the corresponding characters 6115 // 6116 // * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, 6117 // with the corresponding characters 6118 // 6119 // LOWERCASE 6120 // 6121 // Use this option to convert uppercase letters (A-Z) to lowercase (a-z). 6122 // 6123 // URL_DECODE 6124 // 6125 // Use this option to decode a URL-encoded value. 6126 // 6127 // NONE 6128 // 6129 // Specify NONE if you don't want to perform any text transformations. 6130 // 6131 // TextTransformation is a required field 6132 TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"` 6133} 6134 6135// String returns the string representation 6136func (s ByteMatchTuple) String() string { 6137 return awsutil.Prettify(s) 6138} 6139 6140// GoString returns the string representation 6141func (s ByteMatchTuple) GoString() string { 6142 return s.String() 6143} 6144 6145// Validate inspects the fields of the type to determine if they are valid. 6146func (s *ByteMatchTuple) Validate() error { 6147 invalidParams := request.ErrInvalidParams{Context: "ByteMatchTuple"} 6148 if s.FieldToMatch == nil { 6149 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 6150 } 6151 if s.PositionalConstraint == nil { 6152 invalidParams.Add(request.NewErrParamRequired("PositionalConstraint")) 6153 } 6154 if s.TargetString == nil { 6155 invalidParams.Add(request.NewErrParamRequired("TargetString")) 6156 } 6157 if s.TextTransformation == nil { 6158 invalidParams.Add(request.NewErrParamRequired("TextTransformation")) 6159 } 6160 if s.FieldToMatch != nil { 6161 if err := s.FieldToMatch.Validate(); err != nil { 6162 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 6163 } 6164 } 6165 6166 if invalidParams.Len() > 0 { 6167 return invalidParams 6168 } 6169 return nil 6170} 6171 6172// SetFieldToMatch sets the FieldToMatch field's value. 6173func (s *ByteMatchTuple) SetFieldToMatch(v *FieldToMatch) *ByteMatchTuple { 6174 s.FieldToMatch = v 6175 return s 6176} 6177 6178// SetPositionalConstraint sets the PositionalConstraint field's value. 6179func (s *ByteMatchTuple) SetPositionalConstraint(v string) *ByteMatchTuple { 6180 s.PositionalConstraint = &v 6181 return s 6182} 6183 6184// SetTargetString sets the TargetString field's value. 6185func (s *ByteMatchTuple) SetTargetString(v []byte) *ByteMatchTuple { 6186 s.TargetString = v 6187 return s 6188} 6189 6190// SetTextTransformation sets the TextTransformation field's value. 6191func (s *ByteMatchTuple) SetTextTransformation(v string) *ByteMatchTuple { 6192 s.TextTransformation = &v 6193 return s 6194} 6195 6196// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSetRequest 6197type CreateByteMatchSetInput struct { 6198 _ struct{} `type:"structure"` 6199 6200 // The value returned by the most recent call to GetChangeToken. 6201 // 6202 // ChangeToken is a required field 6203 ChangeToken *string `min:"1" type:"string" required:"true"` 6204 6205 // A friendly name or description of the ByteMatchSet. You can't change Name 6206 // after you create a ByteMatchSet. 6207 // 6208 // Name is a required field 6209 Name *string `min:"1" type:"string" required:"true"` 6210} 6211 6212// String returns the string representation 6213func (s CreateByteMatchSetInput) String() string { 6214 return awsutil.Prettify(s) 6215} 6216 6217// GoString returns the string representation 6218func (s CreateByteMatchSetInput) GoString() string { 6219 return s.String() 6220} 6221 6222// Validate inspects the fields of the type to determine if they are valid. 6223func (s *CreateByteMatchSetInput) Validate() error { 6224 invalidParams := request.ErrInvalidParams{Context: "CreateByteMatchSetInput"} 6225 if s.ChangeToken == nil { 6226 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 6227 } 6228 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 6229 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 6230 } 6231 if s.Name == nil { 6232 invalidParams.Add(request.NewErrParamRequired("Name")) 6233 } 6234 if s.Name != nil && len(*s.Name) < 1 { 6235 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6236 } 6237 6238 if invalidParams.Len() > 0 { 6239 return invalidParams 6240 } 6241 return nil 6242} 6243 6244// SetChangeToken sets the ChangeToken field's value. 6245func (s *CreateByteMatchSetInput) SetChangeToken(v string) *CreateByteMatchSetInput { 6246 s.ChangeToken = &v 6247 return s 6248} 6249 6250// SetName sets the Name field's value. 6251func (s *CreateByteMatchSetInput) SetName(v string) *CreateByteMatchSetInput { 6252 s.Name = &v 6253 return s 6254} 6255 6256// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSetResponse 6257type CreateByteMatchSetOutput struct { 6258 _ struct{} `type:"structure"` 6259 6260 // A ByteMatchSet that contains no ByteMatchTuple objects. 6261 ByteMatchSet *ByteMatchSet `type:"structure"` 6262 6263 // The ChangeToken that you used to submit the CreateByteMatchSet request. You 6264 // can also use this value to query the status of the request. For more information, 6265 // see GetChangeTokenStatus. 6266 ChangeToken *string `min:"1" type:"string"` 6267} 6268 6269// String returns the string representation 6270func (s CreateByteMatchSetOutput) String() string { 6271 return awsutil.Prettify(s) 6272} 6273 6274// GoString returns the string representation 6275func (s CreateByteMatchSetOutput) GoString() string { 6276 return s.String() 6277} 6278 6279// SetByteMatchSet sets the ByteMatchSet field's value. 6280func (s *CreateByteMatchSetOutput) SetByteMatchSet(v *ByteMatchSet) *CreateByteMatchSetOutput { 6281 s.ByteMatchSet = v 6282 return s 6283} 6284 6285// SetChangeToken sets the ChangeToken field's value. 6286func (s *CreateByteMatchSetOutput) SetChangeToken(v string) *CreateByteMatchSetOutput { 6287 s.ChangeToken = &v 6288 return s 6289} 6290 6291// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSetRequest 6292type CreateIPSetInput struct { 6293 _ struct{} `type:"structure"` 6294 6295 // The value returned by the most recent call to GetChangeToken. 6296 // 6297 // ChangeToken is a required field 6298 ChangeToken *string `min:"1" type:"string" required:"true"` 6299 6300 // A friendly name or description of the IPSet. You can't change Name after 6301 // you create the IPSet. 6302 // 6303 // Name is a required field 6304 Name *string `min:"1" type:"string" required:"true"` 6305} 6306 6307// String returns the string representation 6308func (s CreateIPSetInput) String() string { 6309 return awsutil.Prettify(s) 6310} 6311 6312// GoString returns the string representation 6313func (s CreateIPSetInput) GoString() string { 6314 return s.String() 6315} 6316 6317// Validate inspects the fields of the type to determine if they are valid. 6318func (s *CreateIPSetInput) Validate() error { 6319 invalidParams := request.ErrInvalidParams{Context: "CreateIPSetInput"} 6320 if s.ChangeToken == nil { 6321 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 6322 } 6323 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 6324 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 6325 } 6326 if s.Name == nil { 6327 invalidParams.Add(request.NewErrParamRequired("Name")) 6328 } 6329 if s.Name != nil && len(*s.Name) < 1 { 6330 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6331 } 6332 6333 if invalidParams.Len() > 0 { 6334 return invalidParams 6335 } 6336 return nil 6337} 6338 6339// SetChangeToken sets the ChangeToken field's value. 6340func (s *CreateIPSetInput) SetChangeToken(v string) *CreateIPSetInput { 6341 s.ChangeToken = &v 6342 return s 6343} 6344 6345// SetName sets the Name field's value. 6346func (s *CreateIPSetInput) SetName(v string) *CreateIPSetInput { 6347 s.Name = &v 6348 return s 6349} 6350 6351// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSetResponse 6352type CreateIPSetOutput struct { 6353 _ struct{} `type:"structure"` 6354 6355 // The ChangeToken that you used to submit the CreateIPSet request. You can 6356 // also use this value to query the status of the request. For more information, 6357 // see GetChangeTokenStatus. 6358 ChangeToken *string `min:"1" type:"string"` 6359 6360 // The IPSet returned in the CreateIPSet response. 6361 IPSet *IPSet `type:"structure"` 6362} 6363 6364// String returns the string representation 6365func (s CreateIPSetOutput) String() string { 6366 return awsutil.Prettify(s) 6367} 6368 6369// GoString returns the string representation 6370func (s CreateIPSetOutput) GoString() string { 6371 return s.String() 6372} 6373 6374// SetChangeToken sets the ChangeToken field's value. 6375func (s *CreateIPSetOutput) SetChangeToken(v string) *CreateIPSetOutput { 6376 s.ChangeToken = &v 6377 return s 6378} 6379 6380// SetIPSet sets the IPSet field's value. 6381func (s *CreateIPSetOutput) SetIPSet(v *IPSet) *CreateIPSetOutput { 6382 s.IPSet = v 6383 return s 6384} 6385 6386// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRuleRequest 6387type CreateRateBasedRuleInput struct { 6388 _ struct{} `type:"structure"` 6389 6390 // The ChangeToken that you used to submit the CreateRateBasedRule request. 6391 // You can also use this value to query the status of the request. For more 6392 // information, see GetChangeTokenStatus. 6393 // 6394 // ChangeToken is a required field 6395 ChangeToken *string `min:"1" type:"string" required:"true"` 6396 6397 // A friendly name or description for the metrics for this RateBasedRule. The 6398 // name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't 6399 // contain whitespace. You can't change the name of the metric after you create 6400 // the RateBasedRule. 6401 // 6402 // MetricName is a required field 6403 MetricName *string `type:"string" required:"true"` 6404 6405 // A friendly name or description of the RateBasedRule. You can't change the 6406 // name of a RateBasedRule after you create it. 6407 // 6408 // Name is a required field 6409 Name *string `min:"1" type:"string" required:"true"` 6410 6411 // The field that AWS WAF uses to determine if requests are likely arriving 6412 // from a single source and thus subject to rate monitoring. The only valid 6413 // value for RateKey is IP. IP indicates that requests that arrive from the 6414 // same IP address are subject to the RateLimit that is specified in the RateBasedRule. 6415 // 6416 // RateKey is a required field 6417 RateKey *string `type:"string" required:"true" enum:"RateKey"` 6418 6419 // The maximum number of requests, which have an identical value in the field 6420 // that is specified by RateKey, allowed in a five-minute period. If the number 6421 // of requests exceeds the RateLimit and the other predicates specified in the 6422 // rule are also met, AWS WAF triggers the action that is specified for this 6423 // rule. 6424 // 6425 // RateLimit is a required field 6426 RateLimit *int64 `min:"2000" type:"long" required:"true"` 6427} 6428 6429// String returns the string representation 6430func (s CreateRateBasedRuleInput) String() string { 6431 return awsutil.Prettify(s) 6432} 6433 6434// GoString returns the string representation 6435func (s CreateRateBasedRuleInput) GoString() string { 6436 return s.String() 6437} 6438 6439// Validate inspects the fields of the type to determine if they are valid. 6440func (s *CreateRateBasedRuleInput) Validate() error { 6441 invalidParams := request.ErrInvalidParams{Context: "CreateRateBasedRuleInput"} 6442 if s.ChangeToken == nil { 6443 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 6444 } 6445 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 6446 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 6447 } 6448 if s.MetricName == nil { 6449 invalidParams.Add(request.NewErrParamRequired("MetricName")) 6450 } 6451 if s.Name == nil { 6452 invalidParams.Add(request.NewErrParamRequired("Name")) 6453 } 6454 if s.Name != nil && len(*s.Name) < 1 { 6455 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6456 } 6457 if s.RateKey == nil { 6458 invalidParams.Add(request.NewErrParamRequired("RateKey")) 6459 } 6460 if s.RateLimit == nil { 6461 invalidParams.Add(request.NewErrParamRequired("RateLimit")) 6462 } 6463 if s.RateLimit != nil && *s.RateLimit < 2000 { 6464 invalidParams.Add(request.NewErrParamMinValue("RateLimit", 2000)) 6465 } 6466 6467 if invalidParams.Len() > 0 { 6468 return invalidParams 6469 } 6470 return nil 6471} 6472 6473// SetChangeToken sets the ChangeToken field's value. 6474func (s *CreateRateBasedRuleInput) SetChangeToken(v string) *CreateRateBasedRuleInput { 6475 s.ChangeToken = &v 6476 return s 6477} 6478 6479// SetMetricName sets the MetricName field's value. 6480func (s *CreateRateBasedRuleInput) SetMetricName(v string) *CreateRateBasedRuleInput { 6481 s.MetricName = &v 6482 return s 6483} 6484 6485// SetName sets the Name field's value. 6486func (s *CreateRateBasedRuleInput) SetName(v string) *CreateRateBasedRuleInput { 6487 s.Name = &v 6488 return s 6489} 6490 6491// SetRateKey sets the RateKey field's value. 6492func (s *CreateRateBasedRuleInput) SetRateKey(v string) *CreateRateBasedRuleInput { 6493 s.RateKey = &v 6494 return s 6495} 6496 6497// SetRateLimit sets the RateLimit field's value. 6498func (s *CreateRateBasedRuleInput) SetRateLimit(v int64) *CreateRateBasedRuleInput { 6499 s.RateLimit = &v 6500 return s 6501} 6502 6503// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRuleResponse 6504type CreateRateBasedRuleOutput struct { 6505 _ struct{} `type:"structure"` 6506 6507 // The ChangeToken that you used to submit the CreateRateBasedRule request. 6508 // You can also use this value to query the status of the request. For more 6509 // information, see GetChangeTokenStatus. 6510 ChangeToken *string `min:"1" type:"string"` 6511 6512 // The RateBasedRule that is returned in the CreateRateBasedRule response. 6513 Rule *RateBasedRule `type:"structure"` 6514} 6515 6516// String returns the string representation 6517func (s CreateRateBasedRuleOutput) String() string { 6518 return awsutil.Prettify(s) 6519} 6520 6521// GoString returns the string representation 6522func (s CreateRateBasedRuleOutput) GoString() string { 6523 return s.String() 6524} 6525 6526// SetChangeToken sets the ChangeToken field's value. 6527func (s *CreateRateBasedRuleOutput) SetChangeToken(v string) *CreateRateBasedRuleOutput { 6528 s.ChangeToken = &v 6529 return s 6530} 6531 6532// SetRule sets the Rule field's value. 6533func (s *CreateRateBasedRuleOutput) SetRule(v *RateBasedRule) *CreateRateBasedRuleOutput { 6534 s.Rule = v 6535 return s 6536} 6537 6538// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleRequest 6539type CreateRuleInput struct { 6540 _ struct{} `type:"structure"` 6541 6542 // The value returned by the most recent call to GetChangeToken. 6543 // 6544 // ChangeToken is a required field 6545 ChangeToken *string `min:"1" type:"string" required:"true"` 6546 6547 // A friendly name or description for the metrics for this Rule. The name can 6548 // contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain 6549 // whitespace. You can't change the name of the metric after you create the 6550 // Rule. 6551 // 6552 // MetricName is a required field 6553 MetricName *string `type:"string" required:"true"` 6554 6555 // A friendly name or description of the Rule. You can't change the name of 6556 // a Rule after you create it. 6557 // 6558 // Name is a required field 6559 Name *string `min:"1" type:"string" required:"true"` 6560} 6561 6562// String returns the string representation 6563func (s CreateRuleInput) String() string { 6564 return awsutil.Prettify(s) 6565} 6566 6567// GoString returns the string representation 6568func (s CreateRuleInput) GoString() string { 6569 return s.String() 6570} 6571 6572// Validate inspects the fields of the type to determine if they are valid. 6573func (s *CreateRuleInput) Validate() error { 6574 invalidParams := request.ErrInvalidParams{Context: "CreateRuleInput"} 6575 if s.ChangeToken == nil { 6576 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 6577 } 6578 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 6579 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 6580 } 6581 if s.MetricName == nil { 6582 invalidParams.Add(request.NewErrParamRequired("MetricName")) 6583 } 6584 if s.Name == nil { 6585 invalidParams.Add(request.NewErrParamRequired("Name")) 6586 } 6587 if s.Name != nil && len(*s.Name) < 1 { 6588 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6589 } 6590 6591 if invalidParams.Len() > 0 { 6592 return invalidParams 6593 } 6594 return nil 6595} 6596 6597// SetChangeToken sets the ChangeToken field's value. 6598func (s *CreateRuleInput) SetChangeToken(v string) *CreateRuleInput { 6599 s.ChangeToken = &v 6600 return s 6601} 6602 6603// SetMetricName sets the MetricName field's value. 6604func (s *CreateRuleInput) SetMetricName(v string) *CreateRuleInput { 6605 s.MetricName = &v 6606 return s 6607} 6608 6609// SetName sets the Name field's value. 6610func (s *CreateRuleInput) SetName(v string) *CreateRuleInput { 6611 s.Name = &v 6612 return s 6613} 6614 6615// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleResponse 6616type CreateRuleOutput struct { 6617 _ struct{} `type:"structure"` 6618 6619 // The ChangeToken that you used to submit the CreateRule request. You can also 6620 // use this value to query the status of the request. For more information, 6621 // see GetChangeTokenStatus. 6622 ChangeToken *string `min:"1" type:"string"` 6623 6624 // The Rule returned in the CreateRule response. 6625 Rule *Rule `type:"structure"` 6626} 6627 6628// String returns the string representation 6629func (s CreateRuleOutput) String() string { 6630 return awsutil.Prettify(s) 6631} 6632 6633// GoString returns the string representation 6634func (s CreateRuleOutput) GoString() string { 6635 return s.String() 6636} 6637 6638// SetChangeToken sets the ChangeToken field's value. 6639func (s *CreateRuleOutput) SetChangeToken(v string) *CreateRuleOutput { 6640 s.ChangeToken = &v 6641 return s 6642} 6643 6644// SetRule sets the Rule field's value. 6645func (s *CreateRuleOutput) SetRule(v *Rule) *CreateRuleOutput { 6646 s.Rule = v 6647 return s 6648} 6649 6650// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSetRequest 6651type CreateSizeConstraintSetInput struct { 6652 _ struct{} `type:"structure"` 6653 6654 // The value returned by the most recent call to GetChangeToken. 6655 // 6656 // ChangeToken is a required field 6657 ChangeToken *string `min:"1" type:"string" required:"true"` 6658 6659 // A friendly name or description of the SizeConstraintSet. You can't change 6660 // Name after you create a SizeConstraintSet. 6661 // 6662 // Name is a required field 6663 Name *string `min:"1" type:"string" required:"true"` 6664} 6665 6666// String returns the string representation 6667func (s CreateSizeConstraintSetInput) String() string { 6668 return awsutil.Prettify(s) 6669} 6670 6671// GoString returns the string representation 6672func (s CreateSizeConstraintSetInput) GoString() string { 6673 return s.String() 6674} 6675 6676// Validate inspects the fields of the type to determine if they are valid. 6677func (s *CreateSizeConstraintSetInput) Validate() error { 6678 invalidParams := request.ErrInvalidParams{Context: "CreateSizeConstraintSetInput"} 6679 if s.ChangeToken == nil { 6680 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 6681 } 6682 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 6683 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 6684 } 6685 if s.Name == nil { 6686 invalidParams.Add(request.NewErrParamRequired("Name")) 6687 } 6688 if s.Name != nil && len(*s.Name) < 1 { 6689 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6690 } 6691 6692 if invalidParams.Len() > 0 { 6693 return invalidParams 6694 } 6695 return nil 6696} 6697 6698// SetChangeToken sets the ChangeToken field's value. 6699func (s *CreateSizeConstraintSetInput) SetChangeToken(v string) *CreateSizeConstraintSetInput { 6700 s.ChangeToken = &v 6701 return s 6702} 6703 6704// SetName sets the Name field's value. 6705func (s *CreateSizeConstraintSetInput) SetName(v string) *CreateSizeConstraintSetInput { 6706 s.Name = &v 6707 return s 6708} 6709 6710// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSetResponse 6711type CreateSizeConstraintSetOutput struct { 6712 _ struct{} `type:"structure"` 6713 6714 // The ChangeToken that you used to submit the CreateSizeConstraintSet request. 6715 // You can also use this value to query the status of the request. For more 6716 // information, see GetChangeTokenStatus. 6717 ChangeToken *string `min:"1" type:"string"` 6718 6719 // A SizeConstraintSet that contains no SizeConstraint objects. 6720 SizeConstraintSet *SizeConstraintSet `type:"structure"` 6721} 6722 6723// String returns the string representation 6724func (s CreateSizeConstraintSetOutput) String() string { 6725 return awsutil.Prettify(s) 6726} 6727 6728// GoString returns the string representation 6729func (s CreateSizeConstraintSetOutput) GoString() string { 6730 return s.String() 6731} 6732 6733// SetChangeToken sets the ChangeToken field's value. 6734func (s *CreateSizeConstraintSetOutput) SetChangeToken(v string) *CreateSizeConstraintSetOutput { 6735 s.ChangeToken = &v 6736 return s 6737} 6738 6739// SetSizeConstraintSet sets the SizeConstraintSet field's value. 6740func (s *CreateSizeConstraintSetOutput) SetSizeConstraintSet(v *SizeConstraintSet) *CreateSizeConstraintSetOutput { 6741 s.SizeConstraintSet = v 6742 return s 6743} 6744 6745// A request to create a SqlInjectionMatchSet. 6746// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSetRequest 6747type CreateSqlInjectionMatchSetInput struct { 6748 _ struct{} `type:"structure"` 6749 6750 // The value returned by the most recent call to GetChangeToken. 6751 // 6752 // ChangeToken is a required field 6753 ChangeToken *string `min:"1" type:"string" required:"true"` 6754 6755 // A friendly name or description for the SqlInjectionMatchSet that you're creating. 6756 // You can't change Name after you create the SqlInjectionMatchSet. 6757 // 6758 // Name is a required field 6759 Name *string `min:"1" type:"string" required:"true"` 6760} 6761 6762// String returns the string representation 6763func (s CreateSqlInjectionMatchSetInput) String() string { 6764 return awsutil.Prettify(s) 6765} 6766 6767// GoString returns the string representation 6768func (s CreateSqlInjectionMatchSetInput) GoString() string { 6769 return s.String() 6770} 6771 6772// Validate inspects the fields of the type to determine if they are valid. 6773func (s *CreateSqlInjectionMatchSetInput) Validate() error { 6774 invalidParams := request.ErrInvalidParams{Context: "CreateSqlInjectionMatchSetInput"} 6775 if s.ChangeToken == nil { 6776 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 6777 } 6778 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 6779 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 6780 } 6781 if s.Name == nil { 6782 invalidParams.Add(request.NewErrParamRequired("Name")) 6783 } 6784 if s.Name != nil && len(*s.Name) < 1 { 6785 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6786 } 6787 6788 if invalidParams.Len() > 0 { 6789 return invalidParams 6790 } 6791 return nil 6792} 6793 6794// SetChangeToken sets the ChangeToken field's value. 6795func (s *CreateSqlInjectionMatchSetInput) SetChangeToken(v string) *CreateSqlInjectionMatchSetInput { 6796 s.ChangeToken = &v 6797 return s 6798} 6799 6800// SetName sets the Name field's value. 6801func (s *CreateSqlInjectionMatchSetInput) SetName(v string) *CreateSqlInjectionMatchSetInput { 6802 s.Name = &v 6803 return s 6804} 6805 6806// The response to a CreateSqlInjectionMatchSet request. 6807// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSetResponse 6808type CreateSqlInjectionMatchSetOutput struct { 6809 _ struct{} `type:"structure"` 6810 6811 // The ChangeToken that you used to submit the CreateSqlInjectionMatchSet request. 6812 // You can also use this value to query the status of the request. For more 6813 // information, see GetChangeTokenStatus. 6814 ChangeToken *string `min:"1" type:"string"` 6815 6816 // A SqlInjectionMatchSet. 6817 SqlInjectionMatchSet *SqlInjectionMatchSet `type:"structure"` 6818} 6819 6820// String returns the string representation 6821func (s CreateSqlInjectionMatchSetOutput) String() string { 6822 return awsutil.Prettify(s) 6823} 6824 6825// GoString returns the string representation 6826func (s CreateSqlInjectionMatchSetOutput) GoString() string { 6827 return s.String() 6828} 6829 6830// SetChangeToken sets the ChangeToken field's value. 6831func (s *CreateSqlInjectionMatchSetOutput) SetChangeToken(v string) *CreateSqlInjectionMatchSetOutput { 6832 s.ChangeToken = &v 6833 return s 6834} 6835 6836// SetSqlInjectionMatchSet sets the SqlInjectionMatchSet field's value. 6837func (s *CreateSqlInjectionMatchSetOutput) SetSqlInjectionMatchSet(v *SqlInjectionMatchSet) *CreateSqlInjectionMatchSetOutput { 6838 s.SqlInjectionMatchSet = v 6839 return s 6840} 6841 6842// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACLRequest 6843type CreateWebACLInput struct { 6844 _ struct{} `type:"structure"` 6845 6846 // The value returned by the most recent call to GetChangeToken. 6847 // 6848 // ChangeToken is a required field 6849 ChangeToken *string `min:"1" type:"string" required:"true"` 6850 6851 // The action that you want AWS WAF to take when a request doesn't match the 6852 // criteria specified in any of the Rule objects that are associated with the 6853 // WebACL. 6854 // 6855 // DefaultAction is a required field 6856 DefaultAction *WafAction `type:"structure" required:"true"` 6857 6858 // A friendly name or description for the metrics for this WebACL. The name 6859 // can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't 6860 // contain whitespace. You can't change MetricName after you create the WebACL. 6861 // 6862 // MetricName is a required field 6863 MetricName *string `type:"string" required:"true"` 6864 6865 // A friendly name or description of the WebACL. You can't change Name after 6866 // you create the WebACL. 6867 // 6868 // Name is a required field 6869 Name *string `min:"1" type:"string" required:"true"` 6870} 6871 6872// String returns the string representation 6873func (s CreateWebACLInput) String() string { 6874 return awsutil.Prettify(s) 6875} 6876 6877// GoString returns the string representation 6878func (s CreateWebACLInput) GoString() string { 6879 return s.String() 6880} 6881 6882// Validate inspects the fields of the type to determine if they are valid. 6883func (s *CreateWebACLInput) Validate() error { 6884 invalidParams := request.ErrInvalidParams{Context: "CreateWebACLInput"} 6885 if s.ChangeToken == nil { 6886 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 6887 } 6888 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 6889 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 6890 } 6891 if s.DefaultAction == nil { 6892 invalidParams.Add(request.NewErrParamRequired("DefaultAction")) 6893 } 6894 if s.MetricName == nil { 6895 invalidParams.Add(request.NewErrParamRequired("MetricName")) 6896 } 6897 if s.Name == nil { 6898 invalidParams.Add(request.NewErrParamRequired("Name")) 6899 } 6900 if s.Name != nil && len(*s.Name) < 1 { 6901 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 6902 } 6903 if s.DefaultAction != nil { 6904 if err := s.DefaultAction.Validate(); err != nil { 6905 invalidParams.AddNested("DefaultAction", err.(request.ErrInvalidParams)) 6906 } 6907 } 6908 6909 if invalidParams.Len() > 0 { 6910 return invalidParams 6911 } 6912 return nil 6913} 6914 6915// SetChangeToken sets the ChangeToken field's value. 6916func (s *CreateWebACLInput) SetChangeToken(v string) *CreateWebACLInput { 6917 s.ChangeToken = &v 6918 return s 6919} 6920 6921// SetDefaultAction sets the DefaultAction field's value. 6922func (s *CreateWebACLInput) SetDefaultAction(v *WafAction) *CreateWebACLInput { 6923 s.DefaultAction = v 6924 return s 6925} 6926 6927// SetMetricName sets the MetricName field's value. 6928func (s *CreateWebACLInput) SetMetricName(v string) *CreateWebACLInput { 6929 s.MetricName = &v 6930 return s 6931} 6932 6933// SetName sets the Name field's value. 6934func (s *CreateWebACLInput) SetName(v string) *CreateWebACLInput { 6935 s.Name = &v 6936 return s 6937} 6938 6939// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACLResponse 6940type CreateWebACLOutput struct { 6941 _ struct{} `type:"structure"` 6942 6943 // The ChangeToken that you used to submit the CreateWebACL request. You can 6944 // also use this value to query the status of the request. For more information, 6945 // see GetChangeTokenStatus. 6946 ChangeToken *string `min:"1" type:"string"` 6947 6948 // The WebACL returned in the CreateWebACL response. 6949 WebACL *WebACL `type:"structure"` 6950} 6951 6952// String returns the string representation 6953func (s CreateWebACLOutput) String() string { 6954 return awsutil.Prettify(s) 6955} 6956 6957// GoString returns the string representation 6958func (s CreateWebACLOutput) GoString() string { 6959 return s.String() 6960} 6961 6962// SetChangeToken sets the ChangeToken field's value. 6963func (s *CreateWebACLOutput) SetChangeToken(v string) *CreateWebACLOutput { 6964 s.ChangeToken = &v 6965 return s 6966} 6967 6968// SetWebACL sets the WebACL field's value. 6969func (s *CreateWebACLOutput) SetWebACL(v *WebACL) *CreateWebACLOutput { 6970 s.WebACL = v 6971 return s 6972} 6973 6974// A request to create an XssMatchSet. 6975// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSetRequest 6976type CreateXssMatchSetInput struct { 6977 _ struct{} `type:"structure"` 6978 6979 // The value returned by the most recent call to GetChangeToken. 6980 // 6981 // ChangeToken is a required field 6982 ChangeToken *string `min:"1" type:"string" required:"true"` 6983 6984 // A friendly name or description for the XssMatchSet that you're creating. 6985 // You can't change Name after you create the XssMatchSet. 6986 // 6987 // Name is a required field 6988 Name *string `min:"1" type:"string" required:"true"` 6989} 6990 6991// String returns the string representation 6992func (s CreateXssMatchSetInput) String() string { 6993 return awsutil.Prettify(s) 6994} 6995 6996// GoString returns the string representation 6997func (s CreateXssMatchSetInput) GoString() string { 6998 return s.String() 6999} 7000 7001// Validate inspects the fields of the type to determine if they are valid. 7002func (s *CreateXssMatchSetInput) Validate() error { 7003 invalidParams := request.ErrInvalidParams{Context: "CreateXssMatchSetInput"} 7004 if s.ChangeToken == nil { 7005 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7006 } 7007 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7008 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7009 } 7010 if s.Name == nil { 7011 invalidParams.Add(request.NewErrParamRequired("Name")) 7012 } 7013 if s.Name != nil && len(*s.Name) < 1 { 7014 invalidParams.Add(request.NewErrParamMinLen("Name", 1)) 7015 } 7016 7017 if invalidParams.Len() > 0 { 7018 return invalidParams 7019 } 7020 return nil 7021} 7022 7023// SetChangeToken sets the ChangeToken field's value. 7024func (s *CreateXssMatchSetInput) SetChangeToken(v string) *CreateXssMatchSetInput { 7025 s.ChangeToken = &v 7026 return s 7027} 7028 7029// SetName sets the Name field's value. 7030func (s *CreateXssMatchSetInput) SetName(v string) *CreateXssMatchSetInput { 7031 s.Name = &v 7032 return s 7033} 7034 7035// The response to a CreateXssMatchSet request. 7036// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSetResponse 7037type CreateXssMatchSetOutput struct { 7038 _ struct{} `type:"structure"` 7039 7040 // The ChangeToken that you used to submit the CreateXssMatchSet request. You 7041 // can also use this value to query the status of the request. For more information, 7042 // see GetChangeTokenStatus. 7043 ChangeToken *string `min:"1" type:"string"` 7044 7045 // An XssMatchSet. 7046 XssMatchSet *XssMatchSet `type:"structure"` 7047} 7048 7049// String returns the string representation 7050func (s CreateXssMatchSetOutput) String() string { 7051 return awsutil.Prettify(s) 7052} 7053 7054// GoString returns the string representation 7055func (s CreateXssMatchSetOutput) GoString() string { 7056 return s.String() 7057} 7058 7059// SetChangeToken sets the ChangeToken field's value. 7060func (s *CreateXssMatchSetOutput) SetChangeToken(v string) *CreateXssMatchSetOutput { 7061 s.ChangeToken = &v 7062 return s 7063} 7064 7065// SetXssMatchSet sets the XssMatchSet field's value. 7066func (s *CreateXssMatchSetOutput) SetXssMatchSet(v *XssMatchSet) *CreateXssMatchSetOutput { 7067 s.XssMatchSet = v 7068 return s 7069} 7070 7071// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteByteMatchSetRequest 7072type DeleteByteMatchSetInput struct { 7073 _ struct{} `type:"structure"` 7074 7075 // The ByteMatchSetId of the ByteMatchSet that you want to delete. ByteMatchSetId 7076 // is returned by CreateByteMatchSet and by ListByteMatchSets. 7077 // 7078 // ByteMatchSetId is a required field 7079 ByteMatchSetId *string `min:"1" type:"string" required:"true"` 7080 7081 // The value returned by the most recent call to GetChangeToken. 7082 // 7083 // ChangeToken is a required field 7084 ChangeToken *string `min:"1" type:"string" required:"true"` 7085} 7086 7087// String returns the string representation 7088func (s DeleteByteMatchSetInput) String() string { 7089 return awsutil.Prettify(s) 7090} 7091 7092// GoString returns the string representation 7093func (s DeleteByteMatchSetInput) GoString() string { 7094 return s.String() 7095} 7096 7097// Validate inspects the fields of the type to determine if they are valid. 7098func (s *DeleteByteMatchSetInput) Validate() error { 7099 invalidParams := request.ErrInvalidParams{Context: "DeleteByteMatchSetInput"} 7100 if s.ByteMatchSetId == nil { 7101 invalidParams.Add(request.NewErrParamRequired("ByteMatchSetId")) 7102 } 7103 if s.ByteMatchSetId != nil && len(*s.ByteMatchSetId) < 1 { 7104 invalidParams.Add(request.NewErrParamMinLen("ByteMatchSetId", 1)) 7105 } 7106 if s.ChangeToken == nil { 7107 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7108 } 7109 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7110 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7111 } 7112 7113 if invalidParams.Len() > 0 { 7114 return invalidParams 7115 } 7116 return nil 7117} 7118 7119// SetByteMatchSetId sets the ByteMatchSetId field's value. 7120func (s *DeleteByteMatchSetInput) SetByteMatchSetId(v string) *DeleteByteMatchSetInput { 7121 s.ByteMatchSetId = &v 7122 return s 7123} 7124 7125// SetChangeToken sets the ChangeToken field's value. 7126func (s *DeleteByteMatchSetInput) SetChangeToken(v string) *DeleteByteMatchSetInput { 7127 s.ChangeToken = &v 7128 return s 7129} 7130 7131// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteByteMatchSetResponse 7132type DeleteByteMatchSetOutput struct { 7133 _ struct{} `type:"structure"` 7134 7135 // The ChangeToken that you used to submit the DeleteByteMatchSet request. You 7136 // can also use this value to query the status of the request. For more information, 7137 // see GetChangeTokenStatus. 7138 ChangeToken *string `min:"1" type:"string"` 7139} 7140 7141// String returns the string representation 7142func (s DeleteByteMatchSetOutput) String() string { 7143 return awsutil.Prettify(s) 7144} 7145 7146// GoString returns the string representation 7147func (s DeleteByteMatchSetOutput) GoString() string { 7148 return s.String() 7149} 7150 7151// SetChangeToken sets the ChangeToken field's value. 7152func (s *DeleteByteMatchSetOutput) SetChangeToken(v string) *DeleteByteMatchSetOutput { 7153 s.ChangeToken = &v 7154 return s 7155} 7156 7157// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteIPSetRequest 7158type DeleteIPSetInput struct { 7159 _ struct{} `type:"structure"` 7160 7161 // The value returned by the most recent call to GetChangeToken. 7162 // 7163 // ChangeToken is a required field 7164 ChangeToken *string `min:"1" type:"string" required:"true"` 7165 7166 // The IPSetId of the IPSet that you want to delete. IPSetId is returned by 7167 // CreateIPSet and by ListIPSets. 7168 // 7169 // IPSetId is a required field 7170 IPSetId *string `min:"1" type:"string" required:"true"` 7171} 7172 7173// String returns the string representation 7174func (s DeleteIPSetInput) String() string { 7175 return awsutil.Prettify(s) 7176} 7177 7178// GoString returns the string representation 7179func (s DeleteIPSetInput) GoString() string { 7180 return s.String() 7181} 7182 7183// Validate inspects the fields of the type to determine if they are valid. 7184func (s *DeleteIPSetInput) Validate() error { 7185 invalidParams := request.ErrInvalidParams{Context: "DeleteIPSetInput"} 7186 if s.ChangeToken == nil { 7187 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7188 } 7189 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7190 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7191 } 7192 if s.IPSetId == nil { 7193 invalidParams.Add(request.NewErrParamRequired("IPSetId")) 7194 } 7195 if s.IPSetId != nil && len(*s.IPSetId) < 1 { 7196 invalidParams.Add(request.NewErrParamMinLen("IPSetId", 1)) 7197 } 7198 7199 if invalidParams.Len() > 0 { 7200 return invalidParams 7201 } 7202 return nil 7203} 7204 7205// SetChangeToken sets the ChangeToken field's value. 7206func (s *DeleteIPSetInput) SetChangeToken(v string) *DeleteIPSetInput { 7207 s.ChangeToken = &v 7208 return s 7209} 7210 7211// SetIPSetId sets the IPSetId field's value. 7212func (s *DeleteIPSetInput) SetIPSetId(v string) *DeleteIPSetInput { 7213 s.IPSetId = &v 7214 return s 7215} 7216 7217// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteIPSetResponse 7218type DeleteIPSetOutput struct { 7219 _ struct{} `type:"structure"` 7220 7221 // The ChangeToken that you used to submit the DeleteIPSet request. You can 7222 // also use this value to query the status of the request. For more information, 7223 // see GetChangeTokenStatus. 7224 ChangeToken *string `min:"1" type:"string"` 7225} 7226 7227// String returns the string representation 7228func (s DeleteIPSetOutput) String() string { 7229 return awsutil.Prettify(s) 7230} 7231 7232// GoString returns the string representation 7233func (s DeleteIPSetOutput) GoString() string { 7234 return s.String() 7235} 7236 7237// SetChangeToken sets the ChangeToken field's value. 7238func (s *DeleteIPSetOutput) SetChangeToken(v string) *DeleteIPSetOutput { 7239 s.ChangeToken = &v 7240 return s 7241} 7242 7243// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRuleRequest 7244type DeleteRateBasedRuleInput struct { 7245 _ struct{} `type:"structure"` 7246 7247 // The value returned by the most recent call to GetChangeToken. 7248 // 7249 // ChangeToken is a required field 7250 ChangeToken *string `min:"1" type:"string" required:"true"` 7251 7252 // The RuleId of the RateBasedRule that you want to delete. RuleId is returned 7253 // by CreateRateBasedRule and by ListRateBasedRules. 7254 // 7255 // RuleId is a required field 7256 RuleId *string `min:"1" type:"string" required:"true"` 7257} 7258 7259// String returns the string representation 7260func (s DeleteRateBasedRuleInput) String() string { 7261 return awsutil.Prettify(s) 7262} 7263 7264// GoString returns the string representation 7265func (s DeleteRateBasedRuleInput) GoString() string { 7266 return s.String() 7267} 7268 7269// Validate inspects the fields of the type to determine if they are valid. 7270func (s *DeleteRateBasedRuleInput) Validate() error { 7271 invalidParams := request.ErrInvalidParams{Context: "DeleteRateBasedRuleInput"} 7272 if s.ChangeToken == nil { 7273 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7274 } 7275 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7276 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7277 } 7278 if s.RuleId == nil { 7279 invalidParams.Add(request.NewErrParamRequired("RuleId")) 7280 } 7281 if s.RuleId != nil && len(*s.RuleId) < 1 { 7282 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 7283 } 7284 7285 if invalidParams.Len() > 0 { 7286 return invalidParams 7287 } 7288 return nil 7289} 7290 7291// SetChangeToken sets the ChangeToken field's value. 7292func (s *DeleteRateBasedRuleInput) SetChangeToken(v string) *DeleteRateBasedRuleInput { 7293 s.ChangeToken = &v 7294 return s 7295} 7296 7297// SetRuleId sets the RuleId field's value. 7298func (s *DeleteRateBasedRuleInput) SetRuleId(v string) *DeleteRateBasedRuleInput { 7299 s.RuleId = &v 7300 return s 7301} 7302 7303// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRuleResponse 7304type DeleteRateBasedRuleOutput struct { 7305 _ struct{} `type:"structure"` 7306 7307 // The ChangeToken that you used to submit the DeleteRateBasedRule request. 7308 // You can also use this value to query the status of the request. For more 7309 // information, see GetChangeTokenStatus. 7310 ChangeToken *string `min:"1" type:"string"` 7311} 7312 7313// String returns the string representation 7314func (s DeleteRateBasedRuleOutput) String() string { 7315 return awsutil.Prettify(s) 7316} 7317 7318// GoString returns the string representation 7319func (s DeleteRateBasedRuleOutput) GoString() string { 7320 return s.String() 7321} 7322 7323// SetChangeToken sets the ChangeToken field's value. 7324func (s *DeleteRateBasedRuleOutput) SetChangeToken(v string) *DeleteRateBasedRuleOutput { 7325 s.ChangeToken = &v 7326 return s 7327} 7328 7329// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleRequest 7330type DeleteRuleInput struct { 7331 _ struct{} `type:"structure"` 7332 7333 // The value returned by the most recent call to GetChangeToken. 7334 // 7335 // ChangeToken is a required field 7336 ChangeToken *string `min:"1" type:"string" required:"true"` 7337 7338 // The RuleId of the Rule that you want to delete. RuleId is returned by CreateRule 7339 // and by ListRules. 7340 // 7341 // RuleId is a required field 7342 RuleId *string `min:"1" type:"string" required:"true"` 7343} 7344 7345// String returns the string representation 7346func (s DeleteRuleInput) String() string { 7347 return awsutil.Prettify(s) 7348} 7349 7350// GoString returns the string representation 7351func (s DeleteRuleInput) GoString() string { 7352 return s.String() 7353} 7354 7355// Validate inspects the fields of the type to determine if they are valid. 7356func (s *DeleteRuleInput) Validate() error { 7357 invalidParams := request.ErrInvalidParams{Context: "DeleteRuleInput"} 7358 if s.ChangeToken == nil { 7359 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7360 } 7361 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7362 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7363 } 7364 if s.RuleId == nil { 7365 invalidParams.Add(request.NewErrParamRequired("RuleId")) 7366 } 7367 if s.RuleId != nil && len(*s.RuleId) < 1 { 7368 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 7369 } 7370 7371 if invalidParams.Len() > 0 { 7372 return invalidParams 7373 } 7374 return nil 7375} 7376 7377// SetChangeToken sets the ChangeToken field's value. 7378func (s *DeleteRuleInput) SetChangeToken(v string) *DeleteRuleInput { 7379 s.ChangeToken = &v 7380 return s 7381} 7382 7383// SetRuleId sets the RuleId field's value. 7384func (s *DeleteRuleInput) SetRuleId(v string) *DeleteRuleInput { 7385 s.RuleId = &v 7386 return s 7387} 7388 7389// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleResponse 7390type DeleteRuleOutput struct { 7391 _ struct{} `type:"structure"` 7392 7393 // The ChangeToken that you used to submit the DeleteRule request. You can also 7394 // use this value to query the status of the request. For more information, 7395 // see GetChangeTokenStatus. 7396 ChangeToken *string `min:"1" type:"string"` 7397} 7398 7399// String returns the string representation 7400func (s DeleteRuleOutput) String() string { 7401 return awsutil.Prettify(s) 7402} 7403 7404// GoString returns the string representation 7405func (s DeleteRuleOutput) GoString() string { 7406 return s.String() 7407} 7408 7409// SetChangeToken sets the ChangeToken field's value. 7410func (s *DeleteRuleOutput) SetChangeToken(v string) *DeleteRuleOutput { 7411 s.ChangeToken = &v 7412 return s 7413} 7414 7415// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSizeConstraintSetRequest 7416type DeleteSizeConstraintSetInput struct { 7417 _ struct{} `type:"structure"` 7418 7419 // The value returned by the most recent call to GetChangeToken. 7420 // 7421 // ChangeToken is a required field 7422 ChangeToken *string `min:"1" type:"string" required:"true"` 7423 7424 // The SizeConstraintSetId of the SizeConstraintSet that you want to delete. 7425 // SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. 7426 // 7427 // SizeConstraintSetId is a required field 7428 SizeConstraintSetId *string `min:"1" type:"string" required:"true"` 7429} 7430 7431// String returns the string representation 7432func (s DeleteSizeConstraintSetInput) String() string { 7433 return awsutil.Prettify(s) 7434} 7435 7436// GoString returns the string representation 7437func (s DeleteSizeConstraintSetInput) GoString() string { 7438 return s.String() 7439} 7440 7441// Validate inspects the fields of the type to determine if they are valid. 7442func (s *DeleteSizeConstraintSetInput) Validate() error { 7443 invalidParams := request.ErrInvalidParams{Context: "DeleteSizeConstraintSetInput"} 7444 if s.ChangeToken == nil { 7445 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7446 } 7447 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7448 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7449 } 7450 if s.SizeConstraintSetId == nil { 7451 invalidParams.Add(request.NewErrParamRequired("SizeConstraintSetId")) 7452 } 7453 if s.SizeConstraintSetId != nil && len(*s.SizeConstraintSetId) < 1 { 7454 invalidParams.Add(request.NewErrParamMinLen("SizeConstraintSetId", 1)) 7455 } 7456 7457 if invalidParams.Len() > 0 { 7458 return invalidParams 7459 } 7460 return nil 7461} 7462 7463// SetChangeToken sets the ChangeToken field's value. 7464func (s *DeleteSizeConstraintSetInput) SetChangeToken(v string) *DeleteSizeConstraintSetInput { 7465 s.ChangeToken = &v 7466 return s 7467} 7468 7469// SetSizeConstraintSetId sets the SizeConstraintSetId field's value. 7470func (s *DeleteSizeConstraintSetInput) SetSizeConstraintSetId(v string) *DeleteSizeConstraintSetInput { 7471 s.SizeConstraintSetId = &v 7472 return s 7473} 7474 7475// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSizeConstraintSetResponse 7476type DeleteSizeConstraintSetOutput struct { 7477 _ struct{} `type:"structure"` 7478 7479 // The ChangeToken that you used to submit the DeleteSizeConstraintSet request. 7480 // You can also use this value to query the status of the request. For more 7481 // information, see GetChangeTokenStatus. 7482 ChangeToken *string `min:"1" type:"string"` 7483} 7484 7485// String returns the string representation 7486func (s DeleteSizeConstraintSetOutput) String() string { 7487 return awsutil.Prettify(s) 7488} 7489 7490// GoString returns the string representation 7491func (s DeleteSizeConstraintSetOutput) GoString() string { 7492 return s.String() 7493} 7494 7495// SetChangeToken sets the ChangeToken field's value. 7496func (s *DeleteSizeConstraintSetOutput) SetChangeToken(v string) *DeleteSizeConstraintSetOutput { 7497 s.ChangeToken = &v 7498 return s 7499} 7500 7501// A request to delete a SqlInjectionMatchSet from AWS WAF. 7502// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSqlInjectionMatchSetRequest 7503type DeleteSqlInjectionMatchSetInput struct { 7504 _ struct{} `type:"structure"` 7505 7506 // The value returned by the most recent call to GetChangeToken. 7507 // 7508 // ChangeToken is a required field 7509 ChangeToken *string `min:"1" type:"string" required:"true"` 7510 7511 // The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to delete. 7512 // SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. 7513 // 7514 // SqlInjectionMatchSetId is a required field 7515 SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"` 7516} 7517 7518// String returns the string representation 7519func (s DeleteSqlInjectionMatchSetInput) String() string { 7520 return awsutil.Prettify(s) 7521} 7522 7523// GoString returns the string representation 7524func (s DeleteSqlInjectionMatchSetInput) GoString() string { 7525 return s.String() 7526} 7527 7528// Validate inspects the fields of the type to determine if they are valid. 7529func (s *DeleteSqlInjectionMatchSetInput) Validate() error { 7530 invalidParams := request.ErrInvalidParams{Context: "DeleteSqlInjectionMatchSetInput"} 7531 if s.ChangeToken == nil { 7532 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7533 } 7534 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7535 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7536 } 7537 if s.SqlInjectionMatchSetId == nil { 7538 invalidParams.Add(request.NewErrParamRequired("SqlInjectionMatchSetId")) 7539 } 7540 if s.SqlInjectionMatchSetId != nil && len(*s.SqlInjectionMatchSetId) < 1 { 7541 invalidParams.Add(request.NewErrParamMinLen("SqlInjectionMatchSetId", 1)) 7542 } 7543 7544 if invalidParams.Len() > 0 { 7545 return invalidParams 7546 } 7547 return nil 7548} 7549 7550// SetChangeToken sets the ChangeToken field's value. 7551func (s *DeleteSqlInjectionMatchSetInput) SetChangeToken(v string) *DeleteSqlInjectionMatchSetInput { 7552 s.ChangeToken = &v 7553 return s 7554} 7555 7556// SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value. 7557func (s *DeleteSqlInjectionMatchSetInput) SetSqlInjectionMatchSetId(v string) *DeleteSqlInjectionMatchSetInput { 7558 s.SqlInjectionMatchSetId = &v 7559 return s 7560} 7561 7562// The response to a request to delete a SqlInjectionMatchSet from AWS WAF. 7563// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSqlInjectionMatchSetResponse 7564type DeleteSqlInjectionMatchSetOutput struct { 7565 _ struct{} `type:"structure"` 7566 7567 // The ChangeToken that you used to submit the DeleteSqlInjectionMatchSet request. 7568 // You can also use this value to query the status of the request. For more 7569 // information, see GetChangeTokenStatus. 7570 ChangeToken *string `min:"1" type:"string"` 7571} 7572 7573// String returns the string representation 7574func (s DeleteSqlInjectionMatchSetOutput) String() string { 7575 return awsutil.Prettify(s) 7576} 7577 7578// GoString returns the string representation 7579func (s DeleteSqlInjectionMatchSetOutput) GoString() string { 7580 return s.String() 7581} 7582 7583// SetChangeToken sets the ChangeToken field's value. 7584func (s *DeleteSqlInjectionMatchSetOutput) SetChangeToken(v string) *DeleteSqlInjectionMatchSetOutput { 7585 s.ChangeToken = &v 7586 return s 7587} 7588 7589// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteWebACLRequest 7590type DeleteWebACLInput struct { 7591 _ struct{} `type:"structure"` 7592 7593 // The value returned by the most recent call to GetChangeToken. 7594 // 7595 // ChangeToken is a required field 7596 ChangeToken *string `min:"1" type:"string" required:"true"` 7597 7598 // The WebACLId of the WebACL that you want to delete. WebACLId is returned 7599 // by CreateWebACL and by ListWebACLs. 7600 // 7601 // WebACLId is a required field 7602 WebACLId *string `min:"1" type:"string" required:"true"` 7603} 7604 7605// String returns the string representation 7606func (s DeleteWebACLInput) String() string { 7607 return awsutil.Prettify(s) 7608} 7609 7610// GoString returns the string representation 7611func (s DeleteWebACLInput) GoString() string { 7612 return s.String() 7613} 7614 7615// Validate inspects the fields of the type to determine if they are valid. 7616func (s *DeleteWebACLInput) Validate() error { 7617 invalidParams := request.ErrInvalidParams{Context: "DeleteWebACLInput"} 7618 if s.ChangeToken == nil { 7619 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7620 } 7621 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7622 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7623 } 7624 if s.WebACLId == nil { 7625 invalidParams.Add(request.NewErrParamRequired("WebACLId")) 7626 } 7627 if s.WebACLId != nil && len(*s.WebACLId) < 1 { 7628 invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1)) 7629 } 7630 7631 if invalidParams.Len() > 0 { 7632 return invalidParams 7633 } 7634 return nil 7635} 7636 7637// SetChangeToken sets the ChangeToken field's value. 7638func (s *DeleteWebACLInput) SetChangeToken(v string) *DeleteWebACLInput { 7639 s.ChangeToken = &v 7640 return s 7641} 7642 7643// SetWebACLId sets the WebACLId field's value. 7644func (s *DeleteWebACLInput) SetWebACLId(v string) *DeleteWebACLInput { 7645 s.WebACLId = &v 7646 return s 7647} 7648 7649// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteWebACLResponse 7650type DeleteWebACLOutput struct { 7651 _ struct{} `type:"structure"` 7652 7653 // The ChangeToken that you used to submit the DeleteWebACL request. You can 7654 // also use this value to query the status of the request. For more information, 7655 // see GetChangeTokenStatus. 7656 ChangeToken *string `min:"1" type:"string"` 7657} 7658 7659// String returns the string representation 7660func (s DeleteWebACLOutput) String() string { 7661 return awsutil.Prettify(s) 7662} 7663 7664// GoString returns the string representation 7665func (s DeleteWebACLOutput) GoString() string { 7666 return s.String() 7667} 7668 7669// SetChangeToken sets the ChangeToken field's value. 7670func (s *DeleteWebACLOutput) SetChangeToken(v string) *DeleteWebACLOutput { 7671 s.ChangeToken = &v 7672 return s 7673} 7674 7675// A request to delete an XssMatchSet from AWS WAF. 7676// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteXssMatchSetRequest 7677type DeleteXssMatchSetInput struct { 7678 _ struct{} `type:"structure"` 7679 7680 // The value returned by the most recent call to GetChangeToken. 7681 // 7682 // ChangeToken is a required field 7683 ChangeToken *string `min:"1" type:"string" required:"true"` 7684 7685 // The XssMatchSetId of the XssMatchSet that you want to delete. XssMatchSetId 7686 // is returned by CreateXssMatchSet and by ListXssMatchSets. 7687 // 7688 // XssMatchSetId is a required field 7689 XssMatchSetId *string `min:"1" type:"string" required:"true"` 7690} 7691 7692// String returns the string representation 7693func (s DeleteXssMatchSetInput) String() string { 7694 return awsutil.Prettify(s) 7695} 7696 7697// GoString returns the string representation 7698func (s DeleteXssMatchSetInput) GoString() string { 7699 return s.String() 7700} 7701 7702// Validate inspects the fields of the type to determine if they are valid. 7703func (s *DeleteXssMatchSetInput) Validate() error { 7704 invalidParams := request.ErrInvalidParams{Context: "DeleteXssMatchSetInput"} 7705 if s.ChangeToken == nil { 7706 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7707 } 7708 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7709 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7710 } 7711 if s.XssMatchSetId == nil { 7712 invalidParams.Add(request.NewErrParamRequired("XssMatchSetId")) 7713 } 7714 if s.XssMatchSetId != nil && len(*s.XssMatchSetId) < 1 { 7715 invalidParams.Add(request.NewErrParamMinLen("XssMatchSetId", 1)) 7716 } 7717 7718 if invalidParams.Len() > 0 { 7719 return invalidParams 7720 } 7721 return nil 7722} 7723 7724// SetChangeToken sets the ChangeToken field's value. 7725func (s *DeleteXssMatchSetInput) SetChangeToken(v string) *DeleteXssMatchSetInput { 7726 s.ChangeToken = &v 7727 return s 7728} 7729 7730// SetXssMatchSetId sets the XssMatchSetId field's value. 7731func (s *DeleteXssMatchSetInput) SetXssMatchSetId(v string) *DeleteXssMatchSetInput { 7732 s.XssMatchSetId = &v 7733 return s 7734} 7735 7736// The response to a request to delete an XssMatchSet from AWS WAF. 7737// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteXssMatchSetResponse 7738type DeleteXssMatchSetOutput struct { 7739 _ struct{} `type:"structure"` 7740 7741 // The ChangeToken that you used to submit the DeleteXssMatchSet request. You 7742 // can also use this value to query the status of the request. For more information, 7743 // see GetChangeTokenStatus. 7744 ChangeToken *string `min:"1" type:"string"` 7745} 7746 7747// String returns the string representation 7748func (s DeleteXssMatchSetOutput) String() string { 7749 return awsutil.Prettify(s) 7750} 7751 7752// GoString returns the string representation 7753func (s DeleteXssMatchSetOutput) GoString() string { 7754 return s.String() 7755} 7756 7757// SetChangeToken sets the ChangeToken field's value. 7758func (s *DeleteXssMatchSetOutput) SetChangeToken(v string) *DeleteXssMatchSetOutput { 7759 s.ChangeToken = &v 7760 return s 7761} 7762 7763// Specifies where in a web request to look for TargetString. 7764// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/FieldToMatch 7765type FieldToMatch struct { 7766 _ struct{} `type:"structure"` 7767 7768 // When the value of Type is HEADER, enter the name of the header that you want 7769 // AWS WAF to search, for example, User-Agent or Referer. If the value of Type 7770 // is any other value, omit Data. 7771 // 7772 // The name of the header is not case sensitive. 7773 Data *string `type:"string"` 7774 7775 // The part of the web request that you want AWS WAF to search for a specified 7776 // string. Parts of a request that you can search include the following: 7777 // 7778 // * HEADER: A specified request header, for example, the value of the User-Agent 7779 // or Referer header. If you choose HEADER for the type, specify the name 7780 // of the header in Data. 7781 // 7782 // * METHOD: The HTTP method, which indicated the type of operation that 7783 // the request is asking the origin to perform. Amazon CloudFront supports 7784 // the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT. 7785 // 7786 // * QUERY_STRING: A query string, which is the part of a URL that appears 7787 // after a ? character, if any. 7788 // 7789 // * URI: The part of a web request that identifies a resource, for example, 7790 // /images/daily-ad.jpg. 7791 // 7792 // * BODY: The part of a request that contains any additional data that you 7793 // want to send to your web server as the HTTP request body, such as data 7794 // from a form. The request body immediately follows the request headers. 7795 // Note that only the first 8192 bytes of the request body are forwarded 7796 // to AWS WAF for inspection. To allow or block requests based on the length 7797 // of the body, you can create a size constraint set. For more information, 7798 // see CreateSizeConstraintSet. 7799 // 7800 // Type is a required field 7801 Type *string `type:"string" required:"true" enum:"MatchFieldType"` 7802} 7803 7804// String returns the string representation 7805func (s FieldToMatch) String() string { 7806 return awsutil.Prettify(s) 7807} 7808 7809// GoString returns the string representation 7810func (s FieldToMatch) GoString() string { 7811 return s.String() 7812} 7813 7814// Validate inspects the fields of the type to determine if they are valid. 7815func (s *FieldToMatch) Validate() error { 7816 invalidParams := request.ErrInvalidParams{Context: "FieldToMatch"} 7817 if s.Type == nil { 7818 invalidParams.Add(request.NewErrParamRequired("Type")) 7819 } 7820 7821 if invalidParams.Len() > 0 { 7822 return invalidParams 7823 } 7824 return nil 7825} 7826 7827// SetData sets the Data field's value. 7828func (s *FieldToMatch) SetData(v string) *FieldToMatch { 7829 s.Data = &v 7830 return s 7831} 7832 7833// SetType sets the Type field's value. 7834func (s *FieldToMatch) SetType(v string) *FieldToMatch { 7835 s.Type = &v 7836 return s 7837} 7838 7839// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetByteMatchSetRequest 7840type GetByteMatchSetInput struct { 7841 _ struct{} `type:"structure"` 7842 7843 // The ByteMatchSetId of the ByteMatchSet that you want to get. ByteMatchSetId 7844 // is returned by CreateByteMatchSet and by ListByteMatchSets. 7845 // 7846 // ByteMatchSetId is a required field 7847 ByteMatchSetId *string `min:"1" type:"string" required:"true"` 7848} 7849 7850// String returns the string representation 7851func (s GetByteMatchSetInput) String() string { 7852 return awsutil.Prettify(s) 7853} 7854 7855// GoString returns the string representation 7856func (s GetByteMatchSetInput) GoString() string { 7857 return s.String() 7858} 7859 7860// Validate inspects the fields of the type to determine if they are valid. 7861func (s *GetByteMatchSetInput) Validate() error { 7862 invalidParams := request.ErrInvalidParams{Context: "GetByteMatchSetInput"} 7863 if s.ByteMatchSetId == nil { 7864 invalidParams.Add(request.NewErrParamRequired("ByteMatchSetId")) 7865 } 7866 if s.ByteMatchSetId != nil && len(*s.ByteMatchSetId) < 1 { 7867 invalidParams.Add(request.NewErrParamMinLen("ByteMatchSetId", 1)) 7868 } 7869 7870 if invalidParams.Len() > 0 { 7871 return invalidParams 7872 } 7873 return nil 7874} 7875 7876// SetByteMatchSetId sets the ByteMatchSetId field's value. 7877func (s *GetByteMatchSetInput) SetByteMatchSetId(v string) *GetByteMatchSetInput { 7878 s.ByteMatchSetId = &v 7879 return s 7880} 7881 7882// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetByteMatchSetResponse 7883type GetByteMatchSetOutput struct { 7884 _ struct{} `type:"structure"` 7885 7886 // Information about the ByteMatchSet that you specified in the GetByteMatchSet 7887 // request. For more information, see the following topics: 7888 // 7889 // * ByteMatchSet: Contains ByteMatchSetId, ByteMatchTuples, and Name 7890 // 7891 // * ByteMatchTuples: Contains an array of ByteMatchTuple objects. Each ByteMatchTuple 7892 // object contains FieldToMatch, PositionalConstraint, TargetString, and 7893 // TextTransformation 7894 // 7895 // * FieldToMatch: Contains Data and Type 7896 ByteMatchSet *ByteMatchSet `type:"structure"` 7897} 7898 7899// String returns the string representation 7900func (s GetByteMatchSetOutput) String() string { 7901 return awsutil.Prettify(s) 7902} 7903 7904// GoString returns the string representation 7905func (s GetByteMatchSetOutput) GoString() string { 7906 return s.String() 7907} 7908 7909// SetByteMatchSet sets the ByteMatchSet field's value. 7910func (s *GetByteMatchSetOutput) SetByteMatchSet(v *ByteMatchSet) *GetByteMatchSetOutput { 7911 s.ByteMatchSet = v 7912 return s 7913} 7914 7915// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenRequest 7916type GetChangeTokenInput struct { 7917 _ struct{} `type:"structure"` 7918} 7919 7920// String returns the string representation 7921func (s GetChangeTokenInput) String() string { 7922 return awsutil.Prettify(s) 7923} 7924 7925// GoString returns the string representation 7926func (s GetChangeTokenInput) GoString() string { 7927 return s.String() 7928} 7929 7930// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenResponse 7931type GetChangeTokenOutput struct { 7932 _ struct{} `type:"structure"` 7933 7934 // The ChangeToken that you used in the request. Use this value in a GetChangeTokenStatus 7935 // request to get the current status of the request. 7936 ChangeToken *string `min:"1" type:"string"` 7937} 7938 7939// String returns the string representation 7940func (s GetChangeTokenOutput) String() string { 7941 return awsutil.Prettify(s) 7942} 7943 7944// GoString returns the string representation 7945func (s GetChangeTokenOutput) GoString() string { 7946 return s.String() 7947} 7948 7949// SetChangeToken sets the ChangeToken field's value. 7950func (s *GetChangeTokenOutput) SetChangeToken(v string) *GetChangeTokenOutput { 7951 s.ChangeToken = &v 7952 return s 7953} 7954 7955// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenStatusRequest 7956type GetChangeTokenStatusInput struct { 7957 _ struct{} `type:"structure"` 7958 7959 // The change token for which you want to get the status. This change token 7960 // was previously returned in the GetChangeToken response. 7961 // 7962 // ChangeToken is a required field 7963 ChangeToken *string `min:"1" type:"string" required:"true"` 7964} 7965 7966// String returns the string representation 7967func (s GetChangeTokenStatusInput) String() string { 7968 return awsutil.Prettify(s) 7969} 7970 7971// GoString returns the string representation 7972func (s GetChangeTokenStatusInput) GoString() string { 7973 return s.String() 7974} 7975 7976// Validate inspects the fields of the type to determine if they are valid. 7977func (s *GetChangeTokenStatusInput) Validate() error { 7978 invalidParams := request.ErrInvalidParams{Context: "GetChangeTokenStatusInput"} 7979 if s.ChangeToken == nil { 7980 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 7981 } 7982 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 7983 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 7984 } 7985 7986 if invalidParams.Len() > 0 { 7987 return invalidParams 7988 } 7989 return nil 7990} 7991 7992// SetChangeToken sets the ChangeToken field's value. 7993func (s *GetChangeTokenStatusInput) SetChangeToken(v string) *GetChangeTokenStatusInput { 7994 s.ChangeToken = &v 7995 return s 7996} 7997 7998// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenStatusResponse 7999type GetChangeTokenStatusOutput struct { 8000 _ struct{} `type:"structure"` 8001 8002 // The status of the change token. 8003 ChangeTokenStatus *string `type:"string" enum:"ChangeTokenStatus"` 8004} 8005 8006// String returns the string representation 8007func (s GetChangeTokenStatusOutput) String() string { 8008 return awsutil.Prettify(s) 8009} 8010 8011// GoString returns the string representation 8012func (s GetChangeTokenStatusOutput) GoString() string { 8013 return s.String() 8014} 8015 8016// SetChangeTokenStatus sets the ChangeTokenStatus field's value. 8017func (s *GetChangeTokenStatusOutput) SetChangeTokenStatus(v string) *GetChangeTokenStatusOutput { 8018 s.ChangeTokenStatus = &v 8019 return s 8020} 8021 8022// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetIPSetRequest 8023type GetIPSetInput struct { 8024 _ struct{} `type:"structure"` 8025 8026 // The IPSetId of the IPSet that you want to get. IPSetId is returned by CreateIPSet 8027 // and by ListIPSets. 8028 // 8029 // IPSetId is a required field 8030 IPSetId *string `min:"1" type:"string" required:"true"` 8031} 8032 8033// String returns the string representation 8034func (s GetIPSetInput) String() string { 8035 return awsutil.Prettify(s) 8036} 8037 8038// GoString returns the string representation 8039func (s GetIPSetInput) GoString() string { 8040 return s.String() 8041} 8042 8043// Validate inspects the fields of the type to determine if they are valid. 8044func (s *GetIPSetInput) Validate() error { 8045 invalidParams := request.ErrInvalidParams{Context: "GetIPSetInput"} 8046 if s.IPSetId == nil { 8047 invalidParams.Add(request.NewErrParamRequired("IPSetId")) 8048 } 8049 if s.IPSetId != nil && len(*s.IPSetId) < 1 { 8050 invalidParams.Add(request.NewErrParamMinLen("IPSetId", 1)) 8051 } 8052 8053 if invalidParams.Len() > 0 { 8054 return invalidParams 8055 } 8056 return nil 8057} 8058 8059// SetIPSetId sets the IPSetId field's value. 8060func (s *GetIPSetInput) SetIPSetId(v string) *GetIPSetInput { 8061 s.IPSetId = &v 8062 return s 8063} 8064 8065// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetIPSetResponse 8066type GetIPSetOutput struct { 8067 _ struct{} `type:"structure"` 8068 8069 // Information about the IPSet that you specified in the GetIPSet request. For 8070 // more information, see the following topics: 8071 // 8072 // * IPSet: Contains IPSetDescriptors, IPSetId, and Name 8073 // 8074 // * IPSetDescriptors: Contains an array of IPSetDescriptor objects. Each 8075 // IPSetDescriptor object contains Type and Value 8076 IPSet *IPSet `type:"structure"` 8077} 8078 8079// String returns the string representation 8080func (s GetIPSetOutput) String() string { 8081 return awsutil.Prettify(s) 8082} 8083 8084// GoString returns the string representation 8085func (s GetIPSetOutput) GoString() string { 8086 return s.String() 8087} 8088 8089// SetIPSet sets the IPSet field's value. 8090func (s *GetIPSetOutput) SetIPSet(v *IPSet) *GetIPSetOutput { 8091 s.IPSet = v 8092 return s 8093} 8094 8095// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleRequest 8096type GetRateBasedRuleInput struct { 8097 _ struct{} `type:"structure"` 8098 8099 // The RuleId of the RateBasedRule that you want to get. RuleId is returned 8100 // by CreateRateBasedRule and by ListRateBasedRules. 8101 // 8102 // RuleId is a required field 8103 RuleId *string `min:"1" type:"string" required:"true"` 8104} 8105 8106// String returns the string representation 8107func (s GetRateBasedRuleInput) String() string { 8108 return awsutil.Prettify(s) 8109} 8110 8111// GoString returns the string representation 8112func (s GetRateBasedRuleInput) GoString() string { 8113 return s.String() 8114} 8115 8116// Validate inspects the fields of the type to determine if they are valid. 8117func (s *GetRateBasedRuleInput) Validate() error { 8118 invalidParams := request.ErrInvalidParams{Context: "GetRateBasedRuleInput"} 8119 if s.RuleId == nil { 8120 invalidParams.Add(request.NewErrParamRequired("RuleId")) 8121 } 8122 if s.RuleId != nil && len(*s.RuleId) < 1 { 8123 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 8124 } 8125 8126 if invalidParams.Len() > 0 { 8127 return invalidParams 8128 } 8129 return nil 8130} 8131 8132// SetRuleId sets the RuleId field's value. 8133func (s *GetRateBasedRuleInput) SetRuleId(v string) *GetRateBasedRuleInput { 8134 s.RuleId = &v 8135 return s 8136} 8137 8138// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeysRequest 8139type GetRateBasedRuleManagedKeysInput struct { 8140 _ struct{} `type:"structure"` 8141 8142 // A null value and not currently used. Do not include this in your request. 8143 NextMarker *string `min:"1" type:"string"` 8144 8145 // The RuleId of the RateBasedRule for which you want to get a list of ManagedKeys. 8146 // RuleId is returned by CreateRateBasedRule and by ListRateBasedRules. 8147 // 8148 // RuleId is a required field 8149 RuleId *string `min:"1" type:"string" required:"true"` 8150} 8151 8152// String returns the string representation 8153func (s GetRateBasedRuleManagedKeysInput) String() string { 8154 return awsutil.Prettify(s) 8155} 8156 8157// GoString returns the string representation 8158func (s GetRateBasedRuleManagedKeysInput) GoString() string { 8159 return s.String() 8160} 8161 8162// Validate inspects the fields of the type to determine if they are valid. 8163func (s *GetRateBasedRuleManagedKeysInput) Validate() error { 8164 invalidParams := request.ErrInvalidParams{Context: "GetRateBasedRuleManagedKeysInput"} 8165 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 8166 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 8167 } 8168 if s.RuleId == nil { 8169 invalidParams.Add(request.NewErrParamRequired("RuleId")) 8170 } 8171 if s.RuleId != nil && len(*s.RuleId) < 1 { 8172 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 8173 } 8174 8175 if invalidParams.Len() > 0 { 8176 return invalidParams 8177 } 8178 return nil 8179} 8180 8181// SetNextMarker sets the NextMarker field's value. 8182func (s *GetRateBasedRuleManagedKeysInput) SetNextMarker(v string) *GetRateBasedRuleManagedKeysInput { 8183 s.NextMarker = &v 8184 return s 8185} 8186 8187// SetRuleId sets the RuleId field's value. 8188func (s *GetRateBasedRuleManagedKeysInput) SetRuleId(v string) *GetRateBasedRuleManagedKeysInput { 8189 s.RuleId = &v 8190 return s 8191} 8192 8193// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeysResponse 8194type GetRateBasedRuleManagedKeysOutput struct { 8195 _ struct{} `type:"structure"` 8196 8197 // An array of IP addresses that currently are blocked by the specified RateBasedRule. 8198 ManagedKeys []*string `type:"list"` 8199 8200 // A null value and not currently used. 8201 NextMarker *string `min:"1" type:"string"` 8202} 8203 8204// String returns the string representation 8205func (s GetRateBasedRuleManagedKeysOutput) String() string { 8206 return awsutil.Prettify(s) 8207} 8208 8209// GoString returns the string representation 8210func (s GetRateBasedRuleManagedKeysOutput) GoString() string { 8211 return s.String() 8212} 8213 8214// SetManagedKeys sets the ManagedKeys field's value. 8215func (s *GetRateBasedRuleManagedKeysOutput) SetManagedKeys(v []*string) *GetRateBasedRuleManagedKeysOutput { 8216 s.ManagedKeys = v 8217 return s 8218} 8219 8220// SetNextMarker sets the NextMarker field's value. 8221func (s *GetRateBasedRuleManagedKeysOutput) SetNextMarker(v string) *GetRateBasedRuleManagedKeysOutput { 8222 s.NextMarker = &v 8223 return s 8224} 8225 8226// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleResponse 8227type GetRateBasedRuleOutput struct { 8228 _ struct{} `type:"structure"` 8229 8230 // Information about the RateBasedRule that you specified in the GetRateBasedRule 8231 // request. 8232 Rule *RateBasedRule `type:"structure"` 8233} 8234 8235// String returns the string representation 8236func (s GetRateBasedRuleOutput) String() string { 8237 return awsutil.Prettify(s) 8238} 8239 8240// GoString returns the string representation 8241func (s GetRateBasedRuleOutput) GoString() string { 8242 return s.String() 8243} 8244 8245// SetRule sets the Rule field's value. 8246func (s *GetRateBasedRuleOutput) SetRule(v *RateBasedRule) *GetRateBasedRuleOutput { 8247 s.Rule = v 8248 return s 8249} 8250 8251// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleRequest 8252type GetRuleInput struct { 8253 _ struct{} `type:"structure"` 8254 8255 // The RuleId of the Rule that you want to get. RuleId is returned by CreateRule 8256 // and by ListRules. 8257 // 8258 // RuleId is a required field 8259 RuleId *string `min:"1" type:"string" required:"true"` 8260} 8261 8262// String returns the string representation 8263func (s GetRuleInput) String() string { 8264 return awsutil.Prettify(s) 8265} 8266 8267// GoString returns the string representation 8268func (s GetRuleInput) GoString() string { 8269 return s.String() 8270} 8271 8272// Validate inspects the fields of the type to determine if they are valid. 8273func (s *GetRuleInput) Validate() error { 8274 invalidParams := request.ErrInvalidParams{Context: "GetRuleInput"} 8275 if s.RuleId == nil { 8276 invalidParams.Add(request.NewErrParamRequired("RuleId")) 8277 } 8278 if s.RuleId != nil && len(*s.RuleId) < 1 { 8279 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 8280 } 8281 8282 if invalidParams.Len() > 0 { 8283 return invalidParams 8284 } 8285 return nil 8286} 8287 8288// SetRuleId sets the RuleId field's value. 8289func (s *GetRuleInput) SetRuleId(v string) *GetRuleInput { 8290 s.RuleId = &v 8291 return s 8292} 8293 8294// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleResponse 8295type GetRuleOutput struct { 8296 _ struct{} `type:"structure"` 8297 8298 // Information about the Rule that you specified in the GetRule request. For 8299 // more information, see the following topics: 8300 // 8301 // * Rule: Contains MetricName, Name, an array of Predicate objects, and 8302 // RuleId 8303 // 8304 // * Predicate: Each Predicate object contains DataId, Negated, and Type 8305 Rule *Rule `type:"structure"` 8306} 8307 8308// String returns the string representation 8309func (s GetRuleOutput) String() string { 8310 return awsutil.Prettify(s) 8311} 8312 8313// GoString returns the string representation 8314func (s GetRuleOutput) GoString() string { 8315 return s.String() 8316} 8317 8318// SetRule sets the Rule field's value. 8319func (s *GetRuleOutput) SetRule(v *Rule) *GetRuleOutput { 8320 s.Rule = v 8321 return s 8322} 8323 8324// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSampledRequestsRequest 8325type GetSampledRequestsInput struct { 8326 _ struct{} `type:"structure"` 8327 8328 // The number of requests that you want AWS WAF to return from among the first 8329 // 5,000 requests that your AWS resource received during the time range. If 8330 // your resource received fewer requests than the value of MaxItems, GetSampledRequests 8331 // returns information about all of them. 8332 // 8333 // MaxItems is a required field 8334 MaxItems *int64 `min:"1" type:"long" required:"true"` 8335 8336 // RuleId is one of two values: 8337 // 8338 // * The RuleId of the Rule for which you want GetSampledRequests to return 8339 // a sample of requests. 8340 // 8341 // * Default_Action, which causes GetSampledRequests to return a sample of 8342 // the requests that didn't match any of the rules in the specified WebACL. 8343 // 8344 // RuleId is a required field 8345 RuleId *string `min:"1" type:"string" required:"true"` 8346 8347 // The start date and time and the end date and time of the range for which 8348 // you want GetSampledRequests to return a sample of requests. Specify the date 8349 // and time in the following format: "2016-09-27T14:50Z". You can specify any 8350 // time range in the previous three hours. 8351 // 8352 // TimeWindow is a required field 8353 TimeWindow *TimeWindow `type:"structure" required:"true"` 8354 8355 // The WebACLId of the WebACL for which you want GetSampledRequests to return 8356 // a sample of requests. 8357 // 8358 // WebAclId is a required field 8359 WebAclId *string `min:"1" type:"string" required:"true"` 8360} 8361 8362// String returns the string representation 8363func (s GetSampledRequestsInput) String() string { 8364 return awsutil.Prettify(s) 8365} 8366 8367// GoString returns the string representation 8368func (s GetSampledRequestsInput) GoString() string { 8369 return s.String() 8370} 8371 8372// Validate inspects the fields of the type to determine if they are valid. 8373func (s *GetSampledRequestsInput) Validate() error { 8374 invalidParams := request.ErrInvalidParams{Context: "GetSampledRequestsInput"} 8375 if s.MaxItems == nil { 8376 invalidParams.Add(request.NewErrParamRequired("MaxItems")) 8377 } 8378 if s.MaxItems != nil && *s.MaxItems < 1 { 8379 invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1)) 8380 } 8381 if s.RuleId == nil { 8382 invalidParams.Add(request.NewErrParamRequired("RuleId")) 8383 } 8384 if s.RuleId != nil && len(*s.RuleId) < 1 { 8385 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 8386 } 8387 if s.TimeWindow == nil { 8388 invalidParams.Add(request.NewErrParamRequired("TimeWindow")) 8389 } 8390 if s.WebAclId == nil { 8391 invalidParams.Add(request.NewErrParamRequired("WebAclId")) 8392 } 8393 if s.WebAclId != nil && len(*s.WebAclId) < 1 { 8394 invalidParams.Add(request.NewErrParamMinLen("WebAclId", 1)) 8395 } 8396 if s.TimeWindow != nil { 8397 if err := s.TimeWindow.Validate(); err != nil { 8398 invalidParams.AddNested("TimeWindow", err.(request.ErrInvalidParams)) 8399 } 8400 } 8401 8402 if invalidParams.Len() > 0 { 8403 return invalidParams 8404 } 8405 return nil 8406} 8407 8408// SetMaxItems sets the MaxItems field's value. 8409func (s *GetSampledRequestsInput) SetMaxItems(v int64) *GetSampledRequestsInput { 8410 s.MaxItems = &v 8411 return s 8412} 8413 8414// SetRuleId sets the RuleId field's value. 8415func (s *GetSampledRequestsInput) SetRuleId(v string) *GetSampledRequestsInput { 8416 s.RuleId = &v 8417 return s 8418} 8419 8420// SetTimeWindow sets the TimeWindow field's value. 8421func (s *GetSampledRequestsInput) SetTimeWindow(v *TimeWindow) *GetSampledRequestsInput { 8422 s.TimeWindow = v 8423 return s 8424} 8425 8426// SetWebAclId sets the WebAclId field's value. 8427func (s *GetSampledRequestsInput) SetWebAclId(v string) *GetSampledRequestsInput { 8428 s.WebAclId = &v 8429 return s 8430} 8431 8432// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSampledRequestsResponse 8433type GetSampledRequestsOutput struct { 8434 _ struct{} `type:"structure"` 8435 8436 // The total number of requests from which GetSampledRequests got a sample of 8437 // MaxItems requests. If PopulationSize is less than MaxItems, the sample includes 8438 // every request that your AWS resource received during the specified time range. 8439 PopulationSize *int64 `type:"long"` 8440 8441 // A complex type that contains detailed information about each of the requests 8442 // in the sample. 8443 SampledRequests []*SampledHTTPRequest `type:"list"` 8444 8445 // Usually, TimeWindow is the time range that you specified in the GetSampledRequests 8446 // request. However, if your AWS resource received more than 5,000 requests 8447 // during the time range that you specified in the request, GetSampledRequests 8448 // returns the time range for the first 5,000 requests. 8449 TimeWindow *TimeWindow `type:"structure"` 8450} 8451 8452// String returns the string representation 8453func (s GetSampledRequestsOutput) String() string { 8454 return awsutil.Prettify(s) 8455} 8456 8457// GoString returns the string representation 8458func (s GetSampledRequestsOutput) GoString() string { 8459 return s.String() 8460} 8461 8462// SetPopulationSize sets the PopulationSize field's value. 8463func (s *GetSampledRequestsOutput) SetPopulationSize(v int64) *GetSampledRequestsOutput { 8464 s.PopulationSize = &v 8465 return s 8466} 8467 8468// SetSampledRequests sets the SampledRequests field's value. 8469func (s *GetSampledRequestsOutput) SetSampledRequests(v []*SampledHTTPRequest) *GetSampledRequestsOutput { 8470 s.SampledRequests = v 8471 return s 8472} 8473 8474// SetTimeWindow sets the TimeWindow field's value. 8475func (s *GetSampledRequestsOutput) SetTimeWindow(v *TimeWindow) *GetSampledRequestsOutput { 8476 s.TimeWindow = v 8477 return s 8478} 8479 8480// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSizeConstraintSetRequest 8481type GetSizeConstraintSetInput struct { 8482 _ struct{} `type:"structure"` 8483 8484 // The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId 8485 // is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. 8486 // 8487 // SizeConstraintSetId is a required field 8488 SizeConstraintSetId *string `min:"1" type:"string" required:"true"` 8489} 8490 8491// String returns the string representation 8492func (s GetSizeConstraintSetInput) String() string { 8493 return awsutil.Prettify(s) 8494} 8495 8496// GoString returns the string representation 8497func (s GetSizeConstraintSetInput) GoString() string { 8498 return s.String() 8499} 8500 8501// Validate inspects the fields of the type to determine if they are valid. 8502func (s *GetSizeConstraintSetInput) Validate() error { 8503 invalidParams := request.ErrInvalidParams{Context: "GetSizeConstraintSetInput"} 8504 if s.SizeConstraintSetId == nil { 8505 invalidParams.Add(request.NewErrParamRequired("SizeConstraintSetId")) 8506 } 8507 if s.SizeConstraintSetId != nil && len(*s.SizeConstraintSetId) < 1 { 8508 invalidParams.Add(request.NewErrParamMinLen("SizeConstraintSetId", 1)) 8509 } 8510 8511 if invalidParams.Len() > 0 { 8512 return invalidParams 8513 } 8514 return nil 8515} 8516 8517// SetSizeConstraintSetId sets the SizeConstraintSetId field's value. 8518func (s *GetSizeConstraintSetInput) SetSizeConstraintSetId(v string) *GetSizeConstraintSetInput { 8519 s.SizeConstraintSetId = &v 8520 return s 8521} 8522 8523// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSizeConstraintSetResponse 8524type GetSizeConstraintSetOutput struct { 8525 _ struct{} `type:"structure"` 8526 8527 // Information about the SizeConstraintSet that you specified in the GetSizeConstraintSet 8528 // request. For more information, see the following topics: 8529 // 8530 // * SizeConstraintSet: Contains SizeConstraintSetId, SizeConstraints, and 8531 // Name 8532 // 8533 // * SizeConstraints: Contains an array of SizeConstraint objects. Each SizeConstraint 8534 // object contains FieldToMatch, TextTransformation, ComparisonOperator, 8535 // and Size 8536 // 8537 // * FieldToMatch: Contains Data and Type 8538 SizeConstraintSet *SizeConstraintSet `type:"structure"` 8539} 8540 8541// String returns the string representation 8542func (s GetSizeConstraintSetOutput) String() string { 8543 return awsutil.Prettify(s) 8544} 8545 8546// GoString returns the string representation 8547func (s GetSizeConstraintSetOutput) GoString() string { 8548 return s.String() 8549} 8550 8551// SetSizeConstraintSet sets the SizeConstraintSet field's value. 8552func (s *GetSizeConstraintSetOutput) SetSizeConstraintSet(v *SizeConstraintSet) *GetSizeConstraintSetOutput { 8553 s.SizeConstraintSet = v 8554 return s 8555} 8556 8557// A request to get a SqlInjectionMatchSet. 8558// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSqlInjectionMatchSetRequest 8559type GetSqlInjectionMatchSetInput struct { 8560 _ struct{} `type:"structure"` 8561 8562 // The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to get. 8563 // SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. 8564 // 8565 // SqlInjectionMatchSetId is a required field 8566 SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"` 8567} 8568 8569// String returns the string representation 8570func (s GetSqlInjectionMatchSetInput) String() string { 8571 return awsutil.Prettify(s) 8572} 8573 8574// GoString returns the string representation 8575func (s GetSqlInjectionMatchSetInput) GoString() string { 8576 return s.String() 8577} 8578 8579// Validate inspects the fields of the type to determine if they are valid. 8580func (s *GetSqlInjectionMatchSetInput) Validate() error { 8581 invalidParams := request.ErrInvalidParams{Context: "GetSqlInjectionMatchSetInput"} 8582 if s.SqlInjectionMatchSetId == nil { 8583 invalidParams.Add(request.NewErrParamRequired("SqlInjectionMatchSetId")) 8584 } 8585 if s.SqlInjectionMatchSetId != nil && len(*s.SqlInjectionMatchSetId) < 1 { 8586 invalidParams.Add(request.NewErrParamMinLen("SqlInjectionMatchSetId", 1)) 8587 } 8588 8589 if invalidParams.Len() > 0 { 8590 return invalidParams 8591 } 8592 return nil 8593} 8594 8595// SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value. 8596func (s *GetSqlInjectionMatchSetInput) SetSqlInjectionMatchSetId(v string) *GetSqlInjectionMatchSetInput { 8597 s.SqlInjectionMatchSetId = &v 8598 return s 8599} 8600 8601// The response to a GetSqlInjectionMatchSet request. 8602// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSqlInjectionMatchSetResponse 8603type GetSqlInjectionMatchSetOutput struct { 8604 _ struct{} `type:"structure"` 8605 8606 // Information about the SqlInjectionMatchSet that you specified in the GetSqlInjectionMatchSet 8607 // request. For more information, see the following topics: 8608 // 8609 // * SqlInjectionMatchSet: Contains Name, SqlInjectionMatchSetId, and an 8610 // array of SqlInjectionMatchTuple objects 8611 // 8612 // * SqlInjectionMatchTuple: Each SqlInjectionMatchTuple object contains 8613 // FieldToMatch and TextTransformation 8614 // 8615 // * FieldToMatch: Contains Data and Type 8616 SqlInjectionMatchSet *SqlInjectionMatchSet `type:"structure"` 8617} 8618 8619// String returns the string representation 8620func (s GetSqlInjectionMatchSetOutput) String() string { 8621 return awsutil.Prettify(s) 8622} 8623 8624// GoString returns the string representation 8625func (s GetSqlInjectionMatchSetOutput) GoString() string { 8626 return s.String() 8627} 8628 8629// SetSqlInjectionMatchSet sets the SqlInjectionMatchSet field's value. 8630func (s *GetSqlInjectionMatchSetOutput) SetSqlInjectionMatchSet(v *SqlInjectionMatchSet) *GetSqlInjectionMatchSetOutput { 8631 s.SqlInjectionMatchSet = v 8632 return s 8633} 8634 8635// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACLRequest 8636type GetWebACLInput struct { 8637 _ struct{} `type:"structure"` 8638 8639 // The WebACLId of the WebACL that you want to get. WebACLId is returned by 8640 // CreateWebACL and by ListWebACLs. 8641 // 8642 // WebACLId is a required field 8643 WebACLId *string `min:"1" type:"string" required:"true"` 8644} 8645 8646// String returns the string representation 8647func (s GetWebACLInput) String() string { 8648 return awsutil.Prettify(s) 8649} 8650 8651// GoString returns the string representation 8652func (s GetWebACLInput) GoString() string { 8653 return s.String() 8654} 8655 8656// Validate inspects the fields of the type to determine if they are valid. 8657func (s *GetWebACLInput) Validate() error { 8658 invalidParams := request.ErrInvalidParams{Context: "GetWebACLInput"} 8659 if s.WebACLId == nil { 8660 invalidParams.Add(request.NewErrParamRequired("WebACLId")) 8661 } 8662 if s.WebACLId != nil && len(*s.WebACLId) < 1 { 8663 invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1)) 8664 } 8665 8666 if invalidParams.Len() > 0 { 8667 return invalidParams 8668 } 8669 return nil 8670} 8671 8672// SetWebACLId sets the WebACLId field's value. 8673func (s *GetWebACLInput) SetWebACLId(v string) *GetWebACLInput { 8674 s.WebACLId = &v 8675 return s 8676} 8677 8678// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACLResponse 8679type GetWebACLOutput struct { 8680 _ struct{} `type:"structure"` 8681 8682 // Information about the WebACL that you specified in the GetWebACL request. 8683 // For more information, see the following topics: 8684 // 8685 // * WebACL: Contains DefaultAction, MetricName, Name, an array of Rule objects, 8686 // and WebACLId 8687 // 8688 // * DefaultAction (Data type is WafAction): Contains Type 8689 // 8690 // * Rules: Contains an array of ActivatedRule objects, which contain Action, 8691 // Priority, and RuleId 8692 // 8693 // * Action: Contains Type 8694 WebACL *WebACL `type:"structure"` 8695} 8696 8697// String returns the string representation 8698func (s GetWebACLOutput) String() string { 8699 return awsutil.Prettify(s) 8700} 8701 8702// GoString returns the string representation 8703func (s GetWebACLOutput) GoString() string { 8704 return s.String() 8705} 8706 8707// SetWebACL sets the WebACL field's value. 8708func (s *GetWebACLOutput) SetWebACL(v *WebACL) *GetWebACLOutput { 8709 s.WebACL = v 8710 return s 8711} 8712 8713// A request to get an XssMatchSet. 8714// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetXssMatchSetRequest 8715type GetXssMatchSetInput struct { 8716 _ struct{} `type:"structure"` 8717 8718 // The XssMatchSetId of the XssMatchSet that you want to get. XssMatchSetId 8719 // is returned by CreateXssMatchSet and by ListXssMatchSets. 8720 // 8721 // XssMatchSetId is a required field 8722 XssMatchSetId *string `min:"1" type:"string" required:"true"` 8723} 8724 8725// String returns the string representation 8726func (s GetXssMatchSetInput) String() string { 8727 return awsutil.Prettify(s) 8728} 8729 8730// GoString returns the string representation 8731func (s GetXssMatchSetInput) GoString() string { 8732 return s.String() 8733} 8734 8735// Validate inspects the fields of the type to determine if they are valid. 8736func (s *GetXssMatchSetInput) Validate() error { 8737 invalidParams := request.ErrInvalidParams{Context: "GetXssMatchSetInput"} 8738 if s.XssMatchSetId == nil { 8739 invalidParams.Add(request.NewErrParamRequired("XssMatchSetId")) 8740 } 8741 if s.XssMatchSetId != nil && len(*s.XssMatchSetId) < 1 { 8742 invalidParams.Add(request.NewErrParamMinLen("XssMatchSetId", 1)) 8743 } 8744 8745 if invalidParams.Len() > 0 { 8746 return invalidParams 8747 } 8748 return nil 8749} 8750 8751// SetXssMatchSetId sets the XssMatchSetId field's value. 8752func (s *GetXssMatchSetInput) SetXssMatchSetId(v string) *GetXssMatchSetInput { 8753 s.XssMatchSetId = &v 8754 return s 8755} 8756 8757// The response to a GetXssMatchSet request. 8758// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetXssMatchSetResponse 8759type GetXssMatchSetOutput struct { 8760 _ struct{} `type:"structure"` 8761 8762 // Information about the XssMatchSet that you specified in the GetXssMatchSet 8763 // request. For more information, see the following topics: 8764 // 8765 // * XssMatchSet: Contains Name, XssMatchSetId, and an array of XssMatchTuple 8766 // objects 8767 // 8768 // * XssMatchTuple: Each XssMatchTuple object contains FieldToMatch and TextTransformation 8769 // 8770 // * FieldToMatch: Contains Data and Type 8771 XssMatchSet *XssMatchSet `type:"structure"` 8772} 8773 8774// String returns the string representation 8775func (s GetXssMatchSetOutput) String() string { 8776 return awsutil.Prettify(s) 8777} 8778 8779// GoString returns the string representation 8780func (s GetXssMatchSetOutput) GoString() string { 8781 return s.String() 8782} 8783 8784// SetXssMatchSet sets the XssMatchSet field's value. 8785func (s *GetXssMatchSetOutput) SetXssMatchSet(v *XssMatchSet) *GetXssMatchSetOutput { 8786 s.XssMatchSet = v 8787 return s 8788} 8789 8790// The response from a GetSampledRequests request includes an HTTPHeader complex 8791// type that appears as Headers in the response syntax. HTTPHeader contains 8792// the names and values of all of the headers that appear in one of the web 8793// requests that were returned by GetSampledRequests. 8794// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/HTTPHeader 8795type HTTPHeader struct { 8796 _ struct{} `type:"structure"` 8797 8798 // The name of one of the headers in the sampled web request. 8799 Name *string `type:"string"` 8800 8801 // The value of one of the headers in the sampled web request. 8802 Value *string `type:"string"` 8803} 8804 8805// String returns the string representation 8806func (s HTTPHeader) String() string { 8807 return awsutil.Prettify(s) 8808} 8809 8810// GoString returns the string representation 8811func (s HTTPHeader) GoString() string { 8812 return s.String() 8813} 8814 8815// SetName sets the Name field's value. 8816func (s *HTTPHeader) SetName(v string) *HTTPHeader { 8817 s.Name = &v 8818 return s 8819} 8820 8821// SetValue sets the Value field's value. 8822func (s *HTTPHeader) SetValue(v string) *HTTPHeader { 8823 s.Value = &v 8824 return s 8825} 8826 8827// The response from a GetSampledRequests request includes an HTTPRequest complex 8828// type that appears as Request in the response syntax. HTTPRequest contains 8829// information about one of the web requests that were returned by GetSampledRequests. 8830// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/HTTPRequest 8831type HTTPRequest struct { 8832 _ struct{} `type:"structure"` 8833 8834 // The IP address that the request originated from. If the WebACL is associated 8835 // with a CloudFront distribution, this is the value of one of the following 8836 // fields in CloudFront access logs: 8837 // 8838 // * c-ip, if the viewer did not use an HTTP proxy or a load balancer to 8839 // send the request 8840 // 8841 // * x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer 8842 // to send the request 8843 ClientIP *string `type:"string"` 8844 8845 // The two-letter country code for the country that the request originated from. 8846 // For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2 8847 // (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2). 8848 Country *string `type:"string"` 8849 8850 // The HTTP version specified in the sampled web request, for example, HTTP/1.1. 8851 HTTPVersion *string `type:"string"` 8852 8853 // A complex type that contains two values for each header in the sampled web 8854 // request: the name of the header and the value of the header. 8855 Headers []*HTTPHeader `type:"list"` 8856 8857 // The HTTP method specified in the sampled web request. CloudFront supports 8858 // the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT. 8859 Method *string `type:"string"` 8860 8861 // The part of a web request that identifies the resource, for example, /images/daily-ad.jpg. 8862 URI *string `type:"string"` 8863} 8864 8865// String returns the string representation 8866func (s HTTPRequest) String() string { 8867 return awsutil.Prettify(s) 8868} 8869 8870// GoString returns the string representation 8871func (s HTTPRequest) GoString() string { 8872 return s.String() 8873} 8874 8875// SetClientIP sets the ClientIP field's value. 8876func (s *HTTPRequest) SetClientIP(v string) *HTTPRequest { 8877 s.ClientIP = &v 8878 return s 8879} 8880 8881// SetCountry sets the Country field's value. 8882func (s *HTTPRequest) SetCountry(v string) *HTTPRequest { 8883 s.Country = &v 8884 return s 8885} 8886 8887// SetHTTPVersion sets the HTTPVersion field's value. 8888func (s *HTTPRequest) SetHTTPVersion(v string) *HTTPRequest { 8889 s.HTTPVersion = &v 8890 return s 8891} 8892 8893// SetHeaders sets the Headers field's value. 8894func (s *HTTPRequest) SetHeaders(v []*HTTPHeader) *HTTPRequest { 8895 s.Headers = v 8896 return s 8897} 8898 8899// SetMethod sets the Method field's value. 8900func (s *HTTPRequest) SetMethod(v string) *HTTPRequest { 8901 s.Method = &v 8902 return s 8903} 8904 8905// SetURI sets the URI field's value. 8906func (s *HTTPRequest) SetURI(v string) *HTTPRequest { 8907 s.URI = &v 8908 return s 8909} 8910 8911// Contains one or more IP addresses or blocks of IP addresses specified in 8912// Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports /8, /16, 8913// /24, and /32 IP address ranges for IPv4, and /24, /32, /48, /56, /64 and 8914// /128 for IPv6. 8915// 8916// To specify an individual IP address, you specify the four-part IP address 8917// followed by a /32, for example, 192.0.2.0/31. To block a range of IP addresses, 8918// you can specify a /128, /64, /56, /48, /32, /24, /16, or /8 CIDR. For more 8919// information about CIDR notation, see the Wikipedia entry Classless Inter-Domain 8920// Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 8921// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSet 8922type IPSet struct { 8923 _ struct{} `type:"structure"` 8924 8925 // The IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation) 8926 // that web requests originate from. If the WebACL is associated with a CloudFront 8927 // distribution and the viewer did not use an HTTP proxy or a load balancer 8928 // to send the request, this is the value of the c-ip field in the CloudFront 8929 // access logs. 8930 // 8931 // IPSetDescriptors is a required field 8932 IPSetDescriptors []*IPSetDescriptor `type:"list" required:"true"` 8933 8934 // The IPSetId for an IPSet. You use IPSetId to get information about an IPSet 8935 // (see GetIPSet), update an IPSet (see UpdateIPSet), insert an IPSet into a 8936 // Rule or delete one from a Rule (see UpdateRule), and delete an IPSet from 8937 // AWS WAF (see DeleteIPSet). 8938 // 8939 // IPSetId is returned by CreateIPSet and by ListIPSets. 8940 // 8941 // IPSetId is a required field 8942 IPSetId *string `min:"1" type:"string" required:"true"` 8943 8944 // A friendly name or description of the IPSet. You can't change the name of 8945 // an IPSet after you create it. 8946 Name *string `min:"1" type:"string"` 8947} 8948 8949// String returns the string representation 8950func (s IPSet) String() string { 8951 return awsutil.Prettify(s) 8952} 8953 8954// GoString returns the string representation 8955func (s IPSet) GoString() string { 8956 return s.String() 8957} 8958 8959// SetIPSetDescriptors sets the IPSetDescriptors field's value. 8960func (s *IPSet) SetIPSetDescriptors(v []*IPSetDescriptor) *IPSet { 8961 s.IPSetDescriptors = v 8962 return s 8963} 8964 8965// SetIPSetId sets the IPSetId field's value. 8966func (s *IPSet) SetIPSetId(v string) *IPSet { 8967 s.IPSetId = &v 8968 return s 8969} 8970 8971// SetName sets the Name field's value. 8972func (s *IPSet) SetName(v string) *IPSet { 8973 s.Name = &v 8974 return s 8975} 8976 8977// Specifies the IP address type (IPV4 or IPV6) and the IP address range (in 8978// CIDR format) that web requests originate from. 8979// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSetDescriptor 8980type IPSetDescriptor struct { 8981 _ struct{} `type:"structure"` 8982 8983 // Specify IPV4 or IPV6. 8984 // 8985 // Type is a required field 8986 Type *string `type:"string" required:"true" enum:"IPSetDescriptorType"` 8987 8988 // Specify an IPv4 address by using CIDR notation. For example: 8989 // 8990 // * To configure AWS WAF to allow, block, or count requests that originated 8991 // from the IP address 192.0.2.44, specify 192.0.2.44/32. 8992 // 8993 // * To configure AWS WAF to allow, block, or count requests that originated 8994 // from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24. 8995 // 8996 // For more information about CIDR notation, see the Wikipedia entry Classless 8997 // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing). 8998 // 8999 // Specify an IPv6 address by using CIDR notation. For example: 9000 // 9001 // * To configure AWS WAF to allow, block, or count requests that originated 9002 // from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128. 9003 // 9004 // * To configure AWS WAF to allow, block, or count requests that originated 9005 // from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff, 9006 // specify 1111:0000:0000:0000:0000:0000:0000:0000/64. 9007 // 9008 // Value is a required field 9009 Value *string `type:"string" required:"true"` 9010} 9011 9012// String returns the string representation 9013func (s IPSetDescriptor) String() string { 9014 return awsutil.Prettify(s) 9015} 9016 9017// GoString returns the string representation 9018func (s IPSetDescriptor) GoString() string { 9019 return s.String() 9020} 9021 9022// Validate inspects the fields of the type to determine if they are valid. 9023func (s *IPSetDescriptor) Validate() error { 9024 invalidParams := request.ErrInvalidParams{Context: "IPSetDescriptor"} 9025 if s.Type == nil { 9026 invalidParams.Add(request.NewErrParamRequired("Type")) 9027 } 9028 if s.Value == nil { 9029 invalidParams.Add(request.NewErrParamRequired("Value")) 9030 } 9031 9032 if invalidParams.Len() > 0 { 9033 return invalidParams 9034 } 9035 return nil 9036} 9037 9038// SetType sets the Type field's value. 9039func (s *IPSetDescriptor) SetType(v string) *IPSetDescriptor { 9040 s.Type = &v 9041 return s 9042} 9043 9044// SetValue sets the Value field's value. 9045func (s *IPSetDescriptor) SetValue(v string) *IPSetDescriptor { 9046 s.Value = &v 9047 return s 9048} 9049 9050// Contains the identifier and the name of the IPSet. 9051// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSetSummary 9052type IPSetSummary struct { 9053 _ struct{} `type:"structure"` 9054 9055 // The IPSetId for an IPSet. You can use IPSetId in a GetIPSet request to get 9056 // detailed information about an IPSet. 9057 // 9058 // IPSetId is a required field 9059 IPSetId *string `min:"1" type:"string" required:"true"` 9060 9061 // A friendly name or description of the IPSet. You can't change the name of 9062 // an IPSet after you create it. 9063 // 9064 // Name is a required field 9065 Name *string `min:"1" type:"string" required:"true"` 9066} 9067 9068// String returns the string representation 9069func (s IPSetSummary) String() string { 9070 return awsutil.Prettify(s) 9071} 9072 9073// GoString returns the string representation 9074func (s IPSetSummary) GoString() string { 9075 return s.String() 9076} 9077 9078// SetIPSetId sets the IPSetId field's value. 9079func (s *IPSetSummary) SetIPSetId(v string) *IPSetSummary { 9080 s.IPSetId = &v 9081 return s 9082} 9083 9084// SetName sets the Name field's value. 9085func (s *IPSetSummary) SetName(v string) *IPSetSummary { 9086 s.Name = &v 9087 return s 9088} 9089 9090// Specifies the type of update to perform to an IPSet with UpdateIPSet. 9091// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/IPSetUpdate 9092type IPSetUpdate struct { 9093 _ struct{} `type:"structure"` 9094 9095 // Specifies whether to insert or delete an IP address with UpdateIPSet. 9096 // 9097 // Action is a required field 9098 Action *string `type:"string" required:"true" enum:"ChangeAction"` 9099 9100 // The IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation) 9101 // that web requests originate from. 9102 // 9103 // IPSetDescriptor is a required field 9104 IPSetDescriptor *IPSetDescriptor `type:"structure" required:"true"` 9105} 9106 9107// String returns the string representation 9108func (s IPSetUpdate) String() string { 9109 return awsutil.Prettify(s) 9110} 9111 9112// GoString returns the string representation 9113func (s IPSetUpdate) GoString() string { 9114 return s.String() 9115} 9116 9117// Validate inspects the fields of the type to determine if they are valid. 9118func (s *IPSetUpdate) Validate() error { 9119 invalidParams := request.ErrInvalidParams{Context: "IPSetUpdate"} 9120 if s.Action == nil { 9121 invalidParams.Add(request.NewErrParamRequired("Action")) 9122 } 9123 if s.IPSetDescriptor == nil { 9124 invalidParams.Add(request.NewErrParamRequired("IPSetDescriptor")) 9125 } 9126 if s.IPSetDescriptor != nil { 9127 if err := s.IPSetDescriptor.Validate(); err != nil { 9128 invalidParams.AddNested("IPSetDescriptor", err.(request.ErrInvalidParams)) 9129 } 9130 } 9131 9132 if invalidParams.Len() > 0 { 9133 return invalidParams 9134 } 9135 return nil 9136} 9137 9138// SetAction sets the Action field's value. 9139func (s *IPSetUpdate) SetAction(v string) *IPSetUpdate { 9140 s.Action = &v 9141 return s 9142} 9143 9144// SetIPSetDescriptor sets the IPSetDescriptor field's value. 9145func (s *IPSetUpdate) SetIPSetDescriptor(v *IPSetDescriptor) *IPSetUpdate { 9146 s.IPSetDescriptor = v 9147 return s 9148} 9149 9150// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListByteMatchSetsRequest 9151type ListByteMatchSetsInput struct { 9152 _ struct{} `type:"structure"` 9153 9154 // Specifies the number of ByteMatchSet objects that you want AWS WAF to return 9155 // for this request. If you have more ByteMatchSets objects than the number 9156 // you specify for Limit, the response includes a NextMarker value that you 9157 // can use to get another batch of ByteMatchSet objects. 9158 Limit *int64 `type:"integer"` 9159 9160 // If you specify a value for Limit and you have more ByteMatchSets than the 9161 // value of Limit, AWS WAF returns a NextMarker value in the response that allows 9162 // you to list another group of ByteMatchSets. For the second and subsequent 9163 // ListByteMatchSets requests, specify the value of NextMarker from the previous 9164 // response to get information about another batch of ByteMatchSets. 9165 NextMarker *string `min:"1" type:"string"` 9166} 9167 9168// String returns the string representation 9169func (s ListByteMatchSetsInput) String() string { 9170 return awsutil.Prettify(s) 9171} 9172 9173// GoString returns the string representation 9174func (s ListByteMatchSetsInput) GoString() string { 9175 return s.String() 9176} 9177 9178// Validate inspects the fields of the type to determine if they are valid. 9179func (s *ListByteMatchSetsInput) Validate() error { 9180 invalidParams := request.ErrInvalidParams{Context: "ListByteMatchSetsInput"} 9181 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 9182 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 9183 } 9184 9185 if invalidParams.Len() > 0 { 9186 return invalidParams 9187 } 9188 return nil 9189} 9190 9191// SetLimit sets the Limit field's value. 9192func (s *ListByteMatchSetsInput) SetLimit(v int64) *ListByteMatchSetsInput { 9193 s.Limit = &v 9194 return s 9195} 9196 9197// SetNextMarker sets the NextMarker field's value. 9198func (s *ListByteMatchSetsInput) SetNextMarker(v string) *ListByteMatchSetsInput { 9199 s.NextMarker = &v 9200 return s 9201} 9202 9203// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListByteMatchSetsResponse 9204type ListByteMatchSetsOutput struct { 9205 _ struct{} `type:"structure"` 9206 9207 // An array of ByteMatchSetSummary objects. 9208 ByteMatchSets []*ByteMatchSetSummary `type:"list"` 9209 9210 // If you have more ByteMatchSet objects than the number that you specified 9211 // for Limit in the request, the response includes a NextMarker value. To list 9212 // more ByteMatchSet objects, submit another ListByteMatchSets request, and 9213 // specify the NextMarker value from the response in the NextMarker value in 9214 // the next request. 9215 NextMarker *string `min:"1" type:"string"` 9216} 9217 9218// String returns the string representation 9219func (s ListByteMatchSetsOutput) String() string { 9220 return awsutil.Prettify(s) 9221} 9222 9223// GoString returns the string representation 9224func (s ListByteMatchSetsOutput) GoString() string { 9225 return s.String() 9226} 9227 9228// SetByteMatchSets sets the ByteMatchSets field's value. 9229func (s *ListByteMatchSetsOutput) SetByteMatchSets(v []*ByteMatchSetSummary) *ListByteMatchSetsOutput { 9230 s.ByteMatchSets = v 9231 return s 9232} 9233 9234// SetNextMarker sets the NextMarker field's value. 9235func (s *ListByteMatchSetsOutput) SetNextMarker(v string) *ListByteMatchSetsOutput { 9236 s.NextMarker = &v 9237 return s 9238} 9239 9240// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListIPSetsRequest 9241type ListIPSetsInput struct { 9242 _ struct{} `type:"structure"` 9243 9244 // Specifies the number of IPSet objects that you want AWS WAF to return for 9245 // this request. If you have more IPSet objects than the number you specify 9246 // for Limit, the response includes a NextMarker value that you can use to get 9247 // another batch of IPSet objects. 9248 Limit *int64 `type:"integer"` 9249 9250 // If you specify a value for Limit and you have more IPSets than the value 9251 // of Limit, AWS WAF returns a NextMarker value in the response that allows 9252 // you to list another group of IPSets. For the second and subsequent ListIPSets 9253 // requests, specify the value of NextMarker from the previous response to get 9254 // information about another batch of ByteMatchSets. 9255 NextMarker *string `min:"1" type:"string"` 9256} 9257 9258// String returns the string representation 9259func (s ListIPSetsInput) String() string { 9260 return awsutil.Prettify(s) 9261} 9262 9263// GoString returns the string representation 9264func (s ListIPSetsInput) GoString() string { 9265 return s.String() 9266} 9267 9268// Validate inspects the fields of the type to determine if they are valid. 9269func (s *ListIPSetsInput) Validate() error { 9270 invalidParams := request.ErrInvalidParams{Context: "ListIPSetsInput"} 9271 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 9272 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 9273 } 9274 9275 if invalidParams.Len() > 0 { 9276 return invalidParams 9277 } 9278 return nil 9279} 9280 9281// SetLimit sets the Limit field's value. 9282func (s *ListIPSetsInput) SetLimit(v int64) *ListIPSetsInput { 9283 s.Limit = &v 9284 return s 9285} 9286 9287// SetNextMarker sets the NextMarker field's value. 9288func (s *ListIPSetsInput) SetNextMarker(v string) *ListIPSetsInput { 9289 s.NextMarker = &v 9290 return s 9291} 9292 9293// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListIPSetsResponse 9294type ListIPSetsOutput struct { 9295 _ struct{} `type:"structure"` 9296 9297 // An array of IPSetSummary objects. 9298 IPSets []*IPSetSummary `type:"list"` 9299 9300 // If you have more IPSet objects than the number that you specified for Limit 9301 // in the request, the response includes a NextMarker value. To list more IPSet 9302 // objects, submit another ListIPSets request, and specify the NextMarker value 9303 // from the response in the NextMarker value in the next request. 9304 NextMarker *string `min:"1" type:"string"` 9305} 9306 9307// String returns the string representation 9308func (s ListIPSetsOutput) String() string { 9309 return awsutil.Prettify(s) 9310} 9311 9312// GoString returns the string representation 9313func (s ListIPSetsOutput) GoString() string { 9314 return s.String() 9315} 9316 9317// SetIPSets sets the IPSets field's value. 9318func (s *ListIPSetsOutput) SetIPSets(v []*IPSetSummary) *ListIPSetsOutput { 9319 s.IPSets = v 9320 return s 9321} 9322 9323// SetNextMarker sets the NextMarker field's value. 9324func (s *ListIPSetsOutput) SetNextMarker(v string) *ListIPSetsOutput { 9325 s.NextMarker = &v 9326 return s 9327} 9328 9329// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRulesRequest 9330type ListRateBasedRulesInput struct { 9331 _ struct{} `type:"structure"` 9332 9333 // Specifies the number of Rules that you want AWS WAF to return for this request. 9334 // If you have more Rules than the number that you specify for Limit, the response 9335 // includes a NextMarker value that you can use to get another batch of Rules. 9336 Limit *int64 `type:"integer"` 9337 9338 // If you specify a value for Limit and you have more Rules than the value of 9339 // Limit, AWS WAF returns a NextMarker value in the response that allows you 9340 // to list another group of Rules. For the second and subsequent ListRateBasedRules 9341 // requests, specify the value of NextMarker from the previous response to get 9342 // information about another batch of Rules. 9343 NextMarker *string `min:"1" type:"string"` 9344} 9345 9346// String returns the string representation 9347func (s ListRateBasedRulesInput) String() string { 9348 return awsutil.Prettify(s) 9349} 9350 9351// GoString returns the string representation 9352func (s ListRateBasedRulesInput) GoString() string { 9353 return s.String() 9354} 9355 9356// Validate inspects the fields of the type to determine if they are valid. 9357func (s *ListRateBasedRulesInput) Validate() error { 9358 invalidParams := request.ErrInvalidParams{Context: "ListRateBasedRulesInput"} 9359 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 9360 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 9361 } 9362 9363 if invalidParams.Len() > 0 { 9364 return invalidParams 9365 } 9366 return nil 9367} 9368 9369// SetLimit sets the Limit field's value. 9370func (s *ListRateBasedRulesInput) SetLimit(v int64) *ListRateBasedRulesInput { 9371 s.Limit = &v 9372 return s 9373} 9374 9375// SetNextMarker sets the NextMarker field's value. 9376func (s *ListRateBasedRulesInput) SetNextMarker(v string) *ListRateBasedRulesInput { 9377 s.NextMarker = &v 9378 return s 9379} 9380 9381// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRulesResponse 9382type ListRateBasedRulesOutput struct { 9383 _ struct{} `type:"structure"` 9384 9385 // If you have more Rules than the number that you specified for Limit in the 9386 // request, the response includes a NextMarker value. To list more Rules, submit 9387 // another ListRateBasedRules request, and specify the NextMarker value from 9388 // the response in the NextMarker value in the next request. 9389 NextMarker *string `min:"1" type:"string"` 9390 9391 // An array of RuleSummary objects. 9392 Rules []*RuleSummary `type:"list"` 9393} 9394 9395// String returns the string representation 9396func (s ListRateBasedRulesOutput) String() string { 9397 return awsutil.Prettify(s) 9398} 9399 9400// GoString returns the string representation 9401func (s ListRateBasedRulesOutput) GoString() string { 9402 return s.String() 9403} 9404 9405// SetNextMarker sets the NextMarker field's value. 9406func (s *ListRateBasedRulesOutput) SetNextMarker(v string) *ListRateBasedRulesOutput { 9407 s.NextMarker = &v 9408 return s 9409} 9410 9411// SetRules sets the Rules field's value. 9412func (s *ListRateBasedRulesOutput) SetRules(v []*RuleSummary) *ListRateBasedRulesOutput { 9413 s.Rules = v 9414 return s 9415} 9416 9417// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRulesRequest 9418type ListRulesInput struct { 9419 _ struct{} `type:"structure"` 9420 9421 // Specifies the number of Rules that you want AWS WAF to return for this request. 9422 // If you have more Rules than the number that you specify for Limit, the response 9423 // includes a NextMarker value that you can use to get another batch of Rules. 9424 Limit *int64 `type:"integer"` 9425 9426 // If you specify a value for Limit and you have more Rules than the value of 9427 // Limit, AWS WAF returns a NextMarker value in the response that allows you 9428 // to list another group of Rules. For the second and subsequent ListRules requests, 9429 // specify the value of NextMarker from the previous response to get information 9430 // about another batch of Rules. 9431 NextMarker *string `min:"1" type:"string"` 9432} 9433 9434// String returns the string representation 9435func (s ListRulesInput) String() string { 9436 return awsutil.Prettify(s) 9437} 9438 9439// GoString returns the string representation 9440func (s ListRulesInput) GoString() string { 9441 return s.String() 9442} 9443 9444// Validate inspects the fields of the type to determine if they are valid. 9445func (s *ListRulesInput) Validate() error { 9446 invalidParams := request.ErrInvalidParams{Context: "ListRulesInput"} 9447 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 9448 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 9449 } 9450 9451 if invalidParams.Len() > 0 { 9452 return invalidParams 9453 } 9454 return nil 9455} 9456 9457// SetLimit sets the Limit field's value. 9458func (s *ListRulesInput) SetLimit(v int64) *ListRulesInput { 9459 s.Limit = &v 9460 return s 9461} 9462 9463// SetNextMarker sets the NextMarker field's value. 9464func (s *ListRulesInput) SetNextMarker(v string) *ListRulesInput { 9465 s.NextMarker = &v 9466 return s 9467} 9468 9469// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRulesResponse 9470type ListRulesOutput struct { 9471 _ struct{} `type:"structure"` 9472 9473 // If you have more Rules than the number that you specified for Limit in the 9474 // request, the response includes a NextMarker value. To list more Rules, submit 9475 // another ListRules request, and specify the NextMarker value from the response 9476 // in the NextMarker value in the next request. 9477 NextMarker *string `min:"1" type:"string"` 9478 9479 // An array of RuleSummary objects. 9480 Rules []*RuleSummary `type:"list"` 9481} 9482 9483// String returns the string representation 9484func (s ListRulesOutput) String() string { 9485 return awsutil.Prettify(s) 9486} 9487 9488// GoString returns the string representation 9489func (s ListRulesOutput) GoString() string { 9490 return s.String() 9491} 9492 9493// SetNextMarker sets the NextMarker field's value. 9494func (s *ListRulesOutput) SetNextMarker(v string) *ListRulesOutput { 9495 s.NextMarker = &v 9496 return s 9497} 9498 9499// SetRules sets the Rules field's value. 9500func (s *ListRulesOutput) SetRules(v []*RuleSummary) *ListRulesOutput { 9501 s.Rules = v 9502 return s 9503} 9504 9505// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSizeConstraintSetsRequest 9506type ListSizeConstraintSetsInput struct { 9507 _ struct{} `type:"structure"` 9508 9509 // Specifies the number of SizeConstraintSet objects that you want AWS WAF to 9510 // return for this request. If you have more SizeConstraintSets objects than 9511 // the number you specify for Limit, the response includes a NextMarker value 9512 // that you can use to get another batch of SizeConstraintSet objects. 9513 Limit *int64 `type:"integer"` 9514 9515 // If you specify a value for Limit and you have more SizeConstraintSets than 9516 // the value of Limit, AWS WAF returns a NextMarker value in the response that 9517 // allows you to list another group of SizeConstraintSets. For the second and 9518 // subsequent ListSizeConstraintSets requests, specify the value of NextMarker 9519 // from the previous response to get information about another batch of SizeConstraintSets. 9520 NextMarker *string `min:"1" type:"string"` 9521} 9522 9523// String returns the string representation 9524func (s ListSizeConstraintSetsInput) String() string { 9525 return awsutil.Prettify(s) 9526} 9527 9528// GoString returns the string representation 9529func (s ListSizeConstraintSetsInput) GoString() string { 9530 return s.String() 9531} 9532 9533// Validate inspects the fields of the type to determine if they are valid. 9534func (s *ListSizeConstraintSetsInput) Validate() error { 9535 invalidParams := request.ErrInvalidParams{Context: "ListSizeConstraintSetsInput"} 9536 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 9537 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 9538 } 9539 9540 if invalidParams.Len() > 0 { 9541 return invalidParams 9542 } 9543 return nil 9544} 9545 9546// SetLimit sets the Limit field's value. 9547func (s *ListSizeConstraintSetsInput) SetLimit(v int64) *ListSizeConstraintSetsInput { 9548 s.Limit = &v 9549 return s 9550} 9551 9552// SetNextMarker sets the NextMarker field's value. 9553func (s *ListSizeConstraintSetsInput) SetNextMarker(v string) *ListSizeConstraintSetsInput { 9554 s.NextMarker = &v 9555 return s 9556} 9557 9558// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSizeConstraintSetsResponse 9559type ListSizeConstraintSetsOutput struct { 9560 _ struct{} `type:"structure"` 9561 9562 // If you have more SizeConstraintSet objects than the number that you specified 9563 // for Limit in the request, the response includes a NextMarker value. To list 9564 // more SizeConstraintSet objects, submit another ListSizeConstraintSets request, 9565 // and specify the NextMarker value from the response in the NextMarker value 9566 // in the next request. 9567 NextMarker *string `min:"1" type:"string"` 9568 9569 // An array of SizeConstraintSetSummary objects. 9570 SizeConstraintSets []*SizeConstraintSetSummary `type:"list"` 9571} 9572 9573// String returns the string representation 9574func (s ListSizeConstraintSetsOutput) String() string { 9575 return awsutil.Prettify(s) 9576} 9577 9578// GoString returns the string representation 9579func (s ListSizeConstraintSetsOutput) GoString() string { 9580 return s.String() 9581} 9582 9583// SetNextMarker sets the NextMarker field's value. 9584func (s *ListSizeConstraintSetsOutput) SetNextMarker(v string) *ListSizeConstraintSetsOutput { 9585 s.NextMarker = &v 9586 return s 9587} 9588 9589// SetSizeConstraintSets sets the SizeConstraintSets field's value. 9590func (s *ListSizeConstraintSetsOutput) SetSizeConstraintSets(v []*SizeConstraintSetSummary) *ListSizeConstraintSetsOutput { 9591 s.SizeConstraintSets = v 9592 return s 9593} 9594 9595// A request to list the SqlInjectionMatchSet objects created by the current 9596// AWS account. 9597// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSqlInjectionMatchSetsRequest 9598type ListSqlInjectionMatchSetsInput struct { 9599 _ struct{} `type:"structure"` 9600 9601 // Specifies the number of SqlInjectionMatchSet objects that you want AWS WAF 9602 // to return for this request. If you have more SqlInjectionMatchSet objects 9603 // than the number you specify for Limit, the response includes a NextMarker 9604 // value that you can use to get another batch of Rules. 9605 Limit *int64 `type:"integer"` 9606 9607 // If you specify a value for Limit and you have more SqlInjectionMatchSet objects 9608 // than the value of Limit, AWS WAF returns a NextMarker value in the response 9609 // that allows you to list another group of SqlInjectionMatchSets. For the second 9610 // and subsequent ListSqlInjectionMatchSets requests, specify the value of NextMarker 9611 // from the previous response to get information about another batch of SqlInjectionMatchSets. 9612 NextMarker *string `min:"1" type:"string"` 9613} 9614 9615// String returns the string representation 9616func (s ListSqlInjectionMatchSetsInput) String() string { 9617 return awsutil.Prettify(s) 9618} 9619 9620// GoString returns the string representation 9621func (s ListSqlInjectionMatchSetsInput) GoString() string { 9622 return s.String() 9623} 9624 9625// Validate inspects the fields of the type to determine if they are valid. 9626func (s *ListSqlInjectionMatchSetsInput) Validate() error { 9627 invalidParams := request.ErrInvalidParams{Context: "ListSqlInjectionMatchSetsInput"} 9628 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 9629 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 9630 } 9631 9632 if invalidParams.Len() > 0 { 9633 return invalidParams 9634 } 9635 return nil 9636} 9637 9638// SetLimit sets the Limit field's value. 9639func (s *ListSqlInjectionMatchSetsInput) SetLimit(v int64) *ListSqlInjectionMatchSetsInput { 9640 s.Limit = &v 9641 return s 9642} 9643 9644// SetNextMarker sets the NextMarker field's value. 9645func (s *ListSqlInjectionMatchSetsInput) SetNextMarker(v string) *ListSqlInjectionMatchSetsInput { 9646 s.NextMarker = &v 9647 return s 9648} 9649 9650// The response to a ListSqlInjectionMatchSets request. 9651// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSqlInjectionMatchSetsResponse 9652type ListSqlInjectionMatchSetsOutput struct { 9653 _ struct{} `type:"structure"` 9654 9655 // If you have more SqlInjectionMatchSet objects than the number that you specified 9656 // for Limit in the request, the response includes a NextMarker value. To list 9657 // more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets 9658 // request, and specify the NextMarker value from the response in the NextMarker 9659 // value in the next request. 9660 NextMarker *string `min:"1" type:"string"` 9661 9662 // An array of SqlInjectionMatchSetSummary objects. 9663 SqlInjectionMatchSets []*SqlInjectionMatchSetSummary `type:"list"` 9664} 9665 9666// String returns the string representation 9667func (s ListSqlInjectionMatchSetsOutput) String() string { 9668 return awsutil.Prettify(s) 9669} 9670 9671// GoString returns the string representation 9672func (s ListSqlInjectionMatchSetsOutput) GoString() string { 9673 return s.String() 9674} 9675 9676// SetNextMarker sets the NextMarker field's value. 9677func (s *ListSqlInjectionMatchSetsOutput) SetNextMarker(v string) *ListSqlInjectionMatchSetsOutput { 9678 s.NextMarker = &v 9679 return s 9680} 9681 9682// SetSqlInjectionMatchSets sets the SqlInjectionMatchSets field's value. 9683func (s *ListSqlInjectionMatchSetsOutput) SetSqlInjectionMatchSets(v []*SqlInjectionMatchSetSummary) *ListSqlInjectionMatchSetsOutput { 9684 s.SqlInjectionMatchSets = v 9685 return s 9686} 9687 9688// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListWebACLsRequest 9689type ListWebACLsInput struct { 9690 _ struct{} `type:"structure"` 9691 9692 // Specifies the number of WebACL objects that you want AWS WAF to return for 9693 // this request. If you have more WebACL objects than the number that you specify 9694 // for Limit, the response includes a NextMarker value that you can use to get 9695 // another batch of WebACL objects. 9696 Limit *int64 `type:"integer"` 9697 9698 // If you specify a value for Limit and you have more WebACL objects than the 9699 // number that you specify for Limit, AWS WAF returns a NextMarker value in 9700 // the response that allows you to list another group of WebACL objects. For 9701 // the second and subsequent ListWebACLs requests, specify the value of NextMarker 9702 // from the previous response to get information about another batch of WebACL 9703 // objects. 9704 NextMarker *string `min:"1" type:"string"` 9705} 9706 9707// String returns the string representation 9708func (s ListWebACLsInput) String() string { 9709 return awsutil.Prettify(s) 9710} 9711 9712// GoString returns the string representation 9713func (s ListWebACLsInput) GoString() string { 9714 return s.String() 9715} 9716 9717// Validate inspects the fields of the type to determine if they are valid. 9718func (s *ListWebACLsInput) Validate() error { 9719 invalidParams := request.ErrInvalidParams{Context: "ListWebACLsInput"} 9720 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 9721 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 9722 } 9723 9724 if invalidParams.Len() > 0 { 9725 return invalidParams 9726 } 9727 return nil 9728} 9729 9730// SetLimit sets the Limit field's value. 9731func (s *ListWebACLsInput) SetLimit(v int64) *ListWebACLsInput { 9732 s.Limit = &v 9733 return s 9734} 9735 9736// SetNextMarker sets the NextMarker field's value. 9737func (s *ListWebACLsInput) SetNextMarker(v string) *ListWebACLsInput { 9738 s.NextMarker = &v 9739 return s 9740} 9741 9742// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListWebACLsResponse 9743type ListWebACLsOutput struct { 9744 _ struct{} `type:"structure"` 9745 9746 // If you have more WebACL objects than the number that you specified for Limit 9747 // in the request, the response includes a NextMarker value. To list more WebACL 9748 // objects, submit another ListWebACLs request, and specify the NextMarker value 9749 // from the response in the NextMarker value in the next request. 9750 NextMarker *string `min:"1" type:"string"` 9751 9752 // An array of WebACLSummary objects. 9753 WebACLs []*WebACLSummary `type:"list"` 9754} 9755 9756// String returns the string representation 9757func (s ListWebACLsOutput) String() string { 9758 return awsutil.Prettify(s) 9759} 9760 9761// GoString returns the string representation 9762func (s ListWebACLsOutput) GoString() string { 9763 return s.String() 9764} 9765 9766// SetNextMarker sets the NextMarker field's value. 9767func (s *ListWebACLsOutput) SetNextMarker(v string) *ListWebACLsOutput { 9768 s.NextMarker = &v 9769 return s 9770} 9771 9772// SetWebACLs sets the WebACLs field's value. 9773func (s *ListWebACLsOutput) SetWebACLs(v []*WebACLSummary) *ListWebACLsOutput { 9774 s.WebACLs = v 9775 return s 9776} 9777 9778// A request to list the XssMatchSet objects created by the current AWS account. 9779// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListXssMatchSetsRequest 9780type ListXssMatchSetsInput struct { 9781 _ struct{} `type:"structure"` 9782 9783 // Specifies the number of XssMatchSet objects that you want AWS WAF to return 9784 // for this request. If you have more XssMatchSet objects than the number you 9785 // specify for Limit, the response includes a NextMarker value that you can 9786 // use to get another batch of Rules. 9787 Limit *int64 `type:"integer"` 9788 9789 // If you specify a value for Limit and you have more XssMatchSet objects than 9790 // the value of Limit, AWS WAF returns a NextMarker value in the response that 9791 // allows you to list another group of XssMatchSets. For the second and subsequent 9792 // ListXssMatchSets requests, specify the value of NextMarker from the previous 9793 // response to get information about another batch of XssMatchSets. 9794 NextMarker *string `min:"1" type:"string"` 9795} 9796 9797// String returns the string representation 9798func (s ListXssMatchSetsInput) String() string { 9799 return awsutil.Prettify(s) 9800} 9801 9802// GoString returns the string representation 9803func (s ListXssMatchSetsInput) GoString() string { 9804 return s.String() 9805} 9806 9807// Validate inspects the fields of the type to determine if they are valid. 9808func (s *ListXssMatchSetsInput) Validate() error { 9809 invalidParams := request.ErrInvalidParams{Context: "ListXssMatchSetsInput"} 9810 if s.NextMarker != nil && len(*s.NextMarker) < 1 { 9811 invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1)) 9812 } 9813 9814 if invalidParams.Len() > 0 { 9815 return invalidParams 9816 } 9817 return nil 9818} 9819 9820// SetLimit sets the Limit field's value. 9821func (s *ListXssMatchSetsInput) SetLimit(v int64) *ListXssMatchSetsInput { 9822 s.Limit = &v 9823 return s 9824} 9825 9826// SetNextMarker sets the NextMarker field's value. 9827func (s *ListXssMatchSetsInput) SetNextMarker(v string) *ListXssMatchSetsInput { 9828 s.NextMarker = &v 9829 return s 9830} 9831 9832// The response to a ListXssMatchSets request. 9833// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListXssMatchSetsResponse 9834type ListXssMatchSetsOutput struct { 9835 _ struct{} `type:"structure"` 9836 9837 // If you have more XssMatchSet objects than the number that you specified for 9838 // Limit in the request, the response includes a NextMarker value. To list more 9839 // XssMatchSet objects, submit another ListXssMatchSets request, and specify 9840 // the NextMarker value from the response in the NextMarker value in the next 9841 // request. 9842 NextMarker *string `min:"1" type:"string"` 9843 9844 // An array of XssMatchSetSummary objects. 9845 XssMatchSets []*XssMatchSetSummary `type:"list"` 9846} 9847 9848// String returns the string representation 9849func (s ListXssMatchSetsOutput) String() string { 9850 return awsutil.Prettify(s) 9851} 9852 9853// GoString returns the string representation 9854func (s ListXssMatchSetsOutput) GoString() string { 9855 return s.String() 9856} 9857 9858// SetNextMarker sets the NextMarker field's value. 9859func (s *ListXssMatchSetsOutput) SetNextMarker(v string) *ListXssMatchSetsOutput { 9860 s.NextMarker = &v 9861 return s 9862} 9863 9864// SetXssMatchSets sets the XssMatchSets field's value. 9865func (s *ListXssMatchSetsOutput) SetXssMatchSets(v []*XssMatchSetSummary) *ListXssMatchSetsOutput { 9866 s.XssMatchSets = v 9867 return s 9868} 9869 9870// Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, and 9871// SizeConstraintSet objects that you want to add to a Rule and, for each object, 9872// indicates whether you want to negate the settings, for example, requests 9873// that do NOT originate from the IP address 192.0.2.44. 9874// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/Predicate 9875type Predicate struct { 9876 _ struct{} `type:"structure"` 9877 9878 // A unique identifier for a predicate in a Rule, such as ByteMatchSetId or 9879 // IPSetId. The ID is returned by the corresponding Create or List command. 9880 // 9881 // DataId is a required field 9882 DataId *string `min:"1" type:"string" required:"true"` 9883 9884 // Set Negated to False if you want AWS WAF to allow, block, or count requests 9885 // based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet, 9886 // XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the 9887 // IP address 192.0.2.44, AWS WAF will allow or block requests based on that 9888 // IP address. 9889 // 9890 // Set Negated to True if you want AWS WAF to allow or block a request based 9891 // on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet, 9892 // XssMatchSet, or SizeConstraintSet. For example, if an IPSet includes the 9893 // IP address 192.0.2.44, AWS WAF will allow, block, or count requests based 9894 // on all IP addresses except192.0.2.44. 9895 // 9896 // Negated is a required field 9897 Negated *bool `type:"boolean" required:"true"` 9898 9899 // The type of predicate in a Rule, such as ByteMatchSet or IPSet. 9900 // 9901 // Type is a required field 9902 Type *string `type:"string" required:"true" enum:"PredicateType"` 9903} 9904 9905// String returns the string representation 9906func (s Predicate) String() string { 9907 return awsutil.Prettify(s) 9908} 9909 9910// GoString returns the string representation 9911func (s Predicate) GoString() string { 9912 return s.String() 9913} 9914 9915// Validate inspects the fields of the type to determine if they are valid. 9916func (s *Predicate) Validate() error { 9917 invalidParams := request.ErrInvalidParams{Context: "Predicate"} 9918 if s.DataId == nil { 9919 invalidParams.Add(request.NewErrParamRequired("DataId")) 9920 } 9921 if s.DataId != nil && len(*s.DataId) < 1 { 9922 invalidParams.Add(request.NewErrParamMinLen("DataId", 1)) 9923 } 9924 if s.Negated == nil { 9925 invalidParams.Add(request.NewErrParamRequired("Negated")) 9926 } 9927 if s.Type == nil { 9928 invalidParams.Add(request.NewErrParamRequired("Type")) 9929 } 9930 9931 if invalidParams.Len() > 0 { 9932 return invalidParams 9933 } 9934 return nil 9935} 9936 9937// SetDataId sets the DataId field's value. 9938func (s *Predicate) SetDataId(v string) *Predicate { 9939 s.DataId = &v 9940 return s 9941} 9942 9943// SetNegated sets the Negated field's value. 9944func (s *Predicate) SetNegated(v bool) *Predicate { 9945 s.Negated = &v 9946 return s 9947} 9948 9949// SetType sets the Type field's value. 9950func (s *Predicate) SetType(v string) *Predicate { 9951 s.Type = &v 9952 return s 9953} 9954 9955// A RateBasedRule is identical to a regular Rule, with one addition: a RateBasedRule 9956// counts the number of requests that arrive from a specified IP address every 9957// five minutes. For example, based on recent requests that you've seen from 9958// an attacker, you might create a RateBasedRule that includes the following 9959// conditions: 9960// 9961// * The requests come from 192.0.2.44. 9962// 9963// * They contain the value BadBot in the User-Agent header. 9964// 9965// In the rule, you also define the rate limit as 15,000. 9966// 9967// Requests that meet both of these conditions and exceed 15,000 requests every 9968// five minutes trigger the rule's action (block or count), which is defined 9969// in the web ACL. 9970// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RateBasedRule 9971type RateBasedRule struct { 9972 _ struct{} `type:"structure"` 9973 9974 // The Predicates object contains one Predicate element for each ByteMatchSet, 9975 // IPSet, or SqlInjectionMatchSet object that you want to include in a RateBasedRule. 9976 // 9977 // MatchPredicates is a required field 9978 MatchPredicates []*Predicate `type:"list" required:"true"` 9979 9980 // A friendly name or description for the metrics for a RateBasedRule. The name 9981 // can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't 9982 // contain whitespace. You can't change the name of the metric after you create 9983 // the RateBasedRule. 9984 MetricName *string `type:"string"` 9985 9986 // A friendly name or description for a RateBasedRule. You can't change the 9987 // name of a RateBasedRule after you create it. 9988 Name *string `min:"1" type:"string"` 9989 9990 // The field that AWS WAF uses to determine if requests are likely arriving 9991 // from single source and thus subject to rate monitoring. The only valid value 9992 // for RateKey is IP. IP indicates that requests arriving from the same IP address 9993 // are subject to the RateLimit that is specified in the RateBasedRule. 9994 // 9995 // RateKey is a required field 9996 RateKey *string `type:"string" required:"true" enum:"RateKey"` 9997 9998 // The maximum number of requests, which have an identical value in the field 9999 // specified by the RateKey, allowed in a five-minute period. If the number 10000 // of requests exceeds the RateLimit and the other predicates specified in the 10001 // rule are also met, AWS WAF triggers the action that is specified for this 10002 // rule. 10003 // 10004 // RateLimit is a required field 10005 RateLimit *int64 `min:"2000" type:"long" required:"true"` 10006 10007 // A unique identifier for a RateBasedRule. You use RuleId to get more information 10008 // about a RateBasedRule (see GetRateBasedRule), update a RateBasedRule (see 10009 // UpdateRateBasedRule), insert a RateBasedRule into a WebACL or delete one 10010 // from a WebACL (see UpdateWebACL), or delete a RateBasedRule from AWS WAF 10011 // (see DeleteRateBasedRule). 10012 // 10013 // RuleId is a required field 10014 RuleId *string `min:"1" type:"string" required:"true"` 10015} 10016 10017// String returns the string representation 10018func (s RateBasedRule) String() string { 10019 return awsutil.Prettify(s) 10020} 10021 10022// GoString returns the string representation 10023func (s RateBasedRule) GoString() string { 10024 return s.String() 10025} 10026 10027// SetMatchPredicates sets the MatchPredicates field's value. 10028func (s *RateBasedRule) SetMatchPredicates(v []*Predicate) *RateBasedRule { 10029 s.MatchPredicates = v 10030 return s 10031} 10032 10033// SetMetricName sets the MetricName field's value. 10034func (s *RateBasedRule) SetMetricName(v string) *RateBasedRule { 10035 s.MetricName = &v 10036 return s 10037} 10038 10039// SetName sets the Name field's value. 10040func (s *RateBasedRule) SetName(v string) *RateBasedRule { 10041 s.Name = &v 10042 return s 10043} 10044 10045// SetRateKey sets the RateKey field's value. 10046func (s *RateBasedRule) SetRateKey(v string) *RateBasedRule { 10047 s.RateKey = &v 10048 return s 10049} 10050 10051// SetRateLimit sets the RateLimit field's value. 10052func (s *RateBasedRule) SetRateLimit(v int64) *RateBasedRule { 10053 s.RateLimit = &v 10054 return s 10055} 10056 10057// SetRuleId sets the RuleId field's value. 10058func (s *RateBasedRule) SetRuleId(v string) *RateBasedRule { 10059 s.RuleId = &v 10060 return s 10061} 10062 10063// A combination of ByteMatchSet, IPSet, and/or SqlInjectionMatchSet objects 10064// that identify the web requests that you want to allow, block, or count. For 10065// example, you might create a Rule that includes the following predicates: 10066// 10067// * An IPSet that causes AWS WAF to search for web requests that originate 10068// from the IP address 192.0.2.44 10069// 10070// * A ByteMatchSet that causes AWS WAF to search for web requests for which 10071// the value of the User-Agent header is BadBot. 10072// 10073// To match the settings in this Rule, a request must originate from 192.0.2.44 10074// AND include a User-Agent header for which the value is BadBot. 10075// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/Rule 10076type Rule struct { 10077 _ struct{} `type:"structure"` 10078 10079 // A friendly name or description for the metrics for this Rule. The name can 10080 // contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain 10081 // whitespace. You can't change MetricName after you create the Rule. 10082 MetricName *string `type:"string"` 10083 10084 // The friendly name or description for the Rule. You can't change the name 10085 // of a Rule after you create it. 10086 Name *string `min:"1" type:"string"` 10087 10088 // The Predicates object contains one Predicate element for each ByteMatchSet, 10089 // IPSet, or SqlInjectionMatchSet object that you want to include in a Rule. 10090 // 10091 // Predicates is a required field 10092 Predicates []*Predicate `type:"list" required:"true"` 10093 10094 // A unique identifier for a Rule. You use RuleId to get more information about 10095 // a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into 10096 // a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a Rule 10097 // from AWS WAF (see DeleteRule). 10098 // 10099 // RuleId is returned by CreateRule and by ListRules. 10100 // 10101 // RuleId is a required field 10102 RuleId *string `min:"1" type:"string" required:"true"` 10103} 10104 10105// String returns the string representation 10106func (s Rule) String() string { 10107 return awsutil.Prettify(s) 10108} 10109 10110// GoString returns the string representation 10111func (s Rule) GoString() string { 10112 return s.String() 10113} 10114 10115// SetMetricName sets the MetricName field's value. 10116func (s *Rule) SetMetricName(v string) *Rule { 10117 s.MetricName = &v 10118 return s 10119} 10120 10121// SetName sets the Name field's value. 10122func (s *Rule) SetName(v string) *Rule { 10123 s.Name = &v 10124 return s 10125} 10126 10127// SetPredicates sets the Predicates field's value. 10128func (s *Rule) SetPredicates(v []*Predicate) *Rule { 10129 s.Predicates = v 10130 return s 10131} 10132 10133// SetRuleId sets the RuleId field's value. 10134func (s *Rule) SetRuleId(v string) *Rule { 10135 s.RuleId = &v 10136 return s 10137} 10138 10139// Contains the identifier and the friendly name or description of the Rule. 10140// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleSummary 10141type RuleSummary struct { 10142 _ struct{} `type:"structure"` 10143 10144 // A friendly name or description of the Rule. You can't change the name of 10145 // a Rule after you create it. 10146 // 10147 // Name is a required field 10148 Name *string `min:"1" type:"string" required:"true"` 10149 10150 // A unique identifier for a Rule. You use RuleId to get more information about 10151 // a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into 10152 // a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a Rule 10153 // from AWS WAF (see DeleteRule). 10154 // 10155 // RuleId is returned by CreateRule and by ListRules. 10156 // 10157 // RuleId is a required field 10158 RuleId *string `min:"1" type:"string" required:"true"` 10159} 10160 10161// String returns the string representation 10162func (s RuleSummary) String() string { 10163 return awsutil.Prettify(s) 10164} 10165 10166// GoString returns the string representation 10167func (s RuleSummary) GoString() string { 10168 return s.String() 10169} 10170 10171// SetName sets the Name field's value. 10172func (s *RuleSummary) SetName(v string) *RuleSummary { 10173 s.Name = &v 10174 return s 10175} 10176 10177// SetRuleId sets the RuleId field's value. 10178func (s *RuleSummary) SetRuleId(v string) *RuleSummary { 10179 s.RuleId = &v 10180 return s 10181} 10182 10183// Specifies a Predicate (such as an IPSet) and indicates whether you want to 10184// add it to a Rule or delete it from a Rule. 10185// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/RuleUpdate 10186type RuleUpdate struct { 10187 _ struct{} `type:"structure"` 10188 10189 // Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate 10190 // from a Rule. 10191 // 10192 // Action is a required field 10193 Action *string `type:"string" required:"true" enum:"ChangeAction"` 10194 10195 // The ID of the Predicate (such as an IPSet) that you want to add to a Rule. 10196 // 10197 // Predicate is a required field 10198 Predicate *Predicate `type:"structure" required:"true"` 10199} 10200 10201// String returns the string representation 10202func (s RuleUpdate) String() string { 10203 return awsutil.Prettify(s) 10204} 10205 10206// GoString returns the string representation 10207func (s RuleUpdate) GoString() string { 10208 return s.String() 10209} 10210 10211// Validate inspects the fields of the type to determine if they are valid. 10212func (s *RuleUpdate) Validate() error { 10213 invalidParams := request.ErrInvalidParams{Context: "RuleUpdate"} 10214 if s.Action == nil { 10215 invalidParams.Add(request.NewErrParamRequired("Action")) 10216 } 10217 if s.Predicate == nil { 10218 invalidParams.Add(request.NewErrParamRequired("Predicate")) 10219 } 10220 if s.Predicate != nil { 10221 if err := s.Predicate.Validate(); err != nil { 10222 invalidParams.AddNested("Predicate", err.(request.ErrInvalidParams)) 10223 } 10224 } 10225 10226 if invalidParams.Len() > 0 { 10227 return invalidParams 10228 } 10229 return nil 10230} 10231 10232// SetAction sets the Action field's value. 10233func (s *RuleUpdate) SetAction(v string) *RuleUpdate { 10234 s.Action = &v 10235 return s 10236} 10237 10238// SetPredicate sets the Predicate field's value. 10239func (s *RuleUpdate) SetPredicate(v *Predicate) *RuleUpdate { 10240 s.Predicate = v 10241 return s 10242} 10243 10244// The response from a GetSampledRequests request includes a SampledHTTPRequests 10245// complex type that appears as SampledRequests in the response syntax. SampledHTTPRequests 10246// contains one SampledHTTPRequest object for each web request that is returned 10247// by GetSampledRequests. 10248// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SampledHTTPRequest 10249type SampledHTTPRequest struct { 10250 _ struct{} `type:"structure"` 10251 10252 // The action for the Rule that the request matched: ALLOW, BLOCK, or COUNT. 10253 Action *string `type:"string"` 10254 10255 // A complex type that contains detailed information about the request. 10256 // 10257 // Request is a required field 10258 Request *HTTPRequest `type:"structure" required:"true"` 10259 10260 // The time at which AWS WAF received the request from your AWS resource, in 10261 // Unix time format (in seconds). 10262 Timestamp *time.Time `type:"timestamp" timestampFormat:"unix"` 10263 10264 // A value that indicates how one result in the response relates proportionally 10265 // to other results in the response. A result that has a weight of 2 represents 10266 // roughly twice as many CloudFront web requests as a result that has a weight 10267 // of 1. 10268 // 10269 // Weight is a required field 10270 Weight *int64 `type:"long" required:"true"` 10271} 10272 10273// String returns the string representation 10274func (s SampledHTTPRequest) String() string { 10275 return awsutil.Prettify(s) 10276} 10277 10278// GoString returns the string representation 10279func (s SampledHTTPRequest) GoString() string { 10280 return s.String() 10281} 10282 10283// SetAction sets the Action field's value. 10284func (s *SampledHTTPRequest) SetAction(v string) *SampledHTTPRequest { 10285 s.Action = &v 10286 return s 10287} 10288 10289// SetRequest sets the Request field's value. 10290func (s *SampledHTTPRequest) SetRequest(v *HTTPRequest) *SampledHTTPRequest { 10291 s.Request = v 10292 return s 10293} 10294 10295// SetTimestamp sets the Timestamp field's value. 10296func (s *SampledHTTPRequest) SetTimestamp(v time.Time) *SampledHTTPRequest { 10297 s.Timestamp = &v 10298 return s 10299} 10300 10301// SetWeight sets the Weight field's value. 10302func (s *SampledHTTPRequest) SetWeight(v int64) *SampledHTTPRequest { 10303 s.Weight = &v 10304 return s 10305} 10306 10307// Specifies a constraint on the size of a part of the web request. AWS WAF 10308// uses the Size, ComparisonOperator, and FieldToMatch to build an expression 10309// in the form of "SizeComparisonOperator size in bytes of FieldToMatch". If 10310// that expression is true, the SizeConstraint is considered to match. 10311// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SizeConstraint 10312type SizeConstraint struct { 10313 _ struct{} `type:"structure"` 10314 10315 // The type of comparison you want AWS WAF to perform. AWS WAF uses this in 10316 // combination with the provided Size and FieldToMatch to build an expression 10317 // in the form of "SizeComparisonOperator size in bytes of FieldToMatch". If 10318 // that expression is true, the SizeConstraint is considered to match. 10319 // 10320 // EQ: Used to test if the Size is equal to the size of the FieldToMatch 10321 // 10322 // NE: Used to test if the Size is not equal to the size of the FieldToMatch 10323 // 10324 // LE: Used to test if the Size is less than or equal to the size of the FieldToMatch 10325 // 10326 // LT: Used to test if the Size is strictly less than the size of the FieldToMatch 10327 // 10328 // GE: Used to test if the Size is greater than or equal to the size of the 10329 // FieldToMatch 10330 // 10331 // GT: Used to test if the Size is strictly greater than the size of the FieldToMatch 10332 // 10333 // ComparisonOperator is a required field 10334 ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"` 10335 10336 // Specifies where in a web request to look for the size constraint. 10337 // 10338 // FieldToMatch is a required field 10339 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 10340 10341 // The size in bytes that you want AWS WAF to compare against the size of the 10342 // specified FieldToMatch. AWS WAF uses this in combination with ComparisonOperator 10343 // and FieldToMatch to build an expression in the form of "SizeComparisonOperator 10344 // size in bytes of FieldToMatch". If that expression is true, the SizeConstraint 10345 // is considered to match. 10346 // 10347 // Valid values for size are 0 - 21474836480 bytes (0 - 20 GB). 10348 // 10349 // If you specify URI for the value of Type, the / in the URI counts as one 10350 // character. For example, the URI /logo.jpg is nine characters long. 10351 // 10352 // Size is a required field 10353 Size *int64 `type:"long" required:"true"` 10354 10355 // Text transformations eliminate some of the unusual formatting that attackers 10356 // use in web requests in an effort to bypass AWS WAF. If you specify a transformation, 10357 // AWS WAF performs the transformation on FieldToMatch before inspecting a request 10358 // for a match. 10359 // 10360 // Note that if you choose BODY for the value of Type, you must choose NONE 10361 // for TextTransformation because CloudFront forwards only the first 8192 bytes 10362 // for inspection. 10363 // 10364 // NONE 10365 // 10366 // Specify NONE if you don't want to perform any text transformations. 10367 // 10368 // CMD_LINE 10369 // 10370 // When you're concerned that attackers are injecting an operating system command 10371 // line command and using unusual formatting to disguise some or all of the 10372 // command, use this option to perform the following transformations: 10373 // 10374 // * Delete the following characters: \ " ' ^ 10375 // 10376 // * Delete spaces before the following characters: / ( 10377 // 10378 // * Replace the following characters with a space: , ; 10379 // 10380 // * Replace multiple spaces with one space 10381 // 10382 // * Convert uppercase letters (A-Z) to lowercase (a-z) 10383 // 10384 // COMPRESS_WHITE_SPACE 10385 // 10386 // Use this option to replace the following characters with a space character 10387 // (decimal 32): 10388 // 10389 // * \f, formfeed, decimal 12 10390 // 10391 // * \t, tab, decimal 9 10392 // 10393 // * \n, newline, decimal 10 10394 // 10395 // * \r, carriage return, decimal 13 10396 // 10397 // * \v, vertical tab, decimal 11 10398 // 10399 // * non-breaking space, decimal 160 10400 // 10401 // COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. 10402 // 10403 // HTML_ENTITY_DECODE 10404 // 10405 // Use this option to replace HTML-encoded characters with unencoded characters. 10406 // HTML_ENTITY_DECODE performs the following operations: 10407 // 10408 // * Replaces (ampersand)quot; with " 10409 // 10410 // * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160 10411 // 10412 // * Replaces (ampersand)lt; with a "less than" symbol 10413 // 10414 // * Replaces (ampersand)gt; with > 10415 // 10416 // * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, 10417 // with the corresponding characters 10418 // 10419 // * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, 10420 // with the corresponding characters 10421 // 10422 // LOWERCASE 10423 // 10424 // Use this option to convert uppercase letters (A-Z) to lowercase (a-z). 10425 // 10426 // URL_DECODE 10427 // 10428 // Use this option to decode a URL-encoded value. 10429 // 10430 // TextTransformation is a required field 10431 TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"` 10432} 10433 10434// String returns the string representation 10435func (s SizeConstraint) String() string { 10436 return awsutil.Prettify(s) 10437} 10438 10439// GoString returns the string representation 10440func (s SizeConstraint) GoString() string { 10441 return s.String() 10442} 10443 10444// Validate inspects the fields of the type to determine if they are valid. 10445func (s *SizeConstraint) Validate() error { 10446 invalidParams := request.ErrInvalidParams{Context: "SizeConstraint"} 10447 if s.ComparisonOperator == nil { 10448 invalidParams.Add(request.NewErrParamRequired("ComparisonOperator")) 10449 } 10450 if s.FieldToMatch == nil { 10451 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 10452 } 10453 if s.Size == nil { 10454 invalidParams.Add(request.NewErrParamRequired("Size")) 10455 } 10456 if s.TextTransformation == nil { 10457 invalidParams.Add(request.NewErrParamRequired("TextTransformation")) 10458 } 10459 if s.FieldToMatch != nil { 10460 if err := s.FieldToMatch.Validate(); err != nil { 10461 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 10462 } 10463 } 10464 10465 if invalidParams.Len() > 0 { 10466 return invalidParams 10467 } 10468 return nil 10469} 10470 10471// SetComparisonOperator sets the ComparisonOperator field's value. 10472func (s *SizeConstraint) SetComparisonOperator(v string) *SizeConstraint { 10473 s.ComparisonOperator = &v 10474 return s 10475} 10476 10477// SetFieldToMatch sets the FieldToMatch field's value. 10478func (s *SizeConstraint) SetFieldToMatch(v *FieldToMatch) *SizeConstraint { 10479 s.FieldToMatch = v 10480 return s 10481} 10482 10483// SetSize sets the Size field's value. 10484func (s *SizeConstraint) SetSize(v int64) *SizeConstraint { 10485 s.Size = &v 10486 return s 10487} 10488 10489// SetTextTransformation sets the TextTransformation field's value. 10490func (s *SizeConstraint) SetTextTransformation(v string) *SizeConstraint { 10491 s.TextTransformation = &v 10492 return s 10493} 10494 10495// A complex type that contains SizeConstraint objects, which specify the parts 10496// of web requests that you want AWS WAF to inspect the size of. If a SizeConstraintSet 10497// contains more than one SizeConstraint object, a request only needs to match 10498// one constraint to be considered a match. 10499// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SizeConstraintSet 10500type SizeConstraintSet struct { 10501 _ struct{} `type:"structure"` 10502 10503 // The name, if any, of the SizeConstraintSet. 10504 Name *string `min:"1" type:"string"` 10505 10506 // A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId 10507 // to get information about a SizeConstraintSet (see GetSizeConstraintSet), 10508 // update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet 10509 // into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet 10510 // from AWS WAF (see DeleteSizeConstraintSet). 10511 // 10512 // SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. 10513 // 10514 // SizeConstraintSetId is a required field 10515 SizeConstraintSetId *string `min:"1" type:"string" required:"true"` 10516 10517 // Specifies the parts of web requests that you want to inspect the size of. 10518 // 10519 // SizeConstraints is a required field 10520 SizeConstraints []*SizeConstraint `type:"list" required:"true"` 10521} 10522 10523// String returns the string representation 10524func (s SizeConstraintSet) String() string { 10525 return awsutil.Prettify(s) 10526} 10527 10528// GoString returns the string representation 10529func (s SizeConstraintSet) GoString() string { 10530 return s.String() 10531} 10532 10533// SetName sets the Name field's value. 10534func (s *SizeConstraintSet) SetName(v string) *SizeConstraintSet { 10535 s.Name = &v 10536 return s 10537} 10538 10539// SetSizeConstraintSetId sets the SizeConstraintSetId field's value. 10540func (s *SizeConstraintSet) SetSizeConstraintSetId(v string) *SizeConstraintSet { 10541 s.SizeConstraintSetId = &v 10542 return s 10543} 10544 10545// SetSizeConstraints sets the SizeConstraints field's value. 10546func (s *SizeConstraintSet) SetSizeConstraints(v []*SizeConstraint) *SizeConstraintSet { 10547 s.SizeConstraints = v 10548 return s 10549} 10550 10551// The Id and Name of a SizeConstraintSet. 10552// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SizeConstraintSetSummary 10553type SizeConstraintSetSummary struct { 10554 _ struct{} `type:"structure"` 10555 10556 // The name of the SizeConstraintSet, if any. 10557 // 10558 // Name is a required field 10559 Name *string `min:"1" type:"string" required:"true"` 10560 10561 // A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId 10562 // to get information about a SizeConstraintSet (see GetSizeConstraintSet), 10563 // update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet 10564 // into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet 10565 // from AWS WAF (see DeleteSizeConstraintSet). 10566 // 10567 // SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. 10568 // 10569 // SizeConstraintSetId is a required field 10570 SizeConstraintSetId *string `min:"1" type:"string" required:"true"` 10571} 10572 10573// String returns the string representation 10574func (s SizeConstraintSetSummary) String() string { 10575 return awsutil.Prettify(s) 10576} 10577 10578// GoString returns the string representation 10579func (s SizeConstraintSetSummary) GoString() string { 10580 return s.String() 10581} 10582 10583// SetName sets the Name field's value. 10584func (s *SizeConstraintSetSummary) SetName(v string) *SizeConstraintSetSummary { 10585 s.Name = &v 10586 return s 10587} 10588 10589// SetSizeConstraintSetId sets the SizeConstraintSetId field's value. 10590func (s *SizeConstraintSetSummary) SetSizeConstraintSetId(v string) *SizeConstraintSetSummary { 10591 s.SizeConstraintSetId = &v 10592 return s 10593} 10594 10595// Specifies the part of a web request that you want to inspect the size of 10596// and indicates whether you want to add the specification to a SizeConstraintSet 10597// or delete it from a SizeConstraintSet. 10598// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SizeConstraintSetUpdate 10599type SizeConstraintSetUpdate struct { 10600 _ struct{} `type:"structure"` 10601 10602 // Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use 10603 // DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet. 10604 // 10605 // Action is a required field 10606 Action *string `type:"string" required:"true" enum:"ChangeAction"` 10607 10608 // Specifies a constraint on the size of a part of the web request. AWS WAF 10609 // uses the Size, ComparisonOperator, and FieldToMatch to build an expression 10610 // in the form of "SizeComparisonOperator size in bytes of FieldToMatch". If 10611 // that expression is true, the SizeConstraint is considered to match. 10612 // 10613 // SizeConstraint is a required field 10614 SizeConstraint *SizeConstraint `type:"structure" required:"true"` 10615} 10616 10617// String returns the string representation 10618func (s SizeConstraintSetUpdate) String() string { 10619 return awsutil.Prettify(s) 10620} 10621 10622// GoString returns the string representation 10623func (s SizeConstraintSetUpdate) GoString() string { 10624 return s.String() 10625} 10626 10627// Validate inspects the fields of the type to determine if they are valid. 10628func (s *SizeConstraintSetUpdate) Validate() error { 10629 invalidParams := request.ErrInvalidParams{Context: "SizeConstraintSetUpdate"} 10630 if s.Action == nil { 10631 invalidParams.Add(request.NewErrParamRequired("Action")) 10632 } 10633 if s.SizeConstraint == nil { 10634 invalidParams.Add(request.NewErrParamRequired("SizeConstraint")) 10635 } 10636 if s.SizeConstraint != nil { 10637 if err := s.SizeConstraint.Validate(); err != nil { 10638 invalidParams.AddNested("SizeConstraint", err.(request.ErrInvalidParams)) 10639 } 10640 } 10641 10642 if invalidParams.Len() > 0 { 10643 return invalidParams 10644 } 10645 return nil 10646} 10647 10648// SetAction sets the Action field's value. 10649func (s *SizeConstraintSetUpdate) SetAction(v string) *SizeConstraintSetUpdate { 10650 s.Action = &v 10651 return s 10652} 10653 10654// SetSizeConstraint sets the SizeConstraint field's value. 10655func (s *SizeConstraintSetUpdate) SetSizeConstraint(v *SizeConstraint) *SizeConstraintSetUpdate { 10656 s.SizeConstraint = v 10657 return s 10658} 10659 10660// A complex type that contains SqlInjectionMatchTuple objects, which specify 10661// the parts of web requests that you want AWS WAF to inspect for snippets of 10662// malicious SQL code and, if you want AWS WAF to inspect a header, the name 10663// of the header. If a SqlInjectionMatchSet contains more than one SqlInjectionMatchTuple 10664// object, a request needs to include snippets of SQL code in only one of the 10665// specified parts of the request to be considered a match. 10666// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SqlInjectionMatchSet 10667type SqlInjectionMatchSet struct { 10668 _ struct{} `type:"structure"` 10669 10670 // The name, if any, of the SqlInjectionMatchSet. 10671 Name *string `min:"1" type:"string"` 10672 10673 // A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId 10674 // to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet), 10675 // update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a 10676 // SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule), 10677 // and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet). 10678 // 10679 // SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. 10680 // 10681 // SqlInjectionMatchSetId is a required field 10682 SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"` 10683 10684 // Specifies the parts of web requests that you want to inspect for snippets 10685 // of malicious SQL code. 10686 // 10687 // SqlInjectionMatchTuples is a required field 10688 SqlInjectionMatchTuples []*SqlInjectionMatchTuple `type:"list" required:"true"` 10689} 10690 10691// String returns the string representation 10692func (s SqlInjectionMatchSet) String() string { 10693 return awsutil.Prettify(s) 10694} 10695 10696// GoString returns the string representation 10697func (s SqlInjectionMatchSet) GoString() string { 10698 return s.String() 10699} 10700 10701// SetName sets the Name field's value. 10702func (s *SqlInjectionMatchSet) SetName(v string) *SqlInjectionMatchSet { 10703 s.Name = &v 10704 return s 10705} 10706 10707// SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value. 10708func (s *SqlInjectionMatchSet) SetSqlInjectionMatchSetId(v string) *SqlInjectionMatchSet { 10709 s.SqlInjectionMatchSetId = &v 10710 return s 10711} 10712 10713// SetSqlInjectionMatchTuples sets the SqlInjectionMatchTuples field's value. 10714func (s *SqlInjectionMatchSet) SetSqlInjectionMatchTuples(v []*SqlInjectionMatchTuple) *SqlInjectionMatchSet { 10715 s.SqlInjectionMatchTuples = v 10716 return s 10717} 10718 10719// The Id and Name of a SqlInjectionMatchSet. 10720// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SqlInjectionMatchSetSummary 10721type SqlInjectionMatchSetSummary struct { 10722 _ struct{} `type:"structure"` 10723 10724 // The name of the SqlInjectionMatchSet, if any, specified by Id. 10725 // 10726 // Name is a required field 10727 Name *string `min:"1" type:"string" required:"true"` 10728 10729 // A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId 10730 // to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet), 10731 // update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a 10732 // SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule), 10733 // and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet). 10734 // 10735 // SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. 10736 // 10737 // SqlInjectionMatchSetId is a required field 10738 SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"` 10739} 10740 10741// String returns the string representation 10742func (s SqlInjectionMatchSetSummary) String() string { 10743 return awsutil.Prettify(s) 10744} 10745 10746// GoString returns the string representation 10747func (s SqlInjectionMatchSetSummary) GoString() string { 10748 return s.String() 10749} 10750 10751// SetName sets the Name field's value. 10752func (s *SqlInjectionMatchSetSummary) SetName(v string) *SqlInjectionMatchSetSummary { 10753 s.Name = &v 10754 return s 10755} 10756 10757// SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value. 10758func (s *SqlInjectionMatchSetSummary) SetSqlInjectionMatchSetId(v string) *SqlInjectionMatchSetSummary { 10759 s.SqlInjectionMatchSetId = &v 10760 return s 10761} 10762 10763// Specifies the part of a web request that you want to inspect for snippets 10764// of malicious SQL code and indicates whether you want to add the specification 10765// to a SqlInjectionMatchSet or delete it from a SqlInjectionMatchSet. 10766// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SqlInjectionMatchSetUpdate 10767type SqlInjectionMatchSetUpdate struct { 10768 _ struct{} `type:"structure"` 10769 10770 // Specify INSERT to add a SqlInjectionMatchSetUpdate to a SqlInjectionMatchSet. 10771 // Use DELETE to remove a SqlInjectionMatchSetUpdate from a SqlInjectionMatchSet. 10772 // 10773 // Action is a required field 10774 Action *string `type:"string" required:"true" enum:"ChangeAction"` 10775 10776 // Specifies the part of a web request that you want AWS WAF to inspect for 10777 // snippets of malicious SQL code and, if you want AWS WAF to inspect a header, 10778 // the name of the header. 10779 // 10780 // SqlInjectionMatchTuple is a required field 10781 SqlInjectionMatchTuple *SqlInjectionMatchTuple `type:"structure" required:"true"` 10782} 10783 10784// String returns the string representation 10785func (s SqlInjectionMatchSetUpdate) String() string { 10786 return awsutil.Prettify(s) 10787} 10788 10789// GoString returns the string representation 10790func (s SqlInjectionMatchSetUpdate) GoString() string { 10791 return s.String() 10792} 10793 10794// Validate inspects the fields of the type to determine if they are valid. 10795func (s *SqlInjectionMatchSetUpdate) Validate() error { 10796 invalidParams := request.ErrInvalidParams{Context: "SqlInjectionMatchSetUpdate"} 10797 if s.Action == nil { 10798 invalidParams.Add(request.NewErrParamRequired("Action")) 10799 } 10800 if s.SqlInjectionMatchTuple == nil { 10801 invalidParams.Add(request.NewErrParamRequired("SqlInjectionMatchTuple")) 10802 } 10803 if s.SqlInjectionMatchTuple != nil { 10804 if err := s.SqlInjectionMatchTuple.Validate(); err != nil { 10805 invalidParams.AddNested("SqlInjectionMatchTuple", err.(request.ErrInvalidParams)) 10806 } 10807 } 10808 10809 if invalidParams.Len() > 0 { 10810 return invalidParams 10811 } 10812 return nil 10813} 10814 10815// SetAction sets the Action field's value. 10816func (s *SqlInjectionMatchSetUpdate) SetAction(v string) *SqlInjectionMatchSetUpdate { 10817 s.Action = &v 10818 return s 10819} 10820 10821// SetSqlInjectionMatchTuple sets the SqlInjectionMatchTuple field's value. 10822func (s *SqlInjectionMatchSetUpdate) SetSqlInjectionMatchTuple(v *SqlInjectionMatchTuple) *SqlInjectionMatchSetUpdate { 10823 s.SqlInjectionMatchTuple = v 10824 return s 10825} 10826 10827// Specifies the part of a web request that you want AWS WAF to inspect for 10828// snippets of malicious SQL code and, if you want AWS WAF to inspect a header, 10829// the name of the header. 10830// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/SqlInjectionMatchTuple 10831type SqlInjectionMatchTuple struct { 10832 _ struct{} `type:"structure"` 10833 10834 // Specifies where in a web request to look for snippets of malicious SQL code. 10835 // 10836 // FieldToMatch is a required field 10837 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 10838 10839 // Text transformations eliminate some of the unusual formatting that attackers 10840 // use in web requests in an effort to bypass AWS WAF. If you specify a transformation, 10841 // AWS WAF performs the transformation on FieldToMatch before inspecting a request 10842 // for a match. 10843 // 10844 // CMD_LINE 10845 // 10846 // When you're concerned that attackers are injecting an operating system commandline 10847 // command and using unusual formatting to disguise some or all of the command, 10848 // use this option to perform the following transformations: 10849 // 10850 // * Delete the following characters: \ " ' ^ 10851 // 10852 // * Delete spaces before the following characters: / ( 10853 // 10854 // * Replace the following characters with a space: , ; 10855 // 10856 // * Replace multiple spaces with one space 10857 // 10858 // * Convert uppercase letters (A-Z) to lowercase (a-z) 10859 // 10860 // COMPRESS_WHITE_SPACE 10861 // 10862 // Use this option to replace the following characters with a space character 10863 // (decimal 32): 10864 // 10865 // * \f, formfeed, decimal 12 10866 // 10867 // * \t, tab, decimal 9 10868 // 10869 // * \n, newline, decimal 10 10870 // 10871 // * \r, carriage return, decimal 13 10872 // 10873 // * \v, vertical tab, decimal 11 10874 // 10875 // * non-breaking space, decimal 160 10876 // 10877 // COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. 10878 // 10879 // HTML_ENTITY_DECODE 10880 // 10881 // Use this option to replace HTML-encoded characters with unencoded characters. 10882 // HTML_ENTITY_DECODE performs the following operations: 10883 // 10884 // * Replaces (ampersand)quot; with " 10885 // 10886 // * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160 10887 // 10888 // * Replaces (ampersand)lt; with a "less than" symbol 10889 // 10890 // * Replaces (ampersand)gt; with > 10891 // 10892 // * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, 10893 // with the corresponding characters 10894 // 10895 // * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, 10896 // with the corresponding characters 10897 // 10898 // LOWERCASE 10899 // 10900 // Use this option to convert uppercase letters (A-Z) to lowercase (a-z). 10901 // 10902 // URL_DECODE 10903 // 10904 // Use this option to decode a URL-encoded value. 10905 // 10906 // NONE 10907 // 10908 // Specify NONE if you don't want to perform any text transformations. 10909 // 10910 // TextTransformation is a required field 10911 TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"` 10912} 10913 10914// String returns the string representation 10915func (s SqlInjectionMatchTuple) String() string { 10916 return awsutil.Prettify(s) 10917} 10918 10919// GoString returns the string representation 10920func (s SqlInjectionMatchTuple) GoString() string { 10921 return s.String() 10922} 10923 10924// Validate inspects the fields of the type to determine if they are valid. 10925func (s *SqlInjectionMatchTuple) Validate() error { 10926 invalidParams := request.ErrInvalidParams{Context: "SqlInjectionMatchTuple"} 10927 if s.FieldToMatch == nil { 10928 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 10929 } 10930 if s.TextTransformation == nil { 10931 invalidParams.Add(request.NewErrParamRequired("TextTransformation")) 10932 } 10933 if s.FieldToMatch != nil { 10934 if err := s.FieldToMatch.Validate(); err != nil { 10935 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 10936 } 10937 } 10938 10939 if invalidParams.Len() > 0 { 10940 return invalidParams 10941 } 10942 return nil 10943} 10944 10945// SetFieldToMatch sets the FieldToMatch field's value. 10946func (s *SqlInjectionMatchTuple) SetFieldToMatch(v *FieldToMatch) *SqlInjectionMatchTuple { 10947 s.FieldToMatch = v 10948 return s 10949} 10950 10951// SetTextTransformation sets the TextTransformation field's value. 10952func (s *SqlInjectionMatchTuple) SetTextTransformation(v string) *SqlInjectionMatchTuple { 10953 s.TextTransformation = &v 10954 return s 10955} 10956 10957// In a GetSampledRequests request, the StartTime and EndTime objects specify 10958// the time range for which you want AWS WAF to return a sample of web requests. 10959// 10960// In a GetSampledRequests response, the StartTime and EndTime objects specify 10961// the time range for which AWS WAF actually returned a sample of web requests. 10962// AWS WAF gets the specified number of requests from among the first 5,000 10963// requests that your AWS resource receives during the specified time period. 10964// If your resource receives more than 5,000 requests during that period, AWS 10965// WAF stops sampling after the 5,000th request. In that case, EndTime is the 10966// time that AWS WAF received the 5,000th request. 10967// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/TimeWindow 10968type TimeWindow struct { 10969 _ struct{} `type:"structure"` 10970 10971 // The end of the time range from which you want GetSampledRequests to return 10972 // a sample of the requests that your AWS resource received. Specify the date 10973 // and time in the following format: "2016-09-27T14:50Z". You can specify any 10974 // time range in the previous three hours. 10975 // 10976 // EndTime is a required field 10977 EndTime *time.Time `type:"timestamp" timestampFormat:"unix" required:"true"` 10978 10979 // The beginning of the time range from which you want GetSampledRequests to 10980 // return a sample of the requests that your AWS resource received. Specify 10981 // the date and time in the following format: "2016-09-27T14:50Z". You can specify 10982 // any time range in the previous three hours. 10983 // 10984 // StartTime is a required field 10985 StartTime *time.Time `type:"timestamp" timestampFormat:"unix" required:"true"` 10986} 10987 10988// String returns the string representation 10989func (s TimeWindow) String() string { 10990 return awsutil.Prettify(s) 10991} 10992 10993// GoString returns the string representation 10994func (s TimeWindow) GoString() string { 10995 return s.String() 10996} 10997 10998// Validate inspects the fields of the type to determine if they are valid. 10999func (s *TimeWindow) Validate() error { 11000 invalidParams := request.ErrInvalidParams{Context: "TimeWindow"} 11001 if s.EndTime == nil { 11002 invalidParams.Add(request.NewErrParamRequired("EndTime")) 11003 } 11004 if s.StartTime == nil { 11005 invalidParams.Add(request.NewErrParamRequired("StartTime")) 11006 } 11007 11008 if invalidParams.Len() > 0 { 11009 return invalidParams 11010 } 11011 return nil 11012} 11013 11014// SetEndTime sets the EndTime field's value. 11015func (s *TimeWindow) SetEndTime(v time.Time) *TimeWindow { 11016 s.EndTime = &v 11017 return s 11018} 11019 11020// SetStartTime sets the StartTime field's value. 11021func (s *TimeWindow) SetStartTime(v time.Time) *TimeWindow { 11022 s.StartTime = &v 11023 return s 11024} 11025 11026// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSetRequest 11027type UpdateByteMatchSetInput struct { 11028 _ struct{} `type:"structure"` 11029 11030 // The ByteMatchSetId of the ByteMatchSet that you want to update. ByteMatchSetId 11031 // is returned by CreateByteMatchSet and by ListByteMatchSets. 11032 // 11033 // ByteMatchSetId is a required field 11034 ByteMatchSetId *string `min:"1" type:"string" required:"true"` 11035 11036 // The value returned by the most recent call to GetChangeToken. 11037 // 11038 // ChangeToken is a required field 11039 ChangeToken *string `min:"1" type:"string" required:"true"` 11040 11041 // An array of ByteMatchSetUpdate objects that you want to insert into or delete 11042 // from a ByteMatchSet. For more information, see the applicable data types: 11043 // 11044 // * ByteMatchSetUpdate: Contains Action and ByteMatchTuple 11045 // 11046 // * ByteMatchTuple: Contains FieldToMatch, PositionalConstraint, TargetString, 11047 // and TextTransformation 11048 // 11049 // * FieldToMatch: Contains Data and Type 11050 // 11051 // Updates is a required field 11052 Updates []*ByteMatchSetUpdate `type:"list" required:"true"` 11053} 11054 11055// String returns the string representation 11056func (s UpdateByteMatchSetInput) String() string { 11057 return awsutil.Prettify(s) 11058} 11059 11060// GoString returns the string representation 11061func (s UpdateByteMatchSetInput) GoString() string { 11062 return s.String() 11063} 11064 11065// Validate inspects the fields of the type to determine if they are valid. 11066func (s *UpdateByteMatchSetInput) Validate() error { 11067 invalidParams := request.ErrInvalidParams{Context: "UpdateByteMatchSetInput"} 11068 if s.ByteMatchSetId == nil { 11069 invalidParams.Add(request.NewErrParamRequired("ByteMatchSetId")) 11070 } 11071 if s.ByteMatchSetId != nil && len(*s.ByteMatchSetId) < 1 { 11072 invalidParams.Add(request.NewErrParamMinLen("ByteMatchSetId", 1)) 11073 } 11074 if s.ChangeToken == nil { 11075 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 11076 } 11077 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 11078 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 11079 } 11080 if s.Updates == nil { 11081 invalidParams.Add(request.NewErrParamRequired("Updates")) 11082 } 11083 if s.Updates != nil { 11084 for i, v := range s.Updates { 11085 if v == nil { 11086 continue 11087 } 11088 if err := v.Validate(); err != nil { 11089 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams)) 11090 } 11091 } 11092 } 11093 11094 if invalidParams.Len() > 0 { 11095 return invalidParams 11096 } 11097 return nil 11098} 11099 11100// SetByteMatchSetId sets the ByteMatchSetId field's value. 11101func (s *UpdateByteMatchSetInput) SetByteMatchSetId(v string) *UpdateByteMatchSetInput { 11102 s.ByteMatchSetId = &v 11103 return s 11104} 11105 11106// SetChangeToken sets the ChangeToken field's value. 11107func (s *UpdateByteMatchSetInput) SetChangeToken(v string) *UpdateByteMatchSetInput { 11108 s.ChangeToken = &v 11109 return s 11110} 11111 11112// SetUpdates sets the Updates field's value. 11113func (s *UpdateByteMatchSetInput) SetUpdates(v []*ByteMatchSetUpdate) *UpdateByteMatchSetInput { 11114 s.Updates = v 11115 return s 11116} 11117 11118// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSetResponse 11119type UpdateByteMatchSetOutput struct { 11120 _ struct{} `type:"structure"` 11121 11122 // The ChangeToken that you used to submit the UpdateByteMatchSet request. You 11123 // can also use this value to query the status of the request. For more information, 11124 // see GetChangeTokenStatus. 11125 ChangeToken *string `min:"1" type:"string"` 11126} 11127 11128// String returns the string representation 11129func (s UpdateByteMatchSetOutput) String() string { 11130 return awsutil.Prettify(s) 11131} 11132 11133// GoString returns the string representation 11134func (s UpdateByteMatchSetOutput) GoString() string { 11135 return s.String() 11136} 11137 11138// SetChangeToken sets the ChangeToken field's value. 11139func (s *UpdateByteMatchSetOutput) SetChangeToken(v string) *UpdateByteMatchSetOutput { 11140 s.ChangeToken = &v 11141 return s 11142} 11143 11144// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSetRequest 11145type UpdateIPSetInput struct { 11146 _ struct{} `type:"structure"` 11147 11148 // The value returned by the most recent call to GetChangeToken. 11149 // 11150 // ChangeToken is a required field 11151 ChangeToken *string `min:"1" type:"string" required:"true"` 11152 11153 // The IPSetId of the IPSet that you want to update. IPSetId is returned by 11154 // CreateIPSet and by ListIPSets. 11155 // 11156 // IPSetId is a required field 11157 IPSetId *string `min:"1" type:"string" required:"true"` 11158 11159 // An array of IPSetUpdate objects that you want to insert into or delete from 11160 // an IPSet. For more information, see the applicable data types: 11161 // 11162 // * IPSetUpdate: Contains Action and IPSetDescriptor 11163 // 11164 // * IPSetDescriptor: Contains Type and Value 11165 // 11166 // Updates is a required field 11167 Updates []*IPSetUpdate `type:"list" required:"true"` 11168} 11169 11170// String returns the string representation 11171func (s UpdateIPSetInput) String() string { 11172 return awsutil.Prettify(s) 11173} 11174 11175// GoString returns the string representation 11176func (s UpdateIPSetInput) GoString() string { 11177 return s.String() 11178} 11179 11180// Validate inspects the fields of the type to determine if they are valid. 11181func (s *UpdateIPSetInput) Validate() error { 11182 invalidParams := request.ErrInvalidParams{Context: "UpdateIPSetInput"} 11183 if s.ChangeToken == nil { 11184 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 11185 } 11186 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 11187 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 11188 } 11189 if s.IPSetId == nil { 11190 invalidParams.Add(request.NewErrParamRequired("IPSetId")) 11191 } 11192 if s.IPSetId != nil && len(*s.IPSetId) < 1 { 11193 invalidParams.Add(request.NewErrParamMinLen("IPSetId", 1)) 11194 } 11195 if s.Updates == nil { 11196 invalidParams.Add(request.NewErrParamRequired("Updates")) 11197 } 11198 if s.Updates != nil { 11199 for i, v := range s.Updates { 11200 if v == nil { 11201 continue 11202 } 11203 if err := v.Validate(); err != nil { 11204 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams)) 11205 } 11206 } 11207 } 11208 11209 if invalidParams.Len() > 0 { 11210 return invalidParams 11211 } 11212 return nil 11213} 11214 11215// SetChangeToken sets the ChangeToken field's value. 11216func (s *UpdateIPSetInput) SetChangeToken(v string) *UpdateIPSetInput { 11217 s.ChangeToken = &v 11218 return s 11219} 11220 11221// SetIPSetId sets the IPSetId field's value. 11222func (s *UpdateIPSetInput) SetIPSetId(v string) *UpdateIPSetInput { 11223 s.IPSetId = &v 11224 return s 11225} 11226 11227// SetUpdates sets the Updates field's value. 11228func (s *UpdateIPSetInput) SetUpdates(v []*IPSetUpdate) *UpdateIPSetInput { 11229 s.Updates = v 11230 return s 11231} 11232 11233// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSetResponse 11234type UpdateIPSetOutput struct { 11235 _ struct{} `type:"structure"` 11236 11237 // The ChangeToken that you used to submit the UpdateIPSet request. You can 11238 // also use this value to query the status of the request. For more information, 11239 // see GetChangeTokenStatus. 11240 ChangeToken *string `min:"1" type:"string"` 11241} 11242 11243// String returns the string representation 11244func (s UpdateIPSetOutput) String() string { 11245 return awsutil.Prettify(s) 11246} 11247 11248// GoString returns the string representation 11249func (s UpdateIPSetOutput) GoString() string { 11250 return s.String() 11251} 11252 11253// SetChangeToken sets the ChangeToken field's value. 11254func (s *UpdateIPSetOutput) SetChangeToken(v string) *UpdateIPSetOutput { 11255 s.ChangeToken = &v 11256 return s 11257} 11258 11259// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRuleRequest 11260type UpdateRateBasedRuleInput struct { 11261 _ struct{} `type:"structure"` 11262 11263 // The value returned by the most recent call to GetChangeToken. 11264 // 11265 // ChangeToken is a required field 11266 ChangeToken *string `min:"1" type:"string" required:"true"` 11267 11268 // The maximum number of requests, which have an identical value in the field 11269 // specified by the RateKey, allowed in a five-minute period. If the number 11270 // of requests exceeds the RateLimit and the other predicates specified in the 11271 // rule are also met, AWS WAF triggers the action that is specified for this 11272 // rule. 11273 // 11274 // RateLimit is a required field 11275 RateLimit *int64 `min:"2000" type:"long" required:"true"` 11276 11277 // The RuleId of the RateBasedRule that you want to update. RuleId is returned 11278 // by CreateRateBasedRule and by ListRateBasedRules. 11279 // 11280 // RuleId is a required field 11281 RuleId *string `min:"1" type:"string" required:"true"` 11282 11283 // An array of RuleUpdate objects that you want to insert into or delete from 11284 // a RateBasedRule. 11285 // 11286 // Updates is a required field 11287 Updates []*RuleUpdate `type:"list" required:"true"` 11288} 11289 11290// String returns the string representation 11291func (s UpdateRateBasedRuleInput) String() string { 11292 return awsutil.Prettify(s) 11293} 11294 11295// GoString returns the string representation 11296func (s UpdateRateBasedRuleInput) GoString() string { 11297 return s.String() 11298} 11299 11300// Validate inspects the fields of the type to determine if they are valid. 11301func (s *UpdateRateBasedRuleInput) Validate() error { 11302 invalidParams := request.ErrInvalidParams{Context: "UpdateRateBasedRuleInput"} 11303 if s.ChangeToken == nil { 11304 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 11305 } 11306 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 11307 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 11308 } 11309 if s.RateLimit == nil { 11310 invalidParams.Add(request.NewErrParamRequired("RateLimit")) 11311 } 11312 if s.RateLimit != nil && *s.RateLimit < 2000 { 11313 invalidParams.Add(request.NewErrParamMinValue("RateLimit", 2000)) 11314 } 11315 if s.RuleId == nil { 11316 invalidParams.Add(request.NewErrParamRequired("RuleId")) 11317 } 11318 if s.RuleId != nil && len(*s.RuleId) < 1 { 11319 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 11320 } 11321 if s.Updates == nil { 11322 invalidParams.Add(request.NewErrParamRequired("Updates")) 11323 } 11324 if s.Updates != nil { 11325 for i, v := range s.Updates { 11326 if v == nil { 11327 continue 11328 } 11329 if err := v.Validate(); err != nil { 11330 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams)) 11331 } 11332 } 11333 } 11334 11335 if invalidParams.Len() > 0 { 11336 return invalidParams 11337 } 11338 return nil 11339} 11340 11341// SetChangeToken sets the ChangeToken field's value. 11342func (s *UpdateRateBasedRuleInput) SetChangeToken(v string) *UpdateRateBasedRuleInput { 11343 s.ChangeToken = &v 11344 return s 11345} 11346 11347// SetRateLimit sets the RateLimit field's value. 11348func (s *UpdateRateBasedRuleInput) SetRateLimit(v int64) *UpdateRateBasedRuleInput { 11349 s.RateLimit = &v 11350 return s 11351} 11352 11353// SetRuleId sets the RuleId field's value. 11354func (s *UpdateRateBasedRuleInput) SetRuleId(v string) *UpdateRateBasedRuleInput { 11355 s.RuleId = &v 11356 return s 11357} 11358 11359// SetUpdates sets the Updates field's value. 11360func (s *UpdateRateBasedRuleInput) SetUpdates(v []*RuleUpdate) *UpdateRateBasedRuleInput { 11361 s.Updates = v 11362 return s 11363} 11364 11365// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRuleResponse 11366type UpdateRateBasedRuleOutput struct { 11367 _ struct{} `type:"structure"` 11368 11369 // The ChangeToken that you used to submit the UpdateRateBasedRule request. 11370 // You can also use this value to query the status of the request. For more 11371 // information, see GetChangeTokenStatus. 11372 ChangeToken *string `min:"1" type:"string"` 11373} 11374 11375// String returns the string representation 11376func (s UpdateRateBasedRuleOutput) String() string { 11377 return awsutil.Prettify(s) 11378} 11379 11380// GoString returns the string representation 11381func (s UpdateRateBasedRuleOutput) GoString() string { 11382 return s.String() 11383} 11384 11385// SetChangeToken sets the ChangeToken field's value. 11386func (s *UpdateRateBasedRuleOutput) SetChangeToken(v string) *UpdateRateBasedRuleOutput { 11387 s.ChangeToken = &v 11388 return s 11389} 11390 11391// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleRequest 11392type UpdateRuleInput struct { 11393 _ struct{} `type:"structure"` 11394 11395 // The value returned by the most recent call to GetChangeToken. 11396 // 11397 // ChangeToken is a required field 11398 ChangeToken *string `min:"1" type:"string" required:"true"` 11399 11400 // The RuleId of the Rule that you want to update. RuleId is returned by CreateRule 11401 // and by ListRules. 11402 // 11403 // RuleId is a required field 11404 RuleId *string `min:"1" type:"string" required:"true"` 11405 11406 // An array of RuleUpdate objects that you want to insert into or delete from 11407 // a Rule. For more information, see the applicable data types: 11408 // 11409 // * RuleUpdate: Contains Action and Predicate 11410 // 11411 // * Predicate: Contains DataId, Negated, and Type 11412 // 11413 // * FieldToMatch: Contains Data and Type 11414 // 11415 // Updates is a required field 11416 Updates []*RuleUpdate `type:"list" required:"true"` 11417} 11418 11419// String returns the string representation 11420func (s UpdateRuleInput) String() string { 11421 return awsutil.Prettify(s) 11422} 11423 11424// GoString returns the string representation 11425func (s UpdateRuleInput) GoString() string { 11426 return s.String() 11427} 11428 11429// Validate inspects the fields of the type to determine if they are valid. 11430func (s *UpdateRuleInput) Validate() error { 11431 invalidParams := request.ErrInvalidParams{Context: "UpdateRuleInput"} 11432 if s.ChangeToken == nil { 11433 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 11434 } 11435 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 11436 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 11437 } 11438 if s.RuleId == nil { 11439 invalidParams.Add(request.NewErrParamRequired("RuleId")) 11440 } 11441 if s.RuleId != nil && len(*s.RuleId) < 1 { 11442 invalidParams.Add(request.NewErrParamMinLen("RuleId", 1)) 11443 } 11444 if s.Updates == nil { 11445 invalidParams.Add(request.NewErrParamRequired("Updates")) 11446 } 11447 if s.Updates != nil { 11448 for i, v := range s.Updates { 11449 if v == nil { 11450 continue 11451 } 11452 if err := v.Validate(); err != nil { 11453 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams)) 11454 } 11455 } 11456 } 11457 11458 if invalidParams.Len() > 0 { 11459 return invalidParams 11460 } 11461 return nil 11462} 11463 11464// SetChangeToken sets the ChangeToken field's value. 11465func (s *UpdateRuleInput) SetChangeToken(v string) *UpdateRuleInput { 11466 s.ChangeToken = &v 11467 return s 11468} 11469 11470// SetRuleId sets the RuleId field's value. 11471func (s *UpdateRuleInput) SetRuleId(v string) *UpdateRuleInput { 11472 s.RuleId = &v 11473 return s 11474} 11475 11476// SetUpdates sets the Updates field's value. 11477func (s *UpdateRuleInput) SetUpdates(v []*RuleUpdate) *UpdateRuleInput { 11478 s.Updates = v 11479 return s 11480} 11481 11482// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleResponse 11483type UpdateRuleOutput struct { 11484 _ struct{} `type:"structure"` 11485 11486 // The ChangeToken that you used to submit the UpdateRule request. You can also 11487 // use this value to query the status of the request. For more information, 11488 // see GetChangeTokenStatus. 11489 ChangeToken *string `min:"1" type:"string"` 11490} 11491 11492// String returns the string representation 11493func (s UpdateRuleOutput) String() string { 11494 return awsutil.Prettify(s) 11495} 11496 11497// GoString returns the string representation 11498func (s UpdateRuleOutput) GoString() string { 11499 return s.String() 11500} 11501 11502// SetChangeToken sets the ChangeToken field's value. 11503func (s *UpdateRuleOutput) SetChangeToken(v string) *UpdateRuleOutput { 11504 s.ChangeToken = &v 11505 return s 11506} 11507 11508// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSetRequest 11509type UpdateSizeConstraintSetInput struct { 11510 _ struct{} `type:"structure"` 11511 11512 // The value returned by the most recent call to GetChangeToken. 11513 // 11514 // ChangeToken is a required field 11515 ChangeToken *string `min:"1" type:"string" required:"true"` 11516 11517 // The SizeConstraintSetId of the SizeConstraintSet that you want to update. 11518 // SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets. 11519 // 11520 // SizeConstraintSetId is a required field 11521 SizeConstraintSetId *string `min:"1" type:"string" required:"true"` 11522 11523 // An array of SizeConstraintSetUpdate objects that you want to insert into 11524 // or delete from a SizeConstraintSet. For more information, see the applicable 11525 // data types: 11526 // 11527 // * SizeConstraintSetUpdate: Contains Action and SizeConstraint 11528 // 11529 // * SizeConstraint: Contains FieldToMatch, TextTransformation, ComparisonOperator, 11530 // and Size 11531 // 11532 // * FieldToMatch: Contains Data and Type 11533 // 11534 // Updates is a required field 11535 Updates []*SizeConstraintSetUpdate `type:"list" required:"true"` 11536} 11537 11538// String returns the string representation 11539func (s UpdateSizeConstraintSetInput) String() string { 11540 return awsutil.Prettify(s) 11541} 11542 11543// GoString returns the string representation 11544func (s UpdateSizeConstraintSetInput) GoString() string { 11545 return s.String() 11546} 11547 11548// Validate inspects the fields of the type to determine if they are valid. 11549func (s *UpdateSizeConstraintSetInput) Validate() error { 11550 invalidParams := request.ErrInvalidParams{Context: "UpdateSizeConstraintSetInput"} 11551 if s.ChangeToken == nil { 11552 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 11553 } 11554 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 11555 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 11556 } 11557 if s.SizeConstraintSetId == nil { 11558 invalidParams.Add(request.NewErrParamRequired("SizeConstraintSetId")) 11559 } 11560 if s.SizeConstraintSetId != nil && len(*s.SizeConstraintSetId) < 1 { 11561 invalidParams.Add(request.NewErrParamMinLen("SizeConstraintSetId", 1)) 11562 } 11563 if s.Updates == nil { 11564 invalidParams.Add(request.NewErrParamRequired("Updates")) 11565 } 11566 if s.Updates != nil { 11567 for i, v := range s.Updates { 11568 if v == nil { 11569 continue 11570 } 11571 if err := v.Validate(); err != nil { 11572 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams)) 11573 } 11574 } 11575 } 11576 11577 if invalidParams.Len() > 0 { 11578 return invalidParams 11579 } 11580 return nil 11581} 11582 11583// SetChangeToken sets the ChangeToken field's value. 11584func (s *UpdateSizeConstraintSetInput) SetChangeToken(v string) *UpdateSizeConstraintSetInput { 11585 s.ChangeToken = &v 11586 return s 11587} 11588 11589// SetSizeConstraintSetId sets the SizeConstraintSetId field's value. 11590func (s *UpdateSizeConstraintSetInput) SetSizeConstraintSetId(v string) *UpdateSizeConstraintSetInput { 11591 s.SizeConstraintSetId = &v 11592 return s 11593} 11594 11595// SetUpdates sets the Updates field's value. 11596func (s *UpdateSizeConstraintSetInput) SetUpdates(v []*SizeConstraintSetUpdate) *UpdateSizeConstraintSetInput { 11597 s.Updates = v 11598 return s 11599} 11600 11601// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSetResponse 11602type UpdateSizeConstraintSetOutput struct { 11603 _ struct{} `type:"structure"` 11604 11605 // The ChangeToken that you used to submit the UpdateSizeConstraintSet request. 11606 // You can also use this value to query the status of the request. For more 11607 // information, see GetChangeTokenStatus. 11608 ChangeToken *string `min:"1" type:"string"` 11609} 11610 11611// String returns the string representation 11612func (s UpdateSizeConstraintSetOutput) String() string { 11613 return awsutil.Prettify(s) 11614} 11615 11616// GoString returns the string representation 11617func (s UpdateSizeConstraintSetOutput) GoString() string { 11618 return s.String() 11619} 11620 11621// SetChangeToken sets the ChangeToken field's value. 11622func (s *UpdateSizeConstraintSetOutput) SetChangeToken(v string) *UpdateSizeConstraintSetOutput { 11623 s.ChangeToken = &v 11624 return s 11625} 11626 11627// A request to update a SqlInjectionMatchSet. 11628// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSetRequest 11629type UpdateSqlInjectionMatchSetInput struct { 11630 _ struct{} `type:"structure"` 11631 11632 // The value returned by the most recent call to GetChangeToken. 11633 // 11634 // ChangeToken is a required field 11635 ChangeToken *string `min:"1" type:"string" required:"true"` 11636 11637 // The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to update. 11638 // SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets. 11639 // 11640 // SqlInjectionMatchSetId is a required field 11641 SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"` 11642 11643 // An array of SqlInjectionMatchSetUpdate objects that you want to insert into 11644 // or delete from a SqlInjectionMatchSet. For more information, see the applicable 11645 // data types: 11646 // 11647 // * SqlInjectionMatchSetUpdate: Contains Action and SqlInjectionMatchTuple 11648 // 11649 // * SqlInjectionMatchTuple: Contains FieldToMatch and TextTransformation 11650 // 11651 // * FieldToMatch: Contains Data and Type 11652 // 11653 // Updates is a required field 11654 Updates []*SqlInjectionMatchSetUpdate `type:"list" required:"true"` 11655} 11656 11657// String returns the string representation 11658func (s UpdateSqlInjectionMatchSetInput) String() string { 11659 return awsutil.Prettify(s) 11660} 11661 11662// GoString returns the string representation 11663func (s UpdateSqlInjectionMatchSetInput) GoString() string { 11664 return s.String() 11665} 11666 11667// Validate inspects the fields of the type to determine if they are valid. 11668func (s *UpdateSqlInjectionMatchSetInput) Validate() error { 11669 invalidParams := request.ErrInvalidParams{Context: "UpdateSqlInjectionMatchSetInput"} 11670 if s.ChangeToken == nil { 11671 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 11672 } 11673 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 11674 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 11675 } 11676 if s.SqlInjectionMatchSetId == nil { 11677 invalidParams.Add(request.NewErrParamRequired("SqlInjectionMatchSetId")) 11678 } 11679 if s.SqlInjectionMatchSetId != nil && len(*s.SqlInjectionMatchSetId) < 1 { 11680 invalidParams.Add(request.NewErrParamMinLen("SqlInjectionMatchSetId", 1)) 11681 } 11682 if s.Updates == nil { 11683 invalidParams.Add(request.NewErrParamRequired("Updates")) 11684 } 11685 if s.Updates != nil { 11686 for i, v := range s.Updates { 11687 if v == nil { 11688 continue 11689 } 11690 if err := v.Validate(); err != nil { 11691 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams)) 11692 } 11693 } 11694 } 11695 11696 if invalidParams.Len() > 0 { 11697 return invalidParams 11698 } 11699 return nil 11700} 11701 11702// SetChangeToken sets the ChangeToken field's value. 11703func (s *UpdateSqlInjectionMatchSetInput) SetChangeToken(v string) *UpdateSqlInjectionMatchSetInput { 11704 s.ChangeToken = &v 11705 return s 11706} 11707 11708// SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value. 11709func (s *UpdateSqlInjectionMatchSetInput) SetSqlInjectionMatchSetId(v string) *UpdateSqlInjectionMatchSetInput { 11710 s.SqlInjectionMatchSetId = &v 11711 return s 11712} 11713 11714// SetUpdates sets the Updates field's value. 11715func (s *UpdateSqlInjectionMatchSetInput) SetUpdates(v []*SqlInjectionMatchSetUpdate) *UpdateSqlInjectionMatchSetInput { 11716 s.Updates = v 11717 return s 11718} 11719 11720// The response to an UpdateSqlInjectionMatchSets request. 11721// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSetResponse 11722type UpdateSqlInjectionMatchSetOutput struct { 11723 _ struct{} `type:"structure"` 11724 11725 // The ChangeToken that you used to submit the UpdateSqlInjectionMatchSet request. 11726 // You can also use this value to query the status of the request. For more 11727 // information, see GetChangeTokenStatus. 11728 ChangeToken *string `min:"1" type:"string"` 11729} 11730 11731// String returns the string representation 11732func (s UpdateSqlInjectionMatchSetOutput) String() string { 11733 return awsutil.Prettify(s) 11734} 11735 11736// GoString returns the string representation 11737func (s UpdateSqlInjectionMatchSetOutput) GoString() string { 11738 return s.String() 11739} 11740 11741// SetChangeToken sets the ChangeToken field's value. 11742func (s *UpdateSqlInjectionMatchSetOutput) SetChangeToken(v string) *UpdateSqlInjectionMatchSetOutput { 11743 s.ChangeToken = &v 11744 return s 11745} 11746 11747// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateWebACLRequest 11748type UpdateWebACLInput struct { 11749 _ struct{} `type:"structure"` 11750 11751 // The value returned by the most recent call to GetChangeToken. 11752 // 11753 // ChangeToken is a required field 11754 ChangeToken *string `min:"1" type:"string" required:"true"` 11755 11756 // A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs 11757 // the default action if a request doesn't match the criteria in any of the 11758 // rules in a web ACL. 11759 DefaultAction *WafAction `type:"structure"` 11760 11761 // An array of updates to make to the WebACL. 11762 // 11763 // An array of WebACLUpdate objects that you want to insert into or delete from 11764 // a WebACL. For more information, see the applicable data types: 11765 // 11766 // * WebACLUpdate: Contains Action and ActivatedRule 11767 // 11768 // * ActivatedRule: Contains Action, Priority, RuleId, and Type 11769 // 11770 // * WafAction: Contains Type 11771 Updates []*WebACLUpdate `type:"list"` 11772 11773 // The WebACLId of the WebACL that you want to update. WebACLId is returned 11774 // by CreateWebACL and by ListWebACLs. 11775 // 11776 // WebACLId is a required field 11777 WebACLId *string `min:"1" type:"string" required:"true"` 11778} 11779 11780// String returns the string representation 11781func (s UpdateWebACLInput) String() string { 11782 return awsutil.Prettify(s) 11783} 11784 11785// GoString returns the string representation 11786func (s UpdateWebACLInput) GoString() string { 11787 return s.String() 11788} 11789 11790// Validate inspects the fields of the type to determine if they are valid. 11791func (s *UpdateWebACLInput) Validate() error { 11792 invalidParams := request.ErrInvalidParams{Context: "UpdateWebACLInput"} 11793 if s.ChangeToken == nil { 11794 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 11795 } 11796 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 11797 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 11798 } 11799 if s.WebACLId == nil { 11800 invalidParams.Add(request.NewErrParamRequired("WebACLId")) 11801 } 11802 if s.WebACLId != nil && len(*s.WebACLId) < 1 { 11803 invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1)) 11804 } 11805 if s.DefaultAction != nil { 11806 if err := s.DefaultAction.Validate(); err != nil { 11807 invalidParams.AddNested("DefaultAction", err.(request.ErrInvalidParams)) 11808 } 11809 } 11810 if s.Updates != nil { 11811 for i, v := range s.Updates { 11812 if v == nil { 11813 continue 11814 } 11815 if err := v.Validate(); err != nil { 11816 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams)) 11817 } 11818 } 11819 } 11820 11821 if invalidParams.Len() > 0 { 11822 return invalidParams 11823 } 11824 return nil 11825} 11826 11827// SetChangeToken sets the ChangeToken field's value. 11828func (s *UpdateWebACLInput) SetChangeToken(v string) *UpdateWebACLInput { 11829 s.ChangeToken = &v 11830 return s 11831} 11832 11833// SetDefaultAction sets the DefaultAction field's value. 11834func (s *UpdateWebACLInput) SetDefaultAction(v *WafAction) *UpdateWebACLInput { 11835 s.DefaultAction = v 11836 return s 11837} 11838 11839// SetUpdates sets the Updates field's value. 11840func (s *UpdateWebACLInput) SetUpdates(v []*WebACLUpdate) *UpdateWebACLInput { 11841 s.Updates = v 11842 return s 11843} 11844 11845// SetWebACLId sets the WebACLId field's value. 11846func (s *UpdateWebACLInput) SetWebACLId(v string) *UpdateWebACLInput { 11847 s.WebACLId = &v 11848 return s 11849} 11850 11851// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateWebACLResponse 11852type UpdateWebACLOutput struct { 11853 _ struct{} `type:"structure"` 11854 11855 // The ChangeToken that you used to submit the UpdateWebACL request. You can 11856 // also use this value to query the status of the request. For more information, 11857 // see GetChangeTokenStatus. 11858 ChangeToken *string `min:"1" type:"string"` 11859} 11860 11861// String returns the string representation 11862func (s UpdateWebACLOutput) String() string { 11863 return awsutil.Prettify(s) 11864} 11865 11866// GoString returns the string representation 11867func (s UpdateWebACLOutput) GoString() string { 11868 return s.String() 11869} 11870 11871// SetChangeToken sets the ChangeToken field's value. 11872func (s *UpdateWebACLOutput) SetChangeToken(v string) *UpdateWebACLOutput { 11873 s.ChangeToken = &v 11874 return s 11875} 11876 11877// A request to update an XssMatchSet. 11878// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSetRequest 11879type UpdateXssMatchSetInput struct { 11880 _ struct{} `type:"structure"` 11881 11882 // The value returned by the most recent call to GetChangeToken. 11883 // 11884 // ChangeToken is a required field 11885 ChangeToken *string `min:"1" type:"string" required:"true"` 11886 11887 // An array of XssMatchSetUpdate objects that you want to insert into or delete 11888 // from a XssMatchSet. For more information, see the applicable data types: 11889 // 11890 // * XssMatchSetUpdate: Contains Action and XssMatchTuple 11891 // 11892 // * XssMatchTuple: Contains FieldToMatch and TextTransformation 11893 // 11894 // * FieldToMatch: Contains Data and Type 11895 // 11896 // Updates is a required field 11897 Updates []*XssMatchSetUpdate `type:"list" required:"true"` 11898 11899 // The XssMatchSetId of the XssMatchSet that you want to update. XssMatchSetId 11900 // is returned by CreateXssMatchSet and by ListXssMatchSets. 11901 // 11902 // XssMatchSetId is a required field 11903 XssMatchSetId *string `min:"1" type:"string" required:"true"` 11904} 11905 11906// String returns the string representation 11907func (s UpdateXssMatchSetInput) String() string { 11908 return awsutil.Prettify(s) 11909} 11910 11911// GoString returns the string representation 11912func (s UpdateXssMatchSetInput) GoString() string { 11913 return s.String() 11914} 11915 11916// Validate inspects the fields of the type to determine if they are valid. 11917func (s *UpdateXssMatchSetInput) Validate() error { 11918 invalidParams := request.ErrInvalidParams{Context: "UpdateXssMatchSetInput"} 11919 if s.ChangeToken == nil { 11920 invalidParams.Add(request.NewErrParamRequired("ChangeToken")) 11921 } 11922 if s.ChangeToken != nil && len(*s.ChangeToken) < 1 { 11923 invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1)) 11924 } 11925 if s.Updates == nil { 11926 invalidParams.Add(request.NewErrParamRequired("Updates")) 11927 } 11928 if s.XssMatchSetId == nil { 11929 invalidParams.Add(request.NewErrParamRequired("XssMatchSetId")) 11930 } 11931 if s.XssMatchSetId != nil && len(*s.XssMatchSetId) < 1 { 11932 invalidParams.Add(request.NewErrParamMinLen("XssMatchSetId", 1)) 11933 } 11934 if s.Updates != nil { 11935 for i, v := range s.Updates { 11936 if v == nil { 11937 continue 11938 } 11939 if err := v.Validate(); err != nil { 11940 invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams)) 11941 } 11942 } 11943 } 11944 11945 if invalidParams.Len() > 0 { 11946 return invalidParams 11947 } 11948 return nil 11949} 11950 11951// SetChangeToken sets the ChangeToken field's value. 11952func (s *UpdateXssMatchSetInput) SetChangeToken(v string) *UpdateXssMatchSetInput { 11953 s.ChangeToken = &v 11954 return s 11955} 11956 11957// SetUpdates sets the Updates field's value. 11958func (s *UpdateXssMatchSetInput) SetUpdates(v []*XssMatchSetUpdate) *UpdateXssMatchSetInput { 11959 s.Updates = v 11960 return s 11961} 11962 11963// SetXssMatchSetId sets the XssMatchSetId field's value. 11964func (s *UpdateXssMatchSetInput) SetXssMatchSetId(v string) *UpdateXssMatchSetInput { 11965 s.XssMatchSetId = &v 11966 return s 11967} 11968 11969// The response to an UpdateXssMatchSets request. 11970// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSetResponse 11971type UpdateXssMatchSetOutput struct { 11972 _ struct{} `type:"structure"` 11973 11974 // The ChangeToken that you used to submit the UpdateXssMatchSet request. You 11975 // can also use this value to query the status of the request. For more information, 11976 // see GetChangeTokenStatus. 11977 ChangeToken *string `min:"1" type:"string"` 11978} 11979 11980// String returns the string representation 11981func (s UpdateXssMatchSetOutput) String() string { 11982 return awsutil.Prettify(s) 11983} 11984 11985// GoString returns the string representation 11986func (s UpdateXssMatchSetOutput) GoString() string { 11987 return s.String() 11988} 11989 11990// SetChangeToken sets the ChangeToken field's value. 11991func (s *UpdateXssMatchSetOutput) SetChangeToken(v string) *UpdateXssMatchSetOutput { 11992 s.ChangeToken = &v 11993 return s 11994} 11995 11996// For the action that is associated with a rule in a WebACL, specifies the 11997// action that you want AWS WAF to perform when a web request matches all of 11998// the conditions in a rule. For the default action in a WebACL, specifies the 11999// action that you want AWS WAF to take when a web request doesn't match all 12000// of the conditions in any of the rules in a WebACL. 12001// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WafAction 12002type WafAction struct { 12003 _ struct{} `type:"structure"` 12004 12005 // Specifies how you want AWS WAF to respond to requests that match the settings 12006 // in a Rule. Valid settings include the following: 12007 // 12008 // * ALLOW: AWS WAF allows requests 12009 // 12010 // * BLOCK: AWS WAF blocks requests 12011 // 12012 // * COUNT: AWS WAF increments a counter of the requests that match all of 12013 // the conditions in the rule. AWS WAF then continues to inspect the web 12014 // request based on the remaining rules in the web ACL. You can't specify 12015 // COUNT for the default action for a WebACL. 12016 // 12017 // Type is a required field 12018 Type *string `type:"string" required:"true" enum:"WafActionType"` 12019} 12020 12021// String returns the string representation 12022func (s WafAction) String() string { 12023 return awsutil.Prettify(s) 12024} 12025 12026// GoString returns the string representation 12027func (s WafAction) GoString() string { 12028 return s.String() 12029} 12030 12031// Validate inspects the fields of the type to determine if they are valid. 12032func (s *WafAction) Validate() error { 12033 invalidParams := request.ErrInvalidParams{Context: "WafAction"} 12034 if s.Type == nil { 12035 invalidParams.Add(request.NewErrParamRequired("Type")) 12036 } 12037 12038 if invalidParams.Len() > 0 { 12039 return invalidParams 12040 } 12041 return nil 12042} 12043 12044// SetType sets the Type field's value. 12045func (s *WafAction) SetType(v string) *WafAction { 12046 s.Type = &v 12047 return s 12048} 12049 12050// Contains the Rules that identify the requests that you want to allow, block, 12051// or count. In a WebACL, you also specify a default action (ALLOW or BLOCK), 12052// and the action for each Rule that you add to a WebACL, for example, block 12053// requests from specified IP addresses or block requests from specified referrers. 12054// You also associate the WebACL with a CloudFront distribution to identify 12055// the requests that you want AWS WAF to filter. If you add more than one Rule 12056// to a WebACL, a request needs to match only one of the specifications to be 12057// allowed, blocked, or counted. For more information, see UpdateWebACL. 12058// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WebACL 12059type WebACL struct { 12060 _ struct{} `type:"structure"` 12061 12062 // The action to perform if none of the Rules contained in the WebACL match. 12063 // The action is specified by the WafAction object. 12064 // 12065 // DefaultAction is a required field 12066 DefaultAction *WafAction `type:"structure" required:"true"` 12067 12068 // A friendly name or description for the metrics for this WebACL. The name 12069 // can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't 12070 // contain whitespace. You can't change MetricName after you create the WebACL. 12071 MetricName *string `type:"string"` 12072 12073 // A friendly name or description of the WebACL. You can't change the name of 12074 // a WebACL after you create it. 12075 Name *string `min:"1" type:"string"` 12076 12077 // An array that contains the action for each Rule in a WebACL, the priority 12078 // of the Rule, and the ID of the Rule. 12079 // 12080 // Rules is a required field 12081 Rules []*ActivatedRule `type:"list" required:"true"` 12082 12083 // A unique identifier for a WebACL. You use WebACLId to get information about 12084 // a WebACL (see GetWebACL), update a WebACL (see UpdateWebACL), and delete 12085 // a WebACL from AWS WAF (see DeleteWebACL). 12086 // 12087 // WebACLId is returned by CreateWebACL and by ListWebACLs. 12088 // 12089 // WebACLId is a required field 12090 WebACLId *string `min:"1" type:"string" required:"true"` 12091} 12092 12093// String returns the string representation 12094func (s WebACL) String() string { 12095 return awsutil.Prettify(s) 12096} 12097 12098// GoString returns the string representation 12099func (s WebACL) GoString() string { 12100 return s.String() 12101} 12102 12103// SetDefaultAction sets the DefaultAction field's value. 12104func (s *WebACL) SetDefaultAction(v *WafAction) *WebACL { 12105 s.DefaultAction = v 12106 return s 12107} 12108 12109// SetMetricName sets the MetricName field's value. 12110func (s *WebACL) SetMetricName(v string) *WebACL { 12111 s.MetricName = &v 12112 return s 12113} 12114 12115// SetName sets the Name field's value. 12116func (s *WebACL) SetName(v string) *WebACL { 12117 s.Name = &v 12118 return s 12119} 12120 12121// SetRules sets the Rules field's value. 12122func (s *WebACL) SetRules(v []*ActivatedRule) *WebACL { 12123 s.Rules = v 12124 return s 12125} 12126 12127// SetWebACLId sets the WebACLId field's value. 12128func (s *WebACL) SetWebACLId(v string) *WebACL { 12129 s.WebACLId = &v 12130 return s 12131} 12132 12133// Contains the identifier and the name or description of the WebACL. 12134// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WebACLSummary 12135type WebACLSummary struct { 12136 _ struct{} `type:"structure"` 12137 12138 // A friendly name or description of the WebACL. You can't change the name of 12139 // a WebACL after you create it. 12140 // 12141 // Name is a required field 12142 Name *string `min:"1" type:"string" required:"true"` 12143 12144 // A unique identifier for a WebACL. You use WebACLId to get information about 12145 // a WebACL (see GetWebACL), update a WebACL (see UpdateWebACL), and delete 12146 // a WebACL from AWS WAF (see DeleteWebACL). 12147 // 12148 // WebACLId is returned by CreateWebACL and by ListWebACLs. 12149 // 12150 // WebACLId is a required field 12151 WebACLId *string `min:"1" type:"string" required:"true"` 12152} 12153 12154// String returns the string representation 12155func (s WebACLSummary) String() string { 12156 return awsutil.Prettify(s) 12157} 12158 12159// GoString returns the string representation 12160func (s WebACLSummary) GoString() string { 12161 return s.String() 12162} 12163 12164// SetName sets the Name field's value. 12165func (s *WebACLSummary) SetName(v string) *WebACLSummary { 12166 s.Name = &v 12167 return s 12168} 12169 12170// SetWebACLId sets the WebACLId field's value. 12171func (s *WebACLSummary) SetWebACLId(v string) *WebACLSummary { 12172 s.WebACLId = &v 12173 return s 12174} 12175 12176// Specifies whether to insert a Rule into or delete a Rule from a WebACL. 12177// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/WebACLUpdate 12178type WebACLUpdate struct { 12179 _ struct{} `type:"structure"` 12180 12181 // Specifies whether to insert a Rule into or delete a Rule from a WebACL. 12182 // 12183 // Action is a required field 12184 Action *string `type:"string" required:"true" enum:"ChangeAction"` 12185 12186 // The ActivatedRule object in an UpdateWebACL request specifies a Rule that 12187 // you want to insert or delete, the priority of the Rule in the WebACL, and 12188 // the action that you want AWS WAF to take when a web request matches the Rule 12189 // (ALLOW, BLOCK, or COUNT). 12190 // 12191 // ActivatedRule is a required field 12192 ActivatedRule *ActivatedRule `type:"structure" required:"true"` 12193} 12194 12195// String returns the string representation 12196func (s WebACLUpdate) String() string { 12197 return awsutil.Prettify(s) 12198} 12199 12200// GoString returns the string representation 12201func (s WebACLUpdate) GoString() string { 12202 return s.String() 12203} 12204 12205// Validate inspects the fields of the type to determine if they are valid. 12206func (s *WebACLUpdate) Validate() error { 12207 invalidParams := request.ErrInvalidParams{Context: "WebACLUpdate"} 12208 if s.Action == nil { 12209 invalidParams.Add(request.NewErrParamRequired("Action")) 12210 } 12211 if s.ActivatedRule == nil { 12212 invalidParams.Add(request.NewErrParamRequired("ActivatedRule")) 12213 } 12214 if s.ActivatedRule != nil { 12215 if err := s.ActivatedRule.Validate(); err != nil { 12216 invalidParams.AddNested("ActivatedRule", err.(request.ErrInvalidParams)) 12217 } 12218 } 12219 12220 if invalidParams.Len() > 0 { 12221 return invalidParams 12222 } 12223 return nil 12224} 12225 12226// SetAction sets the Action field's value. 12227func (s *WebACLUpdate) SetAction(v string) *WebACLUpdate { 12228 s.Action = &v 12229 return s 12230} 12231 12232// SetActivatedRule sets the ActivatedRule field's value. 12233func (s *WebACLUpdate) SetActivatedRule(v *ActivatedRule) *WebACLUpdate { 12234 s.ActivatedRule = v 12235 return s 12236} 12237 12238// A complex type that contains XssMatchTuple objects, which specify the parts 12239// of web requests that you want AWS WAF to inspect for cross-site scripting 12240// attacks and, if you want AWS WAF to inspect a header, the name of the header. 12241// If a XssMatchSet contains more than one XssMatchTuple object, a request needs 12242// to include cross-site scripting attacks in only one of the specified parts 12243// of the request to be considered a match. 12244// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/XssMatchSet 12245type XssMatchSet struct { 12246 _ struct{} `type:"structure"` 12247 12248 // The name, if any, of the XssMatchSet. 12249 Name *string `min:"1" type:"string"` 12250 12251 // A unique identifier for an XssMatchSet. You use XssMatchSetId to get information 12252 // about an XssMatchSet (see GetXssMatchSet), update an XssMatchSet (see UpdateXssMatchSet), 12253 // insert an XssMatchSet into a Rule or delete one from a Rule (see UpdateRule), 12254 // and delete an XssMatchSet from AWS WAF (see DeleteXssMatchSet). 12255 // 12256 // XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets. 12257 // 12258 // XssMatchSetId is a required field 12259 XssMatchSetId *string `min:"1" type:"string" required:"true"` 12260 12261 // Specifies the parts of web requests that you want to inspect for cross-site 12262 // scripting attacks. 12263 // 12264 // XssMatchTuples is a required field 12265 XssMatchTuples []*XssMatchTuple `type:"list" required:"true"` 12266} 12267 12268// String returns the string representation 12269func (s XssMatchSet) String() string { 12270 return awsutil.Prettify(s) 12271} 12272 12273// GoString returns the string representation 12274func (s XssMatchSet) GoString() string { 12275 return s.String() 12276} 12277 12278// SetName sets the Name field's value. 12279func (s *XssMatchSet) SetName(v string) *XssMatchSet { 12280 s.Name = &v 12281 return s 12282} 12283 12284// SetXssMatchSetId sets the XssMatchSetId field's value. 12285func (s *XssMatchSet) SetXssMatchSetId(v string) *XssMatchSet { 12286 s.XssMatchSetId = &v 12287 return s 12288} 12289 12290// SetXssMatchTuples sets the XssMatchTuples field's value. 12291func (s *XssMatchSet) SetXssMatchTuples(v []*XssMatchTuple) *XssMatchSet { 12292 s.XssMatchTuples = v 12293 return s 12294} 12295 12296// The Id and Name of an XssMatchSet. 12297// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/XssMatchSetSummary 12298type XssMatchSetSummary struct { 12299 _ struct{} `type:"structure"` 12300 12301 // The name of the XssMatchSet, if any, specified by Id. 12302 // 12303 // Name is a required field 12304 Name *string `min:"1" type:"string" required:"true"` 12305 12306 // A unique identifier for an XssMatchSet. You use XssMatchSetId to get information 12307 // about a XssMatchSet (see GetXssMatchSet), update an XssMatchSet (see UpdateXssMatchSet), 12308 // insert an XssMatchSet into a Rule or delete one from a Rule (see UpdateRule), 12309 // and delete an XssMatchSet from AWS WAF (see DeleteXssMatchSet). 12310 // 12311 // XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets. 12312 // 12313 // XssMatchSetId is a required field 12314 XssMatchSetId *string `min:"1" type:"string" required:"true"` 12315} 12316 12317// String returns the string representation 12318func (s XssMatchSetSummary) String() string { 12319 return awsutil.Prettify(s) 12320} 12321 12322// GoString returns the string representation 12323func (s XssMatchSetSummary) GoString() string { 12324 return s.String() 12325} 12326 12327// SetName sets the Name field's value. 12328func (s *XssMatchSetSummary) SetName(v string) *XssMatchSetSummary { 12329 s.Name = &v 12330 return s 12331} 12332 12333// SetXssMatchSetId sets the XssMatchSetId field's value. 12334func (s *XssMatchSetSummary) SetXssMatchSetId(v string) *XssMatchSetSummary { 12335 s.XssMatchSetId = &v 12336 return s 12337} 12338 12339// Specifies the part of a web request that you want to inspect for cross-site 12340// scripting attacks and indicates whether you want to add the specification 12341// to an XssMatchSet or delete it from an XssMatchSet. 12342// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/XssMatchSetUpdate 12343type XssMatchSetUpdate struct { 12344 _ struct{} `type:"structure"` 12345 12346 // Specify INSERT to add a XssMatchSetUpdate to an XssMatchSet. Use DELETE to 12347 // remove a XssMatchSetUpdate from an XssMatchSet. 12348 // 12349 // Action is a required field 12350 Action *string `type:"string" required:"true" enum:"ChangeAction"` 12351 12352 // Specifies the part of a web request that you want AWS WAF to inspect for 12353 // cross-site scripting attacks and, if you want AWS WAF to inspect a header, 12354 // the name of the header. 12355 // 12356 // XssMatchTuple is a required field 12357 XssMatchTuple *XssMatchTuple `type:"structure" required:"true"` 12358} 12359 12360// String returns the string representation 12361func (s XssMatchSetUpdate) String() string { 12362 return awsutil.Prettify(s) 12363} 12364 12365// GoString returns the string representation 12366func (s XssMatchSetUpdate) GoString() string { 12367 return s.String() 12368} 12369 12370// Validate inspects the fields of the type to determine if they are valid. 12371func (s *XssMatchSetUpdate) Validate() error { 12372 invalidParams := request.ErrInvalidParams{Context: "XssMatchSetUpdate"} 12373 if s.Action == nil { 12374 invalidParams.Add(request.NewErrParamRequired("Action")) 12375 } 12376 if s.XssMatchTuple == nil { 12377 invalidParams.Add(request.NewErrParamRequired("XssMatchTuple")) 12378 } 12379 if s.XssMatchTuple != nil { 12380 if err := s.XssMatchTuple.Validate(); err != nil { 12381 invalidParams.AddNested("XssMatchTuple", err.(request.ErrInvalidParams)) 12382 } 12383 } 12384 12385 if invalidParams.Len() > 0 { 12386 return invalidParams 12387 } 12388 return nil 12389} 12390 12391// SetAction sets the Action field's value. 12392func (s *XssMatchSetUpdate) SetAction(v string) *XssMatchSetUpdate { 12393 s.Action = &v 12394 return s 12395} 12396 12397// SetXssMatchTuple sets the XssMatchTuple field's value. 12398func (s *XssMatchSetUpdate) SetXssMatchTuple(v *XssMatchTuple) *XssMatchSetUpdate { 12399 s.XssMatchTuple = v 12400 return s 12401} 12402 12403// Specifies the part of a web request that you want AWS WAF to inspect for 12404// cross-site scripting attacks and, if you want AWS WAF to inspect a header, 12405// the name of the header. 12406// Please also see https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/XssMatchTuple 12407type XssMatchTuple struct { 12408 _ struct{} `type:"structure"` 12409 12410 // Specifies where in a web request to look for cross-site scripting attacks. 12411 // 12412 // FieldToMatch is a required field 12413 FieldToMatch *FieldToMatch `type:"structure" required:"true"` 12414 12415 // Text transformations eliminate some of the unusual formatting that attackers 12416 // use in web requests in an effort to bypass AWS WAF. If you specify a transformation, 12417 // AWS WAF performs the transformation on FieldToMatch before inspecting a request 12418 // for a match. 12419 // 12420 // CMD_LINE 12421 // 12422 // When you're concerned that attackers are injecting an operating system commandline 12423 // command and using unusual formatting to disguise some or all of the command, 12424 // use this option to perform the following transformations: 12425 // 12426 // * Delete the following characters: \ " ' ^ 12427 // 12428 // * Delete spaces before the following characters: / ( 12429 // 12430 // * Replace the following characters with a space: , ; 12431 // 12432 // * Replace multiple spaces with one space 12433 // 12434 // * Convert uppercase letters (A-Z) to lowercase (a-z) 12435 // 12436 // COMPRESS_WHITE_SPACE 12437 // 12438 // Use this option to replace the following characters with a space character 12439 // (decimal 32): 12440 // 12441 // * \f, formfeed, decimal 12 12442 // 12443 // * \t, tab, decimal 9 12444 // 12445 // * \n, newline, decimal 10 12446 // 12447 // * \r, carriage return, decimal 13 12448 // 12449 // * \v, vertical tab, decimal 11 12450 // 12451 // * non-breaking space, decimal 160 12452 // 12453 // COMPRESS_WHITE_SPACE also replaces multiple spaces with one space. 12454 // 12455 // HTML_ENTITY_DECODE 12456 // 12457 // Use this option to replace HTML-encoded characters with unencoded characters. 12458 // HTML_ENTITY_DECODE performs the following operations: 12459 // 12460 // * Replaces (ampersand)quot; with " 12461 // 12462 // * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160 12463 // 12464 // * Replaces (ampersand)lt; with a "less than" symbol 12465 // 12466 // * Replaces (ampersand)gt; with > 12467 // 12468 // * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;, 12469 // with the corresponding characters 12470 // 12471 // * Replaces characters that are represented in decimal format, (ampersand)#nnnn;, 12472 // with the corresponding characters 12473 // 12474 // LOWERCASE 12475 // 12476 // Use this option to convert uppercase letters (A-Z) to lowercase (a-z). 12477 // 12478 // URL_DECODE 12479 // 12480 // Use this option to decode a URL-encoded value. 12481 // 12482 // NONE 12483 // 12484 // Specify NONE if you don't want to perform any text transformations. 12485 // 12486 // TextTransformation is a required field 12487 TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"` 12488} 12489 12490// String returns the string representation 12491func (s XssMatchTuple) String() string { 12492 return awsutil.Prettify(s) 12493} 12494 12495// GoString returns the string representation 12496func (s XssMatchTuple) GoString() string { 12497 return s.String() 12498} 12499 12500// Validate inspects the fields of the type to determine if they are valid. 12501func (s *XssMatchTuple) Validate() error { 12502 invalidParams := request.ErrInvalidParams{Context: "XssMatchTuple"} 12503 if s.FieldToMatch == nil { 12504 invalidParams.Add(request.NewErrParamRequired("FieldToMatch")) 12505 } 12506 if s.TextTransformation == nil { 12507 invalidParams.Add(request.NewErrParamRequired("TextTransformation")) 12508 } 12509 if s.FieldToMatch != nil { 12510 if err := s.FieldToMatch.Validate(); err != nil { 12511 invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams)) 12512 } 12513 } 12514 12515 if invalidParams.Len() > 0 { 12516 return invalidParams 12517 } 12518 return nil 12519} 12520 12521// SetFieldToMatch sets the FieldToMatch field's value. 12522func (s *XssMatchTuple) SetFieldToMatch(v *FieldToMatch) *XssMatchTuple { 12523 s.FieldToMatch = v 12524 return s 12525} 12526 12527// SetTextTransformation sets the TextTransformation field's value. 12528func (s *XssMatchTuple) SetTextTransformation(v string) *XssMatchTuple { 12529 s.TextTransformation = &v 12530 return s 12531} 12532 12533const ( 12534 // ChangeActionInsert is a ChangeAction enum value 12535 ChangeActionInsert = "INSERT" 12536 12537 // ChangeActionDelete is a ChangeAction enum value 12538 ChangeActionDelete = "DELETE" 12539) 12540 12541const ( 12542 // ChangeTokenStatusProvisioned is a ChangeTokenStatus enum value 12543 ChangeTokenStatusProvisioned = "PROVISIONED" 12544 12545 // ChangeTokenStatusPending is a ChangeTokenStatus enum value 12546 ChangeTokenStatusPending = "PENDING" 12547 12548 // ChangeTokenStatusInsync is a ChangeTokenStatus enum value 12549 ChangeTokenStatusInsync = "INSYNC" 12550) 12551 12552const ( 12553 // ComparisonOperatorEq is a ComparisonOperator enum value 12554 ComparisonOperatorEq = "EQ" 12555 12556 // ComparisonOperatorNe is a ComparisonOperator enum value 12557 ComparisonOperatorNe = "NE" 12558 12559 // ComparisonOperatorLe is a ComparisonOperator enum value 12560 ComparisonOperatorLe = "LE" 12561 12562 // ComparisonOperatorLt is a ComparisonOperator enum value 12563 ComparisonOperatorLt = "LT" 12564 12565 // ComparisonOperatorGe is a ComparisonOperator enum value 12566 ComparisonOperatorGe = "GE" 12567 12568 // ComparisonOperatorGt is a ComparisonOperator enum value 12569 ComparisonOperatorGt = "GT" 12570) 12571 12572const ( 12573 // IPSetDescriptorTypeIpv4 is a IPSetDescriptorType enum value 12574 IPSetDescriptorTypeIpv4 = "IPV4" 12575 12576 // IPSetDescriptorTypeIpv6 is a IPSetDescriptorType enum value 12577 IPSetDescriptorTypeIpv6 = "IPV6" 12578) 12579 12580const ( 12581 // MatchFieldTypeUri is a MatchFieldType enum value 12582 MatchFieldTypeUri = "URI" 12583 12584 // MatchFieldTypeQueryString is a MatchFieldType enum value 12585 MatchFieldTypeQueryString = "QUERY_STRING" 12586 12587 // MatchFieldTypeHeader is a MatchFieldType enum value 12588 MatchFieldTypeHeader = "HEADER" 12589 12590 // MatchFieldTypeMethod is a MatchFieldType enum value 12591 MatchFieldTypeMethod = "METHOD" 12592 12593 // MatchFieldTypeBody is a MatchFieldType enum value 12594 MatchFieldTypeBody = "BODY" 12595) 12596 12597const ( 12598 // ParameterExceptionFieldChangeAction is a ParameterExceptionField enum value 12599 ParameterExceptionFieldChangeAction = "CHANGE_ACTION" 12600 12601 // ParameterExceptionFieldWafAction is a ParameterExceptionField enum value 12602 ParameterExceptionFieldWafAction = "WAF_ACTION" 12603 12604 // ParameterExceptionFieldPredicateType is a ParameterExceptionField enum value 12605 ParameterExceptionFieldPredicateType = "PREDICATE_TYPE" 12606 12607 // ParameterExceptionFieldIpsetType is a ParameterExceptionField enum value 12608 ParameterExceptionFieldIpsetType = "IPSET_TYPE" 12609 12610 // ParameterExceptionFieldByteMatchFieldType is a ParameterExceptionField enum value 12611 ParameterExceptionFieldByteMatchFieldType = "BYTE_MATCH_FIELD_TYPE" 12612 12613 // ParameterExceptionFieldSqlInjectionMatchFieldType is a ParameterExceptionField enum value 12614 ParameterExceptionFieldSqlInjectionMatchFieldType = "SQL_INJECTION_MATCH_FIELD_TYPE" 12615 12616 // ParameterExceptionFieldByteMatchTextTransformation is a ParameterExceptionField enum value 12617 ParameterExceptionFieldByteMatchTextTransformation = "BYTE_MATCH_TEXT_TRANSFORMATION" 12618 12619 // ParameterExceptionFieldByteMatchPositionalConstraint is a ParameterExceptionField enum value 12620 ParameterExceptionFieldByteMatchPositionalConstraint = "BYTE_MATCH_POSITIONAL_CONSTRAINT" 12621 12622 // ParameterExceptionFieldSizeConstraintComparisonOperator is a ParameterExceptionField enum value 12623 ParameterExceptionFieldSizeConstraintComparisonOperator = "SIZE_CONSTRAINT_COMPARISON_OPERATOR" 12624 12625 // ParameterExceptionFieldRateKey is a ParameterExceptionField enum value 12626 ParameterExceptionFieldRateKey = "RATE_KEY" 12627 12628 // ParameterExceptionFieldRuleType is a ParameterExceptionField enum value 12629 ParameterExceptionFieldRuleType = "RULE_TYPE" 12630 12631 // ParameterExceptionFieldNextMarker is a ParameterExceptionField enum value 12632 ParameterExceptionFieldNextMarker = "NEXT_MARKER" 12633) 12634 12635const ( 12636 // ParameterExceptionReasonInvalidOption is a ParameterExceptionReason enum value 12637 ParameterExceptionReasonInvalidOption = "INVALID_OPTION" 12638 12639 // ParameterExceptionReasonIllegalCombination is a ParameterExceptionReason enum value 12640 ParameterExceptionReasonIllegalCombination = "ILLEGAL_COMBINATION" 12641) 12642 12643const ( 12644 // PositionalConstraintExactly is a PositionalConstraint enum value 12645 PositionalConstraintExactly = "EXACTLY" 12646 12647 // PositionalConstraintStartsWith is a PositionalConstraint enum value 12648 PositionalConstraintStartsWith = "STARTS_WITH" 12649 12650 // PositionalConstraintEndsWith is a PositionalConstraint enum value 12651 PositionalConstraintEndsWith = "ENDS_WITH" 12652 12653 // PositionalConstraintContains is a PositionalConstraint enum value 12654 PositionalConstraintContains = "CONTAINS" 12655 12656 // PositionalConstraintContainsWord is a PositionalConstraint enum value 12657 PositionalConstraintContainsWord = "CONTAINS_WORD" 12658) 12659 12660const ( 12661 // PredicateTypeIpmatch is a PredicateType enum value 12662 PredicateTypeIpmatch = "IPMatch" 12663 12664 // PredicateTypeByteMatch is a PredicateType enum value 12665 PredicateTypeByteMatch = "ByteMatch" 12666 12667 // PredicateTypeSqlInjectionMatch is a PredicateType enum value 12668 PredicateTypeSqlInjectionMatch = "SqlInjectionMatch" 12669 12670 // PredicateTypeSizeConstraint is a PredicateType enum value 12671 PredicateTypeSizeConstraint = "SizeConstraint" 12672 12673 // PredicateTypeXssMatch is a PredicateType enum value 12674 PredicateTypeXssMatch = "XssMatch" 12675) 12676 12677const ( 12678 // RateKeyIp is a RateKey enum value 12679 RateKeyIp = "IP" 12680) 12681 12682const ( 12683 // TextTransformationNone is a TextTransformation enum value 12684 TextTransformationNone = "NONE" 12685 12686 // TextTransformationCompressWhiteSpace is a TextTransformation enum value 12687 TextTransformationCompressWhiteSpace = "COMPRESS_WHITE_SPACE" 12688 12689 // TextTransformationHtmlEntityDecode is a TextTransformation enum value 12690 TextTransformationHtmlEntityDecode = "HTML_ENTITY_DECODE" 12691 12692 // TextTransformationLowercase is a TextTransformation enum value 12693 TextTransformationLowercase = "LOWERCASE" 12694 12695 // TextTransformationCmdLine is a TextTransformation enum value 12696 TextTransformationCmdLine = "CMD_LINE" 12697 12698 // TextTransformationUrlDecode is a TextTransformation enum value 12699 TextTransformationUrlDecode = "URL_DECODE" 12700) 12701 12702const ( 12703 // WafActionTypeBlock is a WafActionType enum value 12704 WafActionTypeBlock = "BLOCK" 12705 12706 // WafActionTypeAllow is a WafActionType enum value 12707 WafActionTypeAllow = "ALLOW" 12708 12709 // WafActionTypeCount is a WafActionType enum value 12710 WafActionTypeCount = "COUNT" 12711) 12712 12713const ( 12714 // WafRuleTypeRegular is a WafRuleType enum value 12715 WafRuleTypeRegular = "REGULAR" 12716 12717 // WafRuleTypeRateBased is a WafRuleType enum value 12718 WafRuleTypeRateBased = "RATE_BASED" 12719) 12720