1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package wafregional
4
5import (
6	"fmt"
7
8	"github.com/aws/aws-sdk-go/aws"
9	"github.com/aws/aws-sdk-go/aws/awsutil"
10	"github.com/aws/aws-sdk-go/aws/request"
11	"github.com/aws/aws-sdk-go/private/protocol"
12	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
13	"github.com/aws/aws-sdk-go/service/waf"
14)
15
16const opAssociateWebACL = "AssociateWebACL"
17
18// AssociateWebACLRequest generates a "aws/request.Request" representing the
19// client's request for the AssociateWebACL operation. The "output" return
20// value will be populated with the request's response once the request completes
21// successfully.
22//
23// Use "Send" method on the returned Request to send the API call to the service.
24// the "output" return value is not valid until after Send returns without error.
25//
26// See AssociateWebACL for more information on using the AssociateWebACL
27// API call, and error handling.
28//
29// This method is useful when you want to inject custom logic or configuration
30// into the SDK's request lifecycle. Such as custom headers, or retry logic.
31//
32//
33//    // Example sending a request using the AssociateWebACLRequest method.
34//    req, resp := client.AssociateWebACLRequest(params)
35//
36//    err := req.Send()
37//    if err == nil { // resp is now filled
38//        fmt.Println(resp)
39//    }
40//
41// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/AssociateWebACL
42func (c *WAFRegional) AssociateWebACLRequest(input *AssociateWebACLInput) (req *request.Request, output *AssociateWebACLOutput) {
43	op := &request.Operation{
44		Name:       opAssociateWebACL,
45		HTTPMethod: "POST",
46		HTTPPath:   "/",
47	}
48
49	if input == nil {
50		input = &AssociateWebACLInput{}
51	}
52
53	output = &AssociateWebACLOutput{}
54	req = c.newRequest(op, input, output)
55	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
56	return
57}
58
59// AssociateWebACL API operation for AWS WAF Regional.
60//
61//
62// This is AWS WAF Classic Regional documentation. For more information, see
63// AWS WAF Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
64// in the developer guide.
65//
66// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
67// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
68// With the latest version, AWS WAF has a single set of endpoints for regional
69// and global use.
70//
71// Associates a web ACL with a resource, either an application load balancer
72// or Amazon API Gateway stage.
73//
74// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
75// with awserr.Error's Code and Message methods to get detailed information about
76// the error.
77//
78// See the AWS API reference guide for AWS WAF Regional's
79// API operation AssociateWebACL for usage and error information.
80//
81// Returned Error Types:
82//   * WAFInternalErrorException
83//   The operation failed because of a system problem, even though the request
84//   was valid. Retry your request.
85//
86//   * WAFInvalidAccountException
87//   The operation failed because you tried to create, update, or delete an object
88//   by using an invalid account identifier.
89//
90//   * WAFInvalidParameterException
91//   The operation failed because AWS WAF didn't recognize a parameter in the
92//   request. For example:
93//
94//      * You specified an invalid parameter name.
95//
96//      * You specified an invalid value.
97//
98//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
99//      using an action other than INSERT or DELETE.
100//
101//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
102//      BLOCK, or COUNT.
103//
104//      * You tried to create a RateBasedRule with a RateKey value other than
105//      IP.
106//
107//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
108//      BLOCK, or COUNT.
109//
110//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
111//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
112//
113//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
114//      for Data.
115//
116//      * Your request references an ARN that is malformed, or corresponds to
117//      a resource with which a web ACL cannot be associated.
118//
119//   * WAFNonexistentItemException
120//   The operation failed because the referenced object doesn't exist.
121//
122//   * WAFUnavailableEntityException
123//   The operation failed because the entity referenced is temporarily unavailable.
124//   Retry your request.
125//
126// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/AssociateWebACL
127func (c *WAFRegional) AssociateWebACL(input *AssociateWebACLInput) (*AssociateWebACLOutput, error) {
128	req, out := c.AssociateWebACLRequest(input)
129	return out, req.Send()
130}
131
132// AssociateWebACLWithContext is the same as AssociateWebACL with the addition of
133// the ability to pass a context and additional request options.
134//
135// See AssociateWebACL for details on how to use this API operation.
136//
137// The context must be non-nil and will be used for request cancellation. If
138// the context is nil a panic will occur. In the future the SDK may create
139// sub-contexts for http.Requests. See https://golang.org/pkg/context/
140// for more information on using Contexts.
141func (c *WAFRegional) AssociateWebACLWithContext(ctx aws.Context, input *AssociateWebACLInput, opts ...request.Option) (*AssociateWebACLOutput, error) {
142	req, out := c.AssociateWebACLRequest(input)
143	req.SetContext(ctx)
144	req.ApplyOptions(opts...)
145	return out, req.Send()
146}
147
148const opCreateByteMatchSet = "CreateByteMatchSet"
149
150// CreateByteMatchSetRequest generates a "aws/request.Request" representing the
151// client's request for the CreateByteMatchSet operation. The "output" return
152// value will be populated with the request's response once the request completes
153// successfully.
154//
155// Use "Send" method on the returned Request to send the API call to the service.
156// the "output" return value is not valid until after Send returns without error.
157//
158// See CreateByteMatchSet for more information on using the CreateByteMatchSet
159// API call, and error handling.
160//
161// This method is useful when you want to inject custom logic or configuration
162// into the SDK's request lifecycle. Such as custom headers, or retry logic.
163//
164//
165//    // Example sending a request using the CreateByteMatchSetRequest method.
166//    req, resp := client.CreateByteMatchSetRequest(params)
167//
168//    err := req.Send()
169//    if err == nil { // resp is now filled
170//        fmt.Println(resp)
171//    }
172//
173// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateByteMatchSet
174func (c *WAFRegional) CreateByteMatchSetRequest(input *waf.CreateByteMatchSetInput) (req *request.Request, output *waf.CreateByteMatchSetOutput) {
175	op := &request.Operation{
176		Name:       opCreateByteMatchSet,
177		HTTPMethod: "POST",
178		HTTPPath:   "/",
179	}
180
181	if input == nil {
182		input = &waf.CreateByteMatchSetInput{}
183	}
184
185	output = &waf.CreateByteMatchSetOutput{}
186	req = c.newRequest(op, input, output)
187	return
188}
189
190// CreateByteMatchSet API operation for AWS WAF Regional.
191//
192//
193// This is AWS WAF Classic documentation. For more information, see AWS WAF
194// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
195// in the developer guide.
196//
197// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
198// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
199// With the latest version, AWS WAF has a single set of endpoints for regional
200// and global use.
201//
202// Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part
203// of a web request that you want AWS WAF to inspect, such as the values of
204// the User-Agent header or the query string. For example, you can create a
205// ByteMatchSet that matches any requests with User-Agent headers that contain
206// the string BadBot. You can then configure AWS WAF to reject those requests.
207//
208// To create and configure a ByteMatchSet, perform the following steps:
209//
210// Use GetChangeToken to get the change token that you provide in the ChangeToken
211// parameter of a CreateByteMatchSet request.
212//
213// Submit a CreateByteMatchSet request.
214//
215// Use GetChangeToken to get the change token that you provide in the ChangeToken
216// parameter of an UpdateByteMatchSet request.
217//
218// Submit an UpdateByteMatchSet request to specify the part of the request that
219// you want AWS WAF to inspect (for example, the header or the URI) and the
220// value that you want AWS WAF to watch for.
221//
222// For more information about how to use the AWS WAF API to allow or block HTTP
223// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
224//
225// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
226// with awserr.Error's Code and Message methods to get detailed information about
227// the error.
228//
229// See the AWS API reference guide for AWS WAF Regional's
230// API operation CreateByteMatchSet for usage and error information.
231//
232// Returned Error Types:
233//   * WAFDisallowedNameException
234//   The name specified is invalid.
235//
236//   * WAFInternalErrorException
237//   The operation failed because of a system problem, even though the request
238//   was valid. Retry your request.
239//
240//   * WAFInvalidAccountException
241//   The operation failed because you tried to create, update, or delete an object
242//   by using an invalid account identifier.
243//
244//   * WAFInvalidParameterException
245//   The operation failed because AWS WAF didn't recognize a parameter in the
246//   request. For example:
247//
248//      * You specified an invalid parameter name.
249//
250//      * You specified an invalid value.
251//
252//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
253//      using an action other than INSERT or DELETE.
254//
255//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
256//      BLOCK, or COUNT.
257//
258//      * You tried to create a RateBasedRule with a RateKey value other than
259//      IP.
260//
261//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
262//      BLOCK, or COUNT.
263//
264//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
265//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
266//
267//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
268//      for Data.
269//
270//      * Your request references an ARN that is malformed, or corresponds to
271//      a resource with which a web ACL cannot be associated.
272//
273//   * WAFStaleDataException
274//   The operation failed because you tried to create, update, or delete an object
275//   by using a change token that has already been used.
276//
277//   * WAFLimitsExceededException
278//   The operation exceeds a resource limit, for example, the maximum number of
279//   WebACL objects that you can create for an AWS account. For more information,
280//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
281//   in the AWS WAF Developer Guide.
282//
283// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateByteMatchSet
284func (c *WAFRegional) CreateByteMatchSet(input *waf.CreateByteMatchSetInput) (*waf.CreateByteMatchSetOutput, error) {
285	req, out := c.CreateByteMatchSetRequest(input)
286	return out, req.Send()
287}
288
289// CreateByteMatchSetWithContext is the same as CreateByteMatchSet with the addition of
290// the ability to pass a context and additional request options.
291//
292// See CreateByteMatchSet for details on how to use this API operation.
293//
294// The context must be non-nil and will be used for request cancellation. If
295// the context is nil a panic will occur. In the future the SDK may create
296// sub-contexts for http.Requests. See https://golang.org/pkg/context/
297// for more information on using Contexts.
298func (c *WAFRegional) CreateByteMatchSetWithContext(ctx aws.Context, input *waf.CreateByteMatchSetInput, opts ...request.Option) (*waf.CreateByteMatchSetOutput, error) {
299	req, out := c.CreateByteMatchSetRequest(input)
300	req.SetContext(ctx)
301	req.ApplyOptions(opts...)
302	return out, req.Send()
303}
304
305const opCreateGeoMatchSet = "CreateGeoMatchSet"
306
307// CreateGeoMatchSetRequest generates a "aws/request.Request" representing the
308// client's request for the CreateGeoMatchSet operation. The "output" return
309// value will be populated with the request's response once the request completes
310// successfully.
311//
312// Use "Send" method on the returned Request to send the API call to the service.
313// the "output" return value is not valid until after Send returns without error.
314//
315// See CreateGeoMatchSet for more information on using the CreateGeoMatchSet
316// API call, and error handling.
317//
318// This method is useful when you want to inject custom logic or configuration
319// into the SDK's request lifecycle. Such as custom headers, or retry logic.
320//
321//
322//    // Example sending a request using the CreateGeoMatchSetRequest method.
323//    req, resp := client.CreateGeoMatchSetRequest(params)
324//
325//    err := req.Send()
326//    if err == nil { // resp is now filled
327//        fmt.Println(resp)
328//    }
329//
330// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateGeoMatchSet
331func (c *WAFRegional) CreateGeoMatchSetRequest(input *waf.CreateGeoMatchSetInput) (req *request.Request, output *waf.CreateGeoMatchSetOutput) {
332	op := &request.Operation{
333		Name:       opCreateGeoMatchSet,
334		HTTPMethod: "POST",
335		HTTPPath:   "/",
336	}
337
338	if input == nil {
339		input = &waf.CreateGeoMatchSetInput{}
340	}
341
342	output = &waf.CreateGeoMatchSetOutput{}
343	req = c.newRequest(op, input, output)
344	return
345}
346
347// CreateGeoMatchSet API operation for AWS WAF Regional.
348//
349//
350// This is AWS WAF Classic documentation. For more information, see AWS WAF
351// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
352// in the developer guide.
353//
354// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
355// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
356// With the latest version, AWS WAF has a single set of endpoints for regional
357// and global use.
358//
359// Creates an GeoMatchSet, which you use to specify which web requests you want
360// to allow or block based on the country that the requests originate from.
361// For example, if you're receiving a lot of requests from one or more countries
362// and you want to block the requests, you can create an GeoMatchSet that contains
363// those countries and then configure AWS WAF to block the requests.
364//
365// To create and configure a GeoMatchSet, perform the following steps:
366//
367// Use GetChangeToken to get the change token that you provide in the ChangeToken
368// parameter of a CreateGeoMatchSet request.
369//
370// Submit a CreateGeoMatchSet request.
371//
372// Use GetChangeToken to get the change token that you provide in the ChangeToken
373// parameter of an UpdateGeoMatchSet request.
374//
375// Submit an UpdateGeoMatchSetSet request to specify the countries that you
376// want AWS WAF to watch for.
377//
378// For more information about how to use the AWS WAF API to allow or block HTTP
379// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
380//
381// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
382// with awserr.Error's Code and Message methods to get detailed information about
383// the error.
384//
385// See the AWS API reference guide for AWS WAF Regional's
386// API operation CreateGeoMatchSet for usage and error information.
387//
388// Returned Error Types:
389//   * WAFStaleDataException
390//   The operation failed because you tried to create, update, or delete an object
391//   by using a change token that has already been used.
392//
393//   * WAFInternalErrorException
394//   The operation failed because of a system problem, even though the request
395//   was valid. Retry your request.
396//
397//   * WAFInvalidAccountException
398//   The operation failed because you tried to create, update, or delete an object
399//   by using an invalid account identifier.
400//
401//   * WAFDisallowedNameException
402//   The name specified is invalid.
403//
404//   * WAFInvalidParameterException
405//   The operation failed because AWS WAF didn't recognize a parameter in the
406//   request. For example:
407//
408//      * You specified an invalid parameter name.
409//
410//      * You specified an invalid value.
411//
412//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
413//      using an action other than INSERT or DELETE.
414//
415//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
416//      BLOCK, or COUNT.
417//
418//      * You tried to create a RateBasedRule with a RateKey value other than
419//      IP.
420//
421//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
422//      BLOCK, or COUNT.
423//
424//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
425//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
426//
427//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
428//      for Data.
429//
430//      * Your request references an ARN that is malformed, or corresponds to
431//      a resource with which a web ACL cannot be associated.
432//
433//   * WAFLimitsExceededException
434//   The operation exceeds a resource limit, for example, the maximum number of
435//   WebACL objects that you can create for an AWS account. For more information,
436//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
437//   in the AWS WAF Developer Guide.
438//
439// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateGeoMatchSet
440func (c *WAFRegional) CreateGeoMatchSet(input *waf.CreateGeoMatchSetInput) (*waf.CreateGeoMatchSetOutput, error) {
441	req, out := c.CreateGeoMatchSetRequest(input)
442	return out, req.Send()
443}
444
445// CreateGeoMatchSetWithContext is the same as CreateGeoMatchSet with the addition of
446// the ability to pass a context and additional request options.
447//
448// See CreateGeoMatchSet for details on how to use this API operation.
449//
450// The context must be non-nil and will be used for request cancellation. If
451// the context is nil a panic will occur. In the future the SDK may create
452// sub-contexts for http.Requests. See https://golang.org/pkg/context/
453// for more information on using Contexts.
454func (c *WAFRegional) CreateGeoMatchSetWithContext(ctx aws.Context, input *waf.CreateGeoMatchSetInput, opts ...request.Option) (*waf.CreateGeoMatchSetOutput, error) {
455	req, out := c.CreateGeoMatchSetRequest(input)
456	req.SetContext(ctx)
457	req.ApplyOptions(opts...)
458	return out, req.Send()
459}
460
461const opCreateIPSet = "CreateIPSet"
462
463// CreateIPSetRequest generates a "aws/request.Request" representing the
464// client's request for the CreateIPSet operation. The "output" return
465// value will be populated with the request's response once the request completes
466// successfully.
467//
468// Use "Send" method on the returned Request to send the API call to the service.
469// the "output" return value is not valid until after Send returns without error.
470//
471// See CreateIPSet for more information on using the CreateIPSet
472// API call, and error handling.
473//
474// This method is useful when you want to inject custom logic or configuration
475// into the SDK's request lifecycle. Such as custom headers, or retry logic.
476//
477//
478//    // Example sending a request using the CreateIPSetRequest method.
479//    req, resp := client.CreateIPSetRequest(params)
480//
481//    err := req.Send()
482//    if err == nil { // resp is now filled
483//        fmt.Println(resp)
484//    }
485//
486// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateIPSet
487func (c *WAFRegional) CreateIPSetRequest(input *waf.CreateIPSetInput) (req *request.Request, output *waf.CreateIPSetOutput) {
488	op := &request.Operation{
489		Name:       opCreateIPSet,
490		HTTPMethod: "POST",
491		HTTPPath:   "/",
492	}
493
494	if input == nil {
495		input = &waf.CreateIPSetInput{}
496	}
497
498	output = &waf.CreateIPSetOutput{}
499	req = c.newRequest(op, input, output)
500	return
501}
502
503// CreateIPSet API operation for AWS WAF Regional.
504//
505//
506// This is AWS WAF Classic documentation. For more information, see AWS WAF
507// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
508// in the developer guide.
509//
510// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
511// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
512// With the latest version, AWS WAF has a single set of endpoints for regional
513// and global use.
514//
515// Creates an IPSet, which you use to specify which web requests that you want
516// to allow or block based on the IP addresses that the requests originate from.
517// For example, if you're receiving a lot of requests from one or more individual
518// IP addresses or one or more ranges of IP addresses and you want to block
519// the requests, you can create an IPSet that contains those IP addresses and
520// then configure AWS WAF to block the requests.
521//
522// To create and configure an IPSet, perform the following steps:
523//
524// Use GetChangeToken to get the change token that you provide in the ChangeToken
525// parameter of a CreateIPSet request.
526//
527// Submit a CreateIPSet request.
528//
529// Use GetChangeToken to get the change token that you provide in the ChangeToken
530// parameter of an UpdateIPSet request.
531//
532// Submit an UpdateIPSet request to specify the IP addresses that you want AWS
533// WAF to watch for.
534//
535// For more information about how to use the AWS WAF API to allow or block HTTP
536// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
537//
538// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
539// with awserr.Error's Code and Message methods to get detailed information about
540// the error.
541//
542// See the AWS API reference guide for AWS WAF Regional's
543// API operation CreateIPSet for usage and error information.
544//
545// Returned Error Types:
546//   * WAFStaleDataException
547//   The operation failed because you tried to create, update, or delete an object
548//   by using a change token that has already been used.
549//
550//   * WAFInternalErrorException
551//   The operation failed because of a system problem, even though the request
552//   was valid. Retry your request.
553//
554//   * WAFInvalidAccountException
555//   The operation failed because you tried to create, update, or delete an object
556//   by using an invalid account identifier.
557//
558//   * WAFDisallowedNameException
559//   The name specified is invalid.
560//
561//   * WAFInvalidParameterException
562//   The operation failed because AWS WAF didn't recognize a parameter in the
563//   request. For example:
564//
565//      * You specified an invalid parameter name.
566//
567//      * You specified an invalid value.
568//
569//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
570//      using an action other than INSERT or DELETE.
571//
572//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
573//      BLOCK, or COUNT.
574//
575//      * You tried to create a RateBasedRule with a RateKey value other than
576//      IP.
577//
578//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
579//      BLOCK, or COUNT.
580//
581//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
582//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
583//
584//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
585//      for Data.
586//
587//      * Your request references an ARN that is malformed, or corresponds to
588//      a resource with which a web ACL cannot be associated.
589//
590//   * WAFLimitsExceededException
591//   The operation exceeds a resource limit, for example, the maximum number of
592//   WebACL objects that you can create for an AWS account. For more information,
593//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
594//   in the AWS WAF Developer Guide.
595//
596// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateIPSet
597func (c *WAFRegional) CreateIPSet(input *waf.CreateIPSetInput) (*waf.CreateIPSetOutput, error) {
598	req, out := c.CreateIPSetRequest(input)
599	return out, req.Send()
600}
601
602// CreateIPSetWithContext is the same as CreateIPSet with the addition of
603// the ability to pass a context and additional request options.
604//
605// See CreateIPSet for details on how to use this API operation.
606//
607// The context must be non-nil and will be used for request cancellation. If
608// the context is nil a panic will occur. In the future the SDK may create
609// sub-contexts for http.Requests. See https://golang.org/pkg/context/
610// for more information on using Contexts.
611func (c *WAFRegional) CreateIPSetWithContext(ctx aws.Context, input *waf.CreateIPSetInput, opts ...request.Option) (*waf.CreateIPSetOutput, error) {
612	req, out := c.CreateIPSetRequest(input)
613	req.SetContext(ctx)
614	req.ApplyOptions(opts...)
615	return out, req.Send()
616}
617
618const opCreateRateBasedRule = "CreateRateBasedRule"
619
620// CreateRateBasedRuleRequest generates a "aws/request.Request" representing the
621// client's request for the CreateRateBasedRule operation. The "output" return
622// value will be populated with the request's response once the request completes
623// successfully.
624//
625// Use "Send" method on the returned Request to send the API call to the service.
626// the "output" return value is not valid until after Send returns without error.
627//
628// See CreateRateBasedRule for more information on using the CreateRateBasedRule
629// API call, and error handling.
630//
631// This method is useful when you want to inject custom logic or configuration
632// into the SDK's request lifecycle. Such as custom headers, or retry logic.
633//
634//
635//    // Example sending a request using the CreateRateBasedRuleRequest method.
636//    req, resp := client.CreateRateBasedRuleRequest(params)
637//
638//    err := req.Send()
639//    if err == nil { // resp is now filled
640//        fmt.Println(resp)
641//    }
642//
643// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRateBasedRule
644func (c *WAFRegional) CreateRateBasedRuleRequest(input *waf.CreateRateBasedRuleInput) (req *request.Request, output *waf.CreateRateBasedRuleOutput) {
645	op := &request.Operation{
646		Name:       opCreateRateBasedRule,
647		HTTPMethod: "POST",
648		HTTPPath:   "/",
649	}
650
651	if input == nil {
652		input = &waf.CreateRateBasedRuleInput{}
653	}
654
655	output = &waf.CreateRateBasedRuleOutput{}
656	req = c.newRequest(op, input, output)
657	return
658}
659
660// CreateRateBasedRule API operation for AWS WAF Regional.
661//
662//
663// This is AWS WAF Classic documentation. For more information, see AWS WAF
664// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
665// in the developer guide.
666//
667// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
668// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
669// With the latest version, AWS WAF has a single set of endpoints for regional
670// and global use.
671//
672// Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies
673// the maximum number of requests that AWS WAF allows from a specified IP address
674// in a five-minute period. The RateBasedRule also contains the IPSet objects,
675// ByteMatchSet objects, and other predicates that identify the requests that
676// you want to count or block if these requests exceed the RateLimit.
677//
678// If you add more than one predicate to a RateBasedRule, a request not only
679// must exceed the RateLimit, but it also must match all the conditions to be
680// counted or blocked. For example, suppose you add the following to a RateBasedRule:
681//
682//    * An IPSet that matches the IP address 192.0.2.44/32
683//
684//    * A ByteMatchSet that matches BadBot in the User-Agent header
685//
686// Further, you specify a RateLimit of 1,000.
687//
688// You then add the RateBasedRule to a WebACL and specify that you want to block
689// requests that meet the conditions in the rule. For a request to be blocked,
690// it must come from the IP address 192.0.2.44 and the User-Agent header in
691// the request must contain the value BadBot. Further, requests that match these
692// two conditions must be received at a rate of more than 1,000 requests every
693// five minutes. If both conditions are met and the rate is exceeded, AWS WAF
694// blocks the requests. If the rate drops below 1,000 for a five-minute period,
695// AWS WAF no longer blocks the requests.
696//
697// As a second example, suppose you want to limit requests to a particular page
698// on your site. To do this, you could add the following to a RateBasedRule:
699//
700//    * A ByteMatchSet with FieldToMatch of URI
701//
702//    * A PositionalConstraint of STARTS_WITH
703//
704//    * A TargetString of login
705//
706// Further, you specify a RateLimit of 1,000.
707//
708// By adding this RateBasedRule to a WebACL, you could limit requests to your
709// login page without affecting the rest of your site.
710//
711// To create and configure a RateBasedRule, perform the following steps:
712//
713// Create and update the predicates that you want to include in the rule. For
714// more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.
715//
716// Use GetChangeToken to get the change token that you provide in the ChangeToken
717// parameter of a CreateRule request.
718//
719// Submit a CreateRateBasedRule request.
720//
721// Use GetChangeToken to get the change token that you provide in the ChangeToken
722// parameter of an UpdateRule request.
723//
724// Submit an UpdateRateBasedRule request to specify the predicates that you
725// want to include in the rule.
726//
727// Create and update a WebACL that contains the RateBasedRule. For more information,
728// see CreateWebACL.
729//
730// For more information about how to use the AWS WAF API to allow or block HTTP
731// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
732//
733// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
734// with awserr.Error's Code and Message methods to get detailed information about
735// the error.
736//
737// See the AWS API reference guide for AWS WAF Regional's
738// API operation CreateRateBasedRule for usage and error information.
739//
740// Returned Error Types:
741//   * WAFStaleDataException
742//   The operation failed because you tried to create, update, or delete an object
743//   by using a change token that has already been used.
744//
745//   * WAFInternalErrorException
746//   The operation failed because of a system problem, even though the request
747//   was valid. Retry your request.
748//
749//   * WAFDisallowedNameException
750//   The name specified is invalid.
751//
752//   * WAFInvalidParameterException
753//   The operation failed because AWS WAF didn't recognize a parameter in the
754//   request. For example:
755//
756//      * You specified an invalid parameter name.
757//
758//      * You specified an invalid value.
759//
760//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
761//      using an action other than INSERT or DELETE.
762//
763//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
764//      BLOCK, or COUNT.
765//
766//      * You tried to create a RateBasedRule with a RateKey value other than
767//      IP.
768//
769//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
770//      BLOCK, or COUNT.
771//
772//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
773//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
774//
775//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
776//      for Data.
777//
778//      * Your request references an ARN that is malformed, or corresponds to
779//      a resource with which a web ACL cannot be associated.
780//
781//   * WAFLimitsExceededException
782//   The operation exceeds a resource limit, for example, the maximum number of
783//   WebACL objects that you can create for an AWS account. For more information,
784//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
785//   in the AWS WAF Developer Guide.
786//
787//   * WAFTagOperationException
788//
789//   * WAFTagOperationInternalErrorException
790//
791//   * WAFBadRequestException
792//
793// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRateBasedRule
794func (c *WAFRegional) CreateRateBasedRule(input *waf.CreateRateBasedRuleInput) (*waf.CreateRateBasedRuleOutput, error) {
795	req, out := c.CreateRateBasedRuleRequest(input)
796	return out, req.Send()
797}
798
799// CreateRateBasedRuleWithContext is the same as CreateRateBasedRule with the addition of
800// the ability to pass a context and additional request options.
801//
802// See CreateRateBasedRule for details on how to use this API operation.
803//
804// The context must be non-nil and will be used for request cancellation. If
805// the context is nil a panic will occur. In the future the SDK may create
806// sub-contexts for http.Requests. See https://golang.org/pkg/context/
807// for more information on using Contexts.
808func (c *WAFRegional) CreateRateBasedRuleWithContext(ctx aws.Context, input *waf.CreateRateBasedRuleInput, opts ...request.Option) (*waf.CreateRateBasedRuleOutput, error) {
809	req, out := c.CreateRateBasedRuleRequest(input)
810	req.SetContext(ctx)
811	req.ApplyOptions(opts...)
812	return out, req.Send()
813}
814
815const opCreateRegexMatchSet = "CreateRegexMatchSet"
816
817// CreateRegexMatchSetRequest generates a "aws/request.Request" representing the
818// client's request for the CreateRegexMatchSet operation. The "output" return
819// value will be populated with the request's response once the request completes
820// successfully.
821//
822// Use "Send" method on the returned Request to send the API call to the service.
823// the "output" return value is not valid until after Send returns without error.
824//
825// See CreateRegexMatchSet for more information on using the CreateRegexMatchSet
826// API call, and error handling.
827//
828// This method is useful when you want to inject custom logic or configuration
829// into the SDK's request lifecycle. Such as custom headers, or retry logic.
830//
831//
832//    // Example sending a request using the CreateRegexMatchSetRequest method.
833//    req, resp := client.CreateRegexMatchSetRequest(params)
834//
835//    err := req.Send()
836//    if err == nil { // resp is now filled
837//        fmt.Println(resp)
838//    }
839//
840// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexMatchSet
841func (c *WAFRegional) CreateRegexMatchSetRequest(input *waf.CreateRegexMatchSetInput) (req *request.Request, output *waf.CreateRegexMatchSetOutput) {
842	op := &request.Operation{
843		Name:       opCreateRegexMatchSet,
844		HTTPMethod: "POST",
845		HTTPPath:   "/",
846	}
847
848	if input == nil {
849		input = &waf.CreateRegexMatchSetInput{}
850	}
851
852	output = &waf.CreateRegexMatchSetOutput{}
853	req = c.newRequest(op, input, output)
854	return
855}
856
857// CreateRegexMatchSet API operation for AWS WAF Regional.
858//
859//
860// This is AWS WAF Classic documentation. For more information, see AWS WAF
861// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
862// in the developer guide.
863//
864// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
865// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
866// With the latest version, AWS WAF has a single set of endpoints for regional
867// and global use.
868//
869// Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the
870// part of a web request that you want AWS WAF to inspect, such as the values
871// of the User-Agent header or the query string. For example, you can create
872// a RegexMatchSet that contains a RegexMatchTuple that looks for any requests
873// with User-Agent headers that match a RegexPatternSet with pattern B[a@]dB[o0]t.
874// You can then configure AWS WAF to reject those requests.
875//
876// To create and configure a RegexMatchSet, perform the following steps:
877//
878// Use GetChangeToken to get the change token that you provide in the ChangeToken
879// parameter of a CreateRegexMatchSet request.
880//
881// Submit a CreateRegexMatchSet request.
882//
883// Use GetChangeToken to get the change token that you provide in the ChangeToken
884// parameter of an UpdateRegexMatchSet request.
885//
886// Submit an UpdateRegexMatchSet request to specify the part of the request
887// that you want AWS WAF to inspect (for example, the header or the URI) and
888// the value, using a RegexPatternSet, that you want AWS WAF to watch for.
889//
890// For more information about how to use the AWS WAF API to allow or block HTTP
891// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
892//
893// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
894// with awserr.Error's Code and Message methods to get detailed information about
895// the error.
896//
897// See the AWS API reference guide for AWS WAF Regional's
898// API operation CreateRegexMatchSet for usage and error information.
899//
900// Returned Error Types:
901//   * WAFStaleDataException
902//   The operation failed because you tried to create, update, or delete an object
903//   by using a change token that has already been used.
904//
905//   * WAFInternalErrorException
906//   The operation failed because of a system problem, even though the request
907//   was valid. Retry your request.
908//
909//   * WAFDisallowedNameException
910//   The name specified is invalid.
911//
912//   * WAFLimitsExceededException
913//   The operation exceeds a resource limit, for example, the maximum number of
914//   WebACL objects that you can create for an AWS account. For more information,
915//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
916//   in the AWS WAF Developer Guide.
917//
918// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexMatchSet
919func (c *WAFRegional) CreateRegexMatchSet(input *waf.CreateRegexMatchSetInput) (*waf.CreateRegexMatchSetOutput, error) {
920	req, out := c.CreateRegexMatchSetRequest(input)
921	return out, req.Send()
922}
923
924// CreateRegexMatchSetWithContext is the same as CreateRegexMatchSet with the addition of
925// the ability to pass a context and additional request options.
926//
927// See CreateRegexMatchSet for details on how to use this API operation.
928//
929// The context must be non-nil and will be used for request cancellation. If
930// the context is nil a panic will occur. In the future the SDK may create
931// sub-contexts for http.Requests. See https://golang.org/pkg/context/
932// for more information on using Contexts.
933func (c *WAFRegional) CreateRegexMatchSetWithContext(ctx aws.Context, input *waf.CreateRegexMatchSetInput, opts ...request.Option) (*waf.CreateRegexMatchSetOutput, error) {
934	req, out := c.CreateRegexMatchSetRequest(input)
935	req.SetContext(ctx)
936	req.ApplyOptions(opts...)
937	return out, req.Send()
938}
939
940const opCreateRegexPatternSet = "CreateRegexPatternSet"
941
942// CreateRegexPatternSetRequest generates a "aws/request.Request" representing the
943// client's request for the CreateRegexPatternSet operation. The "output" return
944// value will be populated with the request's response once the request completes
945// successfully.
946//
947// Use "Send" method on the returned Request to send the API call to the service.
948// the "output" return value is not valid until after Send returns without error.
949//
950// See CreateRegexPatternSet for more information on using the CreateRegexPatternSet
951// API call, and error handling.
952//
953// This method is useful when you want to inject custom logic or configuration
954// into the SDK's request lifecycle. Such as custom headers, or retry logic.
955//
956//
957//    // Example sending a request using the CreateRegexPatternSetRequest method.
958//    req, resp := client.CreateRegexPatternSetRequest(params)
959//
960//    err := req.Send()
961//    if err == nil { // resp is now filled
962//        fmt.Println(resp)
963//    }
964//
965// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexPatternSet
966func (c *WAFRegional) CreateRegexPatternSetRequest(input *waf.CreateRegexPatternSetInput) (req *request.Request, output *waf.CreateRegexPatternSetOutput) {
967	op := &request.Operation{
968		Name:       opCreateRegexPatternSet,
969		HTTPMethod: "POST",
970		HTTPPath:   "/",
971	}
972
973	if input == nil {
974		input = &waf.CreateRegexPatternSetInput{}
975	}
976
977	output = &waf.CreateRegexPatternSetOutput{}
978	req = c.newRequest(op, input, output)
979	return
980}
981
982// CreateRegexPatternSet API operation for AWS WAF Regional.
983//
984//
985// This is AWS WAF Classic documentation. For more information, see AWS WAF
986// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
987// in the developer guide.
988//
989// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
990// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
991// With the latest version, AWS WAF has a single set of endpoints for regional
992// and global use.
993//
994// Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify
995// the regular expression (regex) pattern that you want AWS WAF to search for,
996// such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.
997//
998// To create and configure a RegexPatternSet, perform the following steps:
999//
1000// Use GetChangeToken to get the change token that you provide in the ChangeToken
1001// parameter of a CreateRegexPatternSet request.
1002//
1003// Submit a CreateRegexPatternSet request.
1004//
1005// Use GetChangeToken to get the change token that you provide in the ChangeToken
1006// parameter of an UpdateRegexPatternSet request.
1007//
1008// Submit an UpdateRegexPatternSet request to specify the string that you want
1009// AWS WAF to watch for.
1010//
1011// For more information about how to use the AWS WAF API to allow or block HTTP
1012// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1013//
1014// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1015// with awserr.Error's Code and Message methods to get detailed information about
1016// the error.
1017//
1018// See the AWS API reference guide for AWS WAF Regional's
1019// API operation CreateRegexPatternSet for usage and error information.
1020//
1021// Returned Error Types:
1022//   * WAFStaleDataException
1023//   The operation failed because you tried to create, update, or delete an object
1024//   by using a change token that has already been used.
1025//
1026//   * WAFInternalErrorException
1027//   The operation failed because of a system problem, even though the request
1028//   was valid. Retry your request.
1029//
1030//   * WAFDisallowedNameException
1031//   The name specified is invalid.
1032//
1033//   * WAFLimitsExceededException
1034//   The operation exceeds a resource limit, for example, the maximum number of
1035//   WebACL objects that you can create for an AWS account. For more information,
1036//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1037//   in the AWS WAF Developer Guide.
1038//
1039// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexPatternSet
1040func (c *WAFRegional) CreateRegexPatternSet(input *waf.CreateRegexPatternSetInput) (*waf.CreateRegexPatternSetOutput, error) {
1041	req, out := c.CreateRegexPatternSetRequest(input)
1042	return out, req.Send()
1043}
1044
1045// CreateRegexPatternSetWithContext is the same as CreateRegexPatternSet with the addition of
1046// the ability to pass a context and additional request options.
1047//
1048// See CreateRegexPatternSet for details on how to use this API operation.
1049//
1050// The context must be non-nil and will be used for request cancellation. If
1051// the context is nil a panic will occur. In the future the SDK may create
1052// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1053// for more information on using Contexts.
1054func (c *WAFRegional) CreateRegexPatternSetWithContext(ctx aws.Context, input *waf.CreateRegexPatternSetInput, opts ...request.Option) (*waf.CreateRegexPatternSetOutput, error) {
1055	req, out := c.CreateRegexPatternSetRequest(input)
1056	req.SetContext(ctx)
1057	req.ApplyOptions(opts...)
1058	return out, req.Send()
1059}
1060
1061const opCreateRule = "CreateRule"
1062
1063// CreateRuleRequest generates a "aws/request.Request" representing the
1064// client's request for the CreateRule operation. The "output" return
1065// value will be populated with the request's response once the request completes
1066// successfully.
1067//
1068// Use "Send" method on the returned Request to send the API call to the service.
1069// the "output" return value is not valid until after Send returns without error.
1070//
1071// See CreateRule for more information on using the CreateRule
1072// API call, and error handling.
1073//
1074// This method is useful when you want to inject custom logic or configuration
1075// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1076//
1077//
1078//    // Example sending a request using the CreateRuleRequest method.
1079//    req, resp := client.CreateRuleRequest(params)
1080//
1081//    err := req.Send()
1082//    if err == nil { // resp is now filled
1083//        fmt.Println(resp)
1084//    }
1085//
1086// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRule
1087func (c *WAFRegional) CreateRuleRequest(input *waf.CreateRuleInput) (req *request.Request, output *waf.CreateRuleOutput) {
1088	op := &request.Operation{
1089		Name:       opCreateRule,
1090		HTTPMethod: "POST",
1091		HTTPPath:   "/",
1092	}
1093
1094	if input == nil {
1095		input = &waf.CreateRuleInput{}
1096	}
1097
1098	output = &waf.CreateRuleOutput{}
1099	req = c.newRequest(op, input, output)
1100	return
1101}
1102
1103// CreateRule API operation for AWS WAF Regional.
1104//
1105//
1106// This is AWS WAF Classic documentation. For more information, see AWS WAF
1107// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
1108// in the developer guide.
1109//
1110// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
1111// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
1112// With the latest version, AWS WAF has a single set of endpoints for regional
1113// and global use.
1114//
1115// Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and
1116// other predicates that identify the requests that you want to block. If you
1117// add more than one predicate to a Rule, a request must match all of the specifications
1118// to be allowed or blocked. For example, suppose that you add the following
1119// to a Rule:
1120//
1121//    * An IPSet that matches the IP address 192.0.2.44/32
1122//
1123//    * A ByteMatchSet that matches BadBot in the User-Agent header
1124//
1125// You then add the Rule to a WebACL and specify that you want to blocks requests
1126// that satisfy the Rule. For a request to be blocked, it must come from the
1127// IP address 192.0.2.44 and the User-Agent header in the request must contain
1128// the value BadBot.
1129//
1130// To create and configure a Rule, perform the following steps:
1131//
1132// Create and update the predicates that you want to include in the Rule. For
1133// more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.
1134//
1135// Use GetChangeToken to get the change token that you provide in the ChangeToken
1136// parameter of a CreateRule request.
1137//
1138// Submit a CreateRule request.
1139//
1140// Use GetChangeToken to get the change token that you provide in the ChangeToken
1141// parameter of an UpdateRule request.
1142//
1143// Submit an UpdateRule request to specify the predicates that you want to include
1144// in the Rule.
1145//
1146// Create and update a WebACL that contains the Rule. For more information,
1147// see CreateWebACL.
1148//
1149// For more information about how to use the AWS WAF API to allow or block HTTP
1150// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1151//
1152// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1153// with awserr.Error's Code and Message methods to get detailed information about
1154// the error.
1155//
1156// See the AWS API reference guide for AWS WAF Regional's
1157// API operation CreateRule for usage and error information.
1158//
1159// Returned Error Types:
1160//   * WAFStaleDataException
1161//   The operation failed because you tried to create, update, or delete an object
1162//   by using a change token that has already been used.
1163//
1164//   * WAFInternalErrorException
1165//   The operation failed because of a system problem, even though the request
1166//   was valid. Retry your request.
1167//
1168//   * WAFDisallowedNameException
1169//   The name specified is invalid.
1170//
1171//   * WAFInvalidParameterException
1172//   The operation failed because AWS WAF didn't recognize a parameter in the
1173//   request. For example:
1174//
1175//      * You specified an invalid parameter name.
1176//
1177//      * You specified an invalid value.
1178//
1179//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1180//      using an action other than INSERT or DELETE.
1181//
1182//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1183//      BLOCK, or COUNT.
1184//
1185//      * You tried to create a RateBasedRule with a RateKey value other than
1186//      IP.
1187//
1188//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1189//      BLOCK, or COUNT.
1190//
1191//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1192//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1193//
1194//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1195//      for Data.
1196//
1197//      * Your request references an ARN that is malformed, or corresponds to
1198//      a resource with which a web ACL cannot be associated.
1199//
1200//   * WAFLimitsExceededException
1201//   The operation exceeds a resource limit, for example, the maximum number of
1202//   WebACL objects that you can create for an AWS account. For more information,
1203//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1204//   in the AWS WAF Developer Guide.
1205//
1206//   * WAFTagOperationException
1207//
1208//   * WAFTagOperationInternalErrorException
1209//
1210//   * WAFBadRequestException
1211//
1212// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRule
1213func (c *WAFRegional) CreateRule(input *waf.CreateRuleInput) (*waf.CreateRuleOutput, error) {
1214	req, out := c.CreateRuleRequest(input)
1215	return out, req.Send()
1216}
1217
1218// CreateRuleWithContext is the same as CreateRule with the addition of
1219// the ability to pass a context and additional request options.
1220//
1221// See CreateRule for details on how to use this API operation.
1222//
1223// The context must be non-nil and will be used for request cancellation. If
1224// the context is nil a panic will occur. In the future the SDK may create
1225// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1226// for more information on using Contexts.
1227func (c *WAFRegional) CreateRuleWithContext(ctx aws.Context, input *waf.CreateRuleInput, opts ...request.Option) (*waf.CreateRuleOutput, error) {
1228	req, out := c.CreateRuleRequest(input)
1229	req.SetContext(ctx)
1230	req.ApplyOptions(opts...)
1231	return out, req.Send()
1232}
1233
1234const opCreateRuleGroup = "CreateRuleGroup"
1235
1236// CreateRuleGroupRequest generates a "aws/request.Request" representing the
1237// client's request for the CreateRuleGroup operation. The "output" return
1238// value will be populated with the request's response once the request completes
1239// successfully.
1240//
1241// Use "Send" method on the returned Request to send the API call to the service.
1242// the "output" return value is not valid until after Send returns without error.
1243//
1244// See CreateRuleGroup for more information on using the CreateRuleGroup
1245// API call, and error handling.
1246//
1247// This method is useful when you want to inject custom logic or configuration
1248// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1249//
1250//
1251//    // Example sending a request using the CreateRuleGroupRequest method.
1252//    req, resp := client.CreateRuleGroupRequest(params)
1253//
1254//    err := req.Send()
1255//    if err == nil { // resp is now filled
1256//        fmt.Println(resp)
1257//    }
1258//
1259// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRuleGroup
1260func (c *WAFRegional) CreateRuleGroupRequest(input *waf.CreateRuleGroupInput) (req *request.Request, output *waf.CreateRuleGroupOutput) {
1261	op := &request.Operation{
1262		Name:       opCreateRuleGroup,
1263		HTTPMethod: "POST",
1264		HTTPPath:   "/",
1265	}
1266
1267	if input == nil {
1268		input = &waf.CreateRuleGroupInput{}
1269	}
1270
1271	output = &waf.CreateRuleGroupOutput{}
1272	req = c.newRequest(op, input, output)
1273	return
1274}
1275
1276// CreateRuleGroup API operation for AWS WAF Regional.
1277//
1278//
1279// This is AWS WAF Classic documentation. For more information, see AWS WAF
1280// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
1281// in the developer guide.
1282//
1283// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
1284// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
1285// With the latest version, AWS WAF has a single set of endpoints for regional
1286// and global use.
1287//
1288// Creates a RuleGroup. A rule group is a collection of predefined rules that
1289// you add to a web ACL. You use UpdateRuleGroup to add rules to the rule group.
1290//
1291// Rule groups are subject to the following limits:
1292//
1293//    * Three rule groups per account. You can request an increase to this limit
1294//    by contacting customer support.
1295//
1296//    * One rule group per web ACL.
1297//
1298//    * Ten rules per rule group.
1299//
1300// For more information about how to use the AWS WAF API to allow or block HTTP
1301// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1302//
1303// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1304// with awserr.Error's Code and Message methods to get detailed information about
1305// the error.
1306//
1307// See the AWS API reference guide for AWS WAF Regional's
1308// API operation CreateRuleGroup for usage and error information.
1309//
1310// Returned Error Types:
1311//   * WAFStaleDataException
1312//   The operation failed because you tried to create, update, or delete an object
1313//   by using a change token that has already been used.
1314//
1315//   * WAFInternalErrorException
1316//   The operation failed because of a system problem, even though the request
1317//   was valid. Retry your request.
1318//
1319//   * WAFDisallowedNameException
1320//   The name specified is invalid.
1321//
1322//   * WAFLimitsExceededException
1323//   The operation exceeds a resource limit, for example, the maximum number of
1324//   WebACL objects that you can create for an AWS account. For more information,
1325//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1326//   in the AWS WAF Developer Guide.
1327//
1328//   * WAFTagOperationException
1329//
1330//   * WAFTagOperationInternalErrorException
1331//
1332//   * WAFBadRequestException
1333//
1334// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRuleGroup
1335func (c *WAFRegional) CreateRuleGroup(input *waf.CreateRuleGroupInput) (*waf.CreateRuleGroupOutput, error) {
1336	req, out := c.CreateRuleGroupRequest(input)
1337	return out, req.Send()
1338}
1339
1340// CreateRuleGroupWithContext is the same as CreateRuleGroup with the addition of
1341// the ability to pass a context and additional request options.
1342//
1343// See CreateRuleGroup for details on how to use this API operation.
1344//
1345// The context must be non-nil and will be used for request cancellation. If
1346// the context is nil a panic will occur. In the future the SDK may create
1347// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1348// for more information on using Contexts.
1349func (c *WAFRegional) CreateRuleGroupWithContext(ctx aws.Context, input *waf.CreateRuleGroupInput, opts ...request.Option) (*waf.CreateRuleGroupOutput, error) {
1350	req, out := c.CreateRuleGroupRequest(input)
1351	req.SetContext(ctx)
1352	req.ApplyOptions(opts...)
1353	return out, req.Send()
1354}
1355
1356const opCreateSizeConstraintSet = "CreateSizeConstraintSet"
1357
1358// CreateSizeConstraintSetRequest generates a "aws/request.Request" representing the
1359// client's request for the CreateSizeConstraintSet operation. The "output" return
1360// value will be populated with the request's response once the request completes
1361// successfully.
1362//
1363// Use "Send" method on the returned Request to send the API call to the service.
1364// the "output" return value is not valid until after Send returns without error.
1365//
1366// See CreateSizeConstraintSet for more information on using the CreateSizeConstraintSet
1367// API call, and error handling.
1368//
1369// This method is useful when you want to inject custom logic or configuration
1370// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1371//
1372//
1373//    // Example sending a request using the CreateSizeConstraintSetRequest method.
1374//    req, resp := client.CreateSizeConstraintSetRequest(params)
1375//
1376//    err := req.Send()
1377//    if err == nil { // resp is now filled
1378//        fmt.Println(resp)
1379//    }
1380//
1381// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSizeConstraintSet
1382func (c *WAFRegional) CreateSizeConstraintSetRequest(input *waf.CreateSizeConstraintSetInput) (req *request.Request, output *waf.CreateSizeConstraintSetOutput) {
1383	op := &request.Operation{
1384		Name:       opCreateSizeConstraintSet,
1385		HTTPMethod: "POST",
1386		HTTPPath:   "/",
1387	}
1388
1389	if input == nil {
1390		input = &waf.CreateSizeConstraintSetInput{}
1391	}
1392
1393	output = &waf.CreateSizeConstraintSetOutput{}
1394	req = c.newRequest(op, input, output)
1395	return
1396}
1397
1398// CreateSizeConstraintSet API operation for AWS WAF Regional.
1399//
1400//
1401// This is AWS WAF Classic documentation. For more information, see AWS WAF
1402// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
1403// in the developer guide.
1404//
1405// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
1406// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
1407// With the latest version, AWS WAF has a single set of endpoints for regional
1408// and global use.
1409//
1410// Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify
1411// the part of a web request that you want AWS WAF to check for length, such
1412// as the length of the User-Agent header or the length of the query string.
1413// For example, you can create a SizeConstraintSet that matches any requests
1414// that have a query string that is longer than 100 bytes. You can then configure
1415// AWS WAF to reject those requests.
1416//
1417// To create and configure a SizeConstraintSet, perform the following steps:
1418//
1419// Use GetChangeToken to get the change token that you provide in the ChangeToken
1420// parameter of a CreateSizeConstraintSet request.
1421//
1422// Submit a CreateSizeConstraintSet request.
1423//
1424// Use GetChangeToken to get the change token that you provide in the ChangeToken
1425// parameter of an UpdateSizeConstraintSet request.
1426//
1427// Submit an UpdateSizeConstraintSet request to specify the part of the request
1428// that you want AWS WAF to inspect (for example, the header or the URI) and
1429// the value that you want AWS WAF to watch for.
1430//
1431// For more information about how to use the AWS WAF API to allow or block HTTP
1432// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1433//
1434// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1435// with awserr.Error's Code and Message methods to get detailed information about
1436// the error.
1437//
1438// See the AWS API reference guide for AWS WAF Regional's
1439// API operation CreateSizeConstraintSet for usage and error information.
1440//
1441// Returned Error Types:
1442//   * WAFStaleDataException
1443//   The operation failed because you tried to create, update, or delete an object
1444//   by using a change token that has already been used.
1445//
1446//   * WAFInternalErrorException
1447//   The operation failed because of a system problem, even though the request
1448//   was valid. Retry your request.
1449//
1450//   * WAFInvalidAccountException
1451//   The operation failed because you tried to create, update, or delete an object
1452//   by using an invalid account identifier.
1453//
1454//   * WAFDisallowedNameException
1455//   The name specified is invalid.
1456//
1457//   * WAFInvalidParameterException
1458//   The operation failed because AWS WAF didn't recognize a parameter in the
1459//   request. For example:
1460//
1461//      * You specified an invalid parameter name.
1462//
1463//      * You specified an invalid value.
1464//
1465//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1466//      using an action other than INSERT or DELETE.
1467//
1468//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1469//      BLOCK, or COUNT.
1470//
1471//      * You tried to create a RateBasedRule with a RateKey value other than
1472//      IP.
1473//
1474//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1475//      BLOCK, or COUNT.
1476//
1477//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1478//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1479//
1480//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1481//      for Data.
1482//
1483//      * Your request references an ARN that is malformed, or corresponds to
1484//      a resource with which a web ACL cannot be associated.
1485//
1486//   * WAFLimitsExceededException
1487//   The operation exceeds a resource limit, for example, the maximum number of
1488//   WebACL objects that you can create for an AWS account. For more information,
1489//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1490//   in the AWS WAF Developer Guide.
1491//
1492// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSizeConstraintSet
1493func (c *WAFRegional) CreateSizeConstraintSet(input *waf.CreateSizeConstraintSetInput) (*waf.CreateSizeConstraintSetOutput, error) {
1494	req, out := c.CreateSizeConstraintSetRequest(input)
1495	return out, req.Send()
1496}
1497
1498// CreateSizeConstraintSetWithContext is the same as CreateSizeConstraintSet with the addition of
1499// the ability to pass a context and additional request options.
1500//
1501// See CreateSizeConstraintSet for details on how to use this API operation.
1502//
1503// The context must be non-nil and will be used for request cancellation. If
1504// the context is nil a panic will occur. In the future the SDK may create
1505// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1506// for more information on using Contexts.
1507func (c *WAFRegional) CreateSizeConstraintSetWithContext(ctx aws.Context, input *waf.CreateSizeConstraintSetInput, opts ...request.Option) (*waf.CreateSizeConstraintSetOutput, error) {
1508	req, out := c.CreateSizeConstraintSetRequest(input)
1509	req.SetContext(ctx)
1510	req.ApplyOptions(opts...)
1511	return out, req.Send()
1512}
1513
1514const opCreateSqlInjectionMatchSet = "CreateSqlInjectionMatchSet"
1515
1516// CreateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
1517// client's request for the CreateSqlInjectionMatchSet operation. The "output" return
1518// value will be populated with the request's response once the request completes
1519// successfully.
1520//
1521// Use "Send" method on the returned Request to send the API call to the service.
1522// the "output" return value is not valid until after Send returns without error.
1523//
1524// See CreateSqlInjectionMatchSet for more information on using the CreateSqlInjectionMatchSet
1525// API call, and error handling.
1526//
1527// This method is useful when you want to inject custom logic or configuration
1528// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1529//
1530//
1531//    // Example sending a request using the CreateSqlInjectionMatchSetRequest method.
1532//    req, resp := client.CreateSqlInjectionMatchSetRequest(params)
1533//
1534//    err := req.Send()
1535//    if err == nil { // resp is now filled
1536//        fmt.Println(resp)
1537//    }
1538//
1539// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSqlInjectionMatchSet
1540func (c *WAFRegional) CreateSqlInjectionMatchSetRequest(input *waf.CreateSqlInjectionMatchSetInput) (req *request.Request, output *waf.CreateSqlInjectionMatchSetOutput) {
1541	op := &request.Operation{
1542		Name:       opCreateSqlInjectionMatchSet,
1543		HTTPMethod: "POST",
1544		HTTPPath:   "/",
1545	}
1546
1547	if input == nil {
1548		input = &waf.CreateSqlInjectionMatchSetInput{}
1549	}
1550
1551	output = &waf.CreateSqlInjectionMatchSetOutput{}
1552	req = c.newRequest(op, input, output)
1553	return
1554}
1555
1556// CreateSqlInjectionMatchSet API operation for AWS WAF Regional.
1557//
1558//
1559// This is AWS WAF Classic documentation. For more information, see AWS WAF
1560// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
1561// in the developer guide.
1562//
1563// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
1564// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
1565// With the latest version, AWS WAF has a single set of endpoints for regional
1566// and global use.
1567//
1568// Creates a SqlInjectionMatchSet, which you use to allow, block, or count requests
1569// that contain snippets of SQL code in a specified part of web requests. AWS
1570// WAF searches for character sequences that are likely to be malicious strings.
1571//
1572// To create and configure a SqlInjectionMatchSet, perform the following steps:
1573//
1574// Use GetChangeToken to get the change token that you provide in the ChangeToken
1575// parameter of a CreateSqlInjectionMatchSet request.
1576//
1577// Submit a CreateSqlInjectionMatchSet request.
1578//
1579// Use GetChangeToken to get the change token that you provide in the ChangeToken
1580// parameter of an UpdateSqlInjectionMatchSet request.
1581//
1582// Submit an UpdateSqlInjectionMatchSet request to specify the parts of web
1583// requests in which you want to allow, block, or count malicious SQL code.
1584//
1585// For more information about how to use the AWS WAF API to allow or block HTTP
1586// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1587//
1588// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1589// with awserr.Error's Code and Message methods to get detailed information about
1590// the error.
1591//
1592// See the AWS API reference guide for AWS WAF Regional's
1593// API operation CreateSqlInjectionMatchSet for usage and error information.
1594//
1595// Returned Error Types:
1596//   * WAFDisallowedNameException
1597//   The name specified is invalid.
1598//
1599//   * WAFInternalErrorException
1600//   The operation failed because of a system problem, even though the request
1601//   was valid. Retry your request.
1602//
1603//   * WAFInvalidAccountException
1604//   The operation failed because you tried to create, update, or delete an object
1605//   by using an invalid account identifier.
1606//
1607//   * WAFInvalidParameterException
1608//   The operation failed because AWS WAF didn't recognize a parameter in the
1609//   request. For example:
1610//
1611//      * You specified an invalid parameter name.
1612//
1613//      * You specified an invalid value.
1614//
1615//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1616//      using an action other than INSERT or DELETE.
1617//
1618//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1619//      BLOCK, or COUNT.
1620//
1621//      * You tried to create a RateBasedRule with a RateKey value other than
1622//      IP.
1623//
1624//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1625//      BLOCK, or COUNT.
1626//
1627//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1628//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1629//
1630//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1631//      for Data.
1632//
1633//      * Your request references an ARN that is malformed, or corresponds to
1634//      a resource with which a web ACL cannot be associated.
1635//
1636//   * WAFStaleDataException
1637//   The operation failed because you tried to create, update, or delete an object
1638//   by using a change token that has already been used.
1639//
1640//   * WAFLimitsExceededException
1641//   The operation exceeds a resource limit, for example, the maximum number of
1642//   WebACL objects that you can create for an AWS account. For more information,
1643//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1644//   in the AWS WAF Developer Guide.
1645//
1646// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSqlInjectionMatchSet
1647func (c *WAFRegional) CreateSqlInjectionMatchSet(input *waf.CreateSqlInjectionMatchSetInput) (*waf.CreateSqlInjectionMatchSetOutput, error) {
1648	req, out := c.CreateSqlInjectionMatchSetRequest(input)
1649	return out, req.Send()
1650}
1651
1652// CreateSqlInjectionMatchSetWithContext is the same as CreateSqlInjectionMatchSet with the addition of
1653// the ability to pass a context and additional request options.
1654//
1655// See CreateSqlInjectionMatchSet for details on how to use this API operation.
1656//
1657// The context must be non-nil and will be used for request cancellation. If
1658// the context is nil a panic will occur. In the future the SDK may create
1659// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1660// for more information on using Contexts.
1661func (c *WAFRegional) CreateSqlInjectionMatchSetWithContext(ctx aws.Context, input *waf.CreateSqlInjectionMatchSetInput, opts ...request.Option) (*waf.CreateSqlInjectionMatchSetOutput, error) {
1662	req, out := c.CreateSqlInjectionMatchSetRequest(input)
1663	req.SetContext(ctx)
1664	req.ApplyOptions(opts...)
1665	return out, req.Send()
1666}
1667
1668const opCreateWebACL = "CreateWebACL"
1669
1670// CreateWebACLRequest generates a "aws/request.Request" representing the
1671// client's request for the CreateWebACL operation. The "output" return
1672// value will be populated with the request's response once the request completes
1673// successfully.
1674//
1675// Use "Send" method on the returned Request to send the API call to the service.
1676// the "output" return value is not valid until after Send returns without error.
1677//
1678// See CreateWebACL for more information on using the CreateWebACL
1679// API call, and error handling.
1680//
1681// This method is useful when you want to inject custom logic or configuration
1682// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1683//
1684//
1685//    // Example sending a request using the CreateWebACLRequest method.
1686//    req, resp := client.CreateWebACLRequest(params)
1687//
1688//    err := req.Send()
1689//    if err == nil { // resp is now filled
1690//        fmt.Println(resp)
1691//    }
1692//
1693// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateWebACL
1694func (c *WAFRegional) CreateWebACLRequest(input *waf.CreateWebACLInput) (req *request.Request, output *waf.CreateWebACLOutput) {
1695	op := &request.Operation{
1696		Name:       opCreateWebACL,
1697		HTTPMethod: "POST",
1698		HTTPPath:   "/",
1699	}
1700
1701	if input == nil {
1702		input = &waf.CreateWebACLInput{}
1703	}
1704
1705	output = &waf.CreateWebACLOutput{}
1706	req = c.newRequest(op, input, output)
1707	return
1708}
1709
1710// CreateWebACL API operation for AWS WAF Regional.
1711//
1712//
1713// This is AWS WAF Classic documentation. For more information, see AWS WAF
1714// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
1715// in the developer guide.
1716//
1717// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
1718// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
1719// With the latest version, AWS WAF has a single set of endpoints for regional
1720// and global use.
1721//
1722// Creates a WebACL, which contains the Rules that identify the CloudFront web
1723// requests that you want to allow, block, or count. AWS WAF evaluates Rules
1724// in order based on the value of Priority for each Rule.
1725//
1726// You also specify a default action, either ALLOW or BLOCK. If a web request
1727// doesn't match any of the Rules in a WebACL, AWS WAF responds to the request
1728// with the default action.
1729//
1730// To create and configure a WebACL, perform the following steps:
1731//
1732// Create and update the ByteMatchSet objects and other predicates that you
1733// want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet,
1734// CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.
1735//
1736// Create and update the Rules that you want to include in the WebACL. For more
1737// information, see CreateRule and UpdateRule.
1738//
1739// Use GetChangeToken to get the change token that you provide in the ChangeToken
1740// parameter of a CreateWebACL request.
1741//
1742// Submit a CreateWebACL request.
1743//
1744// Use GetChangeToken to get the change token that you provide in the ChangeToken
1745// parameter of an UpdateWebACL request.
1746//
1747// Submit an UpdateWebACL request to specify the Rules that you want to include
1748// in the WebACL, to specify the default action, and to associate the WebACL
1749// with a CloudFront distribution.
1750//
1751// For more information about how to use the AWS WAF API, see the AWS WAF Developer
1752// Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1753//
1754// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1755// with awserr.Error's Code and Message methods to get detailed information about
1756// the error.
1757//
1758// See the AWS API reference guide for AWS WAF Regional's
1759// API operation CreateWebACL for usage and error information.
1760//
1761// Returned Error Types:
1762//   * WAFStaleDataException
1763//   The operation failed because you tried to create, update, or delete an object
1764//   by using a change token that has already been used.
1765//
1766//   * WAFInternalErrorException
1767//   The operation failed because of a system problem, even though the request
1768//   was valid. Retry your request.
1769//
1770//   * WAFInvalidAccountException
1771//   The operation failed because you tried to create, update, or delete an object
1772//   by using an invalid account identifier.
1773//
1774//   * WAFDisallowedNameException
1775//   The name specified is invalid.
1776//
1777//   * WAFInvalidParameterException
1778//   The operation failed because AWS WAF didn't recognize a parameter in the
1779//   request. For example:
1780//
1781//      * You specified an invalid parameter name.
1782//
1783//      * You specified an invalid value.
1784//
1785//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1786//      using an action other than INSERT or DELETE.
1787//
1788//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1789//      BLOCK, or COUNT.
1790//
1791//      * You tried to create a RateBasedRule with a RateKey value other than
1792//      IP.
1793//
1794//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1795//      BLOCK, or COUNT.
1796//
1797//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1798//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1799//
1800//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1801//      for Data.
1802//
1803//      * Your request references an ARN that is malformed, or corresponds to
1804//      a resource with which a web ACL cannot be associated.
1805//
1806//   * WAFLimitsExceededException
1807//   The operation exceeds a resource limit, for example, the maximum number of
1808//   WebACL objects that you can create for an AWS account. For more information,
1809//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1810//   in the AWS WAF Developer Guide.
1811//
1812//   * WAFTagOperationException
1813//
1814//   * WAFTagOperationInternalErrorException
1815//
1816//   * WAFBadRequestException
1817//
1818// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateWebACL
1819func (c *WAFRegional) CreateWebACL(input *waf.CreateWebACLInput) (*waf.CreateWebACLOutput, error) {
1820	req, out := c.CreateWebACLRequest(input)
1821	return out, req.Send()
1822}
1823
1824// CreateWebACLWithContext is the same as CreateWebACL with the addition of
1825// the ability to pass a context and additional request options.
1826//
1827// See CreateWebACL for details on how to use this API operation.
1828//
1829// The context must be non-nil and will be used for request cancellation. If
1830// the context is nil a panic will occur. In the future the SDK may create
1831// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1832// for more information on using Contexts.
1833func (c *WAFRegional) CreateWebACLWithContext(ctx aws.Context, input *waf.CreateWebACLInput, opts ...request.Option) (*waf.CreateWebACLOutput, error) {
1834	req, out := c.CreateWebACLRequest(input)
1835	req.SetContext(ctx)
1836	req.ApplyOptions(opts...)
1837	return out, req.Send()
1838}
1839
1840const opCreateWebACLMigrationStack = "CreateWebACLMigrationStack"
1841
1842// CreateWebACLMigrationStackRequest generates a "aws/request.Request" representing the
1843// client's request for the CreateWebACLMigrationStack operation. The "output" return
1844// value will be populated with the request's response once the request completes
1845// successfully.
1846//
1847// Use "Send" method on the returned Request to send the API call to the service.
1848// the "output" return value is not valid until after Send returns without error.
1849//
1850// See CreateWebACLMigrationStack for more information on using the CreateWebACLMigrationStack
1851// API call, and error handling.
1852//
1853// This method is useful when you want to inject custom logic or configuration
1854// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1855//
1856//
1857//    // Example sending a request using the CreateWebACLMigrationStackRequest method.
1858//    req, resp := client.CreateWebACLMigrationStackRequest(params)
1859//
1860//    err := req.Send()
1861//    if err == nil { // resp is now filled
1862//        fmt.Println(resp)
1863//    }
1864//
1865// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateWebACLMigrationStack
1866func (c *WAFRegional) CreateWebACLMigrationStackRequest(input *waf.CreateWebACLMigrationStackInput) (req *request.Request, output *waf.CreateWebACLMigrationStackOutput) {
1867	op := &request.Operation{
1868		Name:       opCreateWebACLMigrationStack,
1869		HTTPMethod: "POST",
1870		HTTPPath:   "/",
1871	}
1872
1873	if input == nil {
1874		input = &waf.CreateWebACLMigrationStackInput{}
1875	}
1876
1877	output = &waf.CreateWebACLMigrationStackOutput{}
1878	req = c.newRequest(op, input, output)
1879	return
1880}
1881
1882// CreateWebACLMigrationStack API operation for AWS WAF Regional.
1883//
1884// Creates an AWS CloudFormation WAFV2 template for the specified web ACL in
1885// the specified Amazon S3 bucket. Then, in CloudFormation, you create a stack
1886// from the template, to create the web ACL and its resources in AWS WAFV2.
1887// Use this to migrate your AWS WAF Classic web ACL to the latest version of
1888// AWS WAF.
1889//
1890// This is part of a larger migration procedure for web ACLs from AWS WAF Classic
1891// to the latest version of AWS WAF. For the full procedure, including caveats
1892// and manual steps to complete the migration and switch over to the new web
1893// ACL, see Migrating your AWS WAF Classic resources to AWS WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-migrating-from-classic.html)
1894// in the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
1895//
1896// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1897// with awserr.Error's Code and Message methods to get detailed information about
1898// the error.
1899//
1900// See the AWS API reference guide for AWS WAF Regional's
1901// API operation CreateWebACLMigrationStack for usage and error information.
1902//
1903// Returned Error Types:
1904//   * WAFInternalErrorException
1905//   The operation failed because of a system problem, even though the request
1906//   was valid. Retry your request.
1907//
1908//   * WAFInvalidParameterException
1909//   The operation failed because AWS WAF didn't recognize a parameter in the
1910//   request. For example:
1911//
1912//      * You specified an invalid parameter name.
1913//
1914//      * You specified an invalid value.
1915//
1916//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1917//      using an action other than INSERT or DELETE.
1918//
1919//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1920//      BLOCK, or COUNT.
1921//
1922//      * You tried to create a RateBasedRule with a RateKey value other than
1923//      IP.
1924//
1925//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1926//      BLOCK, or COUNT.
1927//
1928//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1929//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1930//
1931//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1932//      for Data.
1933//
1934//      * Your request references an ARN that is malformed, or corresponds to
1935//      a resource with which a web ACL cannot be associated.
1936//
1937//   * WAFInvalidOperationException
1938//   The operation failed because there was nothing to do. For example:
1939//
1940//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
1941//      specified WebACL.
1942//
1943//      * You tried to remove an IP address from an IPSet, but the IP address
1944//      isn't in the specified IPSet.
1945//
1946//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
1947//      isn't in the specified WebACL.
1948//
1949//      * You tried to add a Rule to a WebACL, but the Rule already exists in
1950//      the specified WebACL.
1951//
1952//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
1953//      already exists in the specified WebACL.
1954//
1955//   * WAFNonexistentItemException
1956//   The operation failed because the referenced object doesn't exist.
1957//
1958//   * WAFEntityMigrationException
1959//   The operation failed due to a problem with the migration. The failure cause
1960//   is provided in the exception, in the MigrationErrorType:
1961//
1962//      * ENTITY_NOT_SUPPORTED - The web ACL has an unsupported entity but the
1963//      IgnoreUnsupportedType is not set to true.
1964//
1965//      * ENTITY_NOT_FOUND - The web ACL doesn't exist.
1966//
1967//      * S3_BUCKET_NO_PERMISSION - You don't have permission to perform the PutObject
1968//      action to the specified Amazon S3 bucket.
1969//
1970//      * S3_BUCKET_NOT_ACCESSIBLE - The bucket policy doesn't allow AWS WAF to
1971//      perform the PutObject action in the bucket.
1972//
1973//      * S3_BUCKET_NOT_FOUND - The S3 bucket doesn't exist.
1974//
1975//      * S3_BUCKET_INVALID_REGION - The S3 bucket is not in the same Region as
1976//      the web ACL.
1977//
1978//      * S3_INTERNAL_ERROR - AWS WAF failed to create the template in the S3
1979//      bucket for another reason.
1980//
1981// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateWebACLMigrationStack
1982func (c *WAFRegional) CreateWebACLMigrationStack(input *waf.CreateWebACLMigrationStackInput) (*waf.CreateWebACLMigrationStackOutput, error) {
1983	req, out := c.CreateWebACLMigrationStackRequest(input)
1984	return out, req.Send()
1985}
1986
1987// CreateWebACLMigrationStackWithContext is the same as CreateWebACLMigrationStack with the addition of
1988// the ability to pass a context and additional request options.
1989//
1990// See CreateWebACLMigrationStack for details on how to use this API operation.
1991//
1992// The context must be non-nil and will be used for request cancellation. If
1993// the context is nil a panic will occur. In the future the SDK may create
1994// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1995// for more information on using Contexts.
1996func (c *WAFRegional) CreateWebACLMigrationStackWithContext(ctx aws.Context, input *waf.CreateWebACLMigrationStackInput, opts ...request.Option) (*waf.CreateWebACLMigrationStackOutput, error) {
1997	req, out := c.CreateWebACLMigrationStackRequest(input)
1998	req.SetContext(ctx)
1999	req.ApplyOptions(opts...)
2000	return out, req.Send()
2001}
2002
2003const opCreateXssMatchSet = "CreateXssMatchSet"
2004
2005// CreateXssMatchSetRequest generates a "aws/request.Request" representing the
2006// client's request for the CreateXssMatchSet operation. The "output" return
2007// value will be populated with the request's response once the request completes
2008// successfully.
2009//
2010// Use "Send" method on the returned Request to send the API call to the service.
2011// the "output" return value is not valid until after Send returns without error.
2012//
2013// See CreateXssMatchSet for more information on using the CreateXssMatchSet
2014// API call, and error handling.
2015//
2016// This method is useful when you want to inject custom logic or configuration
2017// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2018//
2019//
2020//    // Example sending a request using the CreateXssMatchSetRequest method.
2021//    req, resp := client.CreateXssMatchSetRequest(params)
2022//
2023//    err := req.Send()
2024//    if err == nil { // resp is now filled
2025//        fmt.Println(resp)
2026//    }
2027//
2028// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateXssMatchSet
2029func (c *WAFRegional) CreateXssMatchSetRequest(input *waf.CreateXssMatchSetInput) (req *request.Request, output *waf.CreateXssMatchSetOutput) {
2030	op := &request.Operation{
2031		Name:       opCreateXssMatchSet,
2032		HTTPMethod: "POST",
2033		HTTPPath:   "/",
2034	}
2035
2036	if input == nil {
2037		input = &waf.CreateXssMatchSetInput{}
2038	}
2039
2040	output = &waf.CreateXssMatchSetOutput{}
2041	req = c.newRequest(op, input, output)
2042	return
2043}
2044
2045// CreateXssMatchSet API operation for AWS WAF Regional.
2046//
2047//
2048// This is AWS WAF Classic documentation. For more information, see AWS WAF
2049// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
2050// in the developer guide.
2051//
2052// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
2053// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
2054// With the latest version, AWS WAF has a single set of endpoints for regional
2055// and global use.
2056//
2057// Creates an XssMatchSet, which you use to allow, block, or count requests
2058// that contain cross-site scripting attacks in the specified part of web requests.
2059// AWS WAF searches for character sequences that are likely to be malicious
2060// strings.
2061//
2062// To create and configure an XssMatchSet, perform the following steps:
2063//
2064// Use GetChangeToken to get the change token that you provide in the ChangeToken
2065// parameter of a CreateXssMatchSet request.
2066//
2067// Submit a CreateXssMatchSet request.
2068//
2069// Use GetChangeToken to get the change token that you provide in the ChangeToken
2070// parameter of an UpdateXssMatchSet request.
2071//
2072// Submit an UpdateXssMatchSet request to specify the parts of web requests
2073// in which you want to allow, block, or count cross-site scripting attacks.
2074//
2075// For more information about how to use the AWS WAF API to allow or block HTTP
2076// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
2077//
2078// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2079// with awserr.Error's Code and Message methods to get detailed information about
2080// the error.
2081//
2082// See the AWS API reference guide for AWS WAF Regional's
2083// API operation CreateXssMatchSet for usage and error information.
2084//
2085// Returned Error Types:
2086//   * WAFDisallowedNameException
2087//   The name specified is invalid.
2088//
2089//   * WAFInternalErrorException
2090//   The operation failed because of a system problem, even though the request
2091//   was valid. Retry your request.
2092//
2093//   * WAFInvalidAccountException
2094//   The operation failed because you tried to create, update, or delete an object
2095//   by using an invalid account identifier.
2096//
2097//   * WAFInvalidParameterException
2098//   The operation failed because AWS WAF didn't recognize a parameter in the
2099//   request. For example:
2100//
2101//      * You specified an invalid parameter name.
2102//
2103//      * You specified an invalid value.
2104//
2105//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
2106//      using an action other than INSERT or DELETE.
2107//
2108//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
2109//      BLOCK, or COUNT.
2110//
2111//      * You tried to create a RateBasedRule with a RateKey value other than
2112//      IP.
2113//
2114//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
2115//      BLOCK, or COUNT.
2116//
2117//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
2118//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
2119//
2120//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
2121//      for Data.
2122//
2123//      * Your request references an ARN that is malformed, or corresponds to
2124//      a resource with which a web ACL cannot be associated.
2125//
2126//   * WAFStaleDataException
2127//   The operation failed because you tried to create, update, or delete an object
2128//   by using a change token that has already been used.
2129//
2130//   * WAFLimitsExceededException
2131//   The operation exceeds a resource limit, for example, the maximum number of
2132//   WebACL objects that you can create for an AWS account. For more information,
2133//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
2134//   in the AWS WAF Developer Guide.
2135//
2136// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateXssMatchSet
2137func (c *WAFRegional) CreateXssMatchSet(input *waf.CreateXssMatchSetInput) (*waf.CreateXssMatchSetOutput, error) {
2138	req, out := c.CreateXssMatchSetRequest(input)
2139	return out, req.Send()
2140}
2141
2142// CreateXssMatchSetWithContext is the same as CreateXssMatchSet with the addition of
2143// the ability to pass a context and additional request options.
2144//
2145// See CreateXssMatchSet for details on how to use this API operation.
2146//
2147// The context must be non-nil and will be used for request cancellation. If
2148// the context is nil a panic will occur. In the future the SDK may create
2149// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2150// for more information on using Contexts.
2151func (c *WAFRegional) CreateXssMatchSetWithContext(ctx aws.Context, input *waf.CreateXssMatchSetInput, opts ...request.Option) (*waf.CreateXssMatchSetOutput, error) {
2152	req, out := c.CreateXssMatchSetRequest(input)
2153	req.SetContext(ctx)
2154	req.ApplyOptions(opts...)
2155	return out, req.Send()
2156}
2157
2158const opDeleteByteMatchSet = "DeleteByteMatchSet"
2159
2160// DeleteByteMatchSetRequest generates a "aws/request.Request" representing the
2161// client's request for the DeleteByteMatchSet operation. The "output" return
2162// value will be populated with the request's response once the request completes
2163// successfully.
2164//
2165// Use "Send" method on the returned Request to send the API call to the service.
2166// the "output" return value is not valid until after Send returns without error.
2167//
2168// See DeleteByteMatchSet for more information on using the DeleteByteMatchSet
2169// API call, and error handling.
2170//
2171// This method is useful when you want to inject custom logic or configuration
2172// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2173//
2174//
2175//    // Example sending a request using the DeleteByteMatchSetRequest method.
2176//    req, resp := client.DeleteByteMatchSetRequest(params)
2177//
2178//    err := req.Send()
2179//    if err == nil { // resp is now filled
2180//        fmt.Println(resp)
2181//    }
2182//
2183// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteByteMatchSet
2184func (c *WAFRegional) DeleteByteMatchSetRequest(input *waf.DeleteByteMatchSetInput) (req *request.Request, output *waf.DeleteByteMatchSetOutput) {
2185	op := &request.Operation{
2186		Name:       opDeleteByteMatchSet,
2187		HTTPMethod: "POST",
2188		HTTPPath:   "/",
2189	}
2190
2191	if input == nil {
2192		input = &waf.DeleteByteMatchSetInput{}
2193	}
2194
2195	output = &waf.DeleteByteMatchSetOutput{}
2196	req = c.newRequest(op, input, output)
2197	return
2198}
2199
2200// DeleteByteMatchSet API operation for AWS WAF Regional.
2201//
2202//
2203// This is AWS WAF Classic documentation. For more information, see AWS WAF
2204// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
2205// in the developer guide.
2206//
2207// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
2208// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
2209// With the latest version, AWS WAF has a single set of endpoints for regional
2210// and global use.
2211//
2212// Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's
2213// still used in any Rules or if it still includes any ByteMatchTuple objects
2214// (any filters).
2215//
2216// If you just want to remove a ByteMatchSet from a Rule, use UpdateRule.
2217//
2218// To permanently delete a ByteMatchSet, perform the following steps:
2219//
2220// Update the ByteMatchSet to remove filters, if any. For more information,
2221// see UpdateByteMatchSet.
2222//
2223// Use GetChangeToken to get the change token that you provide in the ChangeToken
2224// parameter of a DeleteByteMatchSet request.
2225//
2226// Submit a DeleteByteMatchSet request.
2227//
2228// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2229// with awserr.Error's Code and Message methods to get detailed information about
2230// the error.
2231//
2232// See the AWS API reference guide for AWS WAF Regional's
2233// API operation DeleteByteMatchSet for usage and error information.
2234//
2235// Returned Error Types:
2236//   * WAFInternalErrorException
2237//   The operation failed because of a system problem, even though the request
2238//   was valid. Retry your request.
2239//
2240//   * WAFInvalidAccountException
2241//   The operation failed because you tried to create, update, or delete an object
2242//   by using an invalid account identifier.
2243//
2244//   * WAFNonexistentItemException
2245//   The operation failed because the referenced object doesn't exist.
2246//
2247//   * WAFReferencedItemException
2248//   The operation failed because you tried to delete an object that is still
2249//   in use. For example:
2250//
2251//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2252//
2253//      * You tried to delete a Rule that is still referenced by a WebACL.
2254//
2255//   * WAFStaleDataException
2256//   The operation failed because you tried to create, update, or delete an object
2257//   by using a change token that has already been used.
2258//
2259//   * WAFNonEmptyEntityException
2260//   The operation failed because you tried to delete an object that isn't empty.
2261//   For example:
2262//
2263//      * You tried to delete a WebACL that still contains one or more Rule objects.
2264//
2265//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2266//      objects or other predicates.
2267//
2268//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2269//      objects.
2270//
2271//      * You tried to delete an IPSet that references one or more IP addresses.
2272//
2273// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteByteMatchSet
2274func (c *WAFRegional) DeleteByteMatchSet(input *waf.DeleteByteMatchSetInput) (*waf.DeleteByteMatchSetOutput, error) {
2275	req, out := c.DeleteByteMatchSetRequest(input)
2276	return out, req.Send()
2277}
2278
2279// DeleteByteMatchSetWithContext is the same as DeleteByteMatchSet with the addition of
2280// the ability to pass a context and additional request options.
2281//
2282// See DeleteByteMatchSet for details on how to use this API operation.
2283//
2284// The context must be non-nil and will be used for request cancellation. If
2285// the context is nil a panic will occur. In the future the SDK may create
2286// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2287// for more information on using Contexts.
2288func (c *WAFRegional) DeleteByteMatchSetWithContext(ctx aws.Context, input *waf.DeleteByteMatchSetInput, opts ...request.Option) (*waf.DeleteByteMatchSetOutput, error) {
2289	req, out := c.DeleteByteMatchSetRequest(input)
2290	req.SetContext(ctx)
2291	req.ApplyOptions(opts...)
2292	return out, req.Send()
2293}
2294
2295const opDeleteGeoMatchSet = "DeleteGeoMatchSet"
2296
2297// DeleteGeoMatchSetRequest generates a "aws/request.Request" representing the
2298// client's request for the DeleteGeoMatchSet operation. The "output" return
2299// value will be populated with the request's response once the request completes
2300// successfully.
2301//
2302// Use "Send" method on the returned Request to send the API call to the service.
2303// the "output" return value is not valid until after Send returns without error.
2304//
2305// See DeleteGeoMatchSet for more information on using the DeleteGeoMatchSet
2306// API call, and error handling.
2307//
2308// This method is useful when you want to inject custom logic or configuration
2309// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2310//
2311//
2312//    // Example sending a request using the DeleteGeoMatchSetRequest method.
2313//    req, resp := client.DeleteGeoMatchSetRequest(params)
2314//
2315//    err := req.Send()
2316//    if err == nil { // resp is now filled
2317//        fmt.Println(resp)
2318//    }
2319//
2320// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteGeoMatchSet
2321func (c *WAFRegional) DeleteGeoMatchSetRequest(input *waf.DeleteGeoMatchSetInput) (req *request.Request, output *waf.DeleteGeoMatchSetOutput) {
2322	op := &request.Operation{
2323		Name:       opDeleteGeoMatchSet,
2324		HTTPMethod: "POST",
2325		HTTPPath:   "/",
2326	}
2327
2328	if input == nil {
2329		input = &waf.DeleteGeoMatchSetInput{}
2330	}
2331
2332	output = &waf.DeleteGeoMatchSetOutput{}
2333	req = c.newRequest(op, input, output)
2334	return
2335}
2336
2337// DeleteGeoMatchSet API operation for AWS WAF Regional.
2338//
2339//
2340// This is AWS WAF Classic documentation. For more information, see AWS WAF
2341// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
2342// in the developer guide.
2343//
2344// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
2345// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
2346// With the latest version, AWS WAF has a single set of endpoints for regional
2347// and global use.
2348//
2349// Permanently deletes a GeoMatchSet. You can't delete a GeoMatchSet if it's
2350// still used in any Rules or if it still includes any countries.
2351//
2352// If you just want to remove a GeoMatchSet from a Rule, use UpdateRule.
2353//
2354// To permanently delete a GeoMatchSet from AWS WAF, perform the following steps:
2355//
2356// Update the GeoMatchSet to remove any countries. For more information, see
2357// UpdateGeoMatchSet.
2358//
2359// Use GetChangeToken to get the change token that you provide in the ChangeToken
2360// parameter of a DeleteGeoMatchSet request.
2361//
2362// Submit a DeleteGeoMatchSet request.
2363//
2364// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2365// with awserr.Error's Code and Message methods to get detailed information about
2366// the error.
2367//
2368// See the AWS API reference guide for AWS WAF Regional's
2369// API operation DeleteGeoMatchSet for usage and error information.
2370//
2371// Returned Error Types:
2372//   * WAFStaleDataException
2373//   The operation failed because you tried to create, update, or delete an object
2374//   by using a change token that has already been used.
2375//
2376//   * WAFInternalErrorException
2377//   The operation failed because of a system problem, even though the request
2378//   was valid. Retry your request.
2379//
2380//   * WAFInvalidAccountException
2381//   The operation failed because you tried to create, update, or delete an object
2382//   by using an invalid account identifier.
2383//
2384//   * WAFNonexistentItemException
2385//   The operation failed because the referenced object doesn't exist.
2386//
2387//   * WAFReferencedItemException
2388//   The operation failed because you tried to delete an object that is still
2389//   in use. For example:
2390//
2391//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2392//
2393//      * You tried to delete a Rule that is still referenced by a WebACL.
2394//
2395//   * WAFNonEmptyEntityException
2396//   The operation failed because you tried to delete an object that isn't empty.
2397//   For example:
2398//
2399//      * You tried to delete a WebACL that still contains one or more Rule objects.
2400//
2401//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2402//      objects or other predicates.
2403//
2404//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2405//      objects.
2406//
2407//      * You tried to delete an IPSet that references one or more IP addresses.
2408//
2409// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteGeoMatchSet
2410func (c *WAFRegional) DeleteGeoMatchSet(input *waf.DeleteGeoMatchSetInput) (*waf.DeleteGeoMatchSetOutput, error) {
2411	req, out := c.DeleteGeoMatchSetRequest(input)
2412	return out, req.Send()
2413}
2414
2415// DeleteGeoMatchSetWithContext is the same as DeleteGeoMatchSet with the addition of
2416// the ability to pass a context and additional request options.
2417//
2418// See DeleteGeoMatchSet for details on how to use this API operation.
2419//
2420// The context must be non-nil and will be used for request cancellation. If
2421// the context is nil a panic will occur. In the future the SDK may create
2422// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2423// for more information on using Contexts.
2424func (c *WAFRegional) DeleteGeoMatchSetWithContext(ctx aws.Context, input *waf.DeleteGeoMatchSetInput, opts ...request.Option) (*waf.DeleteGeoMatchSetOutput, error) {
2425	req, out := c.DeleteGeoMatchSetRequest(input)
2426	req.SetContext(ctx)
2427	req.ApplyOptions(opts...)
2428	return out, req.Send()
2429}
2430
2431const opDeleteIPSet = "DeleteIPSet"
2432
2433// DeleteIPSetRequest generates a "aws/request.Request" representing the
2434// client's request for the DeleteIPSet operation. The "output" return
2435// value will be populated with the request's response once the request completes
2436// successfully.
2437//
2438// Use "Send" method on the returned Request to send the API call to the service.
2439// the "output" return value is not valid until after Send returns without error.
2440//
2441// See DeleteIPSet for more information on using the DeleteIPSet
2442// API call, and error handling.
2443//
2444// This method is useful when you want to inject custom logic or configuration
2445// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2446//
2447//
2448//    // Example sending a request using the DeleteIPSetRequest method.
2449//    req, resp := client.DeleteIPSetRequest(params)
2450//
2451//    err := req.Send()
2452//    if err == nil { // resp is now filled
2453//        fmt.Println(resp)
2454//    }
2455//
2456// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteIPSet
2457func (c *WAFRegional) DeleteIPSetRequest(input *waf.DeleteIPSetInput) (req *request.Request, output *waf.DeleteIPSetOutput) {
2458	op := &request.Operation{
2459		Name:       opDeleteIPSet,
2460		HTTPMethod: "POST",
2461		HTTPPath:   "/",
2462	}
2463
2464	if input == nil {
2465		input = &waf.DeleteIPSetInput{}
2466	}
2467
2468	output = &waf.DeleteIPSetOutput{}
2469	req = c.newRequest(op, input, output)
2470	return
2471}
2472
2473// DeleteIPSet API operation for AWS WAF Regional.
2474//
2475//
2476// This is AWS WAF Classic documentation. For more information, see AWS WAF
2477// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
2478// in the developer guide.
2479//
2480// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
2481// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
2482// With the latest version, AWS WAF has a single set of endpoints for regional
2483// and global use.
2484//
2485// Permanently deletes an IPSet. You can't delete an IPSet if it's still used
2486// in any Rules or if it still includes any IP addresses.
2487//
2488// If you just want to remove an IPSet from a Rule, use UpdateRule.
2489//
2490// To permanently delete an IPSet from AWS WAF, perform the following steps:
2491//
2492// Update the IPSet to remove IP address ranges, if any. For more information,
2493// see UpdateIPSet.
2494//
2495// Use GetChangeToken to get the change token that you provide in the ChangeToken
2496// parameter of a DeleteIPSet request.
2497//
2498// Submit a DeleteIPSet request.
2499//
2500// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2501// with awserr.Error's Code and Message methods to get detailed information about
2502// the error.
2503//
2504// See the AWS API reference guide for AWS WAF Regional's
2505// API operation DeleteIPSet for usage and error information.
2506//
2507// Returned Error Types:
2508//   * WAFStaleDataException
2509//   The operation failed because you tried to create, update, or delete an object
2510//   by using a change token that has already been used.
2511//
2512//   * WAFInternalErrorException
2513//   The operation failed because of a system problem, even though the request
2514//   was valid. Retry your request.
2515//
2516//   * WAFInvalidAccountException
2517//   The operation failed because you tried to create, update, or delete an object
2518//   by using an invalid account identifier.
2519//
2520//   * WAFNonexistentItemException
2521//   The operation failed because the referenced object doesn't exist.
2522//
2523//   * WAFReferencedItemException
2524//   The operation failed because you tried to delete an object that is still
2525//   in use. For example:
2526//
2527//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2528//
2529//      * You tried to delete a Rule that is still referenced by a WebACL.
2530//
2531//   * WAFNonEmptyEntityException
2532//   The operation failed because you tried to delete an object that isn't empty.
2533//   For example:
2534//
2535//      * You tried to delete a WebACL that still contains one or more Rule objects.
2536//
2537//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2538//      objects or other predicates.
2539//
2540//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2541//      objects.
2542//
2543//      * You tried to delete an IPSet that references one or more IP addresses.
2544//
2545// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteIPSet
2546func (c *WAFRegional) DeleteIPSet(input *waf.DeleteIPSetInput) (*waf.DeleteIPSetOutput, error) {
2547	req, out := c.DeleteIPSetRequest(input)
2548	return out, req.Send()
2549}
2550
2551// DeleteIPSetWithContext is the same as DeleteIPSet with the addition of
2552// the ability to pass a context and additional request options.
2553//
2554// See DeleteIPSet for details on how to use this API operation.
2555//
2556// The context must be non-nil and will be used for request cancellation. If
2557// the context is nil a panic will occur. In the future the SDK may create
2558// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2559// for more information on using Contexts.
2560func (c *WAFRegional) DeleteIPSetWithContext(ctx aws.Context, input *waf.DeleteIPSetInput, opts ...request.Option) (*waf.DeleteIPSetOutput, error) {
2561	req, out := c.DeleteIPSetRequest(input)
2562	req.SetContext(ctx)
2563	req.ApplyOptions(opts...)
2564	return out, req.Send()
2565}
2566
2567const opDeleteLoggingConfiguration = "DeleteLoggingConfiguration"
2568
2569// DeleteLoggingConfigurationRequest generates a "aws/request.Request" representing the
2570// client's request for the DeleteLoggingConfiguration operation. The "output" return
2571// value will be populated with the request's response once the request completes
2572// successfully.
2573//
2574// Use "Send" method on the returned Request to send the API call to the service.
2575// the "output" return value is not valid until after Send returns without error.
2576//
2577// See DeleteLoggingConfiguration for more information on using the DeleteLoggingConfiguration
2578// API call, and error handling.
2579//
2580// This method is useful when you want to inject custom logic or configuration
2581// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2582//
2583//
2584//    // Example sending a request using the DeleteLoggingConfigurationRequest method.
2585//    req, resp := client.DeleteLoggingConfigurationRequest(params)
2586//
2587//    err := req.Send()
2588//    if err == nil { // resp is now filled
2589//        fmt.Println(resp)
2590//    }
2591//
2592// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteLoggingConfiguration
2593func (c *WAFRegional) DeleteLoggingConfigurationRequest(input *waf.DeleteLoggingConfigurationInput) (req *request.Request, output *waf.DeleteLoggingConfigurationOutput) {
2594	op := &request.Operation{
2595		Name:       opDeleteLoggingConfiguration,
2596		HTTPMethod: "POST",
2597		HTTPPath:   "/",
2598	}
2599
2600	if input == nil {
2601		input = &waf.DeleteLoggingConfigurationInput{}
2602	}
2603
2604	output = &waf.DeleteLoggingConfigurationOutput{}
2605	req = c.newRequest(op, input, output)
2606	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2607	return
2608}
2609
2610// DeleteLoggingConfiguration API operation for AWS WAF Regional.
2611//
2612//
2613// This is AWS WAF Classic documentation. For more information, see AWS WAF
2614// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
2615// in the developer guide.
2616//
2617// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
2618// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
2619// With the latest version, AWS WAF has a single set of endpoints for regional
2620// and global use.
2621//
2622// Permanently deletes the LoggingConfiguration from the specified web ACL.
2623//
2624// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2625// with awserr.Error's Code and Message methods to get detailed information about
2626// the error.
2627//
2628// See the AWS API reference guide for AWS WAF Regional's
2629// API operation DeleteLoggingConfiguration for usage and error information.
2630//
2631// Returned Error Types:
2632//   * WAFInternalErrorException
2633//   The operation failed because of a system problem, even though the request
2634//   was valid. Retry your request.
2635//
2636//   * WAFNonexistentItemException
2637//   The operation failed because the referenced object doesn't exist.
2638//
2639//   * WAFStaleDataException
2640//   The operation failed because you tried to create, update, or delete an object
2641//   by using a change token that has already been used.
2642//
2643// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteLoggingConfiguration
2644func (c *WAFRegional) DeleteLoggingConfiguration(input *waf.DeleteLoggingConfigurationInput) (*waf.DeleteLoggingConfigurationOutput, error) {
2645	req, out := c.DeleteLoggingConfigurationRequest(input)
2646	return out, req.Send()
2647}
2648
2649// DeleteLoggingConfigurationWithContext is the same as DeleteLoggingConfiguration with the addition of
2650// the ability to pass a context and additional request options.
2651//
2652// See DeleteLoggingConfiguration for details on how to use this API operation.
2653//
2654// The context must be non-nil and will be used for request cancellation. If
2655// the context is nil a panic will occur. In the future the SDK may create
2656// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2657// for more information on using Contexts.
2658func (c *WAFRegional) DeleteLoggingConfigurationWithContext(ctx aws.Context, input *waf.DeleteLoggingConfigurationInput, opts ...request.Option) (*waf.DeleteLoggingConfigurationOutput, error) {
2659	req, out := c.DeleteLoggingConfigurationRequest(input)
2660	req.SetContext(ctx)
2661	req.ApplyOptions(opts...)
2662	return out, req.Send()
2663}
2664
2665const opDeletePermissionPolicy = "DeletePermissionPolicy"
2666
2667// DeletePermissionPolicyRequest generates a "aws/request.Request" representing the
2668// client's request for the DeletePermissionPolicy operation. The "output" return
2669// value will be populated with the request's response once the request completes
2670// successfully.
2671//
2672// Use "Send" method on the returned Request to send the API call to the service.
2673// the "output" return value is not valid until after Send returns without error.
2674//
2675// See DeletePermissionPolicy for more information on using the DeletePermissionPolicy
2676// API call, and error handling.
2677//
2678// This method is useful when you want to inject custom logic or configuration
2679// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2680//
2681//
2682//    // Example sending a request using the DeletePermissionPolicyRequest method.
2683//    req, resp := client.DeletePermissionPolicyRequest(params)
2684//
2685//    err := req.Send()
2686//    if err == nil { // resp is now filled
2687//        fmt.Println(resp)
2688//    }
2689//
2690// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeletePermissionPolicy
2691func (c *WAFRegional) DeletePermissionPolicyRequest(input *waf.DeletePermissionPolicyInput) (req *request.Request, output *waf.DeletePermissionPolicyOutput) {
2692	op := &request.Operation{
2693		Name:       opDeletePermissionPolicy,
2694		HTTPMethod: "POST",
2695		HTTPPath:   "/",
2696	}
2697
2698	if input == nil {
2699		input = &waf.DeletePermissionPolicyInput{}
2700	}
2701
2702	output = &waf.DeletePermissionPolicyOutput{}
2703	req = c.newRequest(op, input, output)
2704	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2705	return
2706}
2707
2708// DeletePermissionPolicy API operation for AWS WAF Regional.
2709//
2710//
2711// This is AWS WAF Classic documentation. For more information, see AWS WAF
2712// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
2713// in the developer guide.
2714//
2715// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
2716// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
2717// With the latest version, AWS WAF has a single set of endpoints for regional
2718// and global use.
2719//
2720// Permanently deletes an IAM policy from the specified RuleGroup.
2721//
2722// The user making the request must be the owner of the RuleGroup.
2723//
2724// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2725// with awserr.Error's Code and Message methods to get detailed information about
2726// the error.
2727//
2728// See the AWS API reference guide for AWS WAF Regional's
2729// API operation DeletePermissionPolicy for usage and error information.
2730//
2731// Returned Error Types:
2732//   * WAFInternalErrorException
2733//   The operation failed because of a system problem, even though the request
2734//   was valid. Retry your request.
2735//
2736//   * WAFStaleDataException
2737//   The operation failed because you tried to create, update, or delete an object
2738//   by using a change token that has already been used.
2739//
2740//   * WAFNonexistentItemException
2741//   The operation failed because the referenced object doesn't exist.
2742//
2743// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeletePermissionPolicy
2744func (c *WAFRegional) DeletePermissionPolicy(input *waf.DeletePermissionPolicyInput) (*waf.DeletePermissionPolicyOutput, error) {
2745	req, out := c.DeletePermissionPolicyRequest(input)
2746	return out, req.Send()
2747}
2748
2749// DeletePermissionPolicyWithContext is the same as DeletePermissionPolicy with the addition of
2750// the ability to pass a context and additional request options.
2751//
2752// See DeletePermissionPolicy for details on how to use this API operation.
2753//
2754// The context must be non-nil and will be used for request cancellation. If
2755// the context is nil a panic will occur. In the future the SDK may create
2756// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2757// for more information on using Contexts.
2758func (c *WAFRegional) DeletePermissionPolicyWithContext(ctx aws.Context, input *waf.DeletePermissionPolicyInput, opts ...request.Option) (*waf.DeletePermissionPolicyOutput, error) {
2759	req, out := c.DeletePermissionPolicyRequest(input)
2760	req.SetContext(ctx)
2761	req.ApplyOptions(opts...)
2762	return out, req.Send()
2763}
2764
2765const opDeleteRateBasedRule = "DeleteRateBasedRule"
2766
2767// DeleteRateBasedRuleRequest generates a "aws/request.Request" representing the
2768// client's request for the DeleteRateBasedRule operation. The "output" return
2769// value will be populated with the request's response once the request completes
2770// successfully.
2771//
2772// Use "Send" method on the returned Request to send the API call to the service.
2773// the "output" return value is not valid until after Send returns without error.
2774//
2775// See DeleteRateBasedRule for more information on using the DeleteRateBasedRule
2776// API call, and error handling.
2777//
2778// This method is useful when you want to inject custom logic or configuration
2779// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2780//
2781//
2782//    // Example sending a request using the DeleteRateBasedRuleRequest method.
2783//    req, resp := client.DeleteRateBasedRuleRequest(params)
2784//
2785//    err := req.Send()
2786//    if err == nil { // resp is now filled
2787//        fmt.Println(resp)
2788//    }
2789//
2790// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRateBasedRule
2791func (c *WAFRegional) DeleteRateBasedRuleRequest(input *waf.DeleteRateBasedRuleInput) (req *request.Request, output *waf.DeleteRateBasedRuleOutput) {
2792	op := &request.Operation{
2793		Name:       opDeleteRateBasedRule,
2794		HTTPMethod: "POST",
2795		HTTPPath:   "/",
2796	}
2797
2798	if input == nil {
2799		input = &waf.DeleteRateBasedRuleInput{}
2800	}
2801
2802	output = &waf.DeleteRateBasedRuleOutput{}
2803	req = c.newRequest(op, input, output)
2804	return
2805}
2806
2807// DeleteRateBasedRule API operation for AWS WAF Regional.
2808//
2809//
2810// This is AWS WAF Classic documentation. For more information, see AWS WAF
2811// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
2812// in the developer guide.
2813//
2814// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
2815// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
2816// With the latest version, AWS WAF has a single set of endpoints for regional
2817// and global use.
2818//
2819// Permanently deletes a RateBasedRule. You can't delete a rule if it's still
2820// used in any WebACL objects or if it still includes any predicates, such as
2821// ByteMatchSet objects.
2822//
2823// If you just want to remove a rule from a WebACL, use UpdateWebACL.
2824//
2825// To permanently delete a RateBasedRule from AWS WAF, perform the following
2826// steps:
2827//
2828// Update the RateBasedRule to remove predicates, if any. For more information,
2829// see UpdateRateBasedRule.
2830//
2831// Use GetChangeToken to get the change token that you provide in the ChangeToken
2832// parameter of a DeleteRateBasedRule request.
2833//
2834// Submit a DeleteRateBasedRule request.
2835//
2836// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2837// with awserr.Error's Code and Message methods to get detailed information about
2838// the error.
2839//
2840// See the AWS API reference guide for AWS WAF Regional's
2841// API operation DeleteRateBasedRule for usage and error information.
2842//
2843// Returned Error Types:
2844//   * WAFStaleDataException
2845//   The operation failed because you tried to create, update, or delete an object
2846//   by using a change token that has already been used.
2847//
2848//   * WAFInternalErrorException
2849//   The operation failed because of a system problem, even though the request
2850//   was valid. Retry your request.
2851//
2852//   * WAFInvalidAccountException
2853//   The operation failed because you tried to create, update, or delete an object
2854//   by using an invalid account identifier.
2855//
2856//   * WAFNonexistentItemException
2857//   The operation failed because the referenced object doesn't exist.
2858//
2859//   * WAFReferencedItemException
2860//   The operation failed because you tried to delete an object that is still
2861//   in use. For example:
2862//
2863//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2864//
2865//      * You tried to delete a Rule that is still referenced by a WebACL.
2866//
2867//   * WAFNonEmptyEntityException
2868//   The operation failed because you tried to delete an object that isn't empty.
2869//   For example:
2870//
2871//      * You tried to delete a WebACL that still contains one or more Rule objects.
2872//
2873//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2874//      objects or other predicates.
2875//
2876//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2877//      objects.
2878//
2879//      * You tried to delete an IPSet that references one or more IP addresses.
2880//
2881//   * WAFTagOperationException
2882//
2883//   * WAFTagOperationInternalErrorException
2884//
2885// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRateBasedRule
2886func (c *WAFRegional) DeleteRateBasedRule(input *waf.DeleteRateBasedRuleInput) (*waf.DeleteRateBasedRuleOutput, error) {
2887	req, out := c.DeleteRateBasedRuleRequest(input)
2888	return out, req.Send()
2889}
2890
2891// DeleteRateBasedRuleWithContext is the same as DeleteRateBasedRule with the addition of
2892// the ability to pass a context and additional request options.
2893//
2894// See DeleteRateBasedRule for details on how to use this API operation.
2895//
2896// The context must be non-nil and will be used for request cancellation. If
2897// the context is nil a panic will occur. In the future the SDK may create
2898// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2899// for more information on using Contexts.
2900func (c *WAFRegional) DeleteRateBasedRuleWithContext(ctx aws.Context, input *waf.DeleteRateBasedRuleInput, opts ...request.Option) (*waf.DeleteRateBasedRuleOutput, error) {
2901	req, out := c.DeleteRateBasedRuleRequest(input)
2902	req.SetContext(ctx)
2903	req.ApplyOptions(opts...)
2904	return out, req.Send()
2905}
2906
2907const opDeleteRegexMatchSet = "DeleteRegexMatchSet"
2908
2909// DeleteRegexMatchSetRequest generates a "aws/request.Request" representing the
2910// client's request for the DeleteRegexMatchSet operation. The "output" return
2911// value will be populated with the request's response once the request completes
2912// successfully.
2913//
2914// Use "Send" method on the returned Request to send the API call to the service.
2915// the "output" return value is not valid until after Send returns without error.
2916//
2917// See DeleteRegexMatchSet for more information on using the DeleteRegexMatchSet
2918// API call, and error handling.
2919//
2920// This method is useful when you want to inject custom logic or configuration
2921// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2922//
2923//
2924//    // Example sending a request using the DeleteRegexMatchSetRequest method.
2925//    req, resp := client.DeleteRegexMatchSetRequest(params)
2926//
2927//    err := req.Send()
2928//    if err == nil { // resp is now filled
2929//        fmt.Println(resp)
2930//    }
2931//
2932// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRegexMatchSet
2933func (c *WAFRegional) DeleteRegexMatchSetRequest(input *waf.DeleteRegexMatchSetInput) (req *request.Request, output *waf.DeleteRegexMatchSetOutput) {
2934	op := &request.Operation{
2935		Name:       opDeleteRegexMatchSet,
2936		HTTPMethod: "POST",
2937		HTTPPath:   "/",
2938	}
2939
2940	if input == nil {
2941		input = &waf.DeleteRegexMatchSetInput{}
2942	}
2943
2944	output = &waf.DeleteRegexMatchSetOutput{}
2945	req = c.newRequest(op, input, output)
2946	return
2947}
2948
2949// DeleteRegexMatchSet API operation for AWS WAF Regional.
2950//
2951//
2952// This is AWS WAF Classic documentation. For more information, see AWS WAF
2953// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
2954// in the developer guide.
2955//
2956// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
2957// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
2958// With the latest version, AWS WAF has a single set of endpoints for regional
2959// and global use.
2960//
2961// Permanently deletes a RegexMatchSet. You can't delete a RegexMatchSet if
2962// it's still used in any Rules or if it still includes any RegexMatchTuples
2963// objects (any filters).
2964//
2965// If you just want to remove a RegexMatchSet from a Rule, use UpdateRule.
2966//
2967// To permanently delete a RegexMatchSet, perform the following steps:
2968//
2969// Update the RegexMatchSet to remove filters, if any. For more information,
2970// see UpdateRegexMatchSet.
2971//
2972// Use GetChangeToken to get the change token that you provide in the ChangeToken
2973// parameter of a DeleteRegexMatchSet request.
2974//
2975// Submit a DeleteRegexMatchSet request.
2976//
2977// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2978// with awserr.Error's Code and Message methods to get detailed information about
2979// the error.
2980//
2981// See the AWS API reference guide for AWS WAF Regional's
2982// API operation DeleteRegexMatchSet for usage and error information.
2983//
2984// Returned Error Types:
2985//   * WAFInternalErrorException
2986//   The operation failed because of a system problem, even though the request
2987//   was valid. Retry your request.
2988//
2989//   * WAFInvalidAccountException
2990//   The operation failed because you tried to create, update, or delete an object
2991//   by using an invalid account identifier.
2992//
2993//   * WAFNonexistentItemException
2994//   The operation failed because the referenced object doesn't exist.
2995//
2996//   * WAFReferencedItemException
2997//   The operation failed because you tried to delete an object that is still
2998//   in use. For example:
2999//
3000//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3001//
3002//      * You tried to delete a Rule that is still referenced by a WebACL.
3003//
3004//   * WAFStaleDataException
3005//   The operation failed because you tried to create, update, or delete an object
3006//   by using a change token that has already been used.
3007//
3008//   * WAFNonEmptyEntityException
3009//   The operation failed because you tried to delete an object that isn't empty.
3010//   For example:
3011//
3012//      * You tried to delete a WebACL that still contains one or more Rule objects.
3013//
3014//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3015//      objects or other predicates.
3016//
3017//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3018//      objects.
3019//
3020//      * You tried to delete an IPSet that references one or more IP addresses.
3021//
3022// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRegexMatchSet
3023func (c *WAFRegional) DeleteRegexMatchSet(input *waf.DeleteRegexMatchSetInput) (*waf.DeleteRegexMatchSetOutput, error) {
3024	req, out := c.DeleteRegexMatchSetRequest(input)
3025	return out, req.Send()
3026}
3027
3028// DeleteRegexMatchSetWithContext is the same as DeleteRegexMatchSet with the addition of
3029// the ability to pass a context and additional request options.
3030//
3031// See DeleteRegexMatchSet for details on how to use this API operation.
3032//
3033// The context must be non-nil and will be used for request cancellation. If
3034// the context is nil a panic will occur. In the future the SDK may create
3035// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3036// for more information on using Contexts.
3037func (c *WAFRegional) DeleteRegexMatchSetWithContext(ctx aws.Context, input *waf.DeleteRegexMatchSetInput, opts ...request.Option) (*waf.DeleteRegexMatchSetOutput, error) {
3038	req, out := c.DeleteRegexMatchSetRequest(input)
3039	req.SetContext(ctx)
3040	req.ApplyOptions(opts...)
3041	return out, req.Send()
3042}
3043
3044const opDeleteRegexPatternSet = "DeleteRegexPatternSet"
3045
3046// DeleteRegexPatternSetRequest generates a "aws/request.Request" representing the
3047// client's request for the DeleteRegexPatternSet operation. The "output" return
3048// value will be populated with the request's response once the request completes
3049// successfully.
3050//
3051// Use "Send" method on the returned Request to send the API call to the service.
3052// the "output" return value is not valid until after Send returns without error.
3053//
3054// See DeleteRegexPatternSet for more information on using the DeleteRegexPatternSet
3055// API call, and error handling.
3056//
3057// This method is useful when you want to inject custom logic or configuration
3058// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3059//
3060//
3061//    // Example sending a request using the DeleteRegexPatternSetRequest method.
3062//    req, resp := client.DeleteRegexPatternSetRequest(params)
3063//
3064//    err := req.Send()
3065//    if err == nil { // resp is now filled
3066//        fmt.Println(resp)
3067//    }
3068//
3069// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRegexPatternSet
3070func (c *WAFRegional) DeleteRegexPatternSetRequest(input *waf.DeleteRegexPatternSetInput) (req *request.Request, output *waf.DeleteRegexPatternSetOutput) {
3071	op := &request.Operation{
3072		Name:       opDeleteRegexPatternSet,
3073		HTTPMethod: "POST",
3074		HTTPPath:   "/",
3075	}
3076
3077	if input == nil {
3078		input = &waf.DeleteRegexPatternSetInput{}
3079	}
3080
3081	output = &waf.DeleteRegexPatternSetOutput{}
3082	req = c.newRequest(op, input, output)
3083	return
3084}
3085
3086// DeleteRegexPatternSet API operation for AWS WAF Regional.
3087//
3088//
3089// This is AWS WAF Classic documentation. For more information, see AWS WAF
3090// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
3091// in the developer guide.
3092//
3093// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
3094// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
3095// With the latest version, AWS WAF has a single set of endpoints for regional
3096// and global use.
3097//
3098// Permanently deletes a RegexPatternSet. You can't delete a RegexPatternSet
3099// if it's still used in any RegexMatchSet or if the RegexPatternSet is not
3100// empty.
3101//
3102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3103// with awserr.Error's Code and Message methods to get detailed information about
3104// the error.
3105//
3106// See the AWS API reference guide for AWS WAF Regional's
3107// API operation DeleteRegexPatternSet for usage and error information.
3108//
3109// Returned Error Types:
3110//   * WAFInternalErrorException
3111//   The operation failed because of a system problem, even though the request
3112//   was valid. Retry your request.
3113//
3114//   * WAFInvalidAccountException
3115//   The operation failed because you tried to create, update, or delete an object
3116//   by using an invalid account identifier.
3117//
3118//   * WAFNonexistentItemException
3119//   The operation failed because the referenced object doesn't exist.
3120//
3121//   * WAFReferencedItemException
3122//   The operation failed because you tried to delete an object that is still
3123//   in use. For example:
3124//
3125//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3126//
3127//      * You tried to delete a Rule that is still referenced by a WebACL.
3128//
3129//   * WAFStaleDataException
3130//   The operation failed because you tried to create, update, or delete an object
3131//   by using a change token that has already been used.
3132//
3133//   * WAFNonEmptyEntityException
3134//   The operation failed because you tried to delete an object that isn't empty.
3135//   For example:
3136//
3137//      * You tried to delete a WebACL that still contains one or more Rule objects.
3138//
3139//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3140//      objects or other predicates.
3141//
3142//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3143//      objects.
3144//
3145//      * You tried to delete an IPSet that references one or more IP addresses.
3146//
3147// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRegexPatternSet
3148func (c *WAFRegional) DeleteRegexPatternSet(input *waf.DeleteRegexPatternSetInput) (*waf.DeleteRegexPatternSetOutput, error) {
3149	req, out := c.DeleteRegexPatternSetRequest(input)
3150	return out, req.Send()
3151}
3152
3153// DeleteRegexPatternSetWithContext is the same as DeleteRegexPatternSet with the addition of
3154// the ability to pass a context and additional request options.
3155//
3156// See DeleteRegexPatternSet for details on how to use this API operation.
3157//
3158// The context must be non-nil and will be used for request cancellation. If
3159// the context is nil a panic will occur. In the future the SDK may create
3160// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3161// for more information on using Contexts.
3162func (c *WAFRegional) DeleteRegexPatternSetWithContext(ctx aws.Context, input *waf.DeleteRegexPatternSetInput, opts ...request.Option) (*waf.DeleteRegexPatternSetOutput, error) {
3163	req, out := c.DeleteRegexPatternSetRequest(input)
3164	req.SetContext(ctx)
3165	req.ApplyOptions(opts...)
3166	return out, req.Send()
3167}
3168
3169const opDeleteRule = "DeleteRule"
3170
3171// DeleteRuleRequest generates a "aws/request.Request" representing the
3172// client's request for the DeleteRule operation. The "output" return
3173// value will be populated with the request's response once the request completes
3174// successfully.
3175//
3176// Use "Send" method on the returned Request to send the API call to the service.
3177// the "output" return value is not valid until after Send returns without error.
3178//
3179// See DeleteRule for more information on using the DeleteRule
3180// API call, and error handling.
3181//
3182// This method is useful when you want to inject custom logic or configuration
3183// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3184//
3185//
3186//    // Example sending a request using the DeleteRuleRequest method.
3187//    req, resp := client.DeleteRuleRequest(params)
3188//
3189//    err := req.Send()
3190//    if err == nil { // resp is now filled
3191//        fmt.Println(resp)
3192//    }
3193//
3194// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRule
3195func (c *WAFRegional) DeleteRuleRequest(input *waf.DeleteRuleInput) (req *request.Request, output *waf.DeleteRuleOutput) {
3196	op := &request.Operation{
3197		Name:       opDeleteRule,
3198		HTTPMethod: "POST",
3199		HTTPPath:   "/",
3200	}
3201
3202	if input == nil {
3203		input = &waf.DeleteRuleInput{}
3204	}
3205
3206	output = &waf.DeleteRuleOutput{}
3207	req = c.newRequest(op, input, output)
3208	return
3209}
3210
3211// DeleteRule API operation for AWS WAF Regional.
3212//
3213//
3214// This is AWS WAF Classic documentation. For more information, see AWS WAF
3215// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
3216// in the developer guide.
3217//
3218// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
3219// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
3220// With the latest version, AWS WAF has a single set of endpoints for regional
3221// and global use.
3222//
3223// Permanently deletes a Rule. You can't delete a Rule if it's still used in
3224// any WebACL objects or if it still includes any predicates, such as ByteMatchSet
3225// objects.
3226//
3227// If you just want to remove a Rule from a WebACL, use UpdateWebACL.
3228//
3229// To permanently delete a Rule from AWS WAF, perform the following steps:
3230//
3231// Update the Rule to remove predicates, if any. For more information, see UpdateRule.
3232//
3233// Use GetChangeToken to get the change token that you provide in the ChangeToken
3234// parameter of a DeleteRule request.
3235//
3236// Submit a DeleteRule request.
3237//
3238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3239// with awserr.Error's Code and Message methods to get detailed information about
3240// the error.
3241//
3242// See the AWS API reference guide for AWS WAF Regional's
3243// API operation DeleteRule for usage and error information.
3244//
3245// Returned Error Types:
3246//   * WAFStaleDataException
3247//   The operation failed because you tried to create, update, or delete an object
3248//   by using a change token that has already been used.
3249//
3250//   * WAFInternalErrorException
3251//   The operation failed because of a system problem, even though the request
3252//   was valid. Retry your request.
3253//
3254//   * WAFInvalidAccountException
3255//   The operation failed because you tried to create, update, or delete an object
3256//   by using an invalid account identifier.
3257//
3258//   * WAFNonexistentItemException
3259//   The operation failed because the referenced object doesn't exist.
3260//
3261//   * WAFReferencedItemException
3262//   The operation failed because you tried to delete an object that is still
3263//   in use. For example:
3264//
3265//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3266//
3267//      * You tried to delete a Rule that is still referenced by a WebACL.
3268//
3269//   * WAFNonEmptyEntityException
3270//   The operation failed because you tried to delete an object that isn't empty.
3271//   For example:
3272//
3273//      * You tried to delete a WebACL that still contains one or more Rule objects.
3274//
3275//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3276//      objects or other predicates.
3277//
3278//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3279//      objects.
3280//
3281//      * You tried to delete an IPSet that references one or more IP addresses.
3282//
3283//   * WAFTagOperationException
3284//
3285//   * WAFTagOperationInternalErrorException
3286//
3287// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRule
3288func (c *WAFRegional) DeleteRule(input *waf.DeleteRuleInput) (*waf.DeleteRuleOutput, error) {
3289	req, out := c.DeleteRuleRequest(input)
3290	return out, req.Send()
3291}
3292
3293// DeleteRuleWithContext is the same as DeleteRule with the addition of
3294// the ability to pass a context and additional request options.
3295//
3296// See DeleteRule for details on how to use this API operation.
3297//
3298// The context must be non-nil and will be used for request cancellation. If
3299// the context is nil a panic will occur. In the future the SDK may create
3300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3301// for more information on using Contexts.
3302func (c *WAFRegional) DeleteRuleWithContext(ctx aws.Context, input *waf.DeleteRuleInput, opts ...request.Option) (*waf.DeleteRuleOutput, error) {
3303	req, out := c.DeleteRuleRequest(input)
3304	req.SetContext(ctx)
3305	req.ApplyOptions(opts...)
3306	return out, req.Send()
3307}
3308
3309const opDeleteRuleGroup = "DeleteRuleGroup"
3310
3311// DeleteRuleGroupRequest generates a "aws/request.Request" representing the
3312// client's request for the DeleteRuleGroup operation. The "output" return
3313// value will be populated with the request's response once the request completes
3314// successfully.
3315//
3316// Use "Send" method on the returned Request to send the API call to the service.
3317// the "output" return value is not valid until after Send returns without error.
3318//
3319// See DeleteRuleGroup for more information on using the DeleteRuleGroup
3320// API call, and error handling.
3321//
3322// This method is useful when you want to inject custom logic or configuration
3323// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3324//
3325//
3326//    // Example sending a request using the DeleteRuleGroupRequest method.
3327//    req, resp := client.DeleteRuleGroupRequest(params)
3328//
3329//    err := req.Send()
3330//    if err == nil { // resp is now filled
3331//        fmt.Println(resp)
3332//    }
3333//
3334// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRuleGroup
3335func (c *WAFRegional) DeleteRuleGroupRequest(input *waf.DeleteRuleGroupInput) (req *request.Request, output *waf.DeleteRuleGroupOutput) {
3336	op := &request.Operation{
3337		Name:       opDeleteRuleGroup,
3338		HTTPMethod: "POST",
3339		HTTPPath:   "/",
3340	}
3341
3342	if input == nil {
3343		input = &waf.DeleteRuleGroupInput{}
3344	}
3345
3346	output = &waf.DeleteRuleGroupOutput{}
3347	req = c.newRequest(op, input, output)
3348	return
3349}
3350
3351// DeleteRuleGroup API operation for AWS WAF Regional.
3352//
3353//
3354// This is AWS WAF Classic documentation. For more information, see AWS WAF
3355// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
3356// in the developer guide.
3357//
3358// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
3359// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
3360// With the latest version, AWS WAF has a single set of endpoints for regional
3361// and global use.
3362//
3363// Permanently deletes a RuleGroup. You can't delete a RuleGroup if it's still
3364// used in any WebACL objects or if it still includes any rules.
3365//
3366// If you just want to remove a RuleGroup from a WebACL, use UpdateWebACL.
3367//
3368// To permanently delete a RuleGroup from AWS WAF, perform the following steps:
3369//
3370// Update the RuleGroup to remove rules, if any. For more information, see UpdateRuleGroup.
3371//
3372// Use GetChangeToken to get the change token that you provide in the ChangeToken
3373// parameter of a DeleteRuleGroup request.
3374//
3375// Submit a DeleteRuleGroup request.
3376//
3377// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3378// with awserr.Error's Code and Message methods to get detailed information about
3379// the error.
3380//
3381// See the AWS API reference guide for AWS WAF Regional's
3382// API operation DeleteRuleGroup for usage and error information.
3383//
3384// Returned Error Types:
3385//   * WAFStaleDataException
3386//   The operation failed because you tried to create, update, or delete an object
3387//   by using a change token that has already been used.
3388//
3389//   * WAFInternalErrorException
3390//   The operation failed because of a system problem, even though the request
3391//   was valid. Retry your request.
3392//
3393//   * WAFNonexistentItemException
3394//   The operation failed because the referenced object doesn't exist.
3395//
3396//   * WAFReferencedItemException
3397//   The operation failed because you tried to delete an object that is still
3398//   in use. For example:
3399//
3400//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3401//
3402//      * You tried to delete a Rule that is still referenced by a WebACL.
3403//
3404//   * WAFNonEmptyEntityException
3405//   The operation failed because you tried to delete an object that isn't empty.
3406//   For example:
3407//
3408//      * You tried to delete a WebACL that still contains one or more Rule objects.
3409//
3410//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3411//      objects or other predicates.
3412//
3413//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3414//      objects.
3415//
3416//      * You tried to delete an IPSet that references one or more IP addresses.
3417//
3418//   * WAFInvalidOperationException
3419//   The operation failed because there was nothing to do. For example:
3420//
3421//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
3422//      specified WebACL.
3423//
3424//      * You tried to remove an IP address from an IPSet, but the IP address
3425//      isn't in the specified IPSet.
3426//
3427//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
3428//      isn't in the specified WebACL.
3429//
3430//      * You tried to add a Rule to a WebACL, but the Rule already exists in
3431//      the specified WebACL.
3432//
3433//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
3434//      already exists in the specified WebACL.
3435//
3436//   * WAFTagOperationException
3437//
3438//   * WAFTagOperationInternalErrorException
3439//
3440// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRuleGroup
3441func (c *WAFRegional) DeleteRuleGroup(input *waf.DeleteRuleGroupInput) (*waf.DeleteRuleGroupOutput, error) {
3442	req, out := c.DeleteRuleGroupRequest(input)
3443	return out, req.Send()
3444}
3445
3446// DeleteRuleGroupWithContext is the same as DeleteRuleGroup with the addition of
3447// the ability to pass a context and additional request options.
3448//
3449// See DeleteRuleGroup for details on how to use this API operation.
3450//
3451// The context must be non-nil and will be used for request cancellation. If
3452// the context is nil a panic will occur. In the future the SDK may create
3453// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3454// for more information on using Contexts.
3455func (c *WAFRegional) DeleteRuleGroupWithContext(ctx aws.Context, input *waf.DeleteRuleGroupInput, opts ...request.Option) (*waf.DeleteRuleGroupOutput, error) {
3456	req, out := c.DeleteRuleGroupRequest(input)
3457	req.SetContext(ctx)
3458	req.ApplyOptions(opts...)
3459	return out, req.Send()
3460}
3461
3462const opDeleteSizeConstraintSet = "DeleteSizeConstraintSet"
3463
3464// DeleteSizeConstraintSetRequest generates a "aws/request.Request" representing the
3465// client's request for the DeleteSizeConstraintSet operation. The "output" return
3466// value will be populated with the request's response once the request completes
3467// successfully.
3468//
3469// Use "Send" method on the returned Request to send the API call to the service.
3470// the "output" return value is not valid until after Send returns without error.
3471//
3472// See DeleteSizeConstraintSet for more information on using the DeleteSizeConstraintSet
3473// API call, and error handling.
3474//
3475// This method is useful when you want to inject custom logic or configuration
3476// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3477//
3478//
3479//    // Example sending a request using the DeleteSizeConstraintSetRequest method.
3480//    req, resp := client.DeleteSizeConstraintSetRequest(params)
3481//
3482//    err := req.Send()
3483//    if err == nil { // resp is now filled
3484//        fmt.Println(resp)
3485//    }
3486//
3487// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteSizeConstraintSet
3488func (c *WAFRegional) DeleteSizeConstraintSetRequest(input *waf.DeleteSizeConstraintSetInput) (req *request.Request, output *waf.DeleteSizeConstraintSetOutput) {
3489	op := &request.Operation{
3490		Name:       opDeleteSizeConstraintSet,
3491		HTTPMethod: "POST",
3492		HTTPPath:   "/",
3493	}
3494
3495	if input == nil {
3496		input = &waf.DeleteSizeConstraintSetInput{}
3497	}
3498
3499	output = &waf.DeleteSizeConstraintSetOutput{}
3500	req = c.newRequest(op, input, output)
3501	return
3502}
3503
3504// DeleteSizeConstraintSet API operation for AWS WAF Regional.
3505//
3506//
3507// This is AWS WAF Classic documentation. For more information, see AWS WAF
3508// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
3509// in the developer guide.
3510//
3511// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
3512// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
3513// With the latest version, AWS WAF has a single set of endpoints for regional
3514// and global use.
3515//
3516// Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet
3517// if it's still used in any Rules or if it still includes any SizeConstraint
3518// objects (any filters).
3519//
3520// If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule.
3521//
3522// To permanently delete a SizeConstraintSet, perform the following steps:
3523//
3524// Update the SizeConstraintSet to remove filters, if any. For more information,
3525// see UpdateSizeConstraintSet.
3526//
3527// Use GetChangeToken to get the change token that you provide in the ChangeToken
3528// parameter of a DeleteSizeConstraintSet request.
3529//
3530// Submit a DeleteSizeConstraintSet request.
3531//
3532// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3533// with awserr.Error's Code and Message methods to get detailed information about
3534// the error.
3535//
3536// See the AWS API reference guide for AWS WAF Regional's
3537// API operation DeleteSizeConstraintSet for usage and error information.
3538//
3539// Returned Error Types:
3540//   * WAFStaleDataException
3541//   The operation failed because you tried to create, update, or delete an object
3542//   by using a change token that has already been used.
3543//
3544//   * WAFInternalErrorException
3545//   The operation failed because of a system problem, even though the request
3546//   was valid. Retry your request.
3547//
3548//   * WAFInvalidAccountException
3549//   The operation failed because you tried to create, update, or delete an object
3550//   by using an invalid account identifier.
3551//
3552//   * WAFNonexistentItemException
3553//   The operation failed because the referenced object doesn't exist.
3554//
3555//   * WAFReferencedItemException
3556//   The operation failed because you tried to delete an object that is still
3557//   in use. For example:
3558//
3559//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3560//
3561//      * You tried to delete a Rule that is still referenced by a WebACL.
3562//
3563//   * WAFNonEmptyEntityException
3564//   The operation failed because you tried to delete an object that isn't empty.
3565//   For example:
3566//
3567//      * You tried to delete a WebACL that still contains one or more Rule objects.
3568//
3569//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3570//      objects or other predicates.
3571//
3572//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3573//      objects.
3574//
3575//      * You tried to delete an IPSet that references one or more IP addresses.
3576//
3577// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteSizeConstraintSet
3578func (c *WAFRegional) DeleteSizeConstraintSet(input *waf.DeleteSizeConstraintSetInput) (*waf.DeleteSizeConstraintSetOutput, error) {
3579	req, out := c.DeleteSizeConstraintSetRequest(input)
3580	return out, req.Send()
3581}
3582
3583// DeleteSizeConstraintSetWithContext is the same as DeleteSizeConstraintSet with the addition of
3584// the ability to pass a context and additional request options.
3585//
3586// See DeleteSizeConstraintSet for details on how to use this API operation.
3587//
3588// The context must be non-nil and will be used for request cancellation. If
3589// the context is nil a panic will occur. In the future the SDK may create
3590// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3591// for more information on using Contexts.
3592func (c *WAFRegional) DeleteSizeConstraintSetWithContext(ctx aws.Context, input *waf.DeleteSizeConstraintSetInput, opts ...request.Option) (*waf.DeleteSizeConstraintSetOutput, error) {
3593	req, out := c.DeleteSizeConstraintSetRequest(input)
3594	req.SetContext(ctx)
3595	req.ApplyOptions(opts...)
3596	return out, req.Send()
3597}
3598
3599const opDeleteSqlInjectionMatchSet = "DeleteSqlInjectionMatchSet"
3600
3601// DeleteSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
3602// client's request for the DeleteSqlInjectionMatchSet operation. The "output" return
3603// value will be populated with the request's response once the request completes
3604// successfully.
3605//
3606// Use "Send" method on the returned Request to send the API call to the service.
3607// the "output" return value is not valid until after Send returns without error.
3608//
3609// See DeleteSqlInjectionMatchSet for more information on using the DeleteSqlInjectionMatchSet
3610// API call, and error handling.
3611//
3612// This method is useful when you want to inject custom logic or configuration
3613// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3614//
3615//
3616//    // Example sending a request using the DeleteSqlInjectionMatchSetRequest method.
3617//    req, resp := client.DeleteSqlInjectionMatchSetRequest(params)
3618//
3619//    err := req.Send()
3620//    if err == nil { // resp is now filled
3621//        fmt.Println(resp)
3622//    }
3623//
3624// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteSqlInjectionMatchSet
3625func (c *WAFRegional) DeleteSqlInjectionMatchSetRequest(input *waf.DeleteSqlInjectionMatchSetInput) (req *request.Request, output *waf.DeleteSqlInjectionMatchSetOutput) {
3626	op := &request.Operation{
3627		Name:       opDeleteSqlInjectionMatchSet,
3628		HTTPMethod: "POST",
3629		HTTPPath:   "/",
3630	}
3631
3632	if input == nil {
3633		input = &waf.DeleteSqlInjectionMatchSetInput{}
3634	}
3635
3636	output = &waf.DeleteSqlInjectionMatchSetOutput{}
3637	req = c.newRequest(op, input, output)
3638	return
3639}
3640
3641// DeleteSqlInjectionMatchSet API operation for AWS WAF Regional.
3642//
3643//
3644// This is AWS WAF Classic documentation. For more information, see AWS WAF
3645// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
3646// in the developer guide.
3647//
3648// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
3649// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
3650// With the latest version, AWS WAF has a single set of endpoints for regional
3651// and global use.
3652//
3653// Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet
3654// if it's still used in any Rules or if it still contains any SqlInjectionMatchTuple
3655// objects.
3656//
3657// If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule.
3658//
3659// To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following
3660// steps:
3661//
3662// Update the SqlInjectionMatchSet to remove filters, if any. For more information,
3663// see UpdateSqlInjectionMatchSet.
3664//
3665// Use GetChangeToken to get the change token that you provide in the ChangeToken
3666// parameter of a DeleteSqlInjectionMatchSet request.
3667//
3668// Submit a DeleteSqlInjectionMatchSet request.
3669//
3670// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3671// with awserr.Error's Code and Message methods to get detailed information about
3672// the error.
3673//
3674// See the AWS API reference guide for AWS WAF Regional's
3675// API operation DeleteSqlInjectionMatchSet for usage and error information.
3676//
3677// Returned Error Types:
3678//   * WAFInternalErrorException
3679//   The operation failed because of a system problem, even though the request
3680//   was valid. Retry your request.
3681//
3682//   * WAFInvalidAccountException
3683//   The operation failed because you tried to create, update, or delete an object
3684//   by using an invalid account identifier.
3685//
3686//   * WAFNonexistentItemException
3687//   The operation failed because the referenced object doesn't exist.
3688//
3689//   * WAFReferencedItemException
3690//   The operation failed because you tried to delete an object that is still
3691//   in use. For example:
3692//
3693//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3694//
3695//      * You tried to delete a Rule that is still referenced by a WebACL.
3696//
3697//   * WAFStaleDataException
3698//   The operation failed because you tried to create, update, or delete an object
3699//   by using a change token that has already been used.
3700//
3701//   * WAFNonEmptyEntityException
3702//   The operation failed because you tried to delete an object that isn't empty.
3703//   For example:
3704//
3705//      * You tried to delete a WebACL that still contains one or more Rule objects.
3706//
3707//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3708//      objects or other predicates.
3709//
3710//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3711//      objects.
3712//
3713//      * You tried to delete an IPSet that references one or more IP addresses.
3714//
3715// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteSqlInjectionMatchSet
3716func (c *WAFRegional) DeleteSqlInjectionMatchSet(input *waf.DeleteSqlInjectionMatchSetInput) (*waf.DeleteSqlInjectionMatchSetOutput, error) {
3717	req, out := c.DeleteSqlInjectionMatchSetRequest(input)
3718	return out, req.Send()
3719}
3720
3721// DeleteSqlInjectionMatchSetWithContext is the same as DeleteSqlInjectionMatchSet with the addition of
3722// the ability to pass a context and additional request options.
3723//
3724// See DeleteSqlInjectionMatchSet for details on how to use this API operation.
3725//
3726// The context must be non-nil and will be used for request cancellation. If
3727// the context is nil a panic will occur. In the future the SDK may create
3728// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3729// for more information on using Contexts.
3730func (c *WAFRegional) DeleteSqlInjectionMatchSetWithContext(ctx aws.Context, input *waf.DeleteSqlInjectionMatchSetInput, opts ...request.Option) (*waf.DeleteSqlInjectionMatchSetOutput, error) {
3731	req, out := c.DeleteSqlInjectionMatchSetRequest(input)
3732	req.SetContext(ctx)
3733	req.ApplyOptions(opts...)
3734	return out, req.Send()
3735}
3736
3737const opDeleteWebACL = "DeleteWebACL"
3738
3739// DeleteWebACLRequest generates a "aws/request.Request" representing the
3740// client's request for the DeleteWebACL operation. The "output" return
3741// value will be populated with the request's response once the request completes
3742// successfully.
3743//
3744// Use "Send" method on the returned Request to send the API call to the service.
3745// the "output" return value is not valid until after Send returns without error.
3746//
3747// See DeleteWebACL for more information on using the DeleteWebACL
3748// API call, and error handling.
3749//
3750// This method is useful when you want to inject custom logic or configuration
3751// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3752//
3753//
3754//    // Example sending a request using the DeleteWebACLRequest method.
3755//    req, resp := client.DeleteWebACLRequest(params)
3756//
3757//    err := req.Send()
3758//    if err == nil { // resp is now filled
3759//        fmt.Println(resp)
3760//    }
3761//
3762// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteWebACL
3763func (c *WAFRegional) DeleteWebACLRequest(input *waf.DeleteWebACLInput) (req *request.Request, output *waf.DeleteWebACLOutput) {
3764	op := &request.Operation{
3765		Name:       opDeleteWebACL,
3766		HTTPMethod: "POST",
3767		HTTPPath:   "/",
3768	}
3769
3770	if input == nil {
3771		input = &waf.DeleteWebACLInput{}
3772	}
3773
3774	output = &waf.DeleteWebACLOutput{}
3775	req = c.newRequest(op, input, output)
3776	return
3777}
3778
3779// DeleteWebACL API operation for AWS WAF Regional.
3780//
3781//
3782// This is AWS WAF Classic documentation. For more information, see AWS WAF
3783// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
3784// in the developer guide.
3785//
3786// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
3787// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
3788// With the latest version, AWS WAF has a single set of endpoints for regional
3789// and global use.
3790//
3791// Permanently deletes a WebACL. You can't delete a WebACL if it still contains
3792// any Rules.
3793//
3794// To delete a WebACL, perform the following steps:
3795//
3796// Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL.
3797//
3798// Use GetChangeToken to get the change token that you provide in the ChangeToken
3799// parameter of a DeleteWebACL request.
3800//
3801// Submit a DeleteWebACL request.
3802//
3803// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3804// with awserr.Error's Code and Message methods to get detailed information about
3805// the error.
3806//
3807// See the AWS API reference guide for AWS WAF Regional's
3808// API operation DeleteWebACL for usage and error information.
3809//
3810// Returned Error Types:
3811//   * WAFStaleDataException
3812//   The operation failed because you tried to create, update, or delete an object
3813//   by using a change token that has already been used.
3814//
3815//   * WAFInternalErrorException
3816//   The operation failed because of a system problem, even though the request
3817//   was valid. Retry your request.
3818//
3819//   * WAFInvalidAccountException
3820//   The operation failed because you tried to create, update, or delete an object
3821//   by using an invalid account identifier.
3822//
3823//   * WAFNonexistentItemException
3824//   The operation failed because the referenced object doesn't exist.
3825//
3826//   * WAFReferencedItemException
3827//   The operation failed because you tried to delete an object that is still
3828//   in use. For example:
3829//
3830//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3831//
3832//      * You tried to delete a Rule that is still referenced by a WebACL.
3833//
3834//   * WAFNonEmptyEntityException
3835//   The operation failed because you tried to delete an object that isn't empty.
3836//   For example:
3837//
3838//      * You tried to delete a WebACL that still contains one or more Rule objects.
3839//
3840//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3841//      objects or other predicates.
3842//
3843//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3844//      objects.
3845//
3846//      * You tried to delete an IPSet that references one or more IP addresses.
3847//
3848//   * WAFTagOperationException
3849//
3850//   * WAFTagOperationInternalErrorException
3851//
3852// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteWebACL
3853func (c *WAFRegional) DeleteWebACL(input *waf.DeleteWebACLInput) (*waf.DeleteWebACLOutput, error) {
3854	req, out := c.DeleteWebACLRequest(input)
3855	return out, req.Send()
3856}
3857
3858// DeleteWebACLWithContext is the same as DeleteWebACL with the addition of
3859// the ability to pass a context and additional request options.
3860//
3861// See DeleteWebACL for details on how to use this API operation.
3862//
3863// The context must be non-nil and will be used for request cancellation. If
3864// the context is nil a panic will occur. In the future the SDK may create
3865// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3866// for more information on using Contexts.
3867func (c *WAFRegional) DeleteWebACLWithContext(ctx aws.Context, input *waf.DeleteWebACLInput, opts ...request.Option) (*waf.DeleteWebACLOutput, error) {
3868	req, out := c.DeleteWebACLRequest(input)
3869	req.SetContext(ctx)
3870	req.ApplyOptions(opts...)
3871	return out, req.Send()
3872}
3873
3874const opDeleteXssMatchSet = "DeleteXssMatchSet"
3875
3876// DeleteXssMatchSetRequest generates a "aws/request.Request" representing the
3877// client's request for the DeleteXssMatchSet operation. The "output" return
3878// value will be populated with the request's response once the request completes
3879// successfully.
3880//
3881// Use "Send" method on the returned Request to send the API call to the service.
3882// the "output" return value is not valid until after Send returns without error.
3883//
3884// See DeleteXssMatchSet for more information on using the DeleteXssMatchSet
3885// API call, and error handling.
3886//
3887// This method is useful when you want to inject custom logic or configuration
3888// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3889//
3890//
3891//    // Example sending a request using the DeleteXssMatchSetRequest method.
3892//    req, resp := client.DeleteXssMatchSetRequest(params)
3893//
3894//    err := req.Send()
3895//    if err == nil { // resp is now filled
3896//        fmt.Println(resp)
3897//    }
3898//
3899// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteXssMatchSet
3900func (c *WAFRegional) DeleteXssMatchSetRequest(input *waf.DeleteXssMatchSetInput) (req *request.Request, output *waf.DeleteXssMatchSetOutput) {
3901	op := &request.Operation{
3902		Name:       opDeleteXssMatchSet,
3903		HTTPMethod: "POST",
3904		HTTPPath:   "/",
3905	}
3906
3907	if input == nil {
3908		input = &waf.DeleteXssMatchSetInput{}
3909	}
3910
3911	output = &waf.DeleteXssMatchSetOutput{}
3912	req = c.newRequest(op, input, output)
3913	return
3914}
3915
3916// DeleteXssMatchSet API operation for AWS WAF Regional.
3917//
3918//
3919// This is AWS WAF Classic documentation. For more information, see AWS WAF
3920// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
3921// in the developer guide.
3922//
3923// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
3924// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
3925// With the latest version, AWS WAF has a single set of endpoints for regional
3926// and global use.
3927//
3928// Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's
3929// still used in any Rules or if it still contains any XssMatchTuple objects.
3930//
3931// If you just want to remove an XssMatchSet from a Rule, use UpdateRule.
3932//
3933// To permanently delete an XssMatchSet from AWS WAF, perform the following
3934// steps:
3935//
3936// Update the XssMatchSet to remove filters, if any. For more information, see
3937// UpdateXssMatchSet.
3938//
3939// Use GetChangeToken to get the change token that you provide in the ChangeToken
3940// parameter of a DeleteXssMatchSet request.
3941//
3942// Submit a DeleteXssMatchSet request.
3943//
3944// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3945// with awserr.Error's Code and Message methods to get detailed information about
3946// the error.
3947//
3948// See the AWS API reference guide for AWS WAF Regional's
3949// API operation DeleteXssMatchSet for usage and error information.
3950//
3951// Returned Error Types:
3952//   * WAFInternalErrorException
3953//   The operation failed because of a system problem, even though the request
3954//   was valid. Retry your request.
3955//
3956//   * WAFInvalidAccountException
3957//   The operation failed because you tried to create, update, or delete an object
3958//   by using an invalid account identifier.
3959//
3960//   * WAFNonexistentItemException
3961//   The operation failed because the referenced object doesn't exist.
3962//
3963//   * WAFReferencedItemException
3964//   The operation failed because you tried to delete an object that is still
3965//   in use. For example:
3966//
3967//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3968//
3969//      * You tried to delete a Rule that is still referenced by a WebACL.
3970//
3971//   * WAFStaleDataException
3972//   The operation failed because you tried to create, update, or delete an object
3973//   by using a change token that has already been used.
3974//
3975//   * WAFNonEmptyEntityException
3976//   The operation failed because you tried to delete an object that isn't empty.
3977//   For example:
3978//
3979//      * You tried to delete a WebACL that still contains one or more Rule objects.
3980//
3981//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3982//      objects or other predicates.
3983//
3984//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3985//      objects.
3986//
3987//      * You tried to delete an IPSet that references one or more IP addresses.
3988//
3989// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteXssMatchSet
3990func (c *WAFRegional) DeleteXssMatchSet(input *waf.DeleteXssMatchSetInput) (*waf.DeleteXssMatchSetOutput, error) {
3991	req, out := c.DeleteXssMatchSetRequest(input)
3992	return out, req.Send()
3993}
3994
3995// DeleteXssMatchSetWithContext is the same as DeleteXssMatchSet with the addition of
3996// the ability to pass a context and additional request options.
3997//
3998// See DeleteXssMatchSet for details on how to use this API operation.
3999//
4000// The context must be non-nil and will be used for request cancellation. If
4001// the context is nil a panic will occur. In the future the SDK may create
4002// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4003// for more information on using Contexts.
4004func (c *WAFRegional) DeleteXssMatchSetWithContext(ctx aws.Context, input *waf.DeleteXssMatchSetInput, opts ...request.Option) (*waf.DeleteXssMatchSetOutput, error) {
4005	req, out := c.DeleteXssMatchSetRequest(input)
4006	req.SetContext(ctx)
4007	req.ApplyOptions(opts...)
4008	return out, req.Send()
4009}
4010
4011const opDisassociateWebACL = "DisassociateWebACL"
4012
4013// DisassociateWebACLRequest generates a "aws/request.Request" representing the
4014// client's request for the DisassociateWebACL operation. The "output" return
4015// value will be populated with the request's response once the request completes
4016// successfully.
4017//
4018// Use "Send" method on the returned Request to send the API call to the service.
4019// the "output" return value is not valid until after Send returns without error.
4020//
4021// See DisassociateWebACL for more information on using the DisassociateWebACL
4022// API call, and error handling.
4023//
4024// This method is useful when you want to inject custom logic or configuration
4025// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4026//
4027//
4028//    // Example sending a request using the DisassociateWebACLRequest method.
4029//    req, resp := client.DisassociateWebACLRequest(params)
4030//
4031//    err := req.Send()
4032//    if err == nil { // resp is now filled
4033//        fmt.Println(resp)
4034//    }
4035//
4036// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DisassociateWebACL
4037func (c *WAFRegional) DisassociateWebACLRequest(input *DisassociateWebACLInput) (req *request.Request, output *DisassociateWebACLOutput) {
4038	op := &request.Operation{
4039		Name:       opDisassociateWebACL,
4040		HTTPMethod: "POST",
4041		HTTPPath:   "/",
4042	}
4043
4044	if input == nil {
4045		input = &DisassociateWebACLInput{}
4046	}
4047
4048	output = &DisassociateWebACLOutput{}
4049	req = c.newRequest(op, input, output)
4050	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
4051	return
4052}
4053
4054// DisassociateWebACL API operation for AWS WAF Regional.
4055//
4056//
4057// This is AWS WAF Classic Regional documentation. For more information, see
4058// AWS WAF Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4059// in the developer guide.
4060//
4061// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4062// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4063// With the latest version, AWS WAF has a single set of endpoints for regional
4064// and global use.
4065//
4066// Removes a web ACL from the specified resource, either an application load
4067// balancer or Amazon API Gateway stage.
4068//
4069// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4070// with awserr.Error's Code and Message methods to get detailed information about
4071// the error.
4072//
4073// See the AWS API reference guide for AWS WAF Regional's
4074// API operation DisassociateWebACL for usage and error information.
4075//
4076// Returned Error Types:
4077//   * WAFInternalErrorException
4078//   The operation failed because of a system problem, even though the request
4079//   was valid. Retry your request.
4080//
4081//   * WAFInvalidAccountException
4082//   The operation failed because you tried to create, update, or delete an object
4083//   by using an invalid account identifier.
4084//
4085//   * WAFInvalidParameterException
4086//   The operation failed because AWS WAF didn't recognize a parameter in the
4087//   request. For example:
4088//
4089//      * You specified an invalid parameter name.
4090//
4091//      * You specified an invalid value.
4092//
4093//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
4094//      using an action other than INSERT or DELETE.
4095//
4096//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
4097//      BLOCK, or COUNT.
4098//
4099//      * You tried to create a RateBasedRule with a RateKey value other than
4100//      IP.
4101//
4102//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
4103//      BLOCK, or COUNT.
4104//
4105//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
4106//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
4107//
4108//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
4109//      for Data.
4110//
4111//      * Your request references an ARN that is malformed, or corresponds to
4112//      a resource with which a web ACL cannot be associated.
4113//
4114//   * WAFNonexistentItemException
4115//   The operation failed because the referenced object doesn't exist.
4116//
4117// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DisassociateWebACL
4118func (c *WAFRegional) DisassociateWebACL(input *DisassociateWebACLInput) (*DisassociateWebACLOutput, error) {
4119	req, out := c.DisassociateWebACLRequest(input)
4120	return out, req.Send()
4121}
4122
4123// DisassociateWebACLWithContext is the same as DisassociateWebACL with the addition of
4124// the ability to pass a context and additional request options.
4125//
4126// See DisassociateWebACL for details on how to use this API operation.
4127//
4128// The context must be non-nil and will be used for request cancellation. If
4129// the context is nil a panic will occur. In the future the SDK may create
4130// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4131// for more information on using Contexts.
4132func (c *WAFRegional) DisassociateWebACLWithContext(ctx aws.Context, input *DisassociateWebACLInput, opts ...request.Option) (*DisassociateWebACLOutput, error) {
4133	req, out := c.DisassociateWebACLRequest(input)
4134	req.SetContext(ctx)
4135	req.ApplyOptions(opts...)
4136	return out, req.Send()
4137}
4138
4139const opGetByteMatchSet = "GetByteMatchSet"
4140
4141// GetByteMatchSetRequest generates a "aws/request.Request" representing the
4142// client's request for the GetByteMatchSet operation. The "output" return
4143// value will be populated with the request's response once the request completes
4144// successfully.
4145//
4146// Use "Send" method on the returned Request to send the API call to the service.
4147// the "output" return value is not valid until after Send returns without error.
4148//
4149// See GetByteMatchSet for more information on using the GetByteMatchSet
4150// API call, and error handling.
4151//
4152// This method is useful when you want to inject custom logic or configuration
4153// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4154//
4155//
4156//    // Example sending a request using the GetByteMatchSetRequest method.
4157//    req, resp := client.GetByteMatchSetRequest(params)
4158//
4159//    err := req.Send()
4160//    if err == nil { // resp is now filled
4161//        fmt.Println(resp)
4162//    }
4163//
4164// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetByteMatchSet
4165func (c *WAFRegional) GetByteMatchSetRequest(input *waf.GetByteMatchSetInput) (req *request.Request, output *waf.GetByteMatchSetOutput) {
4166	op := &request.Operation{
4167		Name:       opGetByteMatchSet,
4168		HTTPMethod: "POST",
4169		HTTPPath:   "/",
4170	}
4171
4172	if input == nil {
4173		input = &waf.GetByteMatchSetInput{}
4174	}
4175
4176	output = &waf.GetByteMatchSetOutput{}
4177	req = c.newRequest(op, input, output)
4178	return
4179}
4180
4181// GetByteMatchSet API operation for AWS WAF Regional.
4182//
4183//
4184// This is AWS WAF Classic documentation. For more information, see AWS WAF
4185// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4186// in the developer guide.
4187//
4188// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4189// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4190// With the latest version, AWS WAF has a single set of endpoints for regional
4191// and global use.
4192//
4193// Returns the ByteMatchSet specified by ByteMatchSetId.
4194//
4195// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4196// with awserr.Error's Code and Message methods to get detailed information about
4197// the error.
4198//
4199// See the AWS API reference guide for AWS WAF Regional's
4200// API operation GetByteMatchSet for usage and error information.
4201//
4202// Returned Error Types:
4203//   * WAFInternalErrorException
4204//   The operation failed because of a system problem, even though the request
4205//   was valid. Retry your request.
4206//
4207//   * WAFInvalidAccountException
4208//   The operation failed because you tried to create, update, or delete an object
4209//   by using an invalid account identifier.
4210//
4211//   * WAFNonexistentItemException
4212//   The operation failed because the referenced object doesn't exist.
4213//
4214// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetByteMatchSet
4215func (c *WAFRegional) GetByteMatchSet(input *waf.GetByteMatchSetInput) (*waf.GetByteMatchSetOutput, error) {
4216	req, out := c.GetByteMatchSetRequest(input)
4217	return out, req.Send()
4218}
4219
4220// GetByteMatchSetWithContext is the same as GetByteMatchSet with the addition of
4221// the ability to pass a context and additional request options.
4222//
4223// See GetByteMatchSet for details on how to use this API operation.
4224//
4225// The context must be non-nil and will be used for request cancellation. If
4226// the context is nil a panic will occur. In the future the SDK may create
4227// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4228// for more information on using Contexts.
4229func (c *WAFRegional) GetByteMatchSetWithContext(ctx aws.Context, input *waf.GetByteMatchSetInput, opts ...request.Option) (*waf.GetByteMatchSetOutput, error) {
4230	req, out := c.GetByteMatchSetRequest(input)
4231	req.SetContext(ctx)
4232	req.ApplyOptions(opts...)
4233	return out, req.Send()
4234}
4235
4236const opGetChangeToken = "GetChangeToken"
4237
4238// GetChangeTokenRequest generates a "aws/request.Request" representing the
4239// client's request for the GetChangeToken operation. The "output" return
4240// value will be populated with the request's response once the request completes
4241// successfully.
4242//
4243// Use "Send" method on the returned Request to send the API call to the service.
4244// the "output" return value is not valid until after Send returns without error.
4245//
4246// See GetChangeToken for more information on using the GetChangeToken
4247// API call, and error handling.
4248//
4249// This method is useful when you want to inject custom logic or configuration
4250// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4251//
4252//
4253//    // Example sending a request using the GetChangeTokenRequest method.
4254//    req, resp := client.GetChangeTokenRequest(params)
4255//
4256//    err := req.Send()
4257//    if err == nil { // resp is now filled
4258//        fmt.Println(resp)
4259//    }
4260//
4261// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetChangeToken
4262func (c *WAFRegional) GetChangeTokenRequest(input *waf.GetChangeTokenInput) (req *request.Request, output *waf.GetChangeTokenOutput) {
4263	op := &request.Operation{
4264		Name:       opGetChangeToken,
4265		HTTPMethod: "POST",
4266		HTTPPath:   "/",
4267	}
4268
4269	if input == nil {
4270		input = &waf.GetChangeTokenInput{}
4271	}
4272
4273	output = &waf.GetChangeTokenOutput{}
4274	req = c.newRequest(op, input, output)
4275	return
4276}
4277
4278// GetChangeToken API operation for AWS WAF Regional.
4279//
4280//
4281// This is AWS WAF Classic documentation. For more information, see AWS WAF
4282// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4283// in the developer guide.
4284//
4285// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4286// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4287// With the latest version, AWS WAF has a single set of endpoints for regional
4288// and global use.
4289//
4290// When you want to create, update, or delete AWS WAF objects, get a change
4291// token and include the change token in the create, update, or delete request.
4292// Change tokens ensure that your application doesn't submit conflicting requests
4293// to AWS WAF.
4294//
4295// Each create, update, or delete request must use a unique change token. If
4296// your application submits a GetChangeToken request and then submits a second
4297// GetChangeToken request before submitting a create, update, or delete request,
4298// the second GetChangeToken request returns the same value as the first GetChangeToken
4299// request.
4300//
4301// When you use a change token in a create, update, or delete request, the status
4302// of the change token changes to PENDING, which indicates that AWS WAF is propagating
4303// the change to all AWS WAF servers. Use GetChangeTokenStatus to determine
4304// the status of your change token.
4305//
4306// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4307// with awserr.Error's Code and Message methods to get detailed information about
4308// the error.
4309//
4310// See the AWS API reference guide for AWS WAF Regional's
4311// API operation GetChangeToken for usage and error information.
4312//
4313// Returned Error Types:
4314//   * WAFInternalErrorException
4315//   The operation failed because of a system problem, even though the request
4316//   was valid. Retry your request.
4317//
4318// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetChangeToken
4319func (c *WAFRegional) GetChangeToken(input *waf.GetChangeTokenInput) (*waf.GetChangeTokenOutput, error) {
4320	req, out := c.GetChangeTokenRequest(input)
4321	return out, req.Send()
4322}
4323
4324// GetChangeTokenWithContext is the same as GetChangeToken with the addition of
4325// the ability to pass a context and additional request options.
4326//
4327// See GetChangeToken for details on how to use this API operation.
4328//
4329// The context must be non-nil and will be used for request cancellation. If
4330// the context is nil a panic will occur. In the future the SDK may create
4331// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4332// for more information on using Contexts.
4333func (c *WAFRegional) GetChangeTokenWithContext(ctx aws.Context, input *waf.GetChangeTokenInput, opts ...request.Option) (*waf.GetChangeTokenOutput, error) {
4334	req, out := c.GetChangeTokenRequest(input)
4335	req.SetContext(ctx)
4336	req.ApplyOptions(opts...)
4337	return out, req.Send()
4338}
4339
4340const opGetChangeTokenStatus = "GetChangeTokenStatus"
4341
4342// GetChangeTokenStatusRequest generates a "aws/request.Request" representing the
4343// client's request for the GetChangeTokenStatus operation. The "output" return
4344// value will be populated with the request's response once the request completes
4345// successfully.
4346//
4347// Use "Send" method on the returned Request to send the API call to the service.
4348// the "output" return value is not valid until after Send returns without error.
4349//
4350// See GetChangeTokenStatus for more information on using the GetChangeTokenStatus
4351// API call, and error handling.
4352//
4353// This method is useful when you want to inject custom logic or configuration
4354// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4355//
4356//
4357//    // Example sending a request using the GetChangeTokenStatusRequest method.
4358//    req, resp := client.GetChangeTokenStatusRequest(params)
4359//
4360//    err := req.Send()
4361//    if err == nil { // resp is now filled
4362//        fmt.Println(resp)
4363//    }
4364//
4365// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetChangeTokenStatus
4366func (c *WAFRegional) GetChangeTokenStatusRequest(input *waf.GetChangeTokenStatusInput) (req *request.Request, output *waf.GetChangeTokenStatusOutput) {
4367	op := &request.Operation{
4368		Name:       opGetChangeTokenStatus,
4369		HTTPMethod: "POST",
4370		HTTPPath:   "/",
4371	}
4372
4373	if input == nil {
4374		input = &waf.GetChangeTokenStatusInput{}
4375	}
4376
4377	output = &waf.GetChangeTokenStatusOutput{}
4378	req = c.newRequest(op, input, output)
4379	return
4380}
4381
4382// GetChangeTokenStatus API operation for AWS WAF Regional.
4383//
4384//
4385// This is AWS WAF Classic documentation. For more information, see AWS WAF
4386// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4387// in the developer guide.
4388//
4389// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4390// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4391// With the latest version, AWS WAF has a single set of endpoints for regional
4392// and global use.
4393//
4394// Returns the status of a ChangeToken that you got by calling GetChangeToken.
4395// ChangeTokenStatus is one of the following values:
4396//
4397//    * PROVISIONED: You requested the change token by calling GetChangeToken,
4398//    but you haven't used it yet in a call to create, update, or delete an
4399//    AWS WAF object.
4400//
4401//    * PENDING: AWS WAF is propagating the create, update, or delete request
4402//    to all AWS WAF servers.
4403//
4404//    * INSYNC: Propagation is complete.
4405//
4406// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4407// with awserr.Error's Code and Message methods to get detailed information about
4408// the error.
4409//
4410// See the AWS API reference guide for AWS WAF Regional's
4411// API operation GetChangeTokenStatus for usage and error information.
4412//
4413// Returned Error Types:
4414//   * WAFNonexistentItemException
4415//   The operation failed because the referenced object doesn't exist.
4416//
4417//   * WAFInternalErrorException
4418//   The operation failed because of a system problem, even though the request
4419//   was valid. Retry your request.
4420//
4421// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetChangeTokenStatus
4422func (c *WAFRegional) GetChangeTokenStatus(input *waf.GetChangeTokenStatusInput) (*waf.GetChangeTokenStatusOutput, error) {
4423	req, out := c.GetChangeTokenStatusRequest(input)
4424	return out, req.Send()
4425}
4426
4427// GetChangeTokenStatusWithContext is the same as GetChangeTokenStatus with the addition of
4428// the ability to pass a context and additional request options.
4429//
4430// See GetChangeTokenStatus for details on how to use this API operation.
4431//
4432// The context must be non-nil and will be used for request cancellation. If
4433// the context is nil a panic will occur. In the future the SDK may create
4434// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4435// for more information on using Contexts.
4436func (c *WAFRegional) GetChangeTokenStatusWithContext(ctx aws.Context, input *waf.GetChangeTokenStatusInput, opts ...request.Option) (*waf.GetChangeTokenStatusOutput, error) {
4437	req, out := c.GetChangeTokenStatusRequest(input)
4438	req.SetContext(ctx)
4439	req.ApplyOptions(opts...)
4440	return out, req.Send()
4441}
4442
4443const opGetGeoMatchSet = "GetGeoMatchSet"
4444
4445// GetGeoMatchSetRequest generates a "aws/request.Request" representing the
4446// client's request for the GetGeoMatchSet operation. The "output" return
4447// value will be populated with the request's response once the request completes
4448// successfully.
4449//
4450// Use "Send" method on the returned Request to send the API call to the service.
4451// the "output" return value is not valid until after Send returns without error.
4452//
4453// See GetGeoMatchSet for more information on using the GetGeoMatchSet
4454// API call, and error handling.
4455//
4456// This method is useful when you want to inject custom logic or configuration
4457// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4458//
4459//
4460//    // Example sending a request using the GetGeoMatchSetRequest method.
4461//    req, resp := client.GetGeoMatchSetRequest(params)
4462//
4463//    err := req.Send()
4464//    if err == nil { // resp is now filled
4465//        fmt.Println(resp)
4466//    }
4467//
4468// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetGeoMatchSet
4469func (c *WAFRegional) GetGeoMatchSetRequest(input *waf.GetGeoMatchSetInput) (req *request.Request, output *waf.GetGeoMatchSetOutput) {
4470	op := &request.Operation{
4471		Name:       opGetGeoMatchSet,
4472		HTTPMethod: "POST",
4473		HTTPPath:   "/",
4474	}
4475
4476	if input == nil {
4477		input = &waf.GetGeoMatchSetInput{}
4478	}
4479
4480	output = &waf.GetGeoMatchSetOutput{}
4481	req = c.newRequest(op, input, output)
4482	return
4483}
4484
4485// GetGeoMatchSet API operation for AWS WAF Regional.
4486//
4487//
4488// This is AWS WAF Classic documentation. For more information, see AWS WAF
4489// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4490// in the developer guide.
4491//
4492// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4493// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4494// With the latest version, AWS WAF has a single set of endpoints for regional
4495// and global use.
4496//
4497// Returns the GeoMatchSet that is specified by GeoMatchSetId.
4498//
4499// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4500// with awserr.Error's Code and Message methods to get detailed information about
4501// the error.
4502//
4503// See the AWS API reference guide for AWS WAF Regional's
4504// API operation GetGeoMatchSet for usage and error information.
4505//
4506// Returned Error Types:
4507//   * WAFInternalErrorException
4508//   The operation failed because of a system problem, even though the request
4509//   was valid. Retry your request.
4510//
4511//   * WAFInvalidAccountException
4512//   The operation failed because you tried to create, update, or delete an object
4513//   by using an invalid account identifier.
4514//
4515//   * WAFNonexistentItemException
4516//   The operation failed because the referenced object doesn't exist.
4517//
4518// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetGeoMatchSet
4519func (c *WAFRegional) GetGeoMatchSet(input *waf.GetGeoMatchSetInput) (*waf.GetGeoMatchSetOutput, error) {
4520	req, out := c.GetGeoMatchSetRequest(input)
4521	return out, req.Send()
4522}
4523
4524// GetGeoMatchSetWithContext is the same as GetGeoMatchSet with the addition of
4525// the ability to pass a context and additional request options.
4526//
4527// See GetGeoMatchSet for details on how to use this API operation.
4528//
4529// The context must be non-nil and will be used for request cancellation. If
4530// the context is nil a panic will occur. In the future the SDK may create
4531// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4532// for more information on using Contexts.
4533func (c *WAFRegional) GetGeoMatchSetWithContext(ctx aws.Context, input *waf.GetGeoMatchSetInput, opts ...request.Option) (*waf.GetGeoMatchSetOutput, error) {
4534	req, out := c.GetGeoMatchSetRequest(input)
4535	req.SetContext(ctx)
4536	req.ApplyOptions(opts...)
4537	return out, req.Send()
4538}
4539
4540const opGetIPSet = "GetIPSet"
4541
4542// GetIPSetRequest generates a "aws/request.Request" representing the
4543// client's request for the GetIPSet operation. The "output" return
4544// value will be populated with the request's response once the request completes
4545// successfully.
4546//
4547// Use "Send" method on the returned Request to send the API call to the service.
4548// the "output" return value is not valid until after Send returns without error.
4549//
4550// See GetIPSet for more information on using the GetIPSet
4551// API call, and error handling.
4552//
4553// This method is useful when you want to inject custom logic or configuration
4554// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4555//
4556//
4557//    // Example sending a request using the GetIPSetRequest method.
4558//    req, resp := client.GetIPSetRequest(params)
4559//
4560//    err := req.Send()
4561//    if err == nil { // resp is now filled
4562//        fmt.Println(resp)
4563//    }
4564//
4565// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetIPSet
4566func (c *WAFRegional) GetIPSetRequest(input *waf.GetIPSetInput) (req *request.Request, output *waf.GetIPSetOutput) {
4567	op := &request.Operation{
4568		Name:       opGetIPSet,
4569		HTTPMethod: "POST",
4570		HTTPPath:   "/",
4571	}
4572
4573	if input == nil {
4574		input = &waf.GetIPSetInput{}
4575	}
4576
4577	output = &waf.GetIPSetOutput{}
4578	req = c.newRequest(op, input, output)
4579	return
4580}
4581
4582// GetIPSet API operation for AWS WAF Regional.
4583//
4584//
4585// This is AWS WAF Classic documentation. For more information, see AWS WAF
4586// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4587// in the developer guide.
4588//
4589// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4590// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4591// With the latest version, AWS WAF has a single set of endpoints for regional
4592// and global use.
4593//
4594// Returns the IPSet that is specified by IPSetId.
4595//
4596// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4597// with awserr.Error's Code and Message methods to get detailed information about
4598// the error.
4599//
4600// See the AWS API reference guide for AWS WAF Regional's
4601// API operation GetIPSet for usage and error information.
4602//
4603// Returned Error Types:
4604//   * WAFInternalErrorException
4605//   The operation failed because of a system problem, even though the request
4606//   was valid. Retry your request.
4607//
4608//   * WAFInvalidAccountException
4609//   The operation failed because you tried to create, update, or delete an object
4610//   by using an invalid account identifier.
4611//
4612//   * WAFNonexistentItemException
4613//   The operation failed because the referenced object doesn't exist.
4614//
4615// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetIPSet
4616func (c *WAFRegional) GetIPSet(input *waf.GetIPSetInput) (*waf.GetIPSetOutput, error) {
4617	req, out := c.GetIPSetRequest(input)
4618	return out, req.Send()
4619}
4620
4621// GetIPSetWithContext is the same as GetIPSet with the addition of
4622// the ability to pass a context and additional request options.
4623//
4624// See GetIPSet for details on how to use this API operation.
4625//
4626// The context must be non-nil and will be used for request cancellation. If
4627// the context is nil a panic will occur. In the future the SDK may create
4628// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4629// for more information on using Contexts.
4630func (c *WAFRegional) GetIPSetWithContext(ctx aws.Context, input *waf.GetIPSetInput, opts ...request.Option) (*waf.GetIPSetOutput, error) {
4631	req, out := c.GetIPSetRequest(input)
4632	req.SetContext(ctx)
4633	req.ApplyOptions(opts...)
4634	return out, req.Send()
4635}
4636
4637const opGetLoggingConfiguration = "GetLoggingConfiguration"
4638
4639// GetLoggingConfigurationRequest generates a "aws/request.Request" representing the
4640// client's request for the GetLoggingConfiguration operation. The "output" return
4641// value will be populated with the request's response once the request completes
4642// successfully.
4643//
4644// Use "Send" method on the returned Request to send the API call to the service.
4645// the "output" return value is not valid until after Send returns without error.
4646//
4647// See GetLoggingConfiguration for more information on using the GetLoggingConfiguration
4648// API call, and error handling.
4649//
4650// This method is useful when you want to inject custom logic or configuration
4651// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4652//
4653//
4654//    // Example sending a request using the GetLoggingConfigurationRequest method.
4655//    req, resp := client.GetLoggingConfigurationRequest(params)
4656//
4657//    err := req.Send()
4658//    if err == nil { // resp is now filled
4659//        fmt.Println(resp)
4660//    }
4661//
4662// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetLoggingConfiguration
4663func (c *WAFRegional) GetLoggingConfigurationRequest(input *waf.GetLoggingConfigurationInput) (req *request.Request, output *waf.GetLoggingConfigurationOutput) {
4664	op := &request.Operation{
4665		Name:       opGetLoggingConfiguration,
4666		HTTPMethod: "POST",
4667		HTTPPath:   "/",
4668	}
4669
4670	if input == nil {
4671		input = &waf.GetLoggingConfigurationInput{}
4672	}
4673
4674	output = &waf.GetLoggingConfigurationOutput{}
4675	req = c.newRequest(op, input, output)
4676	return
4677}
4678
4679// GetLoggingConfiguration API operation for AWS WAF Regional.
4680//
4681//
4682// This is AWS WAF Classic documentation. For more information, see AWS WAF
4683// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4684// in the developer guide.
4685//
4686// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4687// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4688// With the latest version, AWS WAF has a single set of endpoints for regional
4689// and global use.
4690//
4691// Returns the LoggingConfiguration for the specified web ACL.
4692//
4693// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4694// with awserr.Error's Code and Message methods to get detailed information about
4695// the error.
4696//
4697// See the AWS API reference guide for AWS WAF Regional's
4698// API operation GetLoggingConfiguration for usage and error information.
4699//
4700// Returned Error Types:
4701//   * WAFInternalErrorException
4702//   The operation failed because of a system problem, even though the request
4703//   was valid. Retry your request.
4704//
4705//   * WAFNonexistentItemException
4706//   The operation failed because the referenced object doesn't exist.
4707//
4708// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetLoggingConfiguration
4709func (c *WAFRegional) GetLoggingConfiguration(input *waf.GetLoggingConfigurationInput) (*waf.GetLoggingConfigurationOutput, error) {
4710	req, out := c.GetLoggingConfigurationRequest(input)
4711	return out, req.Send()
4712}
4713
4714// GetLoggingConfigurationWithContext is the same as GetLoggingConfiguration with the addition of
4715// the ability to pass a context and additional request options.
4716//
4717// See GetLoggingConfiguration for details on how to use this API operation.
4718//
4719// The context must be non-nil and will be used for request cancellation. If
4720// the context is nil a panic will occur. In the future the SDK may create
4721// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4722// for more information on using Contexts.
4723func (c *WAFRegional) GetLoggingConfigurationWithContext(ctx aws.Context, input *waf.GetLoggingConfigurationInput, opts ...request.Option) (*waf.GetLoggingConfigurationOutput, error) {
4724	req, out := c.GetLoggingConfigurationRequest(input)
4725	req.SetContext(ctx)
4726	req.ApplyOptions(opts...)
4727	return out, req.Send()
4728}
4729
4730const opGetPermissionPolicy = "GetPermissionPolicy"
4731
4732// GetPermissionPolicyRequest generates a "aws/request.Request" representing the
4733// client's request for the GetPermissionPolicy operation. The "output" return
4734// value will be populated with the request's response once the request completes
4735// successfully.
4736//
4737// Use "Send" method on the returned Request to send the API call to the service.
4738// the "output" return value is not valid until after Send returns without error.
4739//
4740// See GetPermissionPolicy for more information on using the GetPermissionPolicy
4741// API call, and error handling.
4742//
4743// This method is useful when you want to inject custom logic or configuration
4744// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4745//
4746//
4747//    // Example sending a request using the GetPermissionPolicyRequest method.
4748//    req, resp := client.GetPermissionPolicyRequest(params)
4749//
4750//    err := req.Send()
4751//    if err == nil { // resp is now filled
4752//        fmt.Println(resp)
4753//    }
4754//
4755// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetPermissionPolicy
4756func (c *WAFRegional) GetPermissionPolicyRequest(input *waf.GetPermissionPolicyInput) (req *request.Request, output *waf.GetPermissionPolicyOutput) {
4757	op := &request.Operation{
4758		Name:       opGetPermissionPolicy,
4759		HTTPMethod: "POST",
4760		HTTPPath:   "/",
4761	}
4762
4763	if input == nil {
4764		input = &waf.GetPermissionPolicyInput{}
4765	}
4766
4767	output = &waf.GetPermissionPolicyOutput{}
4768	req = c.newRequest(op, input, output)
4769	return
4770}
4771
4772// GetPermissionPolicy API operation for AWS WAF Regional.
4773//
4774//
4775// This is AWS WAF Classic documentation. For more information, see AWS WAF
4776// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4777// in the developer guide.
4778//
4779// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4780// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4781// With the latest version, AWS WAF has a single set of endpoints for regional
4782// and global use.
4783//
4784// Returns the IAM policy attached to the RuleGroup.
4785//
4786// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4787// with awserr.Error's Code and Message methods to get detailed information about
4788// the error.
4789//
4790// See the AWS API reference guide for AWS WAF Regional's
4791// API operation GetPermissionPolicy for usage and error information.
4792//
4793// Returned Error Types:
4794//   * WAFInternalErrorException
4795//   The operation failed because of a system problem, even though the request
4796//   was valid. Retry your request.
4797//
4798//   * WAFNonexistentItemException
4799//   The operation failed because the referenced object doesn't exist.
4800//
4801// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetPermissionPolicy
4802func (c *WAFRegional) GetPermissionPolicy(input *waf.GetPermissionPolicyInput) (*waf.GetPermissionPolicyOutput, error) {
4803	req, out := c.GetPermissionPolicyRequest(input)
4804	return out, req.Send()
4805}
4806
4807// GetPermissionPolicyWithContext is the same as GetPermissionPolicy with the addition of
4808// the ability to pass a context and additional request options.
4809//
4810// See GetPermissionPolicy for details on how to use this API operation.
4811//
4812// The context must be non-nil and will be used for request cancellation. If
4813// the context is nil a panic will occur. In the future the SDK may create
4814// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4815// for more information on using Contexts.
4816func (c *WAFRegional) GetPermissionPolicyWithContext(ctx aws.Context, input *waf.GetPermissionPolicyInput, opts ...request.Option) (*waf.GetPermissionPolicyOutput, error) {
4817	req, out := c.GetPermissionPolicyRequest(input)
4818	req.SetContext(ctx)
4819	req.ApplyOptions(opts...)
4820	return out, req.Send()
4821}
4822
4823const opGetRateBasedRule = "GetRateBasedRule"
4824
4825// GetRateBasedRuleRequest generates a "aws/request.Request" representing the
4826// client's request for the GetRateBasedRule operation. The "output" return
4827// value will be populated with the request's response once the request completes
4828// successfully.
4829//
4830// Use "Send" method on the returned Request to send the API call to the service.
4831// the "output" return value is not valid until after Send returns without error.
4832//
4833// See GetRateBasedRule for more information on using the GetRateBasedRule
4834// API call, and error handling.
4835//
4836// This method is useful when you want to inject custom logic or configuration
4837// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4838//
4839//
4840//    // Example sending a request using the GetRateBasedRuleRequest method.
4841//    req, resp := client.GetRateBasedRuleRequest(params)
4842//
4843//    err := req.Send()
4844//    if err == nil { // resp is now filled
4845//        fmt.Println(resp)
4846//    }
4847//
4848// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRule
4849func (c *WAFRegional) GetRateBasedRuleRequest(input *waf.GetRateBasedRuleInput) (req *request.Request, output *waf.GetRateBasedRuleOutput) {
4850	op := &request.Operation{
4851		Name:       opGetRateBasedRule,
4852		HTTPMethod: "POST",
4853		HTTPPath:   "/",
4854	}
4855
4856	if input == nil {
4857		input = &waf.GetRateBasedRuleInput{}
4858	}
4859
4860	output = &waf.GetRateBasedRuleOutput{}
4861	req = c.newRequest(op, input, output)
4862	return
4863}
4864
4865// GetRateBasedRule API operation for AWS WAF Regional.
4866//
4867//
4868// This is AWS WAF Classic documentation. For more information, see AWS WAF
4869// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4870// in the developer guide.
4871//
4872// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4873// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4874// With the latest version, AWS WAF has a single set of endpoints for regional
4875// and global use.
4876//
4877// Returns the RateBasedRule that is specified by the RuleId that you included
4878// in the GetRateBasedRule request.
4879//
4880// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4881// with awserr.Error's Code and Message methods to get detailed information about
4882// the error.
4883//
4884// See the AWS API reference guide for AWS WAF Regional's
4885// API operation GetRateBasedRule for usage and error information.
4886//
4887// Returned Error Types:
4888//   * WAFInternalErrorException
4889//   The operation failed because of a system problem, even though the request
4890//   was valid. Retry your request.
4891//
4892//   * WAFInvalidAccountException
4893//   The operation failed because you tried to create, update, or delete an object
4894//   by using an invalid account identifier.
4895//
4896//   * WAFNonexistentItemException
4897//   The operation failed because the referenced object doesn't exist.
4898//
4899// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRule
4900func (c *WAFRegional) GetRateBasedRule(input *waf.GetRateBasedRuleInput) (*waf.GetRateBasedRuleOutput, error) {
4901	req, out := c.GetRateBasedRuleRequest(input)
4902	return out, req.Send()
4903}
4904
4905// GetRateBasedRuleWithContext is the same as GetRateBasedRule with the addition of
4906// the ability to pass a context and additional request options.
4907//
4908// See GetRateBasedRule for details on how to use this API operation.
4909//
4910// The context must be non-nil and will be used for request cancellation. If
4911// the context is nil a panic will occur. In the future the SDK may create
4912// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4913// for more information on using Contexts.
4914func (c *WAFRegional) GetRateBasedRuleWithContext(ctx aws.Context, input *waf.GetRateBasedRuleInput, opts ...request.Option) (*waf.GetRateBasedRuleOutput, error) {
4915	req, out := c.GetRateBasedRuleRequest(input)
4916	req.SetContext(ctx)
4917	req.ApplyOptions(opts...)
4918	return out, req.Send()
4919}
4920
4921const opGetRateBasedRuleManagedKeys = "GetRateBasedRuleManagedKeys"
4922
4923// GetRateBasedRuleManagedKeysRequest generates a "aws/request.Request" representing the
4924// client's request for the GetRateBasedRuleManagedKeys operation. The "output" return
4925// value will be populated with the request's response once the request completes
4926// successfully.
4927//
4928// Use "Send" method on the returned Request to send the API call to the service.
4929// the "output" return value is not valid until after Send returns without error.
4930//
4931// See GetRateBasedRuleManagedKeys for more information on using the GetRateBasedRuleManagedKeys
4932// API call, and error handling.
4933//
4934// This method is useful when you want to inject custom logic or configuration
4935// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4936//
4937//
4938//    // Example sending a request using the GetRateBasedRuleManagedKeysRequest method.
4939//    req, resp := client.GetRateBasedRuleManagedKeysRequest(params)
4940//
4941//    err := req.Send()
4942//    if err == nil { // resp is now filled
4943//        fmt.Println(resp)
4944//    }
4945//
4946// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRuleManagedKeys
4947func (c *WAFRegional) GetRateBasedRuleManagedKeysRequest(input *waf.GetRateBasedRuleManagedKeysInput) (req *request.Request, output *waf.GetRateBasedRuleManagedKeysOutput) {
4948	op := &request.Operation{
4949		Name:       opGetRateBasedRuleManagedKeys,
4950		HTTPMethod: "POST",
4951		HTTPPath:   "/",
4952	}
4953
4954	if input == nil {
4955		input = &waf.GetRateBasedRuleManagedKeysInput{}
4956	}
4957
4958	output = &waf.GetRateBasedRuleManagedKeysOutput{}
4959	req = c.newRequest(op, input, output)
4960	return
4961}
4962
4963// GetRateBasedRuleManagedKeys API operation for AWS WAF Regional.
4964//
4965//
4966// This is AWS WAF Classic documentation. For more information, see AWS WAF
4967// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
4968// in the developer guide.
4969//
4970// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
4971// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
4972// With the latest version, AWS WAF has a single set of endpoints for regional
4973// and global use.
4974//
4975// Returns an array of IP addresses currently being blocked by the RateBasedRule
4976// that is specified by the RuleId. The maximum number of managed keys that
4977// will be blocked is 10,000. If more than 10,000 addresses exceed the rate
4978// limit, the 10,000 addresses with the highest rates will be blocked.
4979//
4980// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4981// with awserr.Error's Code and Message methods to get detailed information about
4982// the error.
4983//
4984// See the AWS API reference guide for AWS WAF Regional's
4985// API operation GetRateBasedRuleManagedKeys for usage and error information.
4986//
4987// Returned Error Types:
4988//   * WAFInternalErrorException
4989//   The operation failed because of a system problem, even though the request
4990//   was valid. Retry your request.
4991//
4992//   * WAFInvalidAccountException
4993//   The operation failed because you tried to create, update, or delete an object
4994//   by using an invalid account identifier.
4995//
4996//   * WAFNonexistentItemException
4997//   The operation failed because the referenced object doesn't exist.
4998//
4999//   * WAFInvalidParameterException
5000//   The operation failed because AWS WAF didn't recognize a parameter in the
5001//   request. For example:
5002//
5003//      * You specified an invalid parameter name.
5004//
5005//      * You specified an invalid value.
5006//
5007//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
5008//      using an action other than INSERT or DELETE.
5009//
5010//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
5011//      BLOCK, or COUNT.
5012//
5013//      * You tried to create a RateBasedRule with a RateKey value other than
5014//      IP.
5015//
5016//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
5017//      BLOCK, or COUNT.
5018//
5019//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
5020//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
5021//
5022//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
5023//      for Data.
5024//
5025//      * Your request references an ARN that is malformed, or corresponds to
5026//      a resource with which a web ACL cannot be associated.
5027//
5028// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRuleManagedKeys
5029func (c *WAFRegional) GetRateBasedRuleManagedKeys(input *waf.GetRateBasedRuleManagedKeysInput) (*waf.GetRateBasedRuleManagedKeysOutput, error) {
5030	req, out := c.GetRateBasedRuleManagedKeysRequest(input)
5031	return out, req.Send()
5032}
5033
5034// GetRateBasedRuleManagedKeysWithContext is the same as GetRateBasedRuleManagedKeys with the addition of
5035// the ability to pass a context and additional request options.
5036//
5037// See GetRateBasedRuleManagedKeys for details on how to use this API operation.
5038//
5039// The context must be non-nil and will be used for request cancellation. If
5040// the context is nil a panic will occur. In the future the SDK may create
5041// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5042// for more information on using Contexts.
5043func (c *WAFRegional) GetRateBasedRuleManagedKeysWithContext(ctx aws.Context, input *waf.GetRateBasedRuleManagedKeysInput, opts ...request.Option) (*waf.GetRateBasedRuleManagedKeysOutput, error) {
5044	req, out := c.GetRateBasedRuleManagedKeysRequest(input)
5045	req.SetContext(ctx)
5046	req.ApplyOptions(opts...)
5047	return out, req.Send()
5048}
5049
5050const opGetRegexMatchSet = "GetRegexMatchSet"
5051
5052// GetRegexMatchSetRequest generates a "aws/request.Request" representing the
5053// client's request for the GetRegexMatchSet operation. The "output" return
5054// value will be populated with the request's response once the request completes
5055// successfully.
5056//
5057// Use "Send" method on the returned Request to send the API call to the service.
5058// the "output" return value is not valid until after Send returns without error.
5059//
5060// See GetRegexMatchSet for more information on using the GetRegexMatchSet
5061// API call, and error handling.
5062//
5063// This method is useful when you want to inject custom logic or configuration
5064// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5065//
5066//
5067//    // Example sending a request using the GetRegexMatchSetRequest method.
5068//    req, resp := client.GetRegexMatchSetRequest(params)
5069//
5070//    err := req.Send()
5071//    if err == nil { // resp is now filled
5072//        fmt.Println(resp)
5073//    }
5074//
5075// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRegexMatchSet
5076func (c *WAFRegional) GetRegexMatchSetRequest(input *waf.GetRegexMatchSetInput) (req *request.Request, output *waf.GetRegexMatchSetOutput) {
5077	op := &request.Operation{
5078		Name:       opGetRegexMatchSet,
5079		HTTPMethod: "POST",
5080		HTTPPath:   "/",
5081	}
5082
5083	if input == nil {
5084		input = &waf.GetRegexMatchSetInput{}
5085	}
5086
5087	output = &waf.GetRegexMatchSetOutput{}
5088	req = c.newRequest(op, input, output)
5089	return
5090}
5091
5092// GetRegexMatchSet API operation for AWS WAF Regional.
5093//
5094//
5095// This is AWS WAF Classic documentation. For more information, see AWS WAF
5096// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5097// in the developer guide.
5098//
5099// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5100// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5101// With the latest version, AWS WAF has a single set of endpoints for regional
5102// and global use.
5103//
5104// Returns the RegexMatchSet specified by RegexMatchSetId.
5105//
5106// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5107// with awserr.Error's Code and Message methods to get detailed information about
5108// the error.
5109//
5110// See the AWS API reference guide for AWS WAF Regional's
5111// API operation GetRegexMatchSet for usage and error information.
5112//
5113// Returned Error Types:
5114//   * WAFInternalErrorException
5115//   The operation failed because of a system problem, even though the request
5116//   was valid. Retry your request.
5117//
5118//   * WAFInvalidAccountException
5119//   The operation failed because you tried to create, update, or delete an object
5120//   by using an invalid account identifier.
5121//
5122//   * WAFNonexistentItemException
5123//   The operation failed because the referenced object doesn't exist.
5124//
5125// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRegexMatchSet
5126func (c *WAFRegional) GetRegexMatchSet(input *waf.GetRegexMatchSetInput) (*waf.GetRegexMatchSetOutput, error) {
5127	req, out := c.GetRegexMatchSetRequest(input)
5128	return out, req.Send()
5129}
5130
5131// GetRegexMatchSetWithContext is the same as GetRegexMatchSet with the addition of
5132// the ability to pass a context and additional request options.
5133//
5134// See GetRegexMatchSet for details on how to use this API operation.
5135//
5136// The context must be non-nil and will be used for request cancellation. If
5137// the context is nil a panic will occur. In the future the SDK may create
5138// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5139// for more information on using Contexts.
5140func (c *WAFRegional) GetRegexMatchSetWithContext(ctx aws.Context, input *waf.GetRegexMatchSetInput, opts ...request.Option) (*waf.GetRegexMatchSetOutput, error) {
5141	req, out := c.GetRegexMatchSetRequest(input)
5142	req.SetContext(ctx)
5143	req.ApplyOptions(opts...)
5144	return out, req.Send()
5145}
5146
5147const opGetRegexPatternSet = "GetRegexPatternSet"
5148
5149// GetRegexPatternSetRequest generates a "aws/request.Request" representing the
5150// client's request for the GetRegexPatternSet operation. The "output" return
5151// value will be populated with the request's response once the request completes
5152// successfully.
5153//
5154// Use "Send" method on the returned Request to send the API call to the service.
5155// the "output" return value is not valid until after Send returns without error.
5156//
5157// See GetRegexPatternSet for more information on using the GetRegexPatternSet
5158// API call, and error handling.
5159//
5160// This method is useful when you want to inject custom logic or configuration
5161// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5162//
5163//
5164//    // Example sending a request using the GetRegexPatternSetRequest method.
5165//    req, resp := client.GetRegexPatternSetRequest(params)
5166//
5167//    err := req.Send()
5168//    if err == nil { // resp is now filled
5169//        fmt.Println(resp)
5170//    }
5171//
5172// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRegexPatternSet
5173func (c *WAFRegional) GetRegexPatternSetRequest(input *waf.GetRegexPatternSetInput) (req *request.Request, output *waf.GetRegexPatternSetOutput) {
5174	op := &request.Operation{
5175		Name:       opGetRegexPatternSet,
5176		HTTPMethod: "POST",
5177		HTTPPath:   "/",
5178	}
5179
5180	if input == nil {
5181		input = &waf.GetRegexPatternSetInput{}
5182	}
5183
5184	output = &waf.GetRegexPatternSetOutput{}
5185	req = c.newRequest(op, input, output)
5186	return
5187}
5188
5189// GetRegexPatternSet API operation for AWS WAF Regional.
5190//
5191//
5192// This is AWS WAF Classic documentation. For more information, see AWS WAF
5193// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5194// in the developer guide.
5195//
5196// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5197// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5198// With the latest version, AWS WAF has a single set of endpoints for regional
5199// and global use.
5200//
5201// Returns the RegexPatternSet specified by RegexPatternSetId.
5202//
5203// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5204// with awserr.Error's Code and Message methods to get detailed information about
5205// the error.
5206//
5207// See the AWS API reference guide for AWS WAF Regional's
5208// API operation GetRegexPatternSet for usage and error information.
5209//
5210// Returned Error Types:
5211//   * WAFInternalErrorException
5212//   The operation failed because of a system problem, even though the request
5213//   was valid. Retry your request.
5214//
5215//   * WAFInvalidAccountException
5216//   The operation failed because you tried to create, update, or delete an object
5217//   by using an invalid account identifier.
5218//
5219//   * WAFNonexistentItemException
5220//   The operation failed because the referenced object doesn't exist.
5221//
5222// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRegexPatternSet
5223func (c *WAFRegional) GetRegexPatternSet(input *waf.GetRegexPatternSetInput) (*waf.GetRegexPatternSetOutput, error) {
5224	req, out := c.GetRegexPatternSetRequest(input)
5225	return out, req.Send()
5226}
5227
5228// GetRegexPatternSetWithContext is the same as GetRegexPatternSet with the addition of
5229// the ability to pass a context and additional request options.
5230//
5231// See GetRegexPatternSet for details on how to use this API operation.
5232//
5233// The context must be non-nil and will be used for request cancellation. If
5234// the context is nil a panic will occur. In the future the SDK may create
5235// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5236// for more information on using Contexts.
5237func (c *WAFRegional) GetRegexPatternSetWithContext(ctx aws.Context, input *waf.GetRegexPatternSetInput, opts ...request.Option) (*waf.GetRegexPatternSetOutput, error) {
5238	req, out := c.GetRegexPatternSetRequest(input)
5239	req.SetContext(ctx)
5240	req.ApplyOptions(opts...)
5241	return out, req.Send()
5242}
5243
5244const opGetRule = "GetRule"
5245
5246// GetRuleRequest generates a "aws/request.Request" representing the
5247// client's request for the GetRule operation. The "output" return
5248// value will be populated with the request's response once the request completes
5249// successfully.
5250//
5251// Use "Send" method on the returned Request to send the API call to the service.
5252// the "output" return value is not valid until after Send returns without error.
5253//
5254// See GetRule for more information on using the GetRule
5255// API call, and error handling.
5256//
5257// This method is useful when you want to inject custom logic or configuration
5258// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5259//
5260//
5261//    // Example sending a request using the GetRuleRequest method.
5262//    req, resp := client.GetRuleRequest(params)
5263//
5264//    err := req.Send()
5265//    if err == nil { // resp is now filled
5266//        fmt.Println(resp)
5267//    }
5268//
5269// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRule
5270func (c *WAFRegional) GetRuleRequest(input *waf.GetRuleInput) (req *request.Request, output *waf.GetRuleOutput) {
5271	op := &request.Operation{
5272		Name:       opGetRule,
5273		HTTPMethod: "POST",
5274		HTTPPath:   "/",
5275	}
5276
5277	if input == nil {
5278		input = &waf.GetRuleInput{}
5279	}
5280
5281	output = &waf.GetRuleOutput{}
5282	req = c.newRequest(op, input, output)
5283	return
5284}
5285
5286// GetRule API operation for AWS WAF Regional.
5287//
5288//
5289// This is AWS WAF Classic documentation. For more information, see AWS WAF
5290// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5291// in the developer guide.
5292//
5293// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5294// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5295// With the latest version, AWS WAF has a single set of endpoints for regional
5296// and global use.
5297//
5298// Returns the Rule that is specified by the RuleId that you included in the
5299// GetRule request.
5300//
5301// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5302// with awserr.Error's Code and Message methods to get detailed information about
5303// the error.
5304//
5305// See the AWS API reference guide for AWS WAF Regional's
5306// API operation GetRule for usage and error information.
5307//
5308// Returned Error Types:
5309//   * WAFInternalErrorException
5310//   The operation failed because of a system problem, even though the request
5311//   was valid. Retry your request.
5312//
5313//   * WAFInvalidAccountException
5314//   The operation failed because you tried to create, update, or delete an object
5315//   by using an invalid account identifier.
5316//
5317//   * WAFNonexistentItemException
5318//   The operation failed because the referenced object doesn't exist.
5319//
5320// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRule
5321func (c *WAFRegional) GetRule(input *waf.GetRuleInput) (*waf.GetRuleOutput, error) {
5322	req, out := c.GetRuleRequest(input)
5323	return out, req.Send()
5324}
5325
5326// GetRuleWithContext is the same as GetRule with the addition of
5327// the ability to pass a context and additional request options.
5328//
5329// See GetRule for details on how to use this API operation.
5330//
5331// The context must be non-nil and will be used for request cancellation. If
5332// the context is nil a panic will occur. In the future the SDK may create
5333// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5334// for more information on using Contexts.
5335func (c *WAFRegional) GetRuleWithContext(ctx aws.Context, input *waf.GetRuleInput, opts ...request.Option) (*waf.GetRuleOutput, error) {
5336	req, out := c.GetRuleRequest(input)
5337	req.SetContext(ctx)
5338	req.ApplyOptions(opts...)
5339	return out, req.Send()
5340}
5341
5342const opGetRuleGroup = "GetRuleGroup"
5343
5344// GetRuleGroupRequest generates a "aws/request.Request" representing the
5345// client's request for the GetRuleGroup operation. The "output" return
5346// value will be populated with the request's response once the request completes
5347// successfully.
5348//
5349// Use "Send" method on the returned Request to send the API call to the service.
5350// the "output" return value is not valid until after Send returns without error.
5351//
5352// See GetRuleGroup for more information on using the GetRuleGroup
5353// API call, and error handling.
5354//
5355// This method is useful when you want to inject custom logic or configuration
5356// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5357//
5358//
5359//    // Example sending a request using the GetRuleGroupRequest method.
5360//    req, resp := client.GetRuleGroupRequest(params)
5361//
5362//    err := req.Send()
5363//    if err == nil { // resp is now filled
5364//        fmt.Println(resp)
5365//    }
5366//
5367// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRuleGroup
5368func (c *WAFRegional) GetRuleGroupRequest(input *waf.GetRuleGroupInput) (req *request.Request, output *waf.GetRuleGroupOutput) {
5369	op := &request.Operation{
5370		Name:       opGetRuleGroup,
5371		HTTPMethod: "POST",
5372		HTTPPath:   "/",
5373	}
5374
5375	if input == nil {
5376		input = &waf.GetRuleGroupInput{}
5377	}
5378
5379	output = &waf.GetRuleGroupOutput{}
5380	req = c.newRequest(op, input, output)
5381	return
5382}
5383
5384// GetRuleGroup API operation for AWS WAF Regional.
5385//
5386//
5387// This is AWS WAF Classic documentation. For more information, see AWS WAF
5388// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5389// in the developer guide.
5390//
5391// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5392// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5393// With the latest version, AWS WAF has a single set of endpoints for regional
5394// and global use.
5395//
5396// Returns the RuleGroup that is specified by the RuleGroupId that you included
5397// in the GetRuleGroup request.
5398//
5399// To view the rules in a rule group, use ListActivatedRulesInRuleGroup.
5400//
5401// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5402// with awserr.Error's Code and Message methods to get detailed information about
5403// the error.
5404//
5405// See the AWS API reference guide for AWS WAF Regional's
5406// API operation GetRuleGroup for usage and error information.
5407//
5408// Returned Error Types:
5409//   * WAFInternalErrorException
5410//   The operation failed because of a system problem, even though the request
5411//   was valid. Retry your request.
5412//
5413//   * WAFNonexistentItemException
5414//   The operation failed because the referenced object doesn't exist.
5415//
5416// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRuleGroup
5417func (c *WAFRegional) GetRuleGroup(input *waf.GetRuleGroupInput) (*waf.GetRuleGroupOutput, error) {
5418	req, out := c.GetRuleGroupRequest(input)
5419	return out, req.Send()
5420}
5421
5422// GetRuleGroupWithContext is the same as GetRuleGroup with the addition of
5423// the ability to pass a context and additional request options.
5424//
5425// See GetRuleGroup for details on how to use this API operation.
5426//
5427// The context must be non-nil and will be used for request cancellation. If
5428// the context is nil a panic will occur. In the future the SDK may create
5429// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5430// for more information on using Contexts.
5431func (c *WAFRegional) GetRuleGroupWithContext(ctx aws.Context, input *waf.GetRuleGroupInput, opts ...request.Option) (*waf.GetRuleGroupOutput, error) {
5432	req, out := c.GetRuleGroupRequest(input)
5433	req.SetContext(ctx)
5434	req.ApplyOptions(opts...)
5435	return out, req.Send()
5436}
5437
5438const opGetSampledRequests = "GetSampledRequests"
5439
5440// GetSampledRequestsRequest generates a "aws/request.Request" representing the
5441// client's request for the GetSampledRequests operation. The "output" return
5442// value will be populated with the request's response once the request completes
5443// successfully.
5444//
5445// Use "Send" method on the returned Request to send the API call to the service.
5446// the "output" return value is not valid until after Send returns without error.
5447//
5448// See GetSampledRequests for more information on using the GetSampledRequests
5449// API call, and error handling.
5450//
5451// This method is useful when you want to inject custom logic or configuration
5452// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5453//
5454//
5455//    // Example sending a request using the GetSampledRequestsRequest method.
5456//    req, resp := client.GetSampledRequestsRequest(params)
5457//
5458//    err := req.Send()
5459//    if err == nil { // resp is now filled
5460//        fmt.Println(resp)
5461//    }
5462//
5463// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSampledRequests
5464func (c *WAFRegional) GetSampledRequestsRequest(input *waf.GetSampledRequestsInput) (req *request.Request, output *waf.GetSampledRequestsOutput) {
5465	op := &request.Operation{
5466		Name:       opGetSampledRequests,
5467		HTTPMethod: "POST",
5468		HTTPPath:   "/",
5469	}
5470
5471	if input == nil {
5472		input = &waf.GetSampledRequestsInput{}
5473	}
5474
5475	output = &waf.GetSampledRequestsOutput{}
5476	req = c.newRequest(op, input, output)
5477	return
5478}
5479
5480// GetSampledRequests API operation for AWS WAF Regional.
5481//
5482//
5483// This is AWS WAF Classic documentation. For more information, see AWS WAF
5484// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5485// in the developer guide.
5486//
5487// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5488// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5489// With the latest version, AWS WAF has a single set of endpoints for regional
5490// and global use.
5491//
5492// Gets detailed information about a specified number of requests--a sample--that
5493// AWS WAF randomly selects from among the first 5,000 requests that your AWS
5494// resource received during a time range that you choose. You can specify a
5495// sample size of up to 500 requests, and you can specify any time range in
5496// the previous three hours.
5497//
5498// GetSampledRequests returns a time range, which is usually the time range
5499// that you specified. However, if your resource (such as a CloudFront distribution)
5500// received 5,000 requests before the specified time range elapsed, GetSampledRequests
5501// returns an updated time range. This new time range indicates the actual period
5502// during which AWS WAF selected the requests in the sample.
5503//
5504// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5505// with awserr.Error's Code and Message methods to get detailed information about
5506// the error.
5507//
5508// See the AWS API reference guide for AWS WAF Regional's
5509// API operation GetSampledRequests for usage and error information.
5510//
5511// Returned Error Types:
5512//   * WAFNonexistentItemException
5513//   The operation failed because the referenced object doesn't exist.
5514//
5515//   * WAFInternalErrorException
5516//   The operation failed because of a system problem, even though the request
5517//   was valid. Retry your request.
5518//
5519// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSampledRequests
5520func (c *WAFRegional) GetSampledRequests(input *waf.GetSampledRequestsInput) (*waf.GetSampledRequestsOutput, error) {
5521	req, out := c.GetSampledRequestsRequest(input)
5522	return out, req.Send()
5523}
5524
5525// GetSampledRequestsWithContext is the same as GetSampledRequests with the addition of
5526// the ability to pass a context and additional request options.
5527//
5528// See GetSampledRequests for details on how to use this API operation.
5529//
5530// The context must be non-nil and will be used for request cancellation. If
5531// the context is nil a panic will occur. In the future the SDK may create
5532// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5533// for more information on using Contexts.
5534func (c *WAFRegional) GetSampledRequestsWithContext(ctx aws.Context, input *waf.GetSampledRequestsInput, opts ...request.Option) (*waf.GetSampledRequestsOutput, error) {
5535	req, out := c.GetSampledRequestsRequest(input)
5536	req.SetContext(ctx)
5537	req.ApplyOptions(opts...)
5538	return out, req.Send()
5539}
5540
5541const opGetSizeConstraintSet = "GetSizeConstraintSet"
5542
5543// GetSizeConstraintSetRequest generates a "aws/request.Request" representing the
5544// client's request for the GetSizeConstraintSet operation. The "output" return
5545// value will be populated with the request's response once the request completes
5546// successfully.
5547//
5548// Use "Send" method on the returned Request to send the API call to the service.
5549// the "output" return value is not valid until after Send returns without error.
5550//
5551// See GetSizeConstraintSet for more information on using the GetSizeConstraintSet
5552// API call, and error handling.
5553//
5554// This method is useful when you want to inject custom logic or configuration
5555// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5556//
5557//
5558//    // Example sending a request using the GetSizeConstraintSetRequest method.
5559//    req, resp := client.GetSizeConstraintSetRequest(params)
5560//
5561//    err := req.Send()
5562//    if err == nil { // resp is now filled
5563//        fmt.Println(resp)
5564//    }
5565//
5566// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSizeConstraintSet
5567func (c *WAFRegional) GetSizeConstraintSetRequest(input *waf.GetSizeConstraintSetInput) (req *request.Request, output *waf.GetSizeConstraintSetOutput) {
5568	op := &request.Operation{
5569		Name:       opGetSizeConstraintSet,
5570		HTTPMethod: "POST",
5571		HTTPPath:   "/",
5572	}
5573
5574	if input == nil {
5575		input = &waf.GetSizeConstraintSetInput{}
5576	}
5577
5578	output = &waf.GetSizeConstraintSetOutput{}
5579	req = c.newRequest(op, input, output)
5580	return
5581}
5582
5583// GetSizeConstraintSet API operation for AWS WAF Regional.
5584//
5585//
5586// This is AWS WAF Classic documentation. For more information, see AWS WAF
5587// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5588// in the developer guide.
5589//
5590// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5591// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5592// With the latest version, AWS WAF has a single set of endpoints for regional
5593// and global use.
5594//
5595// Returns the SizeConstraintSet specified by SizeConstraintSetId.
5596//
5597// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5598// with awserr.Error's Code and Message methods to get detailed information about
5599// the error.
5600//
5601// See the AWS API reference guide for AWS WAF Regional's
5602// API operation GetSizeConstraintSet for usage and error information.
5603//
5604// Returned Error Types:
5605//   * WAFInternalErrorException
5606//   The operation failed because of a system problem, even though the request
5607//   was valid. Retry your request.
5608//
5609//   * WAFInvalidAccountException
5610//   The operation failed because you tried to create, update, or delete an object
5611//   by using an invalid account identifier.
5612//
5613//   * WAFNonexistentItemException
5614//   The operation failed because the referenced object doesn't exist.
5615//
5616// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSizeConstraintSet
5617func (c *WAFRegional) GetSizeConstraintSet(input *waf.GetSizeConstraintSetInput) (*waf.GetSizeConstraintSetOutput, error) {
5618	req, out := c.GetSizeConstraintSetRequest(input)
5619	return out, req.Send()
5620}
5621
5622// GetSizeConstraintSetWithContext is the same as GetSizeConstraintSet with the addition of
5623// the ability to pass a context and additional request options.
5624//
5625// See GetSizeConstraintSet for details on how to use this API operation.
5626//
5627// The context must be non-nil and will be used for request cancellation. If
5628// the context is nil a panic will occur. In the future the SDK may create
5629// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5630// for more information on using Contexts.
5631func (c *WAFRegional) GetSizeConstraintSetWithContext(ctx aws.Context, input *waf.GetSizeConstraintSetInput, opts ...request.Option) (*waf.GetSizeConstraintSetOutput, error) {
5632	req, out := c.GetSizeConstraintSetRequest(input)
5633	req.SetContext(ctx)
5634	req.ApplyOptions(opts...)
5635	return out, req.Send()
5636}
5637
5638const opGetSqlInjectionMatchSet = "GetSqlInjectionMatchSet"
5639
5640// GetSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
5641// client's request for the GetSqlInjectionMatchSet operation. The "output" return
5642// value will be populated with the request's response once the request completes
5643// successfully.
5644//
5645// Use "Send" method on the returned Request to send the API call to the service.
5646// the "output" return value is not valid until after Send returns without error.
5647//
5648// See GetSqlInjectionMatchSet for more information on using the GetSqlInjectionMatchSet
5649// API call, and error handling.
5650//
5651// This method is useful when you want to inject custom logic or configuration
5652// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5653//
5654//
5655//    // Example sending a request using the GetSqlInjectionMatchSetRequest method.
5656//    req, resp := client.GetSqlInjectionMatchSetRequest(params)
5657//
5658//    err := req.Send()
5659//    if err == nil { // resp is now filled
5660//        fmt.Println(resp)
5661//    }
5662//
5663// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSqlInjectionMatchSet
5664func (c *WAFRegional) GetSqlInjectionMatchSetRequest(input *waf.GetSqlInjectionMatchSetInput) (req *request.Request, output *waf.GetSqlInjectionMatchSetOutput) {
5665	op := &request.Operation{
5666		Name:       opGetSqlInjectionMatchSet,
5667		HTTPMethod: "POST",
5668		HTTPPath:   "/",
5669	}
5670
5671	if input == nil {
5672		input = &waf.GetSqlInjectionMatchSetInput{}
5673	}
5674
5675	output = &waf.GetSqlInjectionMatchSetOutput{}
5676	req = c.newRequest(op, input, output)
5677	return
5678}
5679
5680// GetSqlInjectionMatchSet API operation for AWS WAF Regional.
5681//
5682//
5683// This is AWS WAF Classic documentation. For more information, see AWS WAF
5684// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5685// in the developer guide.
5686//
5687// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5688// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5689// With the latest version, AWS WAF has a single set of endpoints for regional
5690// and global use.
5691//
5692// Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId.
5693//
5694// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5695// with awserr.Error's Code and Message methods to get detailed information about
5696// the error.
5697//
5698// See the AWS API reference guide for AWS WAF Regional's
5699// API operation GetSqlInjectionMatchSet for usage and error information.
5700//
5701// Returned Error Types:
5702//   * WAFInternalErrorException
5703//   The operation failed because of a system problem, even though the request
5704//   was valid. Retry your request.
5705//
5706//   * WAFInvalidAccountException
5707//   The operation failed because you tried to create, update, or delete an object
5708//   by using an invalid account identifier.
5709//
5710//   * WAFNonexistentItemException
5711//   The operation failed because the referenced object doesn't exist.
5712//
5713// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSqlInjectionMatchSet
5714func (c *WAFRegional) GetSqlInjectionMatchSet(input *waf.GetSqlInjectionMatchSetInput) (*waf.GetSqlInjectionMatchSetOutput, error) {
5715	req, out := c.GetSqlInjectionMatchSetRequest(input)
5716	return out, req.Send()
5717}
5718
5719// GetSqlInjectionMatchSetWithContext is the same as GetSqlInjectionMatchSet with the addition of
5720// the ability to pass a context and additional request options.
5721//
5722// See GetSqlInjectionMatchSet for details on how to use this API operation.
5723//
5724// The context must be non-nil and will be used for request cancellation. If
5725// the context is nil a panic will occur. In the future the SDK may create
5726// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5727// for more information on using Contexts.
5728func (c *WAFRegional) GetSqlInjectionMatchSetWithContext(ctx aws.Context, input *waf.GetSqlInjectionMatchSetInput, opts ...request.Option) (*waf.GetSqlInjectionMatchSetOutput, error) {
5729	req, out := c.GetSqlInjectionMatchSetRequest(input)
5730	req.SetContext(ctx)
5731	req.ApplyOptions(opts...)
5732	return out, req.Send()
5733}
5734
5735const opGetWebACL = "GetWebACL"
5736
5737// GetWebACLRequest generates a "aws/request.Request" representing the
5738// client's request for the GetWebACL operation. The "output" return
5739// value will be populated with the request's response once the request completes
5740// successfully.
5741//
5742// Use "Send" method on the returned Request to send the API call to the service.
5743// the "output" return value is not valid until after Send returns without error.
5744//
5745// See GetWebACL for more information on using the GetWebACL
5746// API call, and error handling.
5747//
5748// This method is useful when you want to inject custom logic or configuration
5749// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5750//
5751//
5752//    // Example sending a request using the GetWebACLRequest method.
5753//    req, resp := client.GetWebACLRequest(params)
5754//
5755//    err := req.Send()
5756//    if err == nil { // resp is now filled
5757//        fmt.Println(resp)
5758//    }
5759//
5760// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACL
5761func (c *WAFRegional) GetWebACLRequest(input *waf.GetWebACLInput) (req *request.Request, output *waf.GetWebACLOutput) {
5762	op := &request.Operation{
5763		Name:       opGetWebACL,
5764		HTTPMethod: "POST",
5765		HTTPPath:   "/",
5766	}
5767
5768	if input == nil {
5769		input = &waf.GetWebACLInput{}
5770	}
5771
5772	output = &waf.GetWebACLOutput{}
5773	req = c.newRequest(op, input, output)
5774	return
5775}
5776
5777// GetWebACL API operation for AWS WAF Regional.
5778//
5779//
5780// This is AWS WAF Classic documentation. For more information, see AWS WAF
5781// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5782// in the developer guide.
5783//
5784// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5785// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5786// With the latest version, AWS WAF has a single set of endpoints for regional
5787// and global use.
5788//
5789// Returns the WebACL that is specified by WebACLId.
5790//
5791// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5792// with awserr.Error's Code and Message methods to get detailed information about
5793// the error.
5794//
5795// See the AWS API reference guide for AWS WAF Regional's
5796// API operation GetWebACL for usage and error information.
5797//
5798// Returned Error Types:
5799//   * WAFInternalErrorException
5800//   The operation failed because of a system problem, even though the request
5801//   was valid. Retry your request.
5802//
5803//   * WAFInvalidAccountException
5804//   The operation failed because you tried to create, update, or delete an object
5805//   by using an invalid account identifier.
5806//
5807//   * WAFNonexistentItemException
5808//   The operation failed because the referenced object doesn't exist.
5809//
5810// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACL
5811func (c *WAFRegional) GetWebACL(input *waf.GetWebACLInput) (*waf.GetWebACLOutput, error) {
5812	req, out := c.GetWebACLRequest(input)
5813	return out, req.Send()
5814}
5815
5816// GetWebACLWithContext is the same as GetWebACL with the addition of
5817// the ability to pass a context and additional request options.
5818//
5819// See GetWebACL for details on how to use this API operation.
5820//
5821// The context must be non-nil and will be used for request cancellation. If
5822// the context is nil a panic will occur. In the future the SDK may create
5823// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5824// for more information on using Contexts.
5825func (c *WAFRegional) GetWebACLWithContext(ctx aws.Context, input *waf.GetWebACLInput, opts ...request.Option) (*waf.GetWebACLOutput, error) {
5826	req, out := c.GetWebACLRequest(input)
5827	req.SetContext(ctx)
5828	req.ApplyOptions(opts...)
5829	return out, req.Send()
5830}
5831
5832const opGetWebACLForResource = "GetWebACLForResource"
5833
5834// GetWebACLForResourceRequest generates a "aws/request.Request" representing the
5835// client's request for the GetWebACLForResource operation. The "output" return
5836// value will be populated with the request's response once the request completes
5837// successfully.
5838//
5839// Use "Send" method on the returned Request to send the API call to the service.
5840// the "output" return value is not valid until after Send returns without error.
5841//
5842// See GetWebACLForResource for more information on using the GetWebACLForResource
5843// API call, and error handling.
5844//
5845// This method is useful when you want to inject custom logic or configuration
5846// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5847//
5848//
5849//    // Example sending a request using the GetWebACLForResourceRequest method.
5850//    req, resp := client.GetWebACLForResourceRequest(params)
5851//
5852//    err := req.Send()
5853//    if err == nil { // resp is now filled
5854//        fmt.Println(resp)
5855//    }
5856//
5857// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACLForResource
5858func (c *WAFRegional) GetWebACLForResourceRequest(input *GetWebACLForResourceInput) (req *request.Request, output *GetWebACLForResourceOutput) {
5859	op := &request.Operation{
5860		Name:       opGetWebACLForResource,
5861		HTTPMethod: "POST",
5862		HTTPPath:   "/",
5863	}
5864
5865	if input == nil {
5866		input = &GetWebACLForResourceInput{}
5867	}
5868
5869	output = &GetWebACLForResourceOutput{}
5870	req = c.newRequest(op, input, output)
5871	return
5872}
5873
5874// GetWebACLForResource API operation for AWS WAF Regional.
5875//
5876//
5877// This is AWS WAF Classic Regional documentation. For more information, see
5878// AWS WAF Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
5879// in the developer guide.
5880//
5881// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
5882// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
5883// With the latest version, AWS WAF has a single set of endpoints for regional
5884// and global use.
5885//
5886// Returns the web ACL for the specified resource, either an application load
5887// balancer or Amazon API Gateway stage.
5888//
5889// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5890// with awserr.Error's Code and Message methods to get detailed information about
5891// the error.
5892//
5893// See the AWS API reference guide for AWS WAF Regional's
5894// API operation GetWebACLForResource for usage and error information.
5895//
5896// Returned Error Types:
5897//   * WAFInternalErrorException
5898//   The operation failed because of a system problem, even though the request
5899//   was valid. Retry your request.
5900//
5901//   * WAFInvalidAccountException
5902//   The operation failed because you tried to create, update, or delete an object
5903//   by using an invalid account identifier.
5904//
5905//   * WAFNonexistentItemException
5906//   The operation failed because the referenced object doesn't exist.
5907//
5908//   * WAFInvalidParameterException
5909//   The operation failed because AWS WAF didn't recognize a parameter in the
5910//   request. For example:
5911//
5912//      * You specified an invalid parameter name.
5913//
5914//      * You specified an invalid value.
5915//
5916//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
5917//      using an action other than INSERT or DELETE.
5918//
5919//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
5920//      BLOCK, or COUNT.
5921//
5922//      * You tried to create a RateBasedRule with a RateKey value other than
5923//      IP.
5924//
5925//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
5926//      BLOCK, or COUNT.
5927//
5928//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
5929//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
5930//
5931//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
5932//      for Data.
5933//
5934//      * Your request references an ARN that is malformed, or corresponds to
5935//      a resource with which a web ACL cannot be associated.
5936//
5937//   * WAFUnavailableEntityException
5938//   The operation failed because the entity referenced is temporarily unavailable.
5939//   Retry your request.
5940//
5941// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACLForResource
5942func (c *WAFRegional) GetWebACLForResource(input *GetWebACLForResourceInput) (*GetWebACLForResourceOutput, error) {
5943	req, out := c.GetWebACLForResourceRequest(input)
5944	return out, req.Send()
5945}
5946
5947// GetWebACLForResourceWithContext is the same as GetWebACLForResource with the addition of
5948// the ability to pass a context and additional request options.
5949//
5950// See GetWebACLForResource for details on how to use this API operation.
5951//
5952// The context must be non-nil and will be used for request cancellation. If
5953// the context is nil a panic will occur. In the future the SDK may create
5954// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5955// for more information on using Contexts.
5956func (c *WAFRegional) GetWebACLForResourceWithContext(ctx aws.Context, input *GetWebACLForResourceInput, opts ...request.Option) (*GetWebACLForResourceOutput, error) {
5957	req, out := c.GetWebACLForResourceRequest(input)
5958	req.SetContext(ctx)
5959	req.ApplyOptions(opts...)
5960	return out, req.Send()
5961}
5962
5963const opGetXssMatchSet = "GetXssMatchSet"
5964
5965// GetXssMatchSetRequest generates a "aws/request.Request" representing the
5966// client's request for the GetXssMatchSet operation. The "output" return
5967// value will be populated with the request's response once the request completes
5968// successfully.
5969//
5970// Use "Send" method on the returned Request to send the API call to the service.
5971// the "output" return value is not valid until after Send returns without error.
5972//
5973// See GetXssMatchSet for more information on using the GetXssMatchSet
5974// API call, and error handling.
5975//
5976// This method is useful when you want to inject custom logic or configuration
5977// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5978//
5979//
5980//    // Example sending a request using the GetXssMatchSetRequest method.
5981//    req, resp := client.GetXssMatchSetRequest(params)
5982//
5983//    err := req.Send()
5984//    if err == nil { // resp is now filled
5985//        fmt.Println(resp)
5986//    }
5987//
5988// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetXssMatchSet
5989func (c *WAFRegional) GetXssMatchSetRequest(input *waf.GetXssMatchSetInput) (req *request.Request, output *waf.GetXssMatchSetOutput) {
5990	op := &request.Operation{
5991		Name:       opGetXssMatchSet,
5992		HTTPMethod: "POST",
5993		HTTPPath:   "/",
5994	}
5995
5996	if input == nil {
5997		input = &waf.GetXssMatchSetInput{}
5998	}
5999
6000	output = &waf.GetXssMatchSetOutput{}
6001	req = c.newRequest(op, input, output)
6002	return
6003}
6004
6005// GetXssMatchSet API operation for AWS WAF Regional.
6006//
6007//
6008// This is AWS WAF Classic documentation. For more information, see AWS WAF
6009// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6010// in the developer guide.
6011//
6012// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6013// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6014// With the latest version, AWS WAF has a single set of endpoints for regional
6015// and global use.
6016//
6017// Returns the XssMatchSet that is specified by XssMatchSetId.
6018//
6019// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6020// with awserr.Error's Code and Message methods to get detailed information about
6021// the error.
6022//
6023// See the AWS API reference guide for AWS WAF Regional's
6024// API operation GetXssMatchSet for usage and error information.
6025//
6026// Returned Error Types:
6027//   * WAFInternalErrorException
6028//   The operation failed because of a system problem, even though the request
6029//   was valid. Retry your request.
6030//
6031//   * WAFInvalidAccountException
6032//   The operation failed because you tried to create, update, or delete an object
6033//   by using an invalid account identifier.
6034//
6035//   * WAFNonexistentItemException
6036//   The operation failed because the referenced object doesn't exist.
6037//
6038// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetXssMatchSet
6039func (c *WAFRegional) GetXssMatchSet(input *waf.GetXssMatchSetInput) (*waf.GetXssMatchSetOutput, error) {
6040	req, out := c.GetXssMatchSetRequest(input)
6041	return out, req.Send()
6042}
6043
6044// GetXssMatchSetWithContext is the same as GetXssMatchSet with the addition of
6045// the ability to pass a context and additional request options.
6046//
6047// See GetXssMatchSet for details on how to use this API operation.
6048//
6049// The context must be non-nil and will be used for request cancellation. If
6050// the context is nil a panic will occur. In the future the SDK may create
6051// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6052// for more information on using Contexts.
6053func (c *WAFRegional) GetXssMatchSetWithContext(ctx aws.Context, input *waf.GetXssMatchSetInput, opts ...request.Option) (*waf.GetXssMatchSetOutput, error) {
6054	req, out := c.GetXssMatchSetRequest(input)
6055	req.SetContext(ctx)
6056	req.ApplyOptions(opts...)
6057	return out, req.Send()
6058}
6059
6060const opListActivatedRulesInRuleGroup = "ListActivatedRulesInRuleGroup"
6061
6062// ListActivatedRulesInRuleGroupRequest generates a "aws/request.Request" representing the
6063// client's request for the ListActivatedRulesInRuleGroup operation. The "output" return
6064// value will be populated with the request's response once the request completes
6065// successfully.
6066//
6067// Use "Send" method on the returned Request to send the API call to the service.
6068// the "output" return value is not valid until after Send returns without error.
6069//
6070// See ListActivatedRulesInRuleGroup for more information on using the ListActivatedRulesInRuleGroup
6071// API call, and error handling.
6072//
6073// This method is useful when you want to inject custom logic or configuration
6074// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6075//
6076//
6077//    // Example sending a request using the ListActivatedRulesInRuleGroupRequest method.
6078//    req, resp := client.ListActivatedRulesInRuleGroupRequest(params)
6079//
6080//    err := req.Send()
6081//    if err == nil { // resp is now filled
6082//        fmt.Println(resp)
6083//    }
6084//
6085// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListActivatedRulesInRuleGroup
6086func (c *WAFRegional) ListActivatedRulesInRuleGroupRequest(input *waf.ListActivatedRulesInRuleGroupInput) (req *request.Request, output *waf.ListActivatedRulesInRuleGroupOutput) {
6087	op := &request.Operation{
6088		Name:       opListActivatedRulesInRuleGroup,
6089		HTTPMethod: "POST",
6090		HTTPPath:   "/",
6091	}
6092
6093	if input == nil {
6094		input = &waf.ListActivatedRulesInRuleGroupInput{}
6095	}
6096
6097	output = &waf.ListActivatedRulesInRuleGroupOutput{}
6098	req = c.newRequest(op, input, output)
6099	return
6100}
6101
6102// ListActivatedRulesInRuleGroup API operation for AWS WAF Regional.
6103//
6104//
6105// This is AWS WAF Classic documentation. For more information, see AWS WAF
6106// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6107// in the developer guide.
6108//
6109// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6110// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6111// With the latest version, AWS WAF has a single set of endpoints for regional
6112// and global use.
6113//
6114// Returns an array of ActivatedRule objects.
6115//
6116// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6117// with awserr.Error's Code and Message methods to get detailed information about
6118// the error.
6119//
6120// See the AWS API reference guide for AWS WAF Regional's
6121// API operation ListActivatedRulesInRuleGroup for usage and error information.
6122//
6123// Returned Error Types:
6124//   * WAFInternalErrorException
6125//   The operation failed because of a system problem, even though the request
6126//   was valid. Retry your request.
6127//
6128//   * WAFNonexistentItemException
6129//   The operation failed because the referenced object doesn't exist.
6130//
6131//   * WAFInvalidParameterException
6132//   The operation failed because AWS WAF didn't recognize a parameter in the
6133//   request. For example:
6134//
6135//      * You specified an invalid parameter name.
6136//
6137//      * You specified an invalid value.
6138//
6139//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
6140//      using an action other than INSERT or DELETE.
6141//
6142//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
6143//      BLOCK, or COUNT.
6144//
6145//      * You tried to create a RateBasedRule with a RateKey value other than
6146//      IP.
6147//
6148//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
6149//      BLOCK, or COUNT.
6150//
6151//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
6152//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
6153//
6154//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
6155//      for Data.
6156//
6157//      * Your request references an ARN that is malformed, or corresponds to
6158//      a resource with which a web ACL cannot be associated.
6159//
6160// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListActivatedRulesInRuleGroup
6161func (c *WAFRegional) ListActivatedRulesInRuleGroup(input *waf.ListActivatedRulesInRuleGroupInput) (*waf.ListActivatedRulesInRuleGroupOutput, error) {
6162	req, out := c.ListActivatedRulesInRuleGroupRequest(input)
6163	return out, req.Send()
6164}
6165
6166// ListActivatedRulesInRuleGroupWithContext is the same as ListActivatedRulesInRuleGroup with the addition of
6167// the ability to pass a context and additional request options.
6168//
6169// See ListActivatedRulesInRuleGroup for details on how to use this API operation.
6170//
6171// The context must be non-nil and will be used for request cancellation. If
6172// the context is nil a panic will occur. In the future the SDK may create
6173// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6174// for more information on using Contexts.
6175func (c *WAFRegional) ListActivatedRulesInRuleGroupWithContext(ctx aws.Context, input *waf.ListActivatedRulesInRuleGroupInput, opts ...request.Option) (*waf.ListActivatedRulesInRuleGroupOutput, error) {
6176	req, out := c.ListActivatedRulesInRuleGroupRequest(input)
6177	req.SetContext(ctx)
6178	req.ApplyOptions(opts...)
6179	return out, req.Send()
6180}
6181
6182const opListByteMatchSets = "ListByteMatchSets"
6183
6184// ListByteMatchSetsRequest generates a "aws/request.Request" representing the
6185// client's request for the ListByteMatchSets operation. The "output" return
6186// value will be populated with the request's response once the request completes
6187// successfully.
6188//
6189// Use "Send" method on the returned Request to send the API call to the service.
6190// the "output" return value is not valid until after Send returns without error.
6191//
6192// See ListByteMatchSets for more information on using the ListByteMatchSets
6193// API call, and error handling.
6194//
6195// This method is useful when you want to inject custom logic or configuration
6196// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6197//
6198//
6199//    // Example sending a request using the ListByteMatchSetsRequest method.
6200//    req, resp := client.ListByteMatchSetsRequest(params)
6201//
6202//    err := req.Send()
6203//    if err == nil { // resp is now filled
6204//        fmt.Println(resp)
6205//    }
6206//
6207// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListByteMatchSets
6208func (c *WAFRegional) ListByteMatchSetsRequest(input *waf.ListByteMatchSetsInput) (req *request.Request, output *waf.ListByteMatchSetsOutput) {
6209	op := &request.Operation{
6210		Name:       opListByteMatchSets,
6211		HTTPMethod: "POST",
6212		HTTPPath:   "/",
6213	}
6214
6215	if input == nil {
6216		input = &waf.ListByteMatchSetsInput{}
6217	}
6218
6219	output = &waf.ListByteMatchSetsOutput{}
6220	req = c.newRequest(op, input, output)
6221	return
6222}
6223
6224// ListByteMatchSets API operation for AWS WAF Regional.
6225//
6226//
6227// This is AWS WAF Classic documentation. For more information, see AWS WAF
6228// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6229// in the developer guide.
6230//
6231// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6232// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6233// With the latest version, AWS WAF has a single set of endpoints for regional
6234// and global use.
6235//
6236// Returns an array of ByteMatchSetSummary objects.
6237//
6238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6239// with awserr.Error's Code and Message methods to get detailed information about
6240// the error.
6241//
6242// See the AWS API reference guide for AWS WAF Regional's
6243// API operation ListByteMatchSets for usage and error information.
6244//
6245// Returned Error Types:
6246//   * WAFInternalErrorException
6247//   The operation failed because of a system problem, even though the request
6248//   was valid. Retry your request.
6249//
6250//   * WAFInvalidAccountException
6251//   The operation failed because you tried to create, update, or delete an object
6252//   by using an invalid account identifier.
6253//
6254// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListByteMatchSets
6255func (c *WAFRegional) ListByteMatchSets(input *waf.ListByteMatchSetsInput) (*waf.ListByteMatchSetsOutput, error) {
6256	req, out := c.ListByteMatchSetsRequest(input)
6257	return out, req.Send()
6258}
6259
6260// ListByteMatchSetsWithContext is the same as ListByteMatchSets with the addition of
6261// the ability to pass a context and additional request options.
6262//
6263// See ListByteMatchSets for details on how to use this API operation.
6264//
6265// The context must be non-nil and will be used for request cancellation. If
6266// the context is nil a panic will occur. In the future the SDK may create
6267// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6268// for more information on using Contexts.
6269func (c *WAFRegional) ListByteMatchSetsWithContext(ctx aws.Context, input *waf.ListByteMatchSetsInput, opts ...request.Option) (*waf.ListByteMatchSetsOutput, error) {
6270	req, out := c.ListByteMatchSetsRequest(input)
6271	req.SetContext(ctx)
6272	req.ApplyOptions(opts...)
6273	return out, req.Send()
6274}
6275
6276const opListGeoMatchSets = "ListGeoMatchSets"
6277
6278// ListGeoMatchSetsRequest generates a "aws/request.Request" representing the
6279// client's request for the ListGeoMatchSets operation. The "output" return
6280// value will be populated with the request's response once the request completes
6281// successfully.
6282//
6283// Use "Send" method on the returned Request to send the API call to the service.
6284// the "output" return value is not valid until after Send returns without error.
6285//
6286// See ListGeoMatchSets for more information on using the ListGeoMatchSets
6287// API call, and error handling.
6288//
6289// This method is useful when you want to inject custom logic or configuration
6290// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6291//
6292//
6293//    // Example sending a request using the ListGeoMatchSetsRequest method.
6294//    req, resp := client.ListGeoMatchSetsRequest(params)
6295//
6296//    err := req.Send()
6297//    if err == nil { // resp is now filled
6298//        fmt.Println(resp)
6299//    }
6300//
6301// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListGeoMatchSets
6302func (c *WAFRegional) ListGeoMatchSetsRequest(input *waf.ListGeoMatchSetsInput) (req *request.Request, output *waf.ListGeoMatchSetsOutput) {
6303	op := &request.Operation{
6304		Name:       opListGeoMatchSets,
6305		HTTPMethod: "POST",
6306		HTTPPath:   "/",
6307	}
6308
6309	if input == nil {
6310		input = &waf.ListGeoMatchSetsInput{}
6311	}
6312
6313	output = &waf.ListGeoMatchSetsOutput{}
6314	req = c.newRequest(op, input, output)
6315	return
6316}
6317
6318// ListGeoMatchSets API operation for AWS WAF Regional.
6319//
6320//
6321// This is AWS WAF Classic documentation. For more information, see AWS WAF
6322// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6323// in the developer guide.
6324//
6325// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6326// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6327// With the latest version, AWS WAF has a single set of endpoints for regional
6328// and global use.
6329//
6330// Returns an array of GeoMatchSetSummary objects in the response.
6331//
6332// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6333// with awserr.Error's Code and Message methods to get detailed information about
6334// the error.
6335//
6336// See the AWS API reference guide for AWS WAF Regional's
6337// API operation ListGeoMatchSets for usage and error information.
6338//
6339// Returned Error Types:
6340//   * WAFInternalErrorException
6341//   The operation failed because of a system problem, even though the request
6342//   was valid. Retry your request.
6343//
6344//   * WAFInvalidAccountException
6345//   The operation failed because you tried to create, update, or delete an object
6346//   by using an invalid account identifier.
6347//
6348// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListGeoMatchSets
6349func (c *WAFRegional) ListGeoMatchSets(input *waf.ListGeoMatchSetsInput) (*waf.ListGeoMatchSetsOutput, error) {
6350	req, out := c.ListGeoMatchSetsRequest(input)
6351	return out, req.Send()
6352}
6353
6354// ListGeoMatchSetsWithContext is the same as ListGeoMatchSets with the addition of
6355// the ability to pass a context and additional request options.
6356//
6357// See ListGeoMatchSets for details on how to use this API operation.
6358//
6359// The context must be non-nil and will be used for request cancellation. If
6360// the context is nil a panic will occur. In the future the SDK may create
6361// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6362// for more information on using Contexts.
6363func (c *WAFRegional) ListGeoMatchSetsWithContext(ctx aws.Context, input *waf.ListGeoMatchSetsInput, opts ...request.Option) (*waf.ListGeoMatchSetsOutput, error) {
6364	req, out := c.ListGeoMatchSetsRequest(input)
6365	req.SetContext(ctx)
6366	req.ApplyOptions(opts...)
6367	return out, req.Send()
6368}
6369
6370const opListIPSets = "ListIPSets"
6371
6372// ListIPSetsRequest generates a "aws/request.Request" representing the
6373// client's request for the ListIPSets operation. The "output" return
6374// value will be populated with the request's response once the request completes
6375// successfully.
6376//
6377// Use "Send" method on the returned Request to send the API call to the service.
6378// the "output" return value is not valid until after Send returns without error.
6379//
6380// See ListIPSets for more information on using the ListIPSets
6381// API call, and error handling.
6382//
6383// This method is useful when you want to inject custom logic or configuration
6384// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6385//
6386//
6387//    // Example sending a request using the ListIPSetsRequest method.
6388//    req, resp := client.ListIPSetsRequest(params)
6389//
6390//    err := req.Send()
6391//    if err == nil { // resp is now filled
6392//        fmt.Println(resp)
6393//    }
6394//
6395// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListIPSets
6396func (c *WAFRegional) ListIPSetsRequest(input *waf.ListIPSetsInput) (req *request.Request, output *waf.ListIPSetsOutput) {
6397	op := &request.Operation{
6398		Name:       opListIPSets,
6399		HTTPMethod: "POST",
6400		HTTPPath:   "/",
6401	}
6402
6403	if input == nil {
6404		input = &waf.ListIPSetsInput{}
6405	}
6406
6407	output = &waf.ListIPSetsOutput{}
6408	req = c.newRequest(op, input, output)
6409	return
6410}
6411
6412// ListIPSets API operation for AWS WAF Regional.
6413//
6414//
6415// This is AWS WAF Classic documentation. For more information, see AWS WAF
6416// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6417// in the developer guide.
6418//
6419// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6420// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6421// With the latest version, AWS WAF has a single set of endpoints for regional
6422// and global use.
6423//
6424// Returns an array of IPSetSummary objects in the response.
6425//
6426// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6427// with awserr.Error's Code and Message methods to get detailed information about
6428// the error.
6429//
6430// See the AWS API reference guide for AWS WAF Regional's
6431// API operation ListIPSets for usage and error information.
6432//
6433// Returned Error Types:
6434//   * WAFInternalErrorException
6435//   The operation failed because of a system problem, even though the request
6436//   was valid. Retry your request.
6437//
6438//   * WAFInvalidAccountException
6439//   The operation failed because you tried to create, update, or delete an object
6440//   by using an invalid account identifier.
6441//
6442// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListIPSets
6443func (c *WAFRegional) ListIPSets(input *waf.ListIPSetsInput) (*waf.ListIPSetsOutput, error) {
6444	req, out := c.ListIPSetsRequest(input)
6445	return out, req.Send()
6446}
6447
6448// ListIPSetsWithContext is the same as ListIPSets with the addition of
6449// the ability to pass a context and additional request options.
6450//
6451// See ListIPSets for details on how to use this API operation.
6452//
6453// The context must be non-nil and will be used for request cancellation. If
6454// the context is nil a panic will occur. In the future the SDK may create
6455// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6456// for more information on using Contexts.
6457func (c *WAFRegional) ListIPSetsWithContext(ctx aws.Context, input *waf.ListIPSetsInput, opts ...request.Option) (*waf.ListIPSetsOutput, error) {
6458	req, out := c.ListIPSetsRequest(input)
6459	req.SetContext(ctx)
6460	req.ApplyOptions(opts...)
6461	return out, req.Send()
6462}
6463
6464const opListLoggingConfigurations = "ListLoggingConfigurations"
6465
6466// ListLoggingConfigurationsRequest generates a "aws/request.Request" representing the
6467// client's request for the ListLoggingConfigurations operation. The "output" return
6468// value will be populated with the request's response once the request completes
6469// successfully.
6470//
6471// Use "Send" method on the returned Request to send the API call to the service.
6472// the "output" return value is not valid until after Send returns without error.
6473//
6474// See ListLoggingConfigurations for more information on using the ListLoggingConfigurations
6475// API call, and error handling.
6476//
6477// This method is useful when you want to inject custom logic or configuration
6478// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6479//
6480//
6481//    // Example sending a request using the ListLoggingConfigurationsRequest method.
6482//    req, resp := client.ListLoggingConfigurationsRequest(params)
6483//
6484//    err := req.Send()
6485//    if err == nil { // resp is now filled
6486//        fmt.Println(resp)
6487//    }
6488//
6489// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListLoggingConfigurations
6490func (c *WAFRegional) ListLoggingConfigurationsRequest(input *waf.ListLoggingConfigurationsInput) (req *request.Request, output *waf.ListLoggingConfigurationsOutput) {
6491	op := &request.Operation{
6492		Name:       opListLoggingConfigurations,
6493		HTTPMethod: "POST",
6494		HTTPPath:   "/",
6495	}
6496
6497	if input == nil {
6498		input = &waf.ListLoggingConfigurationsInput{}
6499	}
6500
6501	output = &waf.ListLoggingConfigurationsOutput{}
6502	req = c.newRequest(op, input, output)
6503	return
6504}
6505
6506// ListLoggingConfigurations API operation for AWS WAF Regional.
6507//
6508//
6509// This is AWS WAF Classic documentation. For more information, see AWS WAF
6510// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6511// in the developer guide.
6512//
6513// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6514// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6515// With the latest version, AWS WAF has a single set of endpoints for regional
6516// and global use.
6517//
6518// Returns an array of LoggingConfiguration objects.
6519//
6520// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6521// with awserr.Error's Code and Message methods to get detailed information about
6522// the error.
6523//
6524// See the AWS API reference guide for AWS WAF Regional's
6525// API operation ListLoggingConfigurations for usage and error information.
6526//
6527// Returned Error Types:
6528//   * WAFInternalErrorException
6529//   The operation failed because of a system problem, even though the request
6530//   was valid. Retry your request.
6531//
6532//   * WAFNonexistentItemException
6533//   The operation failed because the referenced object doesn't exist.
6534//
6535//   * WAFInvalidParameterException
6536//   The operation failed because AWS WAF didn't recognize a parameter in the
6537//   request. For example:
6538//
6539//      * You specified an invalid parameter name.
6540//
6541//      * You specified an invalid value.
6542//
6543//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
6544//      using an action other than INSERT or DELETE.
6545//
6546//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
6547//      BLOCK, or COUNT.
6548//
6549//      * You tried to create a RateBasedRule with a RateKey value other than
6550//      IP.
6551//
6552//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
6553//      BLOCK, or COUNT.
6554//
6555//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
6556//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
6557//
6558//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
6559//      for Data.
6560//
6561//      * Your request references an ARN that is malformed, or corresponds to
6562//      a resource with which a web ACL cannot be associated.
6563//
6564// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListLoggingConfigurations
6565func (c *WAFRegional) ListLoggingConfigurations(input *waf.ListLoggingConfigurationsInput) (*waf.ListLoggingConfigurationsOutput, error) {
6566	req, out := c.ListLoggingConfigurationsRequest(input)
6567	return out, req.Send()
6568}
6569
6570// ListLoggingConfigurationsWithContext is the same as ListLoggingConfigurations with the addition of
6571// the ability to pass a context and additional request options.
6572//
6573// See ListLoggingConfigurations for details on how to use this API operation.
6574//
6575// The context must be non-nil and will be used for request cancellation. If
6576// the context is nil a panic will occur. In the future the SDK may create
6577// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6578// for more information on using Contexts.
6579func (c *WAFRegional) ListLoggingConfigurationsWithContext(ctx aws.Context, input *waf.ListLoggingConfigurationsInput, opts ...request.Option) (*waf.ListLoggingConfigurationsOutput, error) {
6580	req, out := c.ListLoggingConfigurationsRequest(input)
6581	req.SetContext(ctx)
6582	req.ApplyOptions(opts...)
6583	return out, req.Send()
6584}
6585
6586const opListRateBasedRules = "ListRateBasedRules"
6587
6588// ListRateBasedRulesRequest generates a "aws/request.Request" representing the
6589// client's request for the ListRateBasedRules operation. The "output" return
6590// value will be populated with the request's response once the request completes
6591// successfully.
6592//
6593// Use "Send" method on the returned Request to send the API call to the service.
6594// the "output" return value is not valid until after Send returns without error.
6595//
6596// See ListRateBasedRules for more information on using the ListRateBasedRules
6597// API call, and error handling.
6598//
6599// This method is useful when you want to inject custom logic or configuration
6600// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6601//
6602//
6603//    // Example sending a request using the ListRateBasedRulesRequest method.
6604//    req, resp := client.ListRateBasedRulesRequest(params)
6605//
6606//    err := req.Send()
6607//    if err == nil { // resp is now filled
6608//        fmt.Println(resp)
6609//    }
6610//
6611// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRateBasedRules
6612func (c *WAFRegional) ListRateBasedRulesRequest(input *waf.ListRateBasedRulesInput) (req *request.Request, output *waf.ListRateBasedRulesOutput) {
6613	op := &request.Operation{
6614		Name:       opListRateBasedRules,
6615		HTTPMethod: "POST",
6616		HTTPPath:   "/",
6617	}
6618
6619	if input == nil {
6620		input = &waf.ListRateBasedRulesInput{}
6621	}
6622
6623	output = &waf.ListRateBasedRulesOutput{}
6624	req = c.newRequest(op, input, output)
6625	return
6626}
6627
6628// ListRateBasedRules API operation for AWS WAF Regional.
6629//
6630//
6631// This is AWS WAF Classic documentation. For more information, see AWS WAF
6632// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6633// in the developer guide.
6634//
6635// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6636// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6637// With the latest version, AWS WAF has a single set of endpoints for regional
6638// and global use.
6639//
6640// Returns an array of RuleSummary objects.
6641//
6642// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6643// with awserr.Error's Code and Message methods to get detailed information about
6644// the error.
6645//
6646// See the AWS API reference guide for AWS WAF Regional's
6647// API operation ListRateBasedRules for usage and error information.
6648//
6649// Returned Error Types:
6650//   * WAFInternalErrorException
6651//   The operation failed because of a system problem, even though the request
6652//   was valid. Retry your request.
6653//
6654//   * WAFInvalidAccountException
6655//   The operation failed because you tried to create, update, or delete an object
6656//   by using an invalid account identifier.
6657//
6658// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRateBasedRules
6659func (c *WAFRegional) ListRateBasedRules(input *waf.ListRateBasedRulesInput) (*waf.ListRateBasedRulesOutput, error) {
6660	req, out := c.ListRateBasedRulesRequest(input)
6661	return out, req.Send()
6662}
6663
6664// ListRateBasedRulesWithContext is the same as ListRateBasedRules with the addition of
6665// the ability to pass a context and additional request options.
6666//
6667// See ListRateBasedRules for details on how to use this API operation.
6668//
6669// The context must be non-nil and will be used for request cancellation. If
6670// the context is nil a panic will occur. In the future the SDK may create
6671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6672// for more information on using Contexts.
6673func (c *WAFRegional) ListRateBasedRulesWithContext(ctx aws.Context, input *waf.ListRateBasedRulesInput, opts ...request.Option) (*waf.ListRateBasedRulesOutput, error) {
6674	req, out := c.ListRateBasedRulesRequest(input)
6675	req.SetContext(ctx)
6676	req.ApplyOptions(opts...)
6677	return out, req.Send()
6678}
6679
6680const opListRegexMatchSets = "ListRegexMatchSets"
6681
6682// ListRegexMatchSetsRequest generates a "aws/request.Request" representing the
6683// client's request for the ListRegexMatchSets operation. The "output" return
6684// value will be populated with the request's response once the request completes
6685// successfully.
6686//
6687// Use "Send" method on the returned Request to send the API call to the service.
6688// the "output" return value is not valid until after Send returns without error.
6689//
6690// See ListRegexMatchSets for more information on using the ListRegexMatchSets
6691// API call, and error handling.
6692//
6693// This method is useful when you want to inject custom logic or configuration
6694// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6695//
6696//
6697//    // Example sending a request using the ListRegexMatchSetsRequest method.
6698//    req, resp := client.ListRegexMatchSetsRequest(params)
6699//
6700//    err := req.Send()
6701//    if err == nil { // resp is now filled
6702//        fmt.Println(resp)
6703//    }
6704//
6705// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRegexMatchSets
6706func (c *WAFRegional) ListRegexMatchSetsRequest(input *waf.ListRegexMatchSetsInput) (req *request.Request, output *waf.ListRegexMatchSetsOutput) {
6707	op := &request.Operation{
6708		Name:       opListRegexMatchSets,
6709		HTTPMethod: "POST",
6710		HTTPPath:   "/",
6711	}
6712
6713	if input == nil {
6714		input = &waf.ListRegexMatchSetsInput{}
6715	}
6716
6717	output = &waf.ListRegexMatchSetsOutput{}
6718	req = c.newRequest(op, input, output)
6719	return
6720}
6721
6722// ListRegexMatchSets API operation for AWS WAF Regional.
6723//
6724//
6725// This is AWS WAF Classic documentation. For more information, see AWS WAF
6726// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6727// in the developer guide.
6728//
6729// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6730// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6731// With the latest version, AWS WAF has a single set of endpoints for regional
6732// and global use.
6733//
6734// Returns an array of RegexMatchSetSummary objects.
6735//
6736// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6737// with awserr.Error's Code and Message methods to get detailed information about
6738// the error.
6739//
6740// See the AWS API reference guide for AWS WAF Regional's
6741// API operation ListRegexMatchSets for usage and error information.
6742//
6743// Returned Error Types:
6744//   * WAFInternalErrorException
6745//   The operation failed because of a system problem, even though the request
6746//   was valid. Retry your request.
6747//
6748//   * WAFInvalidAccountException
6749//   The operation failed because you tried to create, update, or delete an object
6750//   by using an invalid account identifier.
6751//
6752// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRegexMatchSets
6753func (c *WAFRegional) ListRegexMatchSets(input *waf.ListRegexMatchSetsInput) (*waf.ListRegexMatchSetsOutput, error) {
6754	req, out := c.ListRegexMatchSetsRequest(input)
6755	return out, req.Send()
6756}
6757
6758// ListRegexMatchSetsWithContext is the same as ListRegexMatchSets with the addition of
6759// the ability to pass a context and additional request options.
6760//
6761// See ListRegexMatchSets for details on how to use this API operation.
6762//
6763// The context must be non-nil and will be used for request cancellation. If
6764// the context is nil a panic will occur. In the future the SDK may create
6765// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6766// for more information on using Contexts.
6767func (c *WAFRegional) ListRegexMatchSetsWithContext(ctx aws.Context, input *waf.ListRegexMatchSetsInput, opts ...request.Option) (*waf.ListRegexMatchSetsOutput, error) {
6768	req, out := c.ListRegexMatchSetsRequest(input)
6769	req.SetContext(ctx)
6770	req.ApplyOptions(opts...)
6771	return out, req.Send()
6772}
6773
6774const opListRegexPatternSets = "ListRegexPatternSets"
6775
6776// ListRegexPatternSetsRequest generates a "aws/request.Request" representing the
6777// client's request for the ListRegexPatternSets operation. The "output" return
6778// value will be populated with the request's response once the request completes
6779// successfully.
6780//
6781// Use "Send" method on the returned Request to send the API call to the service.
6782// the "output" return value is not valid until after Send returns without error.
6783//
6784// See ListRegexPatternSets for more information on using the ListRegexPatternSets
6785// API call, and error handling.
6786//
6787// This method is useful when you want to inject custom logic or configuration
6788// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6789//
6790//
6791//    // Example sending a request using the ListRegexPatternSetsRequest method.
6792//    req, resp := client.ListRegexPatternSetsRequest(params)
6793//
6794//    err := req.Send()
6795//    if err == nil { // resp is now filled
6796//        fmt.Println(resp)
6797//    }
6798//
6799// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRegexPatternSets
6800func (c *WAFRegional) ListRegexPatternSetsRequest(input *waf.ListRegexPatternSetsInput) (req *request.Request, output *waf.ListRegexPatternSetsOutput) {
6801	op := &request.Operation{
6802		Name:       opListRegexPatternSets,
6803		HTTPMethod: "POST",
6804		HTTPPath:   "/",
6805	}
6806
6807	if input == nil {
6808		input = &waf.ListRegexPatternSetsInput{}
6809	}
6810
6811	output = &waf.ListRegexPatternSetsOutput{}
6812	req = c.newRequest(op, input, output)
6813	return
6814}
6815
6816// ListRegexPatternSets API operation for AWS WAF Regional.
6817//
6818//
6819// This is AWS WAF Classic documentation. For more information, see AWS WAF
6820// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6821// in the developer guide.
6822//
6823// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6824// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6825// With the latest version, AWS WAF has a single set of endpoints for regional
6826// and global use.
6827//
6828// Returns an array of RegexPatternSetSummary objects.
6829//
6830// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6831// with awserr.Error's Code and Message methods to get detailed information about
6832// the error.
6833//
6834// See the AWS API reference guide for AWS WAF Regional's
6835// API operation ListRegexPatternSets for usage and error information.
6836//
6837// Returned Error Types:
6838//   * WAFInternalErrorException
6839//   The operation failed because of a system problem, even though the request
6840//   was valid. Retry your request.
6841//
6842//   * WAFInvalidAccountException
6843//   The operation failed because you tried to create, update, or delete an object
6844//   by using an invalid account identifier.
6845//
6846// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRegexPatternSets
6847func (c *WAFRegional) ListRegexPatternSets(input *waf.ListRegexPatternSetsInput) (*waf.ListRegexPatternSetsOutput, error) {
6848	req, out := c.ListRegexPatternSetsRequest(input)
6849	return out, req.Send()
6850}
6851
6852// ListRegexPatternSetsWithContext is the same as ListRegexPatternSets with the addition of
6853// the ability to pass a context and additional request options.
6854//
6855// See ListRegexPatternSets for details on how to use this API operation.
6856//
6857// The context must be non-nil and will be used for request cancellation. If
6858// the context is nil a panic will occur. In the future the SDK may create
6859// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6860// for more information on using Contexts.
6861func (c *WAFRegional) ListRegexPatternSetsWithContext(ctx aws.Context, input *waf.ListRegexPatternSetsInput, opts ...request.Option) (*waf.ListRegexPatternSetsOutput, error) {
6862	req, out := c.ListRegexPatternSetsRequest(input)
6863	req.SetContext(ctx)
6864	req.ApplyOptions(opts...)
6865	return out, req.Send()
6866}
6867
6868const opListResourcesForWebACL = "ListResourcesForWebACL"
6869
6870// ListResourcesForWebACLRequest generates a "aws/request.Request" representing the
6871// client's request for the ListResourcesForWebACL operation. The "output" return
6872// value will be populated with the request's response once the request completes
6873// successfully.
6874//
6875// Use "Send" method on the returned Request to send the API call to the service.
6876// the "output" return value is not valid until after Send returns without error.
6877//
6878// See ListResourcesForWebACL for more information on using the ListResourcesForWebACL
6879// API call, and error handling.
6880//
6881// This method is useful when you want to inject custom logic or configuration
6882// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6883//
6884//
6885//    // Example sending a request using the ListResourcesForWebACLRequest method.
6886//    req, resp := client.ListResourcesForWebACLRequest(params)
6887//
6888//    err := req.Send()
6889//    if err == nil { // resp is now filled
6890//        fmt.Println(resp)
6891//    }
6892//
6893// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListResourcesForWebACL
6894func (c *WAFRegional) ListResourcesForWebACLRequest(input *ListResourcesForWebACLInput) (req *request.Request, output *ListResourcesForWebACLOutput) {
6895	op := &request.Operation{
6896		Name:       opListResourcesForWebACL,
6897		HTTPMethod: "POST",
6898		HTTPPath:   "/",
6899	}
6900
6901	if input == nil {
6902		input = &ListResourcesForWebACLInput{}
6903	}
6904
6905	output = &ListResourcesForWebACLOutput{}
6906	req = c.newRequest(op, input, output)
6907	return
6908}
6909
6910// ListResourcesForWebACL API operation for AWS WAF Regional.
6911//
6912//
6913// This is AWS WAF Classic Regional documentation. For more information, see
6914// AWS WAF Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
6915// in the developer guide.
6916//
6917// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
6918// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
6919// With the latest version, AWS WAF has a single set of endpoints for regional
6920// and global use.
6921//
6922// Returns an array of resources associated with the specified web ACL.
6923//
6924// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6925// with awserr.Error's Code and Message methods to get detailed information about
6926// the error.
6927//
6928// See the AWS API reference guide for AWS WAF Regional's
6929// API operation ListResourcesForWebACL for usage and error information.
6930//
6931// Returned Error Types:
6932//   * WAFInternalErrorException
6933//   The operation failed because of a system problem, even though the request
6934//   was valid. Retry your request.
6935//
6936//   * WAFInvalidAccountException
6937//   The operation failed because you tried to create, update, or delete an object
6938//   by using an invalid account identifier.
6939//
6940//   * WAFNonexistentItemException
6941//   The operation failed because the referenced object doesn't exist.
6942//
6943//   * WAFInvalidParameterException
6944//   The operation failed because AWS WAF didn't recognize a parameter in the
6945//   request. For example:
6946//
6947//      * You specified an invalid parameter name.
6948//
6949//      * You specified an invalid value.
6950//
6951//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
6952//      using an action other than INSERT or DELETE.
6953//
6954//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
6955//      BLOCK, or COUNT.
6956//
6957//      * You tried to create a RateBasedRule with a RateKey value other than
6958//      IP.
6959//
6960//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
6961//      BLOCK, or COUNT.
6962//
6963//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
6964//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
6965//
6966//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
6967//      for Data.
6968//
6969//      * Your request references an ARN that is malformed, or corresponds to
6970//      a resource with which a web ACL cannot be associated.
6971//
6972// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListResourcesForWebACL
6973func (c *WAFRegional) ListResourcesForWebACL(input *ListResourcesForWebACLInput) (*ListResourcesForWebACLOutput, error) {
6974	req, out := c.ListResourcesForWebACLRequest(input)
6975	return out, req.Send()
6976}
6977
6978// ListResourcesForWebACLWithContext is the same as ListResourcesForWebACL with the addition of
6979// the ability to pass a context and additional request options.
6980//
6981// See ListResourcesForWebACL for details on how to use this API operation.
6982//
6983// The context must be non-nil and will be used for request cancellation. If
6984// the context is nil a panic will occur. In the future the SDK may create
6985// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6986// for more information on using Contexts.
6987func (c *WAFRegional) ListResourcesForWebACLWithContext(ctx aws.Context, input *ListResourcesForWebACLInput, opts ...request.Option) (*ListResourcesForWebACLOutput, error) {
6988	req, out := c.ListResourcesForWebACLRequest(input)
6989	req.SetContext(ctx)
6990	req.ApplyOptions(opts...)
6991	return out, req.Send()
6992}
6993
6994const opListRuleGroups = "ListRuleGroups"
6995
6996// ListRuleGroupsRequest generates a "aws/request.Request" representing the
6997// client's request for the ListRuleGroups operation. The "output" return
6998// value will be populated with the request's response once the request completes
6999// successfully.
7000//
7001// Use "Send" method on the returned Request to send the API call to the service.
7002// the "output" return value is not valid until after Send returns without error.
7003//
7004// See ListRuleGroups for more information on using the ListRuleGroups
7005// API call, and error handling.
7006//
7007// This method is useful when you want to inject custom logic or configuration
7008// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7009//
7010//
7011//    // Example sending a request using the ListRuleGroupsRequest method.
7012//    req, resp := client.ListRuleGroupsRequest(params)
7013//
7014//    err := req.Send()
7015//    if err == nil { // resp is now filled
7016//        fmt.Println(resp)
7017//    }
7018//
7019// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRuleGroups
7020func (c *WAFRegional) ListRuleGroupsRequest(input *waf.ListRuleGroupsInput) (req *request.Request, output *waf.ListRuleGroupsOutput) {
7021	op := &request.Operation{
7022		Name:       opListRuleGroups,
7023		HTTPMethod: "POST",
7024		HTTPPath:   "/",
7025	}
7026
7027	if input == nil {
7028		input = &waf.ListRuleGroupsInput{}
7029	}
7030
7031	output = &waf.ListRuleGroupsOutput{}
7032	req = c.newRequest(op, input, output)
7033	return
7034}
7035
7036// ListRuleGroups API operation for AWS WAF Regional.
7037//
7038//
7039// This is AWS WAF Classic documentation. For more information, see AWS WAF
7040// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7041// in the developer guide.
7042//
7043// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7044// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7045// With the latest version, AWS WAF has a single set of endpoints for regional
7046// and global use.
7047//
7048// Returns an array of RuleGroup objects.
7049//
7050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7051// with awserr.Error's Code and Message methods to get detailed information about
7052// the error.
7053//
7054// See the AWS API reference guide for AWS WAF Regional's
7055// API operation ListRuleGroups for usage and error information.
7056//
7057// Returned Error Types:
7058//   * WAFInternalErrorException
7059//   The operation failed because of a system problem, even though the request
7060//   was valid. Retry your request.
7061//
7062// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRuleGroups
7063func (c *WAFRegional) ListRuleGroups(input *waf.ListRuleGroupsInput) (*waf.ListRuleGroupsOutput, error) {
7064	req, out := c.ListRuleGroupsRequest(input)
7065	return out, req.Send()
7066}
7067
7068// ListRuleGroupsWithContext is the same as ListRuleGroups with the addition of
7069// the ability to pass a context and additional request options.
7070//
7071// See ListRuleGroups for details on how to use this API operation.
7072//
7073// The context must be non-nil and will be used for request cancellation. If
7074// the context is nil a panic will occur. In the future the SDK may create
7075// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7076// for more information on using Contexts.
7077func (c *WAFRegional) ListRuleGroupsWithContext(ctx aws.Context, input *waf.ListRuleGroupsInput, opts ...request.Option) (*waf.ListRuleGroupsOutput, error) {
7078	req, out := c.ListRuleGroupsRequest(input)
7079	req.SetContext(ctx)
7080	req.ApplyOptions(opts...)
7081	return out, req.Send()
7082}
7083
7084const opListRules = "ListRules"
7085
7086// ListRulesRequest generates a "aws/request.Request" representing the
7087// client's request for the ListRules operation. The "output" return
7088// value will be populated with the request's response once the request completes
7089// successfully.
7090//
7091// Use "Send" method on the returned Request to send the API call to the service.
7092// the "output" return value is not valid until after Send returns without error.
7093//
7094// See ListRules for more information on using the ListRules
7095// API call, and error handling.
7096//
7097// This method is useful when you want to inject custom logic or configuration
7098// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7099//
7100//
7101//    // Example sending a request using the ListRulesRequest method.
7102//    req, resp := client.ListRulesRequest(params)
7103//
7104//    err := req.Send()
7105//    if err == nil { // resp is now filled
7106//        fmt.Println(resp)
7107//    }
7108//
7109// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRules
7110func (c *WAFRegional) ListRulesRequest(input *waf.ListRulesInput) (req *request.Request, output *waf.ListRulesOutput) {
7111	op := &request.Operation{
7112		Name:       opListRules,
7113		HTTPMethod: "POST",
7114		HTTPPath:   "/",
7115	}
7116
7117	if input == nil {
7118		input = &waf.ListRulesInput{}
7119	}
7120
7121	output = &waf.ListRulesOutput{}
7122	req = c.newRequest(op, input, output)
7123	return
7124}
7125
7126// ListRules API operation for AWS WAF Regional.
7127//
7128//
7129// This is AWS WAF Classic documentation. For more information, see AWS WAF
7130// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7131// in the developer guide.
7132//
7133// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7134// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7135// With the latest version, AWS WAF has a single set of endpoints for regional
7136// and global use.
7137//
7138// Returns an array of RuleSummary objects.
7139//
7140// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7141// with awserr.Error's Code and Message methods to get detailed information about
7142// the error.
7143//
7144// See the AWS API reference guide for AWS WAF Regional's
7145// API operation ListRules for usage and error information.
7146//
7147// Returned Error Types:
7148//   * WAFInternalErrorException
7149//   The operation failed because of a system problem, even though the request
7150//   was valid. Retry your request.
7151//
7152//   * WAFInvalidAccountException
7153//   The operation failed because you tried to create, update, or delete an object
7154//   by using an invalid account identifier.
7155//
7156// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRules
7157func (c *WAFRegional) ListRules(input *waf.ListRulesInput) (*waf.ListRulesOutput, error) {
7158	req, out := c.ListRulesRequest(input)
7159	return out, req.Send()
7160}
7161
7162// ListRulesWithContext is the same as ListRules with the addition of
7163// the ability to pass a context and additional request options.
7164//
7165// See ListRules for details on how to use this API operation.
7166//
7167// The context must be non-nil and will be used for request cancellation. If
7168// the context is nil a panic will occur. In the future the SDK may create
7169// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7170// for more information on using Contexts.
7171func (c *WAFRegional) ListRulesWithContext(ctx aws.Context, input *waf.ListRulesInput, opts ...request.Option) (*waf.ListRulesOutput, error) {
7172	req, out := c.ListRulesRequest(input)
7173	req.SetContext(ctx)
7174	req.ApplyOptions(opts...)
7175	return out, req.Send()
7176}
7177
7178const opListSizeConstraintSets = "ListSizeConstraintSets"
7179
7180// ListSizeConstraintSetsRequest generates a "aws/request.Request" representing the
7181// client's request for the ListSizeConstraintSets operation. The "output" return
7182// value will be populated with the request's response once the request completes
7183// successfully.
7184//
7185// Use "Send" method on the returned Request to send the API call to the service.
7186// the "output" return value is not valid until after Send returns without error.
7187//
7188// See ListSizeConstraintSets for more information on using the ListSizeConstraintSets
7189// API call, and error handling.
7190//
7191// This method is useful when you want to inject custom logic or configuration
7192// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7193//
7194//
7195//    // Example sending a request using the ListSizeConstraintSetsRequest method.
7196//    req, resp := client.ListSizeConstraintSetsRequest(params)
7197//
7198//    err := req.Send()
7199//    if err == nil { // resp is now filled
7200//        fmt.Println(resp)
7201//    }
7202//
7203// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSizeConstraintSets
7204func (c *WAFRegional) ListSizeConstraintSetsRequest(input *waf.ListSizeConstraintSetsInput) (req *request.Request, output *waf.ListSizeConstraintSetsOutput) {
7205	op := &request.Operation{
7206		Name:       opListSizeConstraintSets,
7207		HTTPMethod: "POST",
7208		HTTPPath:   "/",
7209	}
7210
7211	if input == nil {
7212		input = &waf.ListSizeConstraintSetsInput{}
7213	}
7214
7215	output = &waf.ListSizeConstraintSetsOutput{}
7216	req = c.newRequest(op, input, output)
7217	return
7218}
7219
7220// ListSizeConstraintSets API operation for AWS WAF Regional.
7221//
7222//
7223// This is AWS WAF Classic documentation. For more information, see AWS WAF
7224// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7225// in the developer guide.
7226//
7227// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7228// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7229// With the latest version, AWS WAF has a single set of endpoints for regional
7230// and global use.
7231//
7232// Returns an array of SizeConstraintSetSummary objects.
7233//
7234// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7235// with awserr.Error's Code and Message methods to get detailed information about
7236// the error.
7237//
7238// See the AWS API reference guide for AWS WAF Regional's
7239// API operation ListSizeConstraintSets for usage and error information.
7240//
7241// Returned Error Types:
7242//   * WAFInternalErrorException
7243//   The operation failed because of a system problem, even though the request
7244//   was valid. Retry your request.
7245//
7246//   * WAFInvalidAccountException
7247//   The operation failed because you tried to create, update, or delete an object
7248//   by using an invalid account identifier.
7249//
7250// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSizeConstraintSets
7251func (c *WAFRegional) ListSizeConstraintSets(input *waf.ListSizeConstraintSetsInput) (*waf.ListSizeConstraintSetsOutput, error) {
7252	req, out := c.ListSizeConstraintSetsRequest(input)
7253	return out, req.Send()
7254}
7255
7256// ListSizeConstraintSetsWithContext is the same as ListSizeConstraintSets with the addition of
7257// the ability to pass a context and additional request options.
7258//
7259// See ListSizeConstraintSets for details on how to use this API operation.
7260//
7261// The context must be non-nil and will be used for request cancellation. If
7262// the context is nil a panic will occur. In the future the SDK may create
7263// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7264// for more information on using Contexts.
7265func (c *WAFRegional) ListSizeConstraintSetsWithContext(ctx aws.Context, input *waf.ListSizeConstraintSetsInput, opts ...request.Option) (*waf.ListSizeConstraintSetsOutput, error) {
7266	req, out := c.ListSizeConstraintSetsRequest(input)
7267	req.SetContext(ctx)
7268	req.ApplyOptions(opts...)
7269	return out, req.Send()
7270}
7271
7272const opListSqlInjectionMatchSets = "ListSqlInjectionMatchSets"
7273
7274// ListSqlInjectionMatchSetsRequest generates a "aws/request.Request" representing the
7275// client's request for the ListSqlInjectionMatchSets operation. The "output" return
7276// value will be populated with the request's response once the request completes
7277// successfully.
7278//
7279// Use "Send" method on the returned Request to send the API call to the service.
7280// the "output" return value is not valid until after Send returns without error.
7281//
7282// See ListSqlInjectionMatchSets for more information on using the ListSqlInjectionMatchSets
7283// API call, and error handling.
7284//
7285// This method is useful when you want to inject custom logic or configuration
7286// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7287//
7288//
7289//    // Example sending a request using the ListSqlInjectionMatchSetsRequest method.
7290//    req, resp := client.ListSqlInjectionMatchSetsRequest(params)
7291//
7292//    err := req.Send()
7293//    if err == nil { // resp is now filled
7294//        fmt.Println(resp)
7295//    }
7296//
7297// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSqlInjectionMatchSets
7298func (c *WAFRegional) ListSqlInjectionMatchSetsRequest(input *waf.ListSqlInjectionMatchSetsInput) (req *request.Request, output *waf.ListSqlInjectionMatchSetsOutput) {
7299	op := &request.Operation{
7300		Name:       opListSqlInjectionMatchSets,
7301		HTTPMethod: "POST",
7302		HTTPPath:   "/",
7303	}
7304
7305	if input == nil {
7306		input = &waf.ListSqlInjectionMatchSetsInput{}
7307	}
7308
7309	output = &waf.ListSqlInjectionMatchSetsOutput{}
7310	req = c.newRequest(op, input, output)
7311	return
7312}
7313
7314// ListSqlInjectionMatchSets API operation for AWS WAF Regional.
7315//
7316//
7317// This is AWS WAF Classic documentation. For more information, see AWS WAF
7318// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7319// in the developer guide.
7320//
7321// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7322// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7323// With the latest version, AWS WAF has a single set of endpoints for regional
7324// and global use.
7325//
7326// Returns an array of SqlInjectionMatchSet objects.
7327//
7328// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7329// with awserr.Error's Code and Message methods to get detailed information about
7330// the error.
7331//
7332// See the AWS API reference guide for AWS WAF Regional's
7333// API operation ListSqlInjectionMatchSets for usage and error information.
7334//
7335// Returned Error Types:
7336//   * WAFInternalErrorException
7337//   The operation failed because of a system problem, even though the request
7338//   was valid. Retry your request.
7339//
7340//   * WAFInvalidAccountException
7341//   The operation failed because you tried to create, update, or delete an object
7342//   by using an invalid account identifier.
7343//
7344// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSqlInjectionMatchSets
7345func (c *WAFRegional) ListSqlInjectionMatchSets(input *waf.ListSqlInjectionMatchSetsInput) (*waf.ListSqlInjectionMatchSetsOutput, error) {
7346	req, out := c.ListSqlInjectionMatchSetsRequest(input)
7347	return out, req.Send()
7348}
7349
7350// ListSqlInjectionMatchSetsWithContext is the same as ListSqlInjectionMatchSets with the addition of
7351// the ability to pass a context and additional request options.
7352//
7353// See ListSqlInjectionMatchSets for details on how to use this API operation.
7354//
7355// The context must be non-nil and will be used for request cancellation. If
7356// the context is nil a panic will occur. In the future the SDK may create
7357// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7358// for more information on using Contexts.
7359func (c *WAFRegional) ListSqlInjectionMatchSetsWithContext(ctx aws.Context, input *waf.ListSqlInjectionMatchSetsInput, opts ...request.Option) (*waf.ListSqlInjectionMatchSetsOutput, error) {
7360	req, out := c.ListSqlInjectionMatchSetsRequest(input)
7361	req.SetContext(ctx)
7362	req.ApplyOptions(opts...)
7363	return out, req.Send()
7364}
7365
7366const opListSubscribedRuleGroups = "ListSubscribedRuleGroups"
7367
7368// ListSubscribedRuleGroupsRequest generates a "aws/request.Request" representing the
7369// client's request for the ListSubscribedRuleGroups operation. The "output" return
7370// value will be populated with the request's response once the request completes
7371// successfully.
7372//
7373// Use "Send" method on the returned Request to send the API call to the service.
7374// the "output" return value is not valid until after Send returns without error.
7375//
7376// See ListSubscribedRuleGroups for more information on using the ListSubscribedRuleGroups
7377// API call, and error handling.
7378//
7379// This method is useful when you want to inject custom logic or configuration
7380// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7381//
7382//
7383//    // Example sending a request using the ListSubscribedRuleGroupsRequest method.
7384//    req, resp := client.ListSubscribedRuleGroupsRequest(params)
7385//
7386//    err := req.Send()
7387//    if err == nil { // resp is now filled
7388//        fmt.Println(resp)
7389//    }
7390//
7391// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSubscribedRuleGroups
7392func (c *WAFRegional) ListSubscribedRuleGroupsRequest(input *waf.ListSubscribedRuleGroupsInput) (req *request.Request, output *waf.ListSubscribedRuleGroupsOutput) {
7393	op := &request.Operation{
7394		Name:       opListSubscribedRuleGroups,
7395		HTTPMethod: "POST",
7396		HTTPPath:   "/",
7397	}
7398
7399	if input == nil {
7400		input = &waf.ListSubscribedRuleGroupsInput{}
7401	}
7402
7403	output = &waf.ListSubscribedRuleGroupsOutput{}
7404	req = c.newRequest(op, input, output)
7405	return
7406}
7407
7408// ListSubscribedRuleGroups API operation for AWS WAF Regional.
7409//
7410//
7411// This is AWS WAF Classic documentation. For more information, see AWS WAF
7412// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7413// in the developer guide.
7414//
7415// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7416// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7417// With the latest version, AWS WAF has a single set of endpoints for regional
7418// and global use.
7419//
7420// Returns an array of RuleGroup objects that you are subscribed to.
7421//
7422// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7423// with awserr.Error's Code and Message methods to get detailed information about
7424// the error.
7425//
7426// See the AWS API reference guide for AWS WAF Regional's
7427// API operation ListSubscribedRuleGroups for usage and error information.
7428//
7429// Returned Error Types:
7430//   * WAFNonexistentItemException
7431//   The operation failed because the referenced object doesn't exist.
7432//
7433//   * WAFInternalErrorException
7434//   The operation failed because of a system problem, even though the request
7435//   was valid. Retry your request.
7436//
7437// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSubscribedRuleGroups
7438func (c *WAFRegional) ListSubscribedRuleGroups(input *waf.ListSubscribedRuleGroupsInput) (*waf.ListSubscribedRuleGroupsOutput, error) {
7439	req, out := c.ListSubscribedRuleGroupsRequest(input)
7440	return out, req.Send()
7441}
7442
7443// ListSubscribedRuleGroupsWithContext is the same as ListSubscribedRuleGroups with the addition of
7444// the ability to pass a context and additional request options.
7445//
7446// See ListSubscribedRuleGroups for details on how to use this API operation.
7447//
7448// The context must be non-nil and will be used for request cancellation. If
7449// the context is nil a panic will occur. In the future the SDK may create
7450// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7451// for more information on using Contexts.
7452func (c *WAFRegional) ListSubscribedRuleGroupsWithContext(ctx aws.Context, input *waf.ListSubscribedRuleGroupsInput, opts ...request.Option) (*waf.ListSubscribedRuleGroupsOutput, error) {
7453	req, out := c.ListSubscribedRuleGroupsRequest(input)
7454	req.SetContext(ctx)
7455	req.ApplyOptions(opts...)
7456	return out, req.Send()
7457}
7458
7459const opListTagsForResource = "ListTagsForResource"
7460
7461// ListTagsForResourceRequest generates a "aws/request.Request" representing the
7462// client's request for the ListTagsForResource operation. The "output" return
7463// value will be populated with the request's response once the request completes
7464// successfully.
7465//
7466// Use "Send" method on the returned Request to send the API call to the service.
7467// the "output" return value is not valid until after Send returns without error.
7468//
7469// See ListTagsForResource for more information on using the ListTagsForResource
7470// API call, and error handling.
7471//
7472// This method is useful when you want to inject custom logic or configuration
7473// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7474//
7475//
7476//    // Example sending a request using the ListTagsForResourceRequest method.
7477//    req, resp := client.ListTagsForResourceRequest(params)
7478//
7479//    err := req.Send()
7480//    if err == nil { // resp is now filled
7481//        fmt.Println(resp)
7482//    }
7483//
7484// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListTagsForResource
7485func (c *WAFRegional) ListTagsForResourceRequest(input *waf.ListTagsForResourceInput) (req *request.Request, output *waf.ListTagsForResourceOutput) {
7486	op := &request.Operation{
7487		Name:       opListTagsForResource,
7488		HTTPMethod: "POST",
7489		HTTPPath:   "/",
7490	}
7491
7492	if input == nil {
7493		input = &waf.ListTagsForResourceInput{}
7494	}
7495
7496	output = &waf.ListTagsForResourceOutput{}
7497	req = c.newRequest(op, input, output)
7498	return
7499}
7500
7501// ListTagsForResource API operation for AWS WAF Regional.
7502//
7503//
7504// This is AWS WAF Classic documentation. For more information, see AWS WAF
7505// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7506// in the developer guide.
7507//
7508// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7509// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7510// With the latest version, AWS WAF has a single set of endpoints for regional
7511// and global use.
7512//
7513// Retrieves the tags associated with the specified AWS resource. Tags are key:value
7514// pairs that you can use to categorize and manage your resources, for purposes
7515// like billing. For example, you might set the tag key to "customer" and the
7516// value to the customer name or ID. You can specify one or more tags to add
7517// to each AWS resource, up to 50 tags for a resource.
7518//
7519// Tagging is only available through the API, SDKs, and CLI. You can't manage
7520// or view tags through the AWS WAF Classic console. You can tag the AWS resources
7521// that you manage through AWS WAF Classic: web ACLs, rule groups, and rules.
7522//
7523// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7524// with awserr.Error's Code and Message methods to get detailed information about
7525// the error.
7526//
7527// See the AWS API reference guide for AWS WAF Regional's
7528// API operation ListTagsForResource for usage and error information.
7529//
7530// Returned Error Types:
7531//   * WAFInternalErrorException
7532//   The operation failed because of a system problem, even though the request
7533//   was valid. Retry your request.
7534//
7535//   * WAFInvalidParameterException
7536//   The operation failed because AWS WAF didn't recognize a parameter in the
7537//   request. For example:
7538//
7539//      * You specified an invalid parameter name.
7540//
7541//      * You specified an invalid value.
7542//
7543//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
7544//      using an action other than INSERT or DELETE.
7545//
7546//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
7547//      BLOCK, or COUNT.
7548//
7549//      * You tried to create a RateBasedRule with a RateKey value other than
7550//      IP.
7551//
7552//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
7553//      BLOCK, or COUNT.
7554//
7555//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
7556//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
7557//
7558//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
7559//      for Data.
7560//
7561//      * Your request references an ARN that is malformed, or corresponds to
7562//      a resource with which a web ACL cannot be associated.
7563//
7564//   * WAFNonexistentItemException
7565//   The operation failed because the referenced object doesn't exist.
7566//
7567//   * WAFBadRequestException
7568//
7569//   * WAFTagOperationException
7570//
7571//   * WAFTagOperationInternalErrorException
7572//
7573// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListTagsForResource
7574func (c *WAFRegional) ListTagsForResource(input *waf.ListTagsForResourceInput) (*waf.ListTagsForResourceOutput, error) {
7575	req, out := c.ListTagsForResourceRequest(input)
7576	return out, req.Send()
7577}
7578
7579// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
7580// the ability to pass a context and additional request options.
7581//
7582// See ListTagsForResource for details on how to use this API operation.
7583//
7584// The context must be non-nil and will be used for request cancellation. If
7585// the context is nil a panic will occur. In the future the SDK may create
7586// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7587// for more information on using Contexts.
7588func (c *WAFRegional) ListTagsForResourceWithContext(ctx aws.Context, input *waf.ListTagsForResourceInput, opts ...request.Option) (*waf.ListTagsForResourceOutput, error) {
7589	req, out := c.ListTagsForResourceRequest(input)
7590	req.SetContext(ctx)
7591	req.ApplyOptions(opts...)
7592	return out, req.Send()
7593}
7594
7595const opListWebACLs = "ListWebACLs"
7596
7597// ListWebACLsRequest generates a "aws/request.Request" representing the
7598// client's request for the ListWebACLs operation. The "output" return
7599// value will be populated with the request's response once the request completes
7600// successfully.
7601//
7602// Use "Send" method on the returned Request to send the API call to the service.
7603// the "output" return value is not valid until after Send returns without error.
7604//
7605// See ListWebACLs for more information on using the ListWebACLs
7606// API call, and error handling.
7607//
7608// This method is useful when you want to inject custom logic or configuration
7609// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7610//
7611//
7612//    // Example sending a request using the ListWebACLsRequest method.
7613//    req, resp := client.ListWebACLsRequest(params)
7614//
7615//    err := req.Send()
7616//    if err == nil { // resp is now filled
7617//        fmt.Println(resp)
7618//    }
7619//
7620// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListWebACLs
7621func (c *WAFRegional) ListWebACLsRequest(input *waf.ListWebACLsInput) (req *request.Request, output *waf.ListWebACLsOutput) {
7622	op := &request.Operation{
7623		Name:       opListWebACLs,
7624		HTTPMethod: "POST",
7625		HTTPPath:   "/",
7626	}
7627
7628	if input == nil {
7629		input = &waf.ListWebACLsInput{}
7630	}
7631
7632	output = &waf.ListWebACLsOutput{}
7633	req = c.newRequest(op, input, output)
7634	return
7635}
7636
7637// ListWebACLs API operation for AWS WAF Regional.
7638//
7639//
7640// This is AWS WAF Classic documentation. For more information, see AWS WAF
7641// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7642// in the developer guide.
7643//
7644// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7645// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7646// With the latest version, AWS WAF has a single set of endpoints for regional
7647// and global use.
7648//
7649// Returns an array of WebACLSummary objects in the response.
7650//
7651// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7652// with awserr.Error's Code and Message methods to get detailed information about
7653// the error.
7654//
7655// See the AWS API reference guide for AWS WAF Regional's
7656// API operation ListWebACLs for usage and error information.
7657//
7658// Returned Error Types:
7659//   * WAFInternalErrorException
7660//   The operation failed because of a system problem, even though the request
7661//   was valid. Retry your request.
7662//
7663//   * WAFInvalidAccountException
7664//   The operation failed because you tried to create, update, or delete an object
7665//   by using an invalid account identifier.
7666//
7667// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListWebACLs
7668func (c *WAFRegional) ListWebACLs(input *waf.ListWebACLsInput) (*waf.ListWebACLsOutput, error) {
7669	req, out := c.ListWebACLsRequest(input)
7670	return out, req.Send()
7671}
7672
7673// ListWebACLsWithContext is the same as ListWebACLs with the addition of
7674// the ability to pass a context and additional request options.
7675//
7676// See ListWebACLs for details on how to use this API operation.
7677//
7678// The context must be non-nil and will be used for request cancellation. If
7679// the context is nil a panic will occur. In the future the SDK may create
7680// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7681// for more information on using Contexts.
7682func (c *WAFRegional) ListWebACLsWithContext(ctx aws.Context, input *waf.ListWebACLsInput, opts ...request.Option) (*waf.ListWebACLsOutput, error) {
7683	req, out := c.ListWebACLsRequest(input)
7684	req.SetContext(ctx)
7685	req.ApplyOptions(opts...)
7686	return out, req.Send()
7687}
7688
7689const opListXssMatchSets = "ListXssMatchSets"
7690
7691// ListXssMatchSetsRequest generates a "aws/request.Request" representing the
7692// client's request for the ListXssMatchSets operation. The "output" return
7693// value will be populated with the request's response once the request completes
7694// successfully.
7695//
7696// Use "Send" method on the returned Request to send the API call to the service.
7697// the "output" return value is not valid until after Send returns without error.
7698//
7699// See ListXssMatchSets for more information on using the ListXssMatchSets
7700// API call, and error handling.
7701//
7702// This method is useful when you want to inject custom logic or configuration
7703// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7704//
7705//
7706//    // Example sending a request using the ListXssMatchSetsRequest method.
7707//    req, resp := client.ListXssMatchSetsRequest(params)
7708//
7709//    err := req.Send()
7710//    if err == nil { // resp is now filled
7711//        fmt.Println(resp)
7712//    }
7713//
7714// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListXssMatchSets
7715func (c *WAFRegional) ListXssMatchSetsRequest(input *waf.ListXssMatchSetsInput) (req *request.Request, output *waf.ListXssMatchSetsOutput) {
7716	op := &request.Operation{
7717		Name:       opListXssMatchSets,
7718		HTTPMethod: "POST",
7719		HTTPPath:   "/",
7720	}
7721
7722	if input == nil {
7723		input = &waf.ListXssMatchSetsInput{}
7724	}
7725
7726	output = &waf.ListXssMatchSetsOutput{}
7727	req = c.newRequest(op, input, output)
7728	return
7729}
7730
7731// ListXssMatchSets API operation for AWS WAF Regional.
7732//
7733//
7734// This is AWS WAF Classic documentation. For more information, see AWS WAF
7735// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7736// in the developer guide.
7737//
7738// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7739// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7740// With the latest version, AWS WAF has a single set of endpoints for regional
7741// and global use.
7742//
7743// Returns an array of XssMatchSet objects.
7744//
7745// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7746// with awserr.Error's Code and Message methods to get detailed information about
7747// the error.
7748//
7749// See the AWS API reference guide for AWS WAF Regional's
7750// API operation ListXssMatchSets for usage and error information.
7751//
7752// Returned Error Types:
7753//   * WAFInternalErrorException
7754//   The operation failed because of a system problem, even though the request
7755//   was valid. Retry your request.
7756//
7757//   * WAFInvalidAccountException
7758//   The operation failed because you tried to create, update, or delete an object
7759//   by using an invalid account identifier.
7760//
7761// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListXssMatchSets
7762func (c *WAFRegional) ListXssMatchSets(input *waf.ListXssMatchSetsInput) (*waf.ListXssMatchSetsOutput, error) {
7763	req, out := c.ListXssMatchSetsRequest(input)
7764	return out, req.Send()
7765}
7766
7767// ListXssMatchSetsWithContext is the same as ListXssMatchSets with the addition of
7768// the ability to pass a context and additional request options.
7769//
7770// See ListXssMatchSets for details on how to use this API operation.
7771//
7772// The context must be non-nil and will be used for request cancellation. If
7773// the context is nil a panic will occur. In the future the SDK may create
7774// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7775// for more information on using Contexts.
7776func (c *WAFRegional) ListXssMatchSetsWithContext(ctx aws.Context, input *waf.ListXssMatchSetsInput, opts ...request.Option) (*waf.ListXssMatchSetsOutput, error) {
7777	req, out := c.ListXssMatchSetsRequest(input)
7778	req.SetContext(ctx)
7779	req.ApplyOptions(opts...)
7780	return out, req.Send()
7781}
7782
7783const opPutLoggingConfiguration = "PutLoggingConfiguration"
7784
7785// PutLoggingConfigurationRequest generates a "aws/request.Request" representing the
7786// client's request for the PutLoggingConfiguration operation. The "output" return
7787// value will be populated with the request's response once the request completes
7788// successfully.
7789//
7790// Use "Send" method on the returned Request to send the API call to the service.
7791// the "output" return value is not valid until after Send returns without error.
7792//
7793// See PutLoggingConfiguration for more information on using the PutLoggingConfiguration
7794// API call, and error handling.
7795//
7796// This method is useful when you want to inject custom logic or configuration
7797// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7798//
7799//
7800//    // Example sending a request using the PutLoggingConfigurationRequest method.
7801//    req, resp := client.PutLoggingConfigurationRequest(params)
7802//
7803//    err := req.Send()
7804//    if err == nil { // resp is now filled
7805//        fmt.Println(resp)
7806//    }
7807//
7808// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutLoggingConfiguration
7809func (c *WAFRegional) PutLoggingConfigurationRequest(input *waf.PutLoggingConfigurationInput) (req *request.Request, output *waf.PutLoggingConfigurationOutput) {
7810	op := &request.Operation{
7811		Name:       opPutLoggingConfiguration,
7812		HTTPMethod: "POST",
7813		HTTPPath:   "/",
7814	}
7815
7816	if input == nil {
7817		input = &waf.PutLoggingConfigurationInput{}
7818	}
7819
7820	output = &waf.PutLoggingConfigurationOutput{}
7821	req = c.newRequest(op, input, output)
7822	return
7823}
7824
7825// PutLoggingConfiguration API operation for AWS WAF Regional.
7826//
7827//
7828// This is AWS WAF Classic documentation. For more information, see AWS WAF
7829// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7830// in the developer guide.
7831//
7832// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7833// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7834// With the latest version, AWS WAF has a single set of endpoints for regional
7835// and global use.
7836//
7837// Associates a LoggingConfiguration with a specified web ACL.
7838//
7839// You can access information about all traffic that AWS WAF inspects using
7840// the following steps:
7841//
7842// Create an Amazon Kinesis Data Firehose.
7843//
7844// Create the data firehose with a PUT source and in the region that you are
7845// operating. However, if you are capturing logs for Amazon CloudFront, always
7846// create the firehose in US East (N. Virginia).
7847//
7848// Do not create the data firehose using a Kinesis stream as your source.
7849//
7850// Associate that firehose to your web ACL using a PutLoggingConfiguration request.
7851//
7852// When you successfully enable logging using a PutLoggingConfiguration request,
7853// AWS WAF will create a service linked role with the necessary permissions
7854// to write logs to the Amazon Kinesis Data Firehose. For more information,
7855// see Logging Web ACL Traffic Information (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html)
7856// in the AWS WAF Developer Guide.
7857//
7858// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7859// with awserr.Error's Code and Message methods to get detailed information about
7860// the error.
7861//
7862// See the AWS API reference guide for AWS WAF Regional's
7863// API operation PutLoggingConfiguration for usage and error information.
7864//
7865// Returned Error Types:
7866//   * WAFInternalErrorException
7867//   The operation failed because of a system problem, even though the request
7868//   was valid. Retry your request.
7869//
7870//   * WAFNonexistentItemException
7871//   The operation failed because the referenced object doesn't exist.
7872//
7873//   * WAFStaleDataException
7874//   The operation failed because you tried to create, update, or delete an object
7875//   by using a change token that has already been used.
7876//
7877//   * WAFServiceLinkedRoleErrorException
7878//   AWS WAF is not able to access the service linked role. This can be caused
7879//   by a previous PutLoggingConfiguration request, which can lock the service
7880//   linked role for about 20 seconds. Please try your request again. The service
7881//   linked role can also be locked by a previous DeleteServiceLinkedRole request,
7882//   which can lock the role for 15 minutes or more. If you recently made a DeleteServiceLinkedRole,
7883//   wait at least 15 minutes and try the request again. If you receive this same
7884//   exception again, you will have to wait additional time until the role is
7885//   unlocked.
7886//
7887// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutLoggingConfiguration
7888func (c *WAFRegional) PutLoggingConfiguration(input *waf.PutLoggingConfigurationInput) (*waf.PutLoggingConfigurationOutput, error) {
7889	req, out := c.PutLoggingConfigurationRequest(input)
7890	return out, req.Send()
7891}
7892
7893// PutLoggingConfigurationWithContext is the same as PutLoggingConfiguration with the addition of
7894// the ability to pass a context and additional request options.
7895//
7896// See PutLoggingConfiguration for details on how to use this API operation.
7897//
7898// The context must be non-nil and will be used for request cancellation. If
7899// the context is nil a panic will occur. In the future the SDK may create
7900// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7901// for more information on using Contexts.
7902func (c *WAFRegional) PutLoggingConfigurationWithContext(ctx aws.Context, input *waf.PutLoggingConfigurationInput, opts ...request.Option) (*waf.PutLoggingConfigurationOutput, error) {
7903	req, out := c.PutLoggingConfigurationRequest(input)
7904	req.SetContext(ctx)
7905	req.ApplyOptions(opts...)
7906	return out, req.Send()
7907}
7908
7909const opPutPermissionPolicy = "PutPermissionPolicy"
7910
7911// PutPermissionPolicyRequest generates a "aws/request.Request" representing the
7912// client's request for the PutPermissionPolicy operation. The "output" return
7913// value will be populated with the request's response once the request completes
7914// successfully.
7915//
7916// Use "Send" method on the returned Request to send the API call to the service.
7917// the "output" return value is not valid until after Send returns without error.
7918//
7919// See PutPermissionPolicy for more information on using the PutPermissionPolicy
7920// API call, and error handling.
7921//
7922// This method is useful when you want to inject custom logic or configuration
7923// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7924//
7925//
7926//    // Example sending a request using the PutPermissionPolicyRequest method.
7927//    req, resp := client.PutPermissionPolicyRequest(params)
7928//
7929//    err := req.Send()
7930//    if err == nil { // resp is now filled
7931//        fmt.Println(resp)
7932//    }
7933//
7934// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutPermissionPolicy
7935func (c *WAFRegional) PutPermissionPolicyRequest(input *waf.PutPermissionPolicyInput) (req *request.Request, output *waf.PutPermissionPolicyOutput) {
7936	op := &request.Operation{
7937		Name:       opPutPermissionPolicy,
7938		HTTPMethod: "POST",
7939		HTTPPath:   "/",
7940	}
7941
7942	if input == nil {
7943		input = &waf.PutPermissionPolicyInput{}
7944	}
7945
7946	output = &waf.PutPermissionPolicyOutput{}
7947	req = c.newRequest(op, input, output)
7948	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7949	return
7950}
7951
7952// PutPermissionPolicy API operation for AWS WAF Regional.
7953//
7954//
7955// This is AWS WAF Classic documentation. For more information, see AWS WAF
7956// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
7957// in the developer guide.
7958//
7959// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
7960// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
7961// With the latest version, AWS WAF has a single set of endpoints for regional
7962// and global use.
7963//
7964// Attaches an IAM policy to the specified resource. The only supported use
7965// for this action is to share a RuleGroup across accounts.
7966//
7967// The PutPermissionPolicy is subject to the following restrictions:
7968//
7969//    * You can attach only one policy with each PutPermissionPolicy request.
7970//
7971//    * The policy must include an Effect, Action and Principal.
7972//
7973//    * Effect must specify Allow.
7974//
7975//    * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL,
7976//    waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard
7977//    actions in the policy will be rejected.
7978//
7979//    * The policy cannot include a Resource parameter.
7980//
7981//    * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup
7982//    must exist in the same region.
7983//
7984//    * The user making the request must be the owner of the RuleGroup.
7985//
7986//    * Your policy must be composed using IAM Policy version 2012-10-17.
7987//
7988// For more information, see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).
7989//
7990// An example of a valid policy parameter is shown in the Examples section below.
7991//
7992// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7993// with awserr.Error's Code and Message methods to get detailed information about
7994// the error.
7995//
7996// See the AWS API reference guide for AWS WAF Regional's
7997// API operation PutPermissionPolicy for usage and error information.
7998//
7999// Returned Error Types:
8000//   * WAFInternalErrorException
8001//   The operation failed because of a system problem, even though the request
8002//   was valid. Retry your request.
8003//
8004//   * WAFStaleDataException
8005//   The operation failed because you tried to create, update, or delete an object
8006//   by using a change token that has already been used.
8007//
8008//   * WAFNonexistentItemException
8009//   The operation failed because the referenced object doesn't exist.
8010//
8011//   * WAFInvalidPermissionPolicyException
8012//   The operation failed because the specified policy is not in the proper format.
8013//
8014//   The policy is subject to the following restrictions:
8015//
8016//      * You can attach only one policy with each PutPermissionPolicy request.
8017//
8018//      * The policy must include an Effect, Action and Principal.
8019//
8020//      * Effect must specify Allow.
8021//
8022//      * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL,
8023//      waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard
8024//      actions in the policy will be rejected.
8025//
8026//      * The policy cannot include a Resource parameter.
8027//
8028//      * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup
8029//      must exist in the same region.
8030//
8031//      * The user making the request must be the owner of the RuleGroup.
8032//
8033//      * Your policy must be composed using IAM Policy version 2012-10-17.
8034//
8035// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutPermissionPolicy
8036func (c *WAFRegional) PutPermissionPolicy(input *waf.PutPermissionPolicyInput) (*waf.PutPermissionPolicyOutput, error) {
8037	req, out := c.PutPermissionPolicyRequest(input)
8038	return out, req.Send()
8039}
8040
8041// PutPermissionPolicyWithContext is the same as PutPermissionPolicy with the addition of
8042// the ability to pass a context and additional request options.
8043//
8044// See PutPermissionPolicy for details on how to use this API operation.
8045//
8046// The context must be non-nil and will be used for request cancellation. If
8047// the context is nil a panic will occur. In the future the SDK may create
8048// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8049// for more information on using Contexts.
8050func (c *WAFRegional) PutPermissionPolicyWithContext(ctx aws.Context, input *waf.PutPermissionPolicyInput, opts ...request.Option) (*waf.PutPermissionPolicyOutput, error) {
8051	req, out := c.PutPermissionPolicyRequest(input)
8052	req.SetContext(ctx)
8053	req.ApplyOptions(opts...)
8054	return out, req.Send()
8055}
8056
8057const opTagResource = "TagResource"
8058
8059// TagResourceRequest generates a "aws/request.Request" representing the
8060// client's request for the TagResource operation. The "output" return
8061// value will be populated with the request's response once the request completes
8062// successfully.
8063//
8064// Use "Send" method on the returned Request to send the API call to the service.
8065// the "output" return value is not valid until after Send returns without error.
8066//
8067// See TagResource for more information on using the TagResource
8068// API call, and error handling.
8069//
8070// This method is useful when you want to inject custom logic or configuration
8071// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8072//
8073//
8074//    // Example sending a request using the TagResourceRequest method.
8075//    req, resp := client.TagResourceRequest(params)
8076//
8077//    err := req.Send()
8078//    if err == nil { // resp is now filled
8079//        fmt.Println(resp)
8080//    }
8081//
8082// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/TagResource
8083func (c *WAFRegional) TagResourceRequest(input *waf.TagResourceInput) (req *request.Request, output *waf.TagResourceOutput) {
8084	op := &request.Operation{
8085		Name:       opTagResource,
8086		HTTPMethod: "POST",
8087		HTTPPath:   "/",
8088	}
8089
8090	if input == nil {
8091		input = &waf.TagResourceInput{}
8092	}
8093
8094	output = &waf.TagResourceOutput{}
8095	req = c.newRequest(op, input, output)
8096	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8097	return
8098}
8099
8100// TagResource API operation for AWS WAF Regional.
8101//
8102//
8103// This is AWS WAF Classic documentation. For more information, see AWS WAF
8104// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
8105// in the developer guide.
8106//
8107// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
8108// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
8109// With the latest version, AWS WAF has a single set of endpoints for regional
8110// and global use.
8111//
8112// Associates tags with the specified AWS resource. Tags are key:value pairs
8113// that you can use to categorize and manage your resources, for purposes like
8114// billing. For example, you might set the tag key to "customer" and the value
8115// to the customer name or ID. You can specify one or more tags to add to each
8116// AWS resource, up to 50 tags for a resource.
8117//
8118// Tagging is only available through the API, SDKs, and CLI. You can't manage
8119// or view tags through the AWS WAF Classic console. You can use this action
8120// to tag the AWS resources that you manage through AWS WAF Classic: web ACLs,
8121// rule groups, and rules.
8122//
8123// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8124// with awserr.Error's Code and Message methods to get detailed information about
8125// the error.
8126//
8127// See the AWS API reference guide for AWS WAF Regional's
8128// API operation TagResource for usage and error information.
8129//
8130// Returned Error Types:
8131//   * WAFInternalErrorException
8132//   The operation failed because of a system problem, even though the request
8133//   was valid. Retry your request.
8134//
8135//   * WAFInvalidParameterException
8136//   The operation failed because AWS WAF didn't recognize a parameter in the
8137//   request. For example:
8138//
8139//      * You specified an invalid parameter name.
8140//
8141//      * You specified an invalid value.
8142//
8143//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
8144//      using an action other than INSERT or DELETE.
8145//
8146//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8147//      BLOCK, or COUNT.
8148//
8149//      * You tried to create a RateBasedRule with a RateKey value other than
8150//      IP.
8151//
8152//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8153//      BLOCK, or COUNT.
8154//
8155//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8156//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8157//
8158//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8159//      for Data.
8160//
8161//      * Your request references an ARN that is malformed, or corresponds to
8162//      a resource with which a web ACL cannot be associated.
8163//
8164//   * WAFLimitsExceededException
8165//   The operation exceeds a resource limit, for example, the maximum number of
8166//   WebACL objects that you can create for an AWS account. For more information,
8167//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8168//   in the AWS WAF Developer Guide.
8169//
8170//   * WAFNonexistentItemException
8171//   The operation failed because the referenced object doesn't exist.
8172//
8173//   * WAFBadRequestException
8174//
8175//   * WAFTagOperationException
8176//
8177//   * WAFTagOperationInternalErrorException
8178//
8179// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/TagResource
8180func (c *WAFRegional) TagResource(input *waf.TagResourceInput) (*waf.TagResourceOutput, error) {
8181	req, out := c.TagResourceRequest(input)
8182	return out, req.Send()
8183}
8184
8185// TagResourceWithContext is the same as TagResource with the addition of
8186// the ability to pass a context and additional request options.
8187//
8188// See TagResource for details on how to use this API operation.
8189//
8190// The context must be non-nil and will be used for request cancellation. If
8191// the context is nil a panic will occur. In the future the SDK may create
8192// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8193// for more information on using Contexts.
8194func (c *WAFRegional) TagResourceWithContext(ctx aws.Context, input *waf.TagResourceInput, opts ...request.Option) (*waf.TagResourceOutput, error) {
8195	req, out := c.TagResourceRequest(input)
8196	req.SetContext(ctx)
8197	req.ApplyOptions(opts...)
8198	return out, req.Send()
8199}
8200
8201const opUntagResource = "UntagResource"
8202
8203// UntagResourceRequest generates a "aws/request.Request" representing the
8204// client's request for the UntagResource operation. The "output" return
8205// value will be populated with the request's response once the request completes
8206// successfully.
8207//
8208// Use "Send" method on the returned Request to send the API call to the service.
8209// the "output" return value is not valid until after Send returns without error.
8210//
8211// See UntagResource for more information on using the UntagResource
8212// API call, and error handling.
8213//
8214// This method is useful when you want to inject custom logic or configuration
8215// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8216//
8217//
8218//    // Example sending a request using the UntagResourceRequest method.
8219//    req, resp := client.UntagResourceRequest(params)
8220//
8221//    err := req.Send()
8222//    if err == nil { // resp is now filled
8223//        fmt.Println(resp)
8224//    }
8225//
8226// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UntagResource
8227func (c *WAFRegional) UntagResourceRequest(input *waf.UntagResourceInput) (req *request.Request, output *waf.UntagResourceOutput) {
8228	op := &request.Operation{
8229		Name:       opUntagResource,
8230		HTTPMethod: "POST",
8231		HTTPPath:   "/",
8232	}
8233
8234	if input == nil {
8235		input = &waf.UntagResourceInput{}
8236	}
8237
8238	output = &waf.UntagResourceOutput{}
8239	req = c.newRequest(op, input, output)
8240	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
8241	return
8242}
8243
8244// UntagResource API operation for AWS WAF Regional.
8245//
8246//
8247// This is AWS WAF Classic documentation. For more information, see AWS WAF
8248// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
8249// in the developer guide.
8250//
8251// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
8252// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
8253// With the latest version, AWS WAF has a single set of endpoints for regional
8254// and global use.
8255//
8256// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8257// with awserr.Error's Code and Message methods to get detailed information about
8258// the error.
8259//
8260// See the AWS API reference guide for AWS WAF Regional's
8261// API operation UntagResource for usage and error information.
8262//
8263// Returned Error Types:
8264//   * WAFInternalErrorException
8265//   The operation failed because of a system problem, even though the request
8266//   was valid. Retry your request.
8267//
8268//   * WAFInvalidParameterException
8269//   The operation failed because AWS WAF didn't recognize a parameter in the
8270//   request. For example:
8271//
8272//      * You specified an invalid parameter name.
8273//
8274//      * You specified an invalid value.
8275//
8276//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
8277//      using an action other than INSERT or DELETE.
8278//
8279//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8280//      BLOCK, or COUNT.
8281//
8282//      * You tried to create a RateBasedRule with a RateKey value other than
8283//      IP.
8284//
8285//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8286//      BLOCK, or COUNT.
8287//
8288//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8289//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8290//
8291//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8292//      for Data.
8293//
8294//      * Your request references an ARN that is malformed, or corresponds to
8295//      a resource with which a web ACL cannot be associated.
8296//
8297//   * WAFNonexistentItemException
8298//   The operation failed because the referenced object doesn't exist.
8299//
8300//   * WAFBadRequestException
8301//
8302//   * WAFTagOperationException
8303//
8304//   * WAFTagOperationInternalErrorException
8305//
8306// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UntagResource
8307func (c *WAFRegional) UntagResource(input *waf.UntagResourceInput) (*waf.UntagResourceOutput, error) {
8308	req, out := c.UntagResourceRequest(input)
8309	return out, req.Send()
8310}
8311
8312// UntagResourceWithContext is the same as UntagResource with the addition of
8313// the ability to pass a context and additional request options.
8314//
8315// See UntagResource for details on how to use this API operation.
8316//
8317// The context must be non-nil and will be used for request cancellation. If
8318// the context is nil a panic will occur. In the future the SDK may create
8319// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8320// for more information on using Contexts.
8321func (c *WAFRegional) UntagResourceWithContext(ctx aws.Context, input *waf.UntagResourceInput, opts ...request.Option) (*waf.UntagResourceOutput, error) {
8322	req, out := c.UntagResourceRequest(input)
8323	req.SetContext(ctx)
8324	req.ApplyOptions(opts...)
8325	return out, req.Send()
8326}
8327
8328const opUpdateByteMatchSet = "UpdateByteMatchSet"
8329
8330// UpdateByteMatchSetRequest generates a "aws/request.Request" representing the
8331// client's request for the UpdateByteMatchSet operation. The "output" return
8332// value will be populated with the request's response once the request completes
8333// successfully.
8334//
8335// Use "Send" method on the returned Request to send the API call to the service.
8336// the "output" return value is not valid until after Send returns without error.
8337//
8338// See UpdateByteMatchSet for more information on using the UpdateByteMatchSet
8339// API call, and error handling.
8340//
8341// This method is useful when you want to inject custom logic or configuration
8342// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8343//
8344//
8345//    // Example sending a request using the UpdateByteMatchSetRequest method.
8346//    req, resp := client.UpdateByteMatchSetRequest(params)
8347//
8348//    err := req.Send()
8349//    if err == nil { // resp is now filled
8350//        fmt.Println(resp)
8351//    }
8352//
8353// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateByteMatchSet
8354func (c *WAFRegional) UpdateByteMatchSetRequest(input *waf.UpdateByteMatchSetInput) (req *request.Request, output *waf.UpdateByteMatchSetOutput) {
8355	op := &request.Operation{
8356		Name:       opUpdateByteMatchSet,
8357		HTTPMethod: "POST",
8358		HTTPPath:   "/",
8359	}
8360
8361	if input == nil {
8362		input = &waf.UpdateByteMatchSetInput{}
8363	}
8364
8365	output = &waf.UpdateByteMatchSetOutput{}
8366	req = c.newRequest(op, input, output)
8367	return
8368}
8369
8370// UpdateByteMatchSet API operation for AWS WAF Regional.
8371//
8372//
8373// This is AWS WAF Classic documentation. For more information, see AWS WAF
8374// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
8375// in the developer guide.
8376//
8377// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
8378// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
8379// With the latest version, AWS WAF has a single set of endpoints for regional
8380// and global use.
8381//
8382// Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For
8383// each ByteMatchTuple object, you specify the following values:
8384//
8385//    * Whether to insert or delete the object from the array. If you want to
8386//    change a ByteMatchSetUpdate object, you delete the existing object and
8387//    add a new one.
8388//
8389//    * The part of a web request that you want AWS WAF to inspect, such as
8390//    a query string or the value of the User-Agent header.
8391//
8392//    * The bytes (typically a string that corresponds with ASCII characters)
8393//    that you want AWS WAF to look for. For more information, including how
8394//    you specify the values for the AWS WAF API and the AWS CLI or SDKs, see
8395//    TargetString in the ByteMatchTuple data type.
8396//
8397//    * Where to look, such as at the beginning or the end of a query string.
8398//
8399//    * Whether to perform any conversions on the request, such as converting
8400//    it to lowercase, before inspecting it for the specified string.
8401//
8402// For example, you can add a ByteMatchSetUpdate object that matches web requests
8403// in which User-Agent headers contain the string BadBot. You can then configure
8404// AWS WAF to block those requests.
8405//
8406// To create and configure a ByteMatchSet, perform the following steps:
8407//
8408// Create a ByteMatchSet. For more information, see CreateByteMatchSet.
8409//
8410// Use GetChangeToken to get the change token that you provide in the ChangeToken
8411// parameter of an UpdateByteMatchSet request.
8412//
8413// Submit an UpdateByteMatchSet request to specify the part of the request that
8414// you want AWS WAF to inspect (for example, the header or the URI) and the
8415// value that you want AWS WAF to watch for.
8416//
8417// For more information about how to use the AWS WAF API to allow or block HTTP
8418// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
8419//
8420// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8421// with awserr.Error's Code and Message methods to get detailed information about
8422// the error.
8423//
8424// See the AWS API reference guide for AWS WAF Regional's
8425// API operation UpdateByteMatchSet for usage and error information.
8426//
8427// Returned Error Types:
8428//   * WAFInternalErrorException
8429//   The operation failed because of a system problem, even though the request
8430//   was valid. Retry your request.
8431//
8432//   * WAFInvalidAccountException
8433//   The operation failed because you tried to create, update, or delete an object
8434//   by using an invalid account identifier.
8435//
8436//   * WAFInvalidOperationException
8437//   The operation failed because there was nothing to do. For example:
8438//
8439//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
8440//      specified WebACL.
8441//
8442//      * You tried to remove an IP address from an IPSet, but the IP address
8443//      isn't in the specified IPSet.
8444//
8445//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
8446//      isn't in the specified WebACL.
8447//
8448//      * You tried to add a Rule to a WebACL, but the Rule already exists in
8449//      the specified WebACL.
8450//
8451//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
8452//      already exists in the specified WebACL.
8453//
8454//   * WAFInvalidParameterException
8455//   The operation failed because AWS WAF didn't recognize a parameter in the
8456//   request. For example:
8457//
8458//      * You specified an invalid parameter name.
8459//
8460//      * You specified an invalid value.
8461//
8462//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
8463//      using an action other than INSERT or DELETE.
8464//
8465//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8466//      BLOCK, or COUNT.
8467//
8468//      * You tried to create a RateBasedRule with a RateKey value other than
8469//      IP.
8470//
8471//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8472//      BLOCK, or COUNT.
8473//
8474//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8475//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8476//
8477//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8478//      for Data.
8479//
8480//      * Your request references an ARN that is malformed, or corresponds to
8481//      a resource with which a web ACL cannot be associated.
8482//
8483//   * WAFNonexistentContainerException
8484//   The operation failed because you tried to add an object to or delete an object
8485//   from another object that doesn't exist. For example:
8486//
8487//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8488//      exist.
8489//
8490//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8491//      that doesn't exist.
8492//
8493//      * You tried to add an IP address to or delete an IP address from an IPSet
8494//      that doesn't exist.
8495//
8496//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8497//      a ByteMatchSet that doesn't exist.
8498//
8499//   * WAFNonexistentItemException
8500//   The operation failed because the referenced object doesn't exist.
8501//
8502//   * WAFStaleDataException
8503//   The operation failed because you tried to create, update, or delete an object
8504//   by using a change token that has already been used.
8505//
8506//   * WAFLimitsExceededException
8507//   The operation exceeds a resource limit, for example, the maximum number of
8508//   WebACL objects that you can create for an AWS account. For more information,
8509//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8510//   in the AWS WAF Developer Guide.
8511//
8512// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateByteMatchSet
8513func (c *WAFRegional) UpdateByteMatchSet(input *waf.UpdateByteMatchSetInput) (*waf.UpdateByteMatchSetOutput, error) {
8514	req, out := c.UpdateByteMatchSetRequest(input)
8515	return out, req.Send()
8516}
8517
8518// UpdateByteMatchSetWithContext is the same as UpdateByteMatchSet with the addition of
8519// the ability to pass a context and additional request options.
8520//
8521// See UpdateByteMatchSet for details on how to use this API operation.
8522//
8523// The context must be non-nil and will be used for request cancellation. If
8524// the context is nil a panic will occur. In the future the SDK may create
8525// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8526// for more information on using Contexts.
8527func (c *WAFRegional) UpdateByteMatchSetWithContext(ctx aws.Context, input *waf.UpdateByteMatchSetInput, opts ...request.Option) (*waf.UpdateByteMatchSetOutput, error) {
8528	req, out := c.UpdateByteMatchSetRequest(input)
8529	req.SetContext(ctx)
8530	req.ApplyOptions(opts...)
8531	return out, req.Send()
8532}
8533
8534const opUpdateGeoMatchSet = "UpdateGeoMatchSet"
8535
8536// UpdateGeoMatchSetRequest generates a "aws/request.Request" representing the
8537// client's request for the UpdateGeoMatchSet operation. The "output" return
8538// value will be populated with the request's response once the request completes
8539// successfully.
8540//
8541// Use "Send" method on the returned Request to send the API call to the service.
8542// the "output" return value is not valid until after Send returns without error.
8543//
8544// See UpdateGeoMatchSet for more information on using the UpdateGeoMatchSet
8545// API call, and error handling.
8546//
8547// This method is useful when you want to inject custom logic or configuration
8548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8549//
8550//
8551//    // Example sending a request using the UpdateGeoMatchSetRequest method.
8552//    req, resp := client.UpdateGeoMatchSetRequest(params)
8553//
8554//    err := req.Send()
8555//    if err == nil { // resp is now filled
8556//        fmt.Println(resp)
8557//    }
8558//
8559// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateGeoMatchSet
8560func (c *WAFRegional) UpdateGeoMatchSetRequest(input *waf.UpdateGeoMatchSetInput) (req *request.Request, output *waf.UpdateGeoMatchSetOutput) {
8561	op := &request.Operation{
8562		Name:       opUpdateGeoMatchSet,
8563		HTTPMethod: "POST",
8564		HTTPPath:   "/",
8565	}
8566
8567	if input == nil {
8568		input = &waf.UpdateGeoMatchSetInput{}
8569	}
8570
8571	output = &waf.UpdateGeoMatchSetOutput{}
8572	req = c.newRequest(op, input, output)
8573	return
8574}
8575
8576// UpdateGeoMatchSet API operation for AWS WAF Regional.
8577//
8578//
8579// This is AWS WAF Classic documentation. For more information, see AWS WAF
8580// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
8581// in the developer guide.
8582//
8583// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
8584// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
8585// With the latest version, AWS WAF has a single set of endpoints for regional
8586// and global use.
8587//
8588// Inserts or deletes GeoMatchConstraint objects in an GeoMatchSet. For each
8589// GeoMatchConstraint object, you specify the following values:
8590//
8591//    * Whether to insert or delete the object from the array. If you want to
8592//    change an GeoMatchConstraint object, you delete the existing object and
8593//    add a new one.
8594//
8595//    * The Type. The only valid value for Type is Country.
8596//
8597//    * The Value, which is a two character code for the country to add to the
8598//    GeoMatchConstraint object. Valid codes are listed in GeoMatchConstraint$Value.
8599//
8600// To create and configure an GeoMatchSet, perform the following steps:
8601//
8602// Submit a CreateGeoMatchSet request.
8603//
8604// Use GetChangeToken to get the change token that you provide in the ChangeToken
8605// parameter of an UpdateGeoMatchSet request.
8606//
8607// Submit an UpdateGeoMatchSet request to specify the country that you want
8608// AWS WAF to watch for.
8609//
8610// When you update an GeoMatchSet, you specify the country that you want to
8611// add and/or the country that you want to delete. If you want to change a country,
8612// you delete the existing country and add the new one.
8613//
8614// For more information about how to use the AWS WAF API to allow or block HTTP
8615// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
8616//
8617// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8618// with awserr.Error's Code and Message methods to get detailed information about
8619// the error.
8620//
8621// See the AWS API reference guide for AWS WAF Regional's
8622// API operation UpdateGeoMatchSet for usage and error information.
8623//
8624// Returned Error Types:
8625//   * WAFStaleDataException
8626//   The operation failed because you tried to create, update, or delete an object
8627//   by using a change token that has already been used.
8628//
8629//   * WAFInternalErrorException
8630//   The operation failed because of a system problem, even though the request
8631//   was valid. Retry your request.
8632//
8633//   * WAFInvalidAccountException
8634//   The operation failed because you tried to create, update, or delete an object
8635//   by using an invalid account identifier.
8636//
8637//   * WAFInvalidOperationException
8638//   The operation failed because there was nothing to do. For example:
8639//
8640//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
8641//      specified WebACL.
8642//
8643//      * You tried to remove an IP address from an IPSet, but the IP address
8644//      isn't in the specified IPSet.
8645//
8646//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
8647//      isn't in the specified WebACL.
8648//
8649//      * You tried to add a Rule to a WebACL, but the Rule already exists in
8650//      the specified WebACL.
8651//
8652//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
8653//      already exists in the specified WebACL.
8654//
8655//   * WAFInvalidParameterException
8656//   The operation failed because AWS WAF didn't recognize a parameter in the
8657//   request. For example:
8658//
8659//      * You specified an invalid parameter name.
8660//
8661//      * You specified an invalid value.
8662//
8663//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
8664//      using an action other than INSERT or DELETE.
8665//
8666//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8667//      BLOCK, or COUNT.
8668//
8669//      * You tried to create a RateBasedRule with a RateKey value other than
8670//      IP.
8671//
8672//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8673//      BLOCK, or COUNT.
8674//
8675//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8676//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8677//
8678//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8679//      for Data.
8680//
8681//      * Your request references an ARN that is malformed, or corresponds to
8682//      a resource with which a web ACL cannot be associated.
8683//
8684//   * WAFNonexistentContainerException
8685//   The operation failed because you tried to add an object to or delete an object
8686//   from another object that doesn't exist. For example:
8687//
8688//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8689//      exist.
8690//
8691//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8692//      that doesn't exist.
8693//
8694//      * You tried to add an IP address to or delete an IP address from an IPSet
8695//      that doesn't exist.
8696//
8697//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8698//      a ByteMatchSet that doesn't exist.
8699//
8700//   * WAFNonexistentItemException
8701//   The operation failed because the referenced object doesn't exist.
8702//
8703//   * WAFReferencedItemException
8704//   The operation failed because you tried to delete an object that is still
8705//   in use. For example:
8706//
8707//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
8708//
8709//      * You tried to delete a Rule that is still referenced by a WebACL.
8710//
8711//   * WAFLimitsExceededException
8712//   The operation exceeds a resource limit, for example, the maximum number of
8713//   WebACL objects that you can create for an AWS account. For more information,
8714//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8715//   in the AWS WAF Developer Guide.
8716//
8717// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateGeoMatchSet
8718func (c *WAFRegional) UpdateGeoMatchSet(input *waf.UpdateGeoMatchSetInput) (*waf.UpdateGeoMatchSetOutput, error) {
8719	req, out := c.UpdateGeoMatchSetRequest(input)
8720	return out, req.Send()
8721}
8722
8723// UpdateGeoMatchSetWithContext is the same as UpdateGeoMatchSet with the addition of
8724// the ability to pass a context and additional request options.
8725//
8726// See UpdateGeoMatchSet for details on how to use this API operation.
8727//
8728// The context must be non-nil and will be used for request cancellation. If
8729// the context is nil a panic will occur. In the future the SDK may create
8730// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8731// for more information on using Contexts.
8732func (c *WAFRegional) UpdateGeoMatchSetWithContext(ctx aws.Context, input *waf.UpdateGeoMatchSetInput, opts ...request.Option) (*waf.UpdateGeoMatchSetOutput, error) {
8733	req, out := c.UpdateGeoMatchSetRequest(input)
8734	req.SetContext(ctx)
8735	req.ApplyOptions(opts...)
8736	return out, req.Send()
8737}
8738
8739const opUpdateIPSet = "UpdateIPSet"
8740
8741// UpdateIPSetRequest generates a "aws/request.Request" representing the
8742// client's request for the UpdateIPSet operation. The "output" return
8743// value will be populated with the request's response once the request completes
8744// successfully.
8745//
8746// Use "Send" method on the returned Request to send the API call to the service.
8747// the "output" return value is not valid until after Send returns without error.
8748//
8749// See UpdateIPSet for more information on using the UpdateIPSet
8750// API call, and error handling.
8751//
8752// This method is useful when you want to inject custom logic or configuration
8753// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8754//
8755//
8756//    // Example sending a request using the UpdateIPSetRequest method.
8757//    req, resp := client.UpdateIPSetRequest(params)
8758//
8759//    err := req.Send()
8760//    if err == nil { // resp is now filled
8761//        fmt.Println(resp)
8762//    }
8763//
8764// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateIPSet
8765func (c *WAFRegional) UpdateIPSetRequest(input *waf.UpdateIPSetInput) (req *request.Request, output *waf.UpdateIPSetOutput) {
8766	op := &request.Operation{
8767		Name:       opUpdateIPSet,
8768		HTTPMethod: "POST",
8769		HTTPPath:   "/",
8770	}
8771
8772	if input == nil {
8773		input = &waf.UpdateIPSetInput{}
8774	}
8775
8776	output = &waf.UpdateIPSetOutput{}
8777	req = c.newRequest(op, input, output)
8778	return
8779}
8780
8781// UpdateIPSet API operation for AWS WAF Regional.
8782//
8783//
8784// This is AWS WAF Classic documentation. For more information, see AWS WAF
8785// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
8786// in the developer guide.
8787//
8788// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
8789// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
8790// With the latest version, AWS WAF has a single set of endpoints for regional
8791// and global use.
8792//
8793// Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor
8794// object, you specify the following values:
8795//
8796//    * Whether to insert or delete the object from the array. If you want to
8797//    change an IPSetDescriptor object, you delete the existing object and add
8798//    a new one.
8799//
8800//    * The IP address version, IPv4 or IPv6.
8801//
8802//    * The IP address in CIDR notation, for example, 192.0.2.0/24 (for the
8803//    range of IP addresses from 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32
8804//    (for the individual IP address 192.0.2.44).
8805//
8806// AWS WAF supports IPv4 address ranges: /8 and any range between /16 through
8807// /32. AWS WAF supports IPv6 address ranges: /24, /32, /48, /56, /64, and /128.
8808// For more information about CIDR notation, see the Wikipedia entry Classless
8809// Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
8810//
8811// IPv6 addresses can be represented using any of the following formats:
8812//
8813//    * 1111:0000:0000:0000:0000:0000:0000:0111/128
8814//
8815//    * 1111:0:0:0:0:0:0:0111/128
8816//
8817//    * 1111::0111/128
8818//
8819//    * 1111::111/128
8820//
8821// You use an IPSet to specify which web requests you want to allow or block
8822// based on the IP addresses that the requests originated from. For example,
8823// if you're receiving a lot of requests from one or a small number of IP addresses
8824// and you want to block the requests, you can create an IPSet that specifies
8825// those IP addresses, and then configure AWS WAF to block the requests.
8826//
8827// To create and configure an IPSet, perform the following steps:
8828//
8829// Submit a CreateIPSet request.
8830//
8831// Use GetChangeToken to get the change token that you provide in the ChangeToken
8832// parameter of an UpdateIPSet request.
8833//
8834// Submit an UpdateIPSet request to specify the IP addresses that you want AWS
8835// WAF to watch for.
8836//
8837// When you update an IPSet, you specify the IP addresses that you want to add
8838// and/or the IP addresses that you want to delete. If you want to change an
8839// IP address, you delete the existing IP address and add the new one.
8840//
8841// You can insert a maximum of 1000 addresses in a single request.
8842//
8843// For more information about how to use the AWS WAF API to allow or block HTTP
8844// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
8845//
8846// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8847// with awserr.Error's Code and Message methods to get detailed information about
8848// the error.
8849//
8850// See the AWS API reference guide for AWS WAF Regional's
8851// API operation UpdateIPSet for usage and error information.
8852//
8853// Returned Error Types:
8854//   * WAFStaleDataException
8855//   The operation failed because you tried to create, update, or delete an object
8856//   by using a change token that has already been used.
8857//
8858//   * WAFInternalErrorException
8859//   The operation failed because of a system problem, even though the request
8860//   was valid. Retry your request.
8861//
8862//   * WAFInvalidAccountException
8863//   The operation failed because you tried to create, update, or delete an object
8864//   by using an invalid account identifier.
8865//
8866//   * WAFInvalidOperationException
8867//   The operation failed because there was nothing to do. For example:
8868//
8869//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
8870//      specified WebACL.
8871//
8872//      * You tried to remove an IP address from an IPSet, but the IP address
8873//      isn't in the specified IPSet.
8874//
8875//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
8876//      isn't in the specified WebACL.
8877//
8878//      * You tried to add a Rule to a WebACL, but the Rule already exists in
8879//      the specified WebACL.
8880//
8881//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
8882//      already exists in the specified WebACL.
8883//
8884//   * WAFInvalidParameterException
8885//   The operation failed because AWS WAF didn't recognize a parameter in the
8886//   request. For example:
8887//
8888//      * You specified an invalid parameter name.
8889//
8890//      * You specified an invalid value.
8891//
8892//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
8893//      using an action other than INSERT or DELETE.
8894//
8895//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8896//      BLOCK, or COUNT.
8897//
8898//      * You tried to create a RateBasedRule with a RateKey value other than
8899//      IP.
8900//
8901//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8902//      BLOCK, or COUNT.
8903//
8904//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8905//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8906//
8907//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8908//      for Data.
8909//
8910//      * Your request references an ARN that is malformed, or corresponds to
8911//      a resource with which a web ACL cannot be associated.
8912//
8913//   * WAFNonexistentContainerException
8914//   The operation failed because you tried to add an object to or delete an object
8915//   from another object that doesn't exist. For example:
8916//
8917//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8918//      exist.
8919//
8920//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8921//      that doesn't exist.
8922//
8923//      * You tried to add an IP address to or delete an IP address from an IPSet
8924//      that doesn't exist.
8925//
8926//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8927//      a ByteMatchSet that doesn't exist.
8928//
8929//   * WAFNonexistentItemException
8930//   The operation failed because the referenced object doesn't exist.
8931//
8932//   * WAFReferencedItemException
8933//   The operation failed because you tried to delete an object that is still
8934//   in use. For example:
8935//
8936//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
8937//
8938//      * You tried to delete a Rule that is still referenced by a WebACL.
8939//
8940//   * WAFLimitsExceededException
8941//   The operation exceeds a resource limit, for example, the maximum number of
8942//   WebACL objects that you can create for an AWS account. For more information,
8943//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8944//   in the AWS WAF Developer Guide.
8945//
8946// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateIPSet
8947func (c *WAFRegional) UpdateIPSet(input *waf.UpdateIPSetInput) (*waf.UpdateIPSetOutput, error) {
8948	req, out := c.UpdateIPSetRequest(input)
8949	return out, req.Send()
8950}
8951
8952// UpdateIPSetWithContext is the same as UpdateIPSet with the addition of
8953// the ability to pass a context and additional request options.
8954//
8955// See UpdateIPSet for details on how to use this API operation.
8956//
8957// The context must be non-nil and will be used for request cancellation. If
8958// the context is nil a panic will occur. In the future the SDK may create
8959// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8960// for more information on using Contexts.
8961func (c *WAFRegional) UpdateIPSetWithContext(ctx aws.Context, input *waf.UpdateIPSetInput, opts ...request.Option) (*waf.UpdateIPSetOutput, error) {
8962	req, out := c.UpdateIPSetRequest(input)
8963	req.SetContext(ctx)
8964	req.ApplyOptions(opts...)
8965	return out, req.Send()
8966}
8967
8968const opUpdateRateBasedRule = "UpdateRateBasedRule"
8969
8970// UpdateRateBasedRuleRequest generates a "aws/request.Request" representing the
8971// client's request for the UpdateRateBasedRule operation. The "output" return
8972// value will be populated with the request's response once the request completes
8973// successfully.
8974//
8975// Use "Send" method on the returned Request to send the API call to the service.
8976// the "output" return value is not valid until after Send returns without error.
8977//
8978// See UpdateRateBasedRule for more information on using the UpdateRateBasedRule
8979// API call, and error handling.
8980//
8981// This method is useful when you want to inject custom logic or configuration
8982// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8983//
8984//
8985//    // Example sending a request using the UpdateRateBasedRuleRequest method.
8986//    req, resp := client.UpdateRateBasedRuleRequest(params)
8987//
8988//    err := req.Send()
8989//    if err == nil { // resp is now filled
8990//        fmt.Println(resp)
8991//    }
8992//
8993// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRateBasedRule
8994func (c *WAFRegional) UpdateRateBasedRuleRequest(input *waf.UpdateRateBasedRuleInput) (req *request.Request, output *waf.UpdateRateBasedRuleOutput) {
8995	op := &request.Operation{
8996		Name:       opUpdateRateBasedRule,
8997		HTTPMethod: "POST",
8998		HTTPPath:   "/",
8999	}
9000
9001	if input == nil {
9002		input = &waf.UpdateRateBasedRuleInput{}
9003	}
9004
9005	output = &waf.UpdateRateBasedRuleOutput{}
9006	req = c.newRequest(op, input, output)
9007	return
9008}
9009
9010// UpdateRateBasedRule API operation for AWS WAF Regional.
9011//
9012//
9013// This is AWS WAF Classic documentation. For more information, see AWS WAF
9014// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
9015// in the developer guide.
9016//
9017// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
9018// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
9019// With the latest version, AWS WAF has a single set of endpoints for regional
9020// and global use.
9021//
9022// Inserts or deletes Predicate objects in a rule and updates the RateLimit
9023// in the rule.
9024//
9025// Each Predicate object identifies a predicate, such as a ByteMatchSet or an
9026// IPSet, that specifies the web requests that you want to block or count. The
9027// RateLimit specifies the number of requests every five minutes that triggers
9028// the rule.
9029//
9030// If you add more than one predicate to a RateBasedRule, a request must match
9031// all the predicates and exceed the RateLimit to be counted or blocked. For
9032// example, suppose you add the following to a RateBasedRule:
9033//
9034//    * An IPSet that matches the IP address 192.0.2.44/32
9035//
9036//    * A ByteMatchSet that matches BadBot in the User-Agent header
9037//
9038// Further, you specify a RateLimit of 1,000.
9039//
9040// You then add the RateBasedRule to a WebACL and specify that you want to block
9041// requests that satisfy the rule. For a request to be blocked, it must come
9042// from the IP address 192.0.2.44 and the User-Agent header in the request must
9043// contain the value BadBot. Further, requests that match these two conditions
9044// much be received at a rate of more than 1,000 every five minutes. If the
9045// rate drops below this limit, AWS WAF no longer blocks the requests.
9046//
9047// As a second example, suppose you want to limit requests to a particular page
9048// on your site. To do this, you could add the following to a RateBasedRule:
9049//
9050//    * A ByteMatchSet with FieldToMatch of URI
9051//
9052//    * A PositionalConstraint of STARTS_WITH
9053//
9054//    * A TargetString of login
9055//
9056// Further, you specify a RateLimit of 1,000.
9057//
9058// By adding this RateBasedRule to a WebACL, you could limit requests to your
9059// login page without affecting the rest of your site.
9060//
9061// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9062// with awserr.Error's Code and Message methods to get detailed information about
9063// the error.
9064//
9065// See the AWS API reference guide for AWS WAF Regional's
9066// API operation UpdateRateBasedRule for usage and error information.
9067//
9068// Returned Error Types:
9069//   * WAFStaleDataException
9070//   The operation failed because you tried to create, update, or delete an object
9071//   by using a change token that has already been used.
9072//
9073//   * WAFInternalErrorException
9074//   The operation failed because of a system problem, even though the request
9075//   was valid. Retry your request.
9076//
9077//   * WAFInvalidAccountException
9078//   The operation failed because you tried to create, update, or delete an object
9079//   by using an invalid account identifier.
9080//
9081//   * WAFInvalidOperationException
9082//   The operation failed because there was nothing to do. For example:
9083//
9084//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9085//      specified WebACL.
9086//
9087//      * You tried to remove an IP address from an IPSet, but the IP address
9088//      isn't in the specified IPSet.
9089//
9090//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9091//      isn't in the specified WebACL.
9092//
9093//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9094//      the specified WebACL.
9095//
9096//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9097//      already exists in the specified WebACL.
9098//
9099//   * WAFInvalidParameterException
9100//   The operation failed because AWS WAF didn't recognize a parameter in the
9101//   request. For example:
9102//
9103//      * You specified an invalid parameter name.
9104//
9105//      * You specified an invalid value.
9106//
9107//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
9108//      using an action other than INSERT or DELETE.
9109//
9110//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
9111//      BLOCK, or COUNT.
9112//
9113//      * You tried to create a RateBasedRule with a RateKey value other than
9114//      IP.
9115//
9116//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
9117//      BLOCK, or COUNT.
9118//
9119//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
9120//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
9121//
9122//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
9123//      for Data.
9124//
9125//      * Your request references an ARN that is malformed, or corresponds to
9126//      a resource with which a web ACL cannot be associated.
9127//
9128//   * WAFNonexistentContainerException
9129//   The operation failed because you tried to add an object to or delete an object
9130//   from another object that doesn't exist. For example:
9131//
9132//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9133//      exist.
9134//
9135//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9136//      that doesn't exist.
9137//
9138//      * You tried to add an IP address to or delete an IP address from an IPSet
9139//      that doesn't exist.
9140//
9141//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9142//      a ByteMatchSet that doesn't exist.
9143//
9144//   * WAFNonexistentItemException
9145//   The operation failed because the referenced object doesn't exist.
9146//
9147//   * WAFReferencedItemException
9148//   The operation failed because you tried to delete an object that is still
9149//   in use. For example:
9150//
9151//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
9152//
9153//      * You tried to delete a Rule that is still referenced by a WebACL.
9154//
9155//   * WAFLimitsExceededException
9156//   The operation exceeds a resource limit, for example, the maximum number of
9157//   WebACL objects that you can create for an AWS account. For more information,
9158//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9159//   in the AWS WAF Developer Guide.
9160//
9161// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRateBasedRule
9162func (c *WAFRegional) UpdateRateBasedRule(input *waf.UpdateRateBasedRuleInput) (*waf.UpdateRateBasedRuleOutput, error) {
9163	req, out := c.UpdateRateBasedRuleRequest(input)
9164	return out, req.Send()
9165}
9166
9167// UpdateRateBasedRuleWithContext is the same as UpdateRateBasedRule with the addition of
9168// the ability to pass a context and additional request options.
9169//
9170// See UpdateRateBasedRule for details on how to use this API operation.
9171//
9172// The context must be non-nil and will be used for request cancellation. If
9173// the context is nil a panic will occur. In the future the SDK may create
9174// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9175// for more information on using Contexts.
9176func (c *WAFRegional) UpdateRateBasedRuleWithContext(ctx aws.Context, input *waf.UpdateRateBasedRuleInput, opts ...request.Option) (*waf.UpdateRateBasedRuleOutput, error) {
9177	req, out := c.UpdateRateBasedRuleRequest(input)
9178	req.SetContext(ctx)
9179	req.ApplyOptions(opts...)
9180	return out, req.Send()
9181}
9182
9183const opUpdateRegexMatchSet = "UpdateRegexMatchSet"
9184
9185// UpdateRegexMatchSetRequest generates a "aws/request.Request" representing the
9186// client's request for the UpdateRegexMatchSet operation. The "output" return
9187// value will be populated with the request's response once the request completes
9188// successfully.
9189//
9190// Use "Send" method on the returned Request to send the API call to the service.
9191// the "output" return value is not valid until after Send returns without error.
9192//
9193// See UpdateRegexMatchSet for more information on using the UpdateRegexMatchSet
9194// API call, and error handling.
9195//
9196// This method is useful when you want to inject custom logic or configuration
9197// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9198//
9199//
9200//    // Example sending a request using the UpdateRegexMatchSetRequest method.
9201//    req, resp := client.UpdateRegexMatchSetRequest(params)
9202//
9203//    err := req.Send()
9204//    if err == nil { // resp is now filled
9205//        fmt.Println(resp)
9206//    }
9207//
9208// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRegexMatchSet
9209func (c *WAFRegional) UpdateRegexMatchSetRequest(input *waf.UpdateRegexMatchSetInput) (req *request.Request, output *waf.UpdateRegexMatchSetOutput) {
9210	op := &request.Operation{
9211		Name:       opUpdateRegexMatchSet,
9212		HTTPMethod: "POST",
9213		HTTPPath:   "/",
9214	}
9215
9216	if input == nil {
9217		input = &waf.UpdateRegexMatchSetInput{}
9218	}
9219
9220	output = &waf.UpdateRegexMatchSetOutput{}
9221	req = c.newRequest(op, input, output)
9222	return
9223}
9224
9225// UpdateRegexMatchSet API operation for AWS WAF Regional.
9226//
9227//
9228// This is AWS WAF Classic documentation. For more information, see AWS WAF
9229// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
9230// in the developer guide.
9231//
9232// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
9233// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
9234// With the latest version, AWS WAF has a single set of endpoints for regional
9235// and global use.
9236//
9237// Inserts or deletes RegexMatchTuple objects (filters) in a RegexMatchSet.
9238// For each RegexMatchSetUpdate object, you specify the following values:
9239//
9240//    * Whether to insert or delete the object from the array. If you want to
9241//    change a RegexMatchSetUpdate object, you delete the existing object and
9242//    add a new one.
9243//
9244//    * The part of a web request that you want AWS WAF to inspectupdate, such
9245//    as a query string or the value of the User-Agent header.
9246//
9247//    * The identifier of the pattern (a regular expression) that you want AWS
9248//    WAF to look for. For more information, see RegexPatternSet.
9249//
9250//    * Whether to perform any conversions on the request, such as converting
9251//    it to lowercase, before inspecting it for the specified string.
9252//
9253// For example, you can create a RegexPatternSet that matches any requests with
9254// User-Agent headers that contain the string B[a@]dB[o0]t. You can then configure
9255// AWS WAF to reject those requests.
9256//
9257// To create and configure a RegexMatchSet, perform the following steps:
9258//
9259// Create a RegexMatchSet. For more information, see CreateRegexMatchSet.
9260//
9261// Use GetChangeToken to get the change token that you provide in the ChangeToken
9262// parameter of an UpdateRegexMatchSet request.
9263//
9264// Submit an UpdateRegexMatchSet request to specify the part of the request
9265// that you want AWS WAF to inspect (for example, the header or the URI) and
9266// the identifier of the RegexPatternSet that contain the regular expression
9267// patters you want AWS WAF to watch for.
9268//
9269// For more information about how to use the AWS WAF API to allow or block HTTP
9270// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
9271//
9272// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9273// with awserr.Error's Code and Message methods to get detailed information about
9274// the error.
9275//
9276// See the AWS API reference guide for AWS WAF Regional's
9277// API operation UpdateRegexMatchSet for usage and error information.
9278//
9279// Returned Error Types:
9280//   * WAFStaleDataException
9281//   The operation failed because you tried to create, update, or delete an object
9282//   by using a change token that has already been used.
9283//
9284//   * WAFInternalErrorException
9285//   The operation failed because of a system problem, even though the request
9286//   was valid. Retry your request.
9287//
9288//   * WAFDisallowedNameException
9289//   The name specified is invalid.
9290//
9291//   * WAFLimitsExceededException
9292//   The operation exceeds a resource limit, for example, the maximum number of
9293//   WebACL objects that you can create for an AWS account. For more information,
9294//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9295//   in the AWS WAF Developer Guide.
9296//
9297//   * WAFNonexistentItemException
9298//   The operation failed because the referenced object doesn't exist.
9299//
9300//   * WAFNonexistentContainerException
9301//   The operation failed because you tried to add an object to or delete an object
9302//   from another object that doesn't exist. For example:
9303//
9304//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9305//      exist.
9306//
9307//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9308//      that doesn't exist.
9309//
9310//      * You tried to add an IP address to or delete an IP address from an IPSet
9311//      that doesn't exist.
9312//
9313//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9314//      a ByteMatchSet that doesn't exist.
9315//
9316//   * WAFInvalidOperationException
9317//   The operation failed because there was nothing to do. For example:
9318//
9319//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9320//      specified WebACL.
9321//
9322//      * You tried to remove an IP address from an IPSet, but the IP address
9323//      isn't in the specified IPSet.
9324//
9325//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9326//      isn't in the specified WebACL.
9327//
9328//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9329//      the specified WebACL.
9330//
9331//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9332//      already exists in the specified WebACL.
9333//
9334//   * WAFInvalidAccountException
9335//   The operation failed because you tried to create, update, or delete an object
9336//   by using an invalid account identifier.
9337//
9338// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRegexMatchSet
9339func (c *WAFRegional) UpdateRegexMatchSet(input *waf.UpdateRegexMatchSetInput) (*waf.UpdateRegexMatchSetOutput, error) {
9340	req, out := c.UpdateRegexMatchSetRequest(input)
9341	return out, req.Send()
9342}
9343
9344// UpdateRegexMatchSetWithContext is the same as UpdateRegexMatchSet with the addition of
9345// the ability to pass a context and additional request options.
9346//
9347// See UpdateRegexMatchSet for details on how to use this API operation.
9348//
9349// The context must be non-nil and will be used for request cancellation. If
9350// the context is nil a panic will occur. In the future the SDK may create
9351// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9352// for more information on using Contexts.
9353func (c *WAFRegional) UpdateRegexMatchSetWithContext(ctx aws.Context, input *waf.UpdateRegexMatchSetInput, opts ...request.Option) (*waf.UpdateRegexMatchSetOutput, error) {
9354	req, out := c.UpdateRegexMatchSetRequest(input)
9355	req.SetContext(ctx)
9356	req.ApplyOptions(opts...)
9357	return out, req.Send()
9358}
9359
9360const opUpdateRegexPatternSet = "UpdateRegexPatternSet"
9361
9362// UpdateRegexPatternSetRequest generates a "aws/request.Request" representing the
9363// client's request for the UpdateRegexPatternSet operation. The "output" return
9364// value will be populated with the request's response once the request completes
9365// successfully.
9366//
9367// Use "Send" method on the returned Request to send the API call to the service.
9368// the "output" return value is not valid until after Send returns without error.
9369//
9370// See UpdateRegexPatternSet for more information on using the UpdateRegexPatternSet
9371// API call, and error handling.
9372//
9373// This method is useful when you want to inject custom logic or configuration
9374// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9375//
9376//
9377//    // Example sending a request using the UpdateRegexPatternSetRequest method.
9378//    req, resp := client.UpdateRegexPatternSetRequest(params)
9379//
9380//    err := req.Send()
9381//    if err == nil { // resp is now filled
9382//        fmt.Println(resp)
9383//    }
9384//
9385// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRegexPatternSet
9386func (c *WAFRegional) UpdateRegexPatternSetRequest(input *waf.UpdateRegexPatternSetInput) (req *request.Request, output *waf.UpdateRegexPatternSetOutput) {
9387	op := &request.Operation{
9388		Name:       opUpdateRegexPatternSet,
9389		HTTPMethod: "POST",
9390		HTTPPath:   "/",
9391	}
9392
9393	if input == nil {
9394		input = &waf.UpdateRegexPatternSetInput{}
9395	}
9396
9397	output = &waf.UpdateRegexPatternSetOutput{}
9398	req = c.newRequest(op, input, output)
9399	return
9400}
9401
9402// UpdateRegexPatternSet API operation for AWS WAF Regional.
9403//
9404//
9405// This is AWS WAF Classic documentation. For more information, see AWS WAF
9406// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
9407// in the developer guide.
9408//
9409// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
9410// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
9411// With the latest version, AWS WAF has a single set of endpoints for regional
9412// and global use.
9413//
9414// Inserts or deletes RegexPatternString objects in a RegexPatternSet. For each
9415// RegexPatternString object, you specify the following values:
9416//
9417//    * Whether to insert or delete the RegexPatternString.
9418//
9419//    * The regular expression pattern that you want to insert or delete. For
9420//    more information, see RegexPatternSet.
9421//
9422// For example, you can create a RegexPatternString such as B[a@]dB[o0]t. AWS
9423// WAF will match this RegexPatternString to:
9424//
9425//    * BadBot
9426//
9427//    * BadB0t
9428//
9429//    * B@dBot
9430//
9431//    * B@dB0t
9432//
9433// To create and configure a RegexPatternSet, perform the following steps:
9434//
9435// Create a RegexPatternSet. For more information, see CreateRegexPatternSet.
9436//
9437// Use GetChangeToken to get the change token that you provide in the ChangeToken
9438// parameter of an UpdateRegexPatternSet request.
9439//
9440// Submit an UpdateRegexPatternSet request to specify the regular expression
9441// pattern that you want AWS WAF to watch for.
9442//
9443// For more information about how to use the AWS WAF API to allow or block HTTP
9444// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
9445//
9446// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9447// with awserr.Error's Code and Message methods to get detailed information about
9448// the error.
9449//
9450// See the AWS API reference guide for AWS WAF Regional's
9451// API operation UpdateRegexPatternSet for usage and error information.
9452//
9453// Returned Error Types:
9454//   * WAFStaleDataException
9455//   The operation failed because you tried to create, update, or delete an object
9456//   by using a change token that has already been used.
9457//
9458//   * WAFInternalErrorException
9459//   The operation failed because of a system problem, even though the request
9460//   was valid. Retry your request.
9461//
9462//   * WAFLimitsExceededException
9463//   The operation exceeds a resource limit, for example, the maximum number of
9464//   WebACL objects that you can create for an AWS account. For more information,
9465//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9466//   in the AWS WAF Developer Guide.
9467//
9468//   * WAFNonexistentItemException
9469//   The operation failed because the referenced object doesn't exist.
9470//
9471//   * WAFNonexistentContainerException
9472//   The operation failed because you tried to add an object to or delete an object
9473//   from another object that doesn't exist. For example:
9474//
9475//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9476//      exist.
9477//
9478//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9479//      that doesn't exist.
9480//
9481//      * You tried to add an IP address to or delete an IP address from an IPSet
9482//      that doesn't exist.
9483//
9484//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9485//      a ByteMatchSet that doesn't exist.
9486//
9487//   * WAFInvalidOperationException
9488//   The operation failed because there was nothing to do. For example:
9489//
9490//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9491//      specified WebACL.
9492//
9493//      * You tried to remove an IP address from an IPSet, but the IP address
9494//      isn't in the specified IPSet.
9495//
9496//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9497//      isn't in the specified WebACL.
9498//
9499//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9500//      the specified WebACL.
9501//
9502//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9503//      already exists in the specified WebACL.
9504//
9505//   * WAFInvalidAccountException
9506//   The operation failed because you tried to create, update, or delete an object
9507//   by using an invalid account identifier.
9508//
9509//   * WAFInvalidRegexPatternException
9510//   The regular expression (regex) you specified in RegexPatternString is invalid.
9511//
9512// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRegexPatternSet
9513func (c *WAFRegional) UpdateRegexPatternSet(input *waf.UpdateRegexPatternSetInput) (*waf.UpdateRegexPatternSetOutput, error) {
9514	req, out := c.UpdateRegexPatternSetRequest(input)
9515	return out, req.Send()
9516}
9517
9518// UpdateRegexPatternSetWithContext is the same as UpdateRegexPatternSet with the addition of
9519// the ability to pass a context and additional request options.
9520//
9521// See UpdateRegexPatternSet for details on how to use this API operation.
9522//
9523// The context must be non-nil and will be used for request cancellation. If
9524// the context is nil a panic will occur. In the future the SDK may create
9525// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9526// for more information on using Contexts.
9527func (c *WAFRegional) UpdateRegexPatternSetWithContext(ctx aws.Context, input *waf.UpdateRegexPatternSetInput, opts ...request.Option) (*waf.UpdateRegexPatternSetOutput, error) {
9528	req, out := c.UpdateRegexPatternSetRequest(input)
9529	req.SetContext(ctx)
9530	req.ApplyOptions(opts...)
9531	return out, req.Send()
9532}
9533
9534const opUpdateRule = "UpdateRule"
9535
9536// UpdateRuleRequest generates a "aws/request.Request" representing the
9537// client's request for the UpdateRule operation. The "output" return
9538// value will be populated with the request's response once the request completes
9539// successfully.
9540//
9541// Use "Send" method on the returned Request to send the API call to the service.
9542// the "output" return value is not valid until after Send returns without error.
9543//
9544// See UpdateRule for more information on using the UpdateRule
9545// API call, and error handling.
9546//
9547// This method is useful when you want to inject custom logic or configuration
9548// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9549//
9550//
9551//    // Example sending a request using the UpdateRuleRequest method.
9552//    req, resp := client.UpdateRuleRequest(params)
9553//
9554//    err := req.Send()
9555//    if err == nil { // resp is now filled
9556//        fmt.Println(resp)
9557//    }
9558//
9559// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRule
9560func (c *WAFRegional) UpdateRuleRequest(input *waf.UpdateRuleInput) (req *request.Request, output *waf.UpdateRuleOutput) {
9561	op := &request.Operation{
9562		Name:       opUpdateRule,
9563		HTTPMethod: "POST",
9564		HTTPPath:   "/",
9565	}
9566
9567	if input == nil {
9568		input = &waf.UpdateRuleInput{}
9569	}
9570
9571	output = &waf.UpdateRuleOutput{}
9572	req = c.newRequest(op, input, output)
9573	return
9574}
9575
9576// UpdateRule API operation for AWS WAF Regional.
9577//
9578//
9579// This is AWS WAF Classic documentation. For more information, see AWS WAF
9580// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
9581// in the developer guide.
9582//
9583// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
9584// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
9585// With the latest version, AWS WAF has a single set of endpoints for regional
9586// and global use.
9587//
9588// Inserts or deletes Predicate objects in a Rule. Each Predicate object identifies
9589// a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests
9590// that you want to allow, block, or count. If you add more than one predicate
9591// to a Rule, a request must match all of the specifications to be allowed,
9592// blocked, or counted. For example, suppose that you add the following to a
9593// Rule:
9594//
9595//    * A ByteMatchSet that matches the value BadBot in the User-Agent header
9596//
9597//    * An IPSet that matches the IP address 192.0.2.44
9598//
9599// You then add the Rule to a WebACL and specify that you want to block requests
9600// that satisfy the Rule. For a request to be blocked, the User-Agent header
9601// in the request must contain the value BadBot and the request must originate
9602// from the IP address 192.0.2.44.
9603//
9604// To create and configure a Rule, perform the following steps:
9605//
9606// Create and update the predicates that you want to include in the Rule.
9607//
9608// Create the Rule. See CreateRule.
9609//
9610// Use GetChangeToken to get the change token that you provide in the ChangeToken
9611// parameter of an UpdateRule request.
9612//
9613// Submit an UpdateRule request to add predicates to the Rule.
9614//
9615// Create and update a WebACL that contains the Rule. See CreateWebACL.
9616//
9617// If you want to replace one ByteMatchSet or IPSet with another, you delete
9618// the existing one and add the new one.
9619//
9620// For more information about how to use the AWS WAF API to allow or block HTTP
9621// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
9622//
9623// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9624// with awserr.Error's Code and Message methods to get detailed information about
9625// the error.
9626//
9627// See the AWS API reference guide for AWS WAF Regional's
9628// API operation UpdateRule for usage and error information.
9629//
9630// Returned Error Types:
9631//   * WAFStaleDataException
9632//   The operation failed because you tried to create, update, or delete an object
9633//   by using a change token that has already been used.
9634//
9635//   * WAFInternalErrorException
9636//   The operation failed because of a system problem, even though the request
9637//   was valid. Retry your request.
9638//
9639//   * WAFInvalidAccountException
9640//   The operation failed because you tried to create, update, or delete an object
9641//   by using an invalid account identifier.
9642//
9643//   * WAFInvalidOperationException
9644//   The operation failed because there was nothing to do. For example:
9645//
9646//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9647//      specified WebACL.
9648//
9649//      * You tried to remove an IP address from an IPSet, but the IP address
9650//      isn't in the specified IPSet.
9651//
9652//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9653//      isn't in the specified WebACL.
9654//
9655//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9656//      the specified WebACL.
9657//
9658//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9659//      already exists in the specified WebACL.
9660//
9661//   * WAFInvalidParameterException
9662//   The operation failed because AWS WAF didn't recognize a parameter in the
9663//   request. For example:
9664//
9665//      * You specified an invalid parameter name.
9666//
9667//      * You specified an invalid value.
9668//
9669//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
9670//      using an action other than INSERT or DELETE.
9671//
9672//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
9673//      BLOCK, or COUNT.
9674//
9675//      * You tried to create a RateBasedRule with a RateKey value other than
9676//      IP.
9677//
9678//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
9679//      BLOCK, or COUNT.
9680//
9681//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
9682//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
9683//
9684//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
9685//      for Data.
9686//
9687//      * Your request references an ARN that is malformed, or corresponds to
9688//      a resource with which a web ACL cannot be associated.
9689//
9690//   * WAFNonexistentContainerException
9691//   The operation failed because you tried to add an object to or delete an object
9692//   from another object that doesn't exist. For example:
9693//
9694//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9695//      exist.
9696//
9697//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9698//      that doesn't exist.
9699//
9700//      * You tried to add an IP address to or delete an IP address from an IPSet
9701//      that doesn't exist.
9702//
9703//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9704//      a ByteMatchSet that doesn't exist.
9705//
9706//   * WAFNonexistentItemException
9707//   The operation failed because the referenced object doesn't exist.
9708//
9709//   * WAFReferencedItemException
9710//   The operation failed because you tried to delete an object that is still
9711//   in use. For example:
9712//
9713//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
9714//
9715//      * You tried to delete a Rule that is still referenced by a WebACL.
9716//
9717//   * WAFLimitsExceededException
9718//   The operation exceeds a resource limit, for example, the maximum number of
9719//   WebACL objects that you can create for an AWS account. For more information,
9720//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9721//   in the AWS WAF Developer Guide.
9722//
9723// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRule
9724func (c *WAFRegional) UpdateRule(input *waf.UpdateRuleInput) (*waf.UpdateRuleOutput, error) {
9725	req, out := c.UpdateRuleRequest(input)
9726	return out, req.Send()
9727}
9728
9729// UpdateRuleWithContext is the same as UpdateRule with the addition of
9730// the ability to pass a context and additional request options.
9731//
9732// See UpdateRule for details on how to use this API operation.
9733//
9734// The context must be non-nil and will be used for request cancellation. If
9735// the context is nil a panic will occur. In the future the SDK may create
9736// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9737// for more information on using Contexts.
9738func (c *WAFRegional) UpdateRuleWithContext(ctx aws.Context, input *waf.UpdateRuleInput, opts ...request.Option) (*waf.UpdateRuleOutput, error) {
9739	req, out := c.UpdateRuleRequest(input)
9740	req.SetContext(ctx)
9741	req.ApplyOptions(opts...)
9742	return out, req.Send()
9743}
9744
9745const opUpdateRuleGroup = "UpdateRuleGroup"
9746
9747// UpdateRuleGroupRequest generates a "aws/request.Request" representing the
9748// client's request for the UpdateRuleGroup operation. The "output" return
9749// value will be populated with the request's response once the request completes
9750// successfully.
9751//
9752// Use "Send" method on the returned Request to send the API call to the service.
9753// the "output" return value is not valid until after Send returns without error.
9754//
9755// See UpdateRuleGroup for more information on using the UpdateRuleGroup
9756// API call, and error handling.
9757//
9758// This method is useful when you want to inject custom logic or configuration
9759// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9760//
9761//
9762//    // Example sending a request using the UpdateRuleGroupRequest method.
9763//    req, resp := client.UpdateRuleGroupRequest(params)
9764//
9765//    err := req.Send()
9766//    if err == nil { // resp is now filled
9767//        fmt.Println(resp)
9768//    }
9769//
9770// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRuleGroup
9771func (c *WAFRegional) UpdateRuleGroupRequest(input *waf.UpdateRuleGroupInput) (req *request.Request, output *waf.UpdateRuleGroupOutput) {
9772	op := &request.Operation{
9773		Name:       opUpdateRuleGroup,
9774		HTTPMethod: "POST",
9775		HTTPPath:   "/",
9776	}
9777
9778	if input == nil {
9779		input = &waf.UpdateRuleGroupInput{}
9780	}
9781
9782	output = &waf.UpdateRuleGroupOutput{}
9783	req = c.newRequest(op, input, output)
9784	return
9785}
9786
9787// UpdateRuleGroup API operation for AWS WAF Regional.
9788//
9789//
9790// This is AWS WAF Classic documentation. For more information, see AWS WAF
9791// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
9792// in the developer guide.
9793//
9794// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
9795// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
9796// With the latest version, AWS WAF has a single set of endpoints for regional
9797// and global use.
9798//
9799// Inserts or deletes ActivatedRule objects in a RuleGroup.
9800//
9801// You can only insert REGULAR rules into a rule group.
9802//
9803// You can have a maximum of ten rules per rule group.
9804//
9805// To create and configure a RuleGroup, perform the following steps:
9806//
9807// Create and update the Rules that you want to include in the RuleGroup. See
9808// CreateRule.
9809//
9810// Use GetChangeToken to get the change token that you provide in the ChangeToken
9811// parameter of an UpdateRuleGroup request.
9812//
9813// Submit an UpdateRuleGroup request to add Rules to the RuleGroup.
9814//
9815// Create and update a WebACL that contains the RuleGroup. See CreateWebACL.
9816//
9817// If you want to replace one Rule with another, you delete the existing one
9818// and add the new one.
9819//
9820// For more information about how to use the AWS WAF API to allow or block HTTP
9821// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
9822//
9823// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9824// with awserr.Error's Code and Message methods to get detailed information about
9825// the error.
9826//
9827// See the AWS API reference guide for AWS WAF Regional's
9828// API operation UpdateRuleGroup for usage and error information.
9829//
9830// Returned Error Types:
9831//   * WAFStaleDataException
9832//   The operation failed because you tried to create, update, or delete an object
9833//   by using a change token that has already been used.
9834//
9835//   * WAFInternalErrorException
9836//   The operation failed because of a system problem, even though the request
9837//   was valid. Retry your request.
9838//
9839//   * WAFNonexistentContainerException
9840//   The operation failed because you tried to add an object to or delete an object
9841//   from another object that doesn't exist. For example:
9842//
9843//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9844//      exist.
9845//
9846//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9847//      that doesn't exist.
9848//
9849//      * You tried to add an IP address to or delete an IP address from an IPSet
9850//      that doesn't exist.
9851//
9852//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9853//      a ByteMatchSet that doesn't exist.
9854//
9855//   * WAFNonexistentItemException
9856//   The operation failed because the referenced object doesn't exist.
9857//
9858//   * WAFInvalidOperationException
9859//   The operation failed because there was nothing to do. For example:
9860//
9861//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9862//      specified WebACL.
9863//
9864//      * You tried to remove an IP address from an IPSet, but the IP address
9865//      isn't in the specified IPSet.
9866//
9867//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9868//      isn't in the specified WebACL.
9869//
9870//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9871//      the specified WebACL.
9872//
9873//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9874//      already exists in the specified WebACL.
9875//
9876//   * WAFLimitsExceededException
9877//   The operation exceeds a resource limit, for example, the maximum number of
9878//   WebACL objects that you can create for an AWS account. For more information,
9879//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9880//   in the AWS WAF Developer Guide.
9881//
9882//   * WAFInvalidParameterException
9883//   The operation failed because AWS WAF didn't recognize a parameter in the
9884//   request. For example:
9885//
9886//      * You specified an invalid parameter name.
9887//
9888//      * You specified an invalid value.
9889//
9890//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
9891//      using an action other than INSERT or DELETE.
9892//
9893//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
9894//      BLOCK, or COUNT.
9895//
9896//      * You tried to create a RateBasedRule with a RateKey value other than
9897//      IP.
9898//
9899//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
9900//      BLOCK, or COUNT.
9901//
9902//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
9903//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
9904//
9905//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
9906//      for Data.
9907//
9908//      * Your request references an ARN that is malformed, or corresponds to
9909//      a resource with which a web ACL cannot be associated.
9910//
9911// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRuleGroup
9912func (c *WAFRegional) UpdateRuleGroup(input *waf.UpdateRuleGroupInput) (*waf.UpdateRuleGroupOutput, error) {
9913	req, out := c.UpdateRuleGroupRequest(input)
9914	return out, req.Send()
9915}
9916
9917// UpdateRuleGroupWithContext is the same as UpdateRuleGroup with the addition of
9918// the ability to pass a context and additional request options.
9919//
9920// See UpdateRuleGroup for details on how to use this API operation.
9921//
9922// The context must be non-nil and will be used for request cancellation. If
9923// the context is nil a panic will occur. In the future the SDK may create
9924// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9925// for more information on using Contexts.
9926func (c *WAFRegional) UpdateRuleGroupWithContext(ctx aws.Context, input *waf.UpdateRuleGroupInput, opts ...request.Option) (*waf.UpdateRuleGroupOutput, error) {
9927	req, out := c.UpdateRuleGroupRequest(input)
9928	req.SetContext(ctx)
9929	req.ApplyOptions(opts...)
9930	return out, req.Send()
9931}
9932
9933const opUpdateSizeConstraintSet = "UpdateSizeConstraintSet"
9934
9935// UpdateSizeConstraintSetRequest generates a "aws/request.Request" representing the
9936// client's request for the UpdateSizeConstraintSet operation. The "output" return
9937// value will be populated with the request's response once the request completes
9938// successfully.
9939//
9940// Use "Send" method on the returned Request to send the API call to the service.
9941// the "output" return value is not valid until after Send returns without error.
9942//
9943// See UpdateSizeConstraintSet for more information on using the UpdateSizeConstraintSet
9944// API call, and error handling.
9945//
9946// This method is useful when you want to inject custom logic or configuration
9947// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9948//
9949//
9950//    // Example sending a request using the UpdateSizeConstraintSetRequest method.
9951//    req, resp := client.UpdateSizeConstraintSetRequest(params)
9952//
9953//    err := req.Send()
9954//    if err == nil { // resp is now filled
9955//        fmt.Println(resp)
9956//    }
9957//
9958// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSizeConstraintSet
9959func (c *WAFRegional) UpdateSizeConstraintSetRequest(input *waf.UpdateSizeConstraintSetInput) (req *request.Request, output *waf.UpdateSizeConstraintSetOutput) {
9960	op := &request.Operation{
9961		Name:       opUpdateSizeConstraintSet,
9962		HTTPMethod: "POST",
9963		HTTPPath:   "/",
9964	}
9965
9966	if input == nil {
9967		input = &waf.UpdateSizeConstraintSetInput{}
9968	}
9969
9970	output = &waf.UpdateSizeConstraintSetOutput{}
9971	req = c.newRequest(op, input, output)
9972	return
9973}
9974
9975// UpdateSizeConstraintSet API operation for AWS WAF Regional.
9976//
9977//
9978// This is AWS WAF Classic documentation. For more information, see AWS WAF
9979// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
9980// in the developer guide.
9981//
9982// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
9983// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
9984// With the latest version, AWS WAF has a single set of endpoints for regional
9985// and global use.
9986//
9987// Inserts or deletes SizeConstraint objects (filters) in a SizeConstraintSet.
9988// For each SizeConstraint object, you specify the following values:
9989//
9990//    * Whether to insert or delete the object from the array. If you want to
9991//    change a SizeConstraintSetUpdate object, you delete the existing object
9992//    and add a new one.
9993//
9994//    * The part of a web request that you want AWS WAF to evaluate, such as
9995//    the length of a query string or the length of the User-Agent header.
9996//
9997//    * Whether to perform any transformations on the request, such as converting
9998//    it to lowercase, before checking its length. Note that transformations
9999//    of the request body are not supported because the AWS resource forwards
10000//    only the first 8192 bytes of your request to AWS WAF. You can only specify
10001//    a single type of TextTransformation.
10002//
10003//    * A ComparisonOperator used for evaluating the selected part of the request
10004//    against the specified Size, such as equals, greater than, less than, and
10005//    so on.
10006//
10007//    * The length, in bytes, that you want AWS WAF to watch for in selected
10008//    part of the request. The length is computed after applying the transformation.
10009//
10010// For example, you can add a SizeConstraintSetUpdate object that matches web
10011// requests in which the length of the User-Agent header is greater than 100
10012// bytes. You can then configure AWS WAF to block those requests.
10013//
10014// To create and configure a SizeConstraintSet, perform the following steps:
10015//
10016// Create a SizeConstraintSet. For more information, see CreateSizeConstraintSet.
10017//
10018// Use GetChangeToken to get the change token that you provide in the ChangeToken
10019// parameter of an UpdateSizeConstraintSet request.
10020//
10021// Submit an UpdateSizeConstraintSet request to specify the part of the request
10022// that you want AWS WAF to inspect (for example, the header or the URI) and
10023// the value that you want AWS WAF to watch for.
10024//
10025// For more information about how to use the AWS WAF API to allow or block HTTP
10026// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
10027//
10028// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10029// with awserr.Error's Code and Message methods to get detailed information about
10030// the error.
10031//
10032// See the AWS API reference guide for AWS WAF Regional's
10033// API operation UpdateSizeConstraintSet for usage and error information.
10034//
10035// Returned Error Types:
10036//   * WAFStaleDataException
10037//   The operation failed because you tried to create, update, or delete an object
10038//   by using a change token that has already been used.
10039//
10040//   * WAFInternalErrorException
10041//   The operation failed because of a system problem, even though the request
10042//   was valid. Retry your request.
10043//
10044//   * WAFInvalidAccountException
10045//   The operation failed because you tried to create, update, or delete an object
10046//   by using an invalid account identifier.
10047//
10048//   * WAFInvalidOperationException
10049//   The operation failed because there was nothing to do. For example:
10050//
10051//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
10052//      specified WebACL.
10053//
10054//      * You tried to remove an IP address from an IPSet, but the IP address
10055//      isn't in the specified IPSet.
10056//
10057//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
10058//      isn't in the specified WebACL.
10059//
10060//      * You tried to add a Rule to a WebACL, but the Rule already exists in
10061//      the specified WebACL.
10062//
10063//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
10064//      already exists in the specified WebACL.
10065//
10066//   * WAFInvalidParameterException
10067//   The operation failed because AWS WAF didn't recognize a parameter in the
10068//   request. For example:
10069//
10070//      * You specified an invalid parameter name.
10071//
10072//      * You specified an invalid value.
10073//
10074//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
10075//      using an action other than INSERT or DELETE.
10076//
10077//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
10078//      BLOCK, or COUNT.
10079//
10080//      * You tried to create a RateBasedRule with a RateKey value other than
10081//      IP.
10082//
10083//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
10084//      BLOCK, or COUNT.
10085//
10086//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
10087//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
10088//
10089//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
10090//      for Data.
10091//
10092//      * Your request references an ARN that is malformed, or corresponds to
10093//      a resource with which a web ACL cannot be associated.
10094//
10095//   * WAFNonexistentContainerException
10096//   The operation failed because you tried to add an object to or delete an object
10097//   from another object that doesn't exist. For example:
10098//
10099//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
10100//      exist.
10101//
10102//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
10103//      that doesn't exist.
10104//
10105//      * You tried to add an IP address to or delete an IP address from an IPSet
10106//      that doesn't exist.
10107//
10108//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
10109//      a ByteMatchSet that doesn't exist.
10110//
10111//   * WAFNonexistentItemException
10112//   The operation failed because the referenced object doesn't exist.
10113//
10114//   * WAFReferencedItemException
10115//   The operation failed because you tried to delete an object that is still
10116//   in use. For example:
10117//
10118//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
10119//
10120//      * You tried to delete a Rule that is still referenced by a WebACL.
10121//
10122//   * WAFLimitsExceededException
10123//   The operation exceeds a resource limit, for example, the maximum number of
10124//   WebACL objects that you can create for an AWS account. For more information,
10125//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
10126//   in the AWS WAF Developer Guide.
10127//
10128// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSizeConstraintSet
10129func (c *WAFRegional) UpdateSizeConstraintSet(input *waf.UpdateSizeConstraintSetInput) (*waf.UpdateSizeConstraintSetOutput, error) {
10130	req, out := c.UpdateSizeConstraintSetRequest(input)
10131	return out, req.Send()
10132}
10133
10134// UpdateSizeConstraintSetWithContext is the same as UpdateSizeConstraintSet with the addition of
10135// the ability to pass a context and additional request options.
10136//
10137// See UpdateSizeConstraintSet for details on how to use this API operation.
10138//
10139// The context must be non-nil and will be used for request cancellation. If
10140// the context is nil a panic will occur. In the future the SDK may create
10141// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10142// for more information on using Contexts.
10143func (c *WAFRegional) UpdateSizeConstraintSetWithContext(ctx aws.Context, input *waf.UpdateSizeConstraintSetInput, opts ...request.Option) (*waf.UpdateSizeConstraintSetOutput, error) {
10144	req, out := c.UpdateSizeConstraintSetRequest(input)
10145	req.SetContext(ctx)
10146	req.ApplyOptions(opts...)
10147	return out, req.Send()
10148}
10149
10150const opUpdateSqlInjectionMatchSet = "UpdateSqlInjectionMatchSet"
10151
10152// UpdateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
10153// client's request for the UpdateSqlInjectionMatchSet operation. The "output" return
10154// value will be populated with the request's response once the request completes
10155// successfully.
10156//
10157// Use "Send" method on the returned Request to send the API call to the service.
10158// the "output" return value is not valid until after Send returns without error.
10159//
10160// See UpdateSqlInjectionMatchSet for more information on using the UpdateSqlInjectionMatchSet
10161// API call, and error handling.
10162//
10163// This method is useful when you want to inject custom logic or configuration
10164// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10165//
10166//
10167//    // Example sending a request using the UpdateSqlInjectionMatchSetRequest method.
10168//    req, resp := client.UpdateSqlInjectionMatchSetRequest(params)
10169//
10170//    err := req.Send()
10171//    if err == nil { // resp is now filled
10172//        fmt.Println(resp)
10173//    }
10174//
10175// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSqlInjectionMatchSet
10176func (c *WAFRegional) UpdateSqlInjectionMatchSetRequest(input *waf.UpdateSqlInjectionMatchSetInput) (req *request.Request, output *waf.UpdateSqlInjectionMatchSetOutput) {
10177	op := &request.Operation{
10178		Name:       opUpdateSqlInjectionMatchSet,
10179		HTTPMethod: "POST",
10180		HTTPPath:   "/",
10181	}
10182
10183	if input == nil {
10184		input = &waf.UpdateSqlInjectionMatchSetInput{}
10185	}
10186
10187	output = &waf.UpdateSqlInjectionMatchSetOutput{}
10188	req = c.newRequest(op, input, output)
10189	return
10190}
10191
10192// UpdateSqlInjectionMatchSet API operation for AWS WAF Regional.
10193//
10194//
10195// This is AWS WAF Classic documentation. For more information, see AWS WAF
10196// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
10197// in the developer guide.
10198//
10199// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
10200// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
10201// With the latest version, AWS WAF has a single set of endpoints for regional
10202// and global use.
10203//
10204// Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet.
10205// For each SqlInjectionMatchTuple object, you specify the following values:
10206//
10207//    * Action: Whether to insert the object into or delete the object from
10208//    the array. To change a SqlInjectionMatchTuple, you delete the existing
10209//    object and add a new one.
10210//
10211//    * FieldToMatch: The part of web requests that you want AWS WAF to inspect
10212//    and, if you want AWS WAF to inspect a header or custom query parameter,
10213//    the name of the header or parameter.
10214//
10215//    * TextTransformation: Which text transformation, if any, to perform on
10216//    the web request before inspecting the request for snippets of malicious
10217//    SQL code. You can only specify a single type of TextTransformation.
10218//
10219// You use SqlInjectionMatchSet objects to specify which CloudFront requests
10220// that you want to allow, block, or count. For example, if you're receiving
10221// requests that contain snippets of SQL code in the query string and you want
10222// to block the requests, you can create a SqlInjectionMatchSet with the applicable
10223// settings, and then configure AWS WAF to block the requests.
10224//
10225// To create and configure a SqlInjectionMatchSet, perform the following steps:
10226//
10227// Submit a CreateSqlInjectionMatchSet request.
10228//
10229// Use GetChangeToken to get the change token that you provide in the ChangeToken
10230// parameter of an UpdateIPSet request.
10231//
10232// Submit an UpdateSqlInjectionMatchSet request to specify the parts of web
10233// requests that you want AWS WAF to inspect for snippets of SQL code.
10234//
10235// For more information about how to use the AWS WAF API to allow or block HTTP
10236// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
10237//
10238// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10239// with awserr.Error's Code and Message methods to get detailed information about
10240// the error.
10241//
10242// See the AWS API reference guide for AWS WAF Regional's
10243// API operation UpdateSqlInjectionMatchSet for usage and error information.
10244//
10245// Returned Error Types:
10246//   * WAFInternalErrorException
10247//   The operation failed because of a system problem, even though the request
10248//   was valid. Retry your request.
10249//
10250//   * WAFInvalidAccountException
10251//   The operation failed because you tried to create, update, or delete an object
10252//   by using an invalid account identifier.
10253//
10254//   * WAFInvalidOperationException
10255//   The operation failed because there was nothing to do. For example:
10256//
10257//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
10258//      specified WebACL.
10259//
10260//      * You tried to remove an IP address from an IPSet, but the IP address
10261//      isn't in the specified IPSet.
10262//
10263//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
10264//      isn't in the specified WebACL.
10265//
10266//      * You tried to add a Rule to a WebACL, but the Rule already exists in
10267//      the specified WebACL.
10268//
10269//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
10270//      already exists in the specified WebACL.
10271//
10272//   * WAFInvalidParameterException
10273//   The operation failed because AWS WAF didn't recognize a parameter in the
10274//   request. For example:
10275//
10276//      * You specified an invalid parameter name.
10277//
10278//      * You specified an invalid value.
10279//
10280//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
10281//      using an action other than INSERT or DELETE.
10282//
10283//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
10284//      BLOCK, or COUNT.
10285//
10286//      * You tried to create a RateBasedRule with a RateKey value other than
10287//      IP.
10288//
10289//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
10290//      BLOCK, or COUNT.
10291//
10292//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
10293//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
10294//
10295//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
10296//      for Data.
10297//
10298//      * Your request references an ARN that is malformed, or corresponds to
10299//      a resource with which a web ACL cannot be associated.
10300//
10301//   * WAFNonexistentContainerException
10302//   The operation failed because you tried to add an object to or delete an object
10303//   from another object that doesn't exist. For example:
10304//
10305//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
10306//      exist.
10307//
10308//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
10309//      that doesn't exist.
10310//
10311//      * You tried to add an IP address to or delete an IP address from an IPSet
10312//      that doesn't exist.
10313//
10314//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
10315//      a ByteMatchSet that doesn't exist.
10316//
10317//   * WAFNonexistentItemException
10318//   The operation failed because the referenced object doesn't exist.
10319//
10320//   * WAFStaleDataException
10321//   The operation failed because you tried to create, update, or delete an object
10322//   by using a change token that has already been used.
10323//
10324//   * WAFLimitsExceededException
10325//   The operation exceeds a resource limit, for example, the maximum number of
10326//   WebACL objects that you can create for an AWS account. For more information,
10327//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
10328//   in the AWS WAF Developer Guide.
10329//
10330// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSqlInjectionMatchSet
10331func (c *WAFRegional) UpdateSqlInjectionMatchSet(input *waf.UpdateSqlInjectionMatchSetInput) (*waf.UpdateSqlInjectionMatchSetOutput, error) {
10332	req, out := c.UpdateSqlInjectionMatchSetRequest(input)
10333	return out, req.Send()
10334}
10335
10336// UpdateSqlInjectionMatchSetWithContext is the same as UpdateSqlInjectionMatchSet with the addition of
10337// the ability to pass a context and additional request options.
10338//
10339// See UpdateSqlInjectionMatchSet for details on how to use this API operation.
10340//
10341// The context must be non-nil and will be used for request cancellation. If
10342// the context is nil a panic will occur. In the future the SDK may create
10343// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10344// for more information on using Contexts.
10345func (c *WAFRegional) UpdateSqlInjectionMatchSetWithContext(ctx aws.Context, input *waf.UpdateSqlInjectionMatchSetInput, opts ...request.Option) (*waf.UpdateSqlInjectionMatchSetOutput, error) {
10346	req, out := c.UpdateSqlInjectionMatchSetRequest(input)
10347	req.SetContext(ctx)
10348	req.ApplyOptions(opts...)
10349	return out, req.Send()
10350}
10351
10352const opUpdateWebACL = "UpdateWebACL"
10353
10354// UpdateWebACLRequest generates a "aws/request.Request" representing the
10355// client's request for the UpdateWebACL operation. The "output" return
10356// value will be populated with the request's response once the request completes
10357// successfully.
10358//
10359// Use "Send" method on the returned Request to send the API call to the service.
10360// the "output" return value is not valid until after Send returns without error.
10361//
10362// See UpdateWebACL for more information on using the UpdateWebACL
10363// API call, and error handling.
10364//
10365// This method is useful when you want to inject custom logic or configuration
10366// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10367//
10368//
10369//    // Example sending a request using the UpdateWebACLRequest method.
10370//    req, resp := client.UpdateWebACLRequest(params)
10371//
10372//    err := req.Send()
10373//    if err == nil { // resp is now filled
10374//        fmt.Println(resp)
10375//    }
10376//
10377// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateWebACL
10378func (c *WAFRegional) UpdateWebACLRequest(input *waf.UpdateWebACLInput) (req *request.Request, output *waf.UpdateWebACLOutput) {
10379	op := &request.Operation{
10380		Name:       opUpdateWebACL,
10381		HTTPMethod: "POST",
10382		HTTPPath:   "/",
10383	}
10384
10385	if input == nil {
10386		input = &waf.UpdateWebACLInput{}
10387	}
10388
10389	output = &waf.UpdateWebACLOutput{}
10390	req = c.newRequest(op, input, output)
10391	return
10392}
10393
10394// UpdateWebACL API operation for AWS WAF Regional.
10395//
10396//
10397// This is AWS WAF Classic documentation. For more information, see AWS WAF
10398// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
10399// in the developer guide.
10400//
10401// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
10402// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
10403// With the latest version, AWS WAF has a single set of endpoints for regional
10404// and global use.
10405//
10406// Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies
10407// web requests that you want to allow, block, or count. When you update a WebACL,
10408// you specify the following values:
10409//
10410//    * A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs
10411//    the default action if a request doesn't match the criteria in any of the
10412//    Rules in a WebACL.
10413//
10414//    * The Rules that you want to add or delete. If you want to replace one
10415//    Rule with another, you delete the existing Rule and add the new one.
10416//
10417//    * For each Rule, whether you want AWS WAF to allow requests, block requests,
10418//    or count requests that match the conditions in the Rule.
10419//
10420//    * The order in which you want AWS WAF to evaluate the Rules in a WebACL.
10421//    If you add more than one Rule to a WebACL, AWS WAF evaluates each request
10422//    against the Rules in order based on the value of Priority. (The Rule that
10423//    has the lowest value for Priority is evaluated first.) When a web request
10424//    matches all the predicates (such as ByteMatchSets and IPSets) in a Rule,
10425//    AWS WAF immediately takes the corresponding action, allow or block, and
10426//    doesn't evaluate the request against the remaining Rules in the WebACL,
10427//    if any.
10428//
10429// To create and configure a WebACL, perform the following steps:
10430//
10431// Create and update the predicates that you want to include in Rules. For more
10432// information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet,
10433// CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.
10434//
10435// Create and update the Rules that you want to include in the WebACL. For more
10436// information, see CreateRule and UpdateRule.
10437//
10438// Create a WebACL. See CreateWebACL.
10439//
10440// Use GetChangeToken to get the change token that you provide in the ChangeToken
10441// parameter of an UpdateWebACL request.
10442//
10443// Submit an UpdateWebACL request to specify the Rules that you want to include
10444// in the WebACL, to specify the default action, and to associate the WebACL
10445// with a CloudFront distribution.
10446//
10447// The ActivatedRule can be a rule group. If you specify a rule group as your
10448// ActivatedRule , you can exclude specific rules from that rule group.
10449//
10450// If you already have a rule group associated with a web ACL and want to submit
10451// an UpdateWebACL request to exclude certain rules from that rule group, you
10452// must first remove the rule group from the web ACL, the re-insert it again,
10453// specifying the excluded rules. For details, see ActivatedRule$ExcludedRules .
10454//
10455// Be aware that if you try to add a RATE_BASED rule to a web ACL without setting
10456// the rule type when first creating the rule, the UpdateWebACL request will
10457// fail because the request tries to add a REGULAR rule (the default rule type)
10458// with the specified ID, which does not exist.
10459//
10460// For more information about how to use the AWS WAF API to allow or block HTTP
10461// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
10462//
10463// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10464// with awserr.Error's Code and Message methods to get detailed information about
10465// the error.
10466//
10467// See the AWS API reference guide for AWS WAF Regional's
10468// API operation UpdateWebACL for usage and error information.
10469//
10470// Returned Error Types:
10471//   * WAFStaleDataException
10472//   The operation failed because you tried to create, update, or delete an object
10473//   by using a change token that has already been used.
10474//
10475//   * WAFInternalErrorException
10476//   The operation failed because of a system problem, even though the request
10477//   was valid. Retry your request.
10478//
10479//   * WAFInvalidAccountException
10480//   The operation failed because you tried to create, update, or delete an object
10481//   by using an invalid account identifier.
10482//
10483//   * WAFInvalidOperationException
10484//   The operation failed because there was nothing to do. For example:
10485//
10486//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
10487//      specified WebACL.
10488//
10489//      * You tried to remove an IP address from an IPSet, but the IP address
10490//      isn't in the specified IPSet.
10491//
10492//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
10493//      isn't in the specified WebACL.
10494//
10495//      * You tried to add a Rule to a WebACL, but the Rule already exists in
10496//      the specified WebACL.
10497//
10498//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
10499//      already exists in the specified WebACL.
10500//
10501//   * WAFInvalidParameterException
10502//   The operation failed because AWS WAF didn't recognize a parameter in the
10503//   request. For example:
10504//
10505//      * You specified an invalid parameter name.
10506//
10507//      * You specified an invalid value.
10508//
10509//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
10510//      using an action other than INSERT or DELETE.
10511//
10512//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
10513//      BLOCK, or COUNT.
10514//
10515//      * You tried to create a RateBasedRule with a RateKey value other than
10516//      IP.
10517//
10518//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
10519//      BLOCK, or COUNT.
10520//
10521//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
10522//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
10523//
10524//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
10525//      for Data.
10526//
10527//      * Your request references an ARN that is malformed, or corresponds to
10528//      a resource with which a web ACL cannot be associated.
10529//
10530//   * WAFNonexistentContainerException
10531//   The operation failed because you tried to add an object to or delete an object
10532//   from another object that doesn't exist. For example:
10533//
10534//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
10535//      exist.
10536//
10537//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
10538//      that doesn't exist.
10539//
10540//      * You tried to add an IP address to or delete an IP address from an IPSet
10541//      that doesn't exist.
10542//
10543//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
10544//      a ByteMatchSet that doesn't exist.
10545//
10546//   * WAFNonexistentItemException
10547//   The operation failed because the referenced object doesn't exist.
10548//
10549//   * WAFReferencedItemException
10550//   The operation failed because you tried to delete an object that is still
10551//   in use. For example:
10552//
10553//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
10554//
10555//      * You tried to delete a Rule that is still referenced by a WebACL.
10556//
10557//   * WAFLimitsExceededException
10558//   The operation exceeds a resource limit, for example, the maximum number of
10559//   WebACL objects that you can create for an AWS account. For more information,
10560//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
10561//   in the AWS WAF Developer Guide.
10562//
10563//   * WAFSubscriptionNotFoundException
10564//   The specified subscription does not exist.
10565//
10566// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateWebACL
10567func (c *WAFRegional) UpdateWebACL(input *waf.UpdateWebACLInput) (*waf.UpdateWebACLOutput, error) {
10568	req, out := c.UpdateWebACLRequest(input)
10569	return out, req.Send()
10570}
10571
10572// UpdateWebACLWithContext is the same as UpdateWebACL with the addition of
10573// the ability to pass a context and additional request options.
10574//
10575// See UpdateWebACL for details on how to use this API operation.
10576//
10577// The context must be non-nil and will be used for request cancellation. If
10578// the context is nil a panic will occur. In the future the SDK may create
10579// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10580// for more information on using Contexts.
10581func (c *WAFRegional) UpdateWebACLWithContext(ctx aws.Context, input *waf.UpdateWebACLInput, opts ...request.Option) (*waf.UpdateWebACLOutput, error) {
10582	req, out := c.UpdateWebACLRequest(input)
10583	req.SetContext(ctx)
10584	req.ApplyOptions(opts...)
10585	return out, req.Send()
10586}
10587
10588const opUpdateXssMatchSet = "UpdateXssMatchSet"
10589
10590// UpdateXssMatchSetRequest generates a "aws/request.Request" representing the
10591// client's request for the UpdateXssMatchSet operation. The "output" return
10592// value will be populated with the request's response once the request completes
10593// successfully.
10594//
10595// Use "Send" method on the returned Request to send the API call to the service.
10596// the "output" return value is not valid until after Send returns without error.
10597//
10598// See UpdateXssMatchSet for more information on using the UpdateXssMatchSet
10599// API call, and error handling.
10600//
10601// This method is useful when you want to inject custom logic or configuration
10602// into the SDK's request lifecycle. Such as custom headers, or retry logic.
10603//
10604//
10605//    // Example sending a request using the UpdateXssMatchSetRequest method.
10606//    req, resp := client.UpdateXssMatchSetRequest(params)
10607//
10608//    err := req.Send()
10609//    if err == nil { // resp is now filled
10610//        fmt.Println(resp)
10611//    }
10612//
10613// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateXssMatchSet
10614func (c *WAFRegional) UpdateXssMatchSetRequest(input *waf.UpdateXssMatchSetInput) (req *request.Request, output *waf.UpdateXssMatchSetOutput) {
10615	op := &request.Operation{
10616		Name:       opUpdateXssMatchSet,
10617		HTTPMethod: "POST",
10618		HTTPPath:   "/",
10619	}
10620
10621	if input == nil {
10622		input = &waf.UpdateXssMatchSetInput{}
10623	}
10624
10625	output = &waf.UpdateXssMatchSetOutput{}
10626	req = c.newRequest(op, input, output)
10627	return
10628}
10629
10630// UpdateXssMatchSet API operation for AWS WAF Regional.
10631//
10632//
10633// This is AWS WAF Classic documentation. For more information, see AWS WAF
10634// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
10635// in the developer guide.
10636//
10637// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
10638// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
10639// With the latest version, AWS WAF has a single set of endpoints for regional
10640// and global use.
10641//
10642// Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet. For
10643// each XssMatchTuple object, you specify the following values:
10644//
10645//    * Action: Whether to insert the object into or delete the object from
10646//    the array. To change an XssMatchTuple, you delete the existing object
10647//    and add a new one.
10648//
10649//    * FieldToMatch: The part of web requests that you want AWS WAF to inspect
10650//    and, if you want AWS WAF to inspect a header or custom query parameter,
10651//    the name of the header or parameter.
10652//
10653//    * TextTransformation: Which text transformation, if any, to perform on
10654//    the web request before inspecting the request for cross-site scripting
10655//    attacks. You can only specify a single type of TextTransformation.
10656//
10657// You use XssMatchSet objects to specify which CloudFront requests that you
10658// want to allow, block, or count. For example, if you're receiving requests
10659// that contain cross-site scripting attacks in the request body and you want
10660// to block the requests, you can create an XssMatchSet with the applicable
10661// settings, and then configure AWS WAF to block the requests.
10662//
10663// To create and configure an XssMatchSet, perform the following steps:
10664//
10665// Submit a CreateXssMatchSet request.
10666//
10667// Use GetChangeToken to get the change token that you provide in the ChangeToken
10668// parameter of an UpdateIPSet request.
10669//
10670// Submit an UpdateXssMatchSet request to specify the parts of web requests
10671// that you want AWS WAF to inspect for cross-site scripting attacks.
10672//
10673// For more information about how to use the AWS WAF API to allow or block HTTP
10674// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
10675//
10676// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
10677// with awserr.Error's Code and Message methods to get detailed information about
10678// the error.
10679//
10680// See the AWS API reference guide for AWS WAF Regional's
10681// API operation UpdateXssMatchSet for usage and error information.
10682//
10683// Returned Error Types:
10684//   * WAFInternalErrorException
10685//   The operation failed because of a system problem, even though the request
10686//   was valid. Retry your request.
10687//
10688//   * WAFInvalidAccountException
10689//   The operation failed because you tried to create, update, or delete an object
10690//   by using an invalid account identifier.
10691//
10692//   * WAFInvalidOperationException
10693//   The operation failed because there was nothing to do. For example:
10694//
10695//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
10696//      specified WebACL.
10697//
10698//      * You tried to remove an IP address from an IPSet, but the IP address
10699//      isn't in the specified IPSet.
10700//
10701//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
10702//      isn't in the specified WebACL.
10703//
10704//      * You tried to add a Rule to a WebACL, but the Rule already exists in
10705//      the specified WebACL.
10706//
10707//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
10708//      already exists in the specified WebACL.
10709//
10710//   * WAFInvalidParameterException
10711//   The operation failed because AWS WAF didn't recognize a parameter in the
10712//   request. For example:
10713//
10714//      * You specified an invalid parameter name.
10715//
10716//      * You specified an invalid value.
10717//
10718//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
10719//      using an action other than INSERT or DELETE.
10720//
10721//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
10722//      BLOCK, or COUNT.
10723//
10724//      * You tried to create a RateBasedRule with a RateKey value other than
10725//      IP.
10726//
10727//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
10728//      BLOCK, or COUNT.
10729//
10730//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
10731//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
10732//
10733//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
10734//      for Data.
10735//
10736//      * Your request references an ARN that is malformed, or corresponds to
10737//      a resource with which a web ACL cannot be associated.
10738//
10739//   * WAFNonexistentContainerException
10740//   The operation failed because you tried to add an object to or delete an object
10741//   from another object that doesn't exist. For example:
10742//
10743//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
10744//      exist.
10745//
10746//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
10747//      that doesn't exist.
10748//
10749//      * You tried to add an IP address to or delete an IP address from an IPSet
10750//      that doesn't exist.
10751//
10752//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
10753//      a ByteMatchSet that doesn't exist.
10754//
10755//   * WAFNonexistentItemException
10756//   The operation failed because the referenced object doesn't exist.
10757//
10758//   * WAFStaleDataException
10759//   The operation failed because you tried to create, update, or delete an object
10760//   by using a change token that has already been used.
10761//
10762//   * WAFLimitsExceededException
10763//   The operation exceeds a resource limit, for example, the maximum number of
10764//   WebACL objects that you can create for an AWS account. For more information,
10765//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
10766//   in the AWS WAF Developer Guide.
10767//
10768// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateXssMatchSet
10769func (c *WAFRegional) UpdateXssMatchSet(input *waf.UpdateXssMatchSetInput) (*waf.UpdateXssMatchSetOutput, error) {
10770	req, out := c.UpdateXssMatchSetRequest(input)
10771	return out, req.Send()
10772}
10773
10774// UpdateXssMatchSetWithContext is the same as UpdateXssMatchSet with the addition of
10775// the ability to pass a context and additional request options.
10776//
10777// See UpdateXssMatchSet for details on how to use this API operation.
10778//
10779// The context must be non-nil and will be used for request cancellation. If
10780// the context is nil a panic will occur. In the future the SDK may create
10781// sub-contexts for http.Requests. See https://golang.org/pkg/context/
10782// for more information on using Contexts.
10783func (c *WAFRegional) UpdateXssMatchSetWithContext(ctx aws.Context, input *waf.UpdateXssMatchSetInput, opts ...request.Option) (*waf.UpdateXssMatchSetOutput, error) {
10784	req, out := c.UpdateXssMatchSetRequest(input)
10785	req.SetContext(ctx)
10786	req.ApplyOptions(opts...)
10787	return out, req.Send()
10788}
10789
10790type AssociateWebACLInput struct {
10791	_ struct{} `type:"structure"`
10792
10793	// The ARN (Amazon Resource Name) of the resource to be protected, either an
10794	// application load balancer or Amazon API Gateway stage.
10795	//
10796	// The ARN should be in one of the following formats:
10797	//
10798	//    * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
10799	//
10800	//    * For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
10801	//
10802	// ResourceArn is a required field
10803	ResourceArn *string `min:"1" type:"string" required:"true"`
10804
10805	// A unique identifier (ID) for the web ACL.
10806	//
10807	// WebACLId is a required field
10808	WebACLId *string `min:"1" type:"string" required:"true"`
10809}
10810
10811// String returns the string representation
10812func (s AssociateWebACLInput) String() string {
10813	return awsutil.Prettify(s)
10814}
10815
10816// GoString returns the string representation
10817func (s AssociateWebACLInput) GoString() string {
10818	return s.String()
10819}
10820
10821// Validate inspects the fields of the type to determine if they are valid.
10822func (s *AssociateWebACLInput) Validate() error {
10823	invalidParams := request.ErrInvalidParams{Context: "AssociateWebACLInput"}
10824	if s.ResourceArn == nil {
10825		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10826	}
10827	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10828		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10829	}
10830	if s.WebACLId == nil {
10831		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
10832	}
10833	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
10834		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
10835	}
10836
10837	if invalidParams.Len() > 0 {
10838		return invalidParams
10839	}
10840	return nil
10841}
10842
10843// SetResourceArn sets the ResourceArn field's value.
10844func (s *AssociateWebACLInput) SetResourceArn(v string) *AssociateWebACLInput {
10845	s.ResourceArn = &v
10846	return s
10847}
10848
10849// SetWebACLId sets the WebACLId field's value.
10850func (s *AssociateWebACLInput) SetWebACLId(v string) *AssociateWebACLInput {
10851	s.WebACLId = &v
10852	return s
10853}
10854
10855type AssociateWebACLOutput struct {
10856	_ struct{} `type:"structure"`
10857}
10858
10859// String returns the string representation
10860func (s AssociateWebACLOutput) String() string {
10861	return awsutil.Prettify(s)
10862}
10863
10864// GoString returns the string representation
10865func (s AssociateWebACLOutput) GoString() string {
10866	return s.String()
10867}
10868
10869type DisassociateWebACLInput struct {
10870	_ struct{} `type:"structure"`
10871
10872	// The ARN (Amazon Resource Name) of the resource from which the web ACL is
10873	// being removed, either an application load balancer or Amazon API Gateway
10874	// stage.
10875	//
10876	// The ARN should be in one of the following formats:
10877	//
10878	//    * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
10879	//
10880	//    * For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
10881	//
10882	// ResourceArn is a required field
10883	ResourceArn *string `min:"1" type:"string" required:"true"`
10884}
10885
10886// String returns the string representation
10887func (s DisassociateWebACLInput) String() string {
10888	return awsutil.Prettify(s)
10889}
10890
10891// GoString returns the string representation
10892func (s DisassociateWebACLInput) GoString() string {
10893	return s.String()
10894}
10895
10896// Validate inspects the fields of the type to determine if they are valid.
10897func (s *DisassociateWebACLInput) Validate() error {
10898	invalidParams := request.ErrInvalidParams{Context: "DisassociateWebACLInput"}
10899	if s.ResourceArn == nil {
10900		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10901	}
10902	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10903		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10904	}
10905
10906	if invalidParams.Len() > 0 {
10907		return invalidParams
10908	}
10909	return nil
10910}
10911
10912// SetResourceArn sets the ResourceArn field's value.
10913func (s *DisassociateWebACLInput) SetResourceArn(v string) *DisassociateWebACLInput {
10914	s.ResourceArn = &v
10915	return s
10916}
10917
10918type DisassociateWebACLOutput struct {
10919	_ struct{} `type:"structure"`
10920}
10921
10922// String returns the string representation
10923func (s DisassociateWebACLOutput) String() string {
10924	return awsutil.Prettify(s)
10925}
10926
10927// GoString returns the string representation
10928func (s DisassociateWebACLOutput) GoString() string {
10929	return s.String()
10930}
10931
10932type GetWebACLForResourceInput struct {
10933	_ struct{} `type:"structure"`
10934
10935	// The ARN (Amazon Resource Name) of the resource for which to get the web ACL,
10936	// either an application load balancer or Amazon API Gateway stage.
10937	//
10938	// The ARN should be in one of the following formats:
10939	//
10940	//    * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
10941	//
10942	//    * For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
10943	//
10944	// ResourceArn is a required field
10945	ResourceArn *string `min:"1" type:"string" required:"true"`
10946}
10947
10948// String returns the string representation
10949func (s GetWebACLForResourceInput) String() string {
10950	return awsutil.Prettify(s)
10951}
10952
10953// GoString returns the string representation
10954func (s GetWebACLForResourceInput) GoString() string {
10955	return s.String()
10956}
10957
10958// Validate inspects the fields of the type to determine if they are valid.
10959func (s *GetWebACLForResourceInput) Validate() error {
10960	invalidParams := request.ErrInvalidParams{Context: "GetWebACLForResourceInput"}
10961	if s.ResourceArn == nil {
10962		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
10963	}
10964	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
10965		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
10966	}
10967
10968	if invalidParams.Len() > 0 {
10969		return invalidParams
10970	}
10971	return nil
10972}
10973
10974// SetResourceArn sets the ResourceArn field's value.
10975func (s *GetWebACLForResourceInput) SetResourceArn(v string) *GetWebACLForResourceInput {
10976	s.ResourceArn = &v
10977	return s
10978}
10979
10980type GetWebACLForResourceOutput struct {
10981	_ struct{} `type:"structure"`
10982
10983	// Information about the web ACL that you specified in the GetWebACLForResource
10984	// request. If there is no associated resource, a null WebACLSummary is returned.
10985	WebACLSummary *waf.WebACLSummary `type:"structure"`
10986}
10987
10988// String returns the string representation
10989func (s GetWebACLForResourceOutput) String() string {
10990	return awsutil.Prettify(s)
10991}
10992
10993// GoString returns the string representation
10994func (s GetWebACLForResourceOutput) GoString() string {
10995	return s.String()
10996}
10997
10998// SetWebACLSummary sets the WebACLSummary field's value.
10999func (s *GetWebACLForResourceOutput) SetWebACLSummary(v *waf.WebACLSummary) *GetWebACLForResourceOutput {
11000	s.WebACLSummary = v
11001	return s
11002}
11003
11004type ListResourcesForWebACLInput struct {
11005	_ struct{} `type:"structure"`
11006
11007	// The type of resource to list, either an application load balancer or Amazon
11008	// API Gateway.
11009	ResourceType *string `type:"string" enum:"ResourceType"`
11010
11011	// The unique identifier (ID) of the web ACL for which to list the associated
11012	// resources.
11013	//
11014	// WebACLId is a required field
11015	WebACLId *string `min:"1" type:"string" required:"true"`
11016}
11017
11018// String returns the string representation
11019func (s ListResourcesForWebACLInput) String() string {
11020	return awsutil.Prettify(s)
11021}
11022
11023// GoString returns the string representation
11024func (s ListResourcesForWebACLInput) GoString() string {
11025	return s.String()
11026}
11027
11028// Validate inspects the fields of the type to determine if they are valid.
11029func (s *ListResourcesForWebACLInput) Validate() error {
11030	invalidParams := request.ErrInvalidParams{Context: "ListResourcesForWebACLInput"}
11031	if s.WebACLId == nil {
11032		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
11033	}
11034	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
11035		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
11036	}
11037
11038	if invalidParams.Len() > 0 {
11039		return invalidParams
11040	}
11041	return nil
11042}
11043
11044// SetResourceType sets the ResourceType field's value.
11045func (s *ListResourcesForWebACLInput) SetResourceType(v string) *ListResourcesForWebACLInput {
11046	s.ResourceType = &v
11047	return s
11048}
11049
11050// SetWebACLId sets the WebACLId field's value.
11051func (s *ListResourcesForWebACLInput) SetWebACLId(v string) *ListResourcesForWebACLInput {
11052	s.WebACLId = &v
11053	return s
11054}
11055
11056type ListResourcesForWebACLOutput struct {
11057	_ struct{} `type:"structure"`
11058
11059	// An array of ARNs (Amazon Resource Names) of the resources associated with
11060	// the specified web ACL. An array with zero elements is returned if there are
11061	// no resources associated with the web ACL.
11062	ResourceArns []*string `type:"list"`
11063}
11064
11065// String returns the string representation
11066func (s ListResourcesForWebACLOutput) String() string {
11067	return awsutil.Prettify(s)
11068}
11069
11070// GoString returns the string representation
11071func (s ListResourcesForWebACLOutput) GoString() string {
11072	return s.String()
11073}
11074
11075// SetResourceArns sets the ResourceArns field's value.
11076func (s *ListResourcesForWebACLOutput) SetResourceArns(v []*string) *ListResourcesForWebACLOutput {
11077	s.ResourceArns = v
11078	return s
11079}
11080
11081type WAFBadRequestException struct {
11082	_            struct{}                  `type:"structure"`
11083	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11084
11085	Message_ *string `locationName:"message" type:"string"`
11086}
11087
11088// String returns the string representation
11089func (s WAFBadRequestException) String() string {
11090	return awsutil.Prettify(s)
11091}
11092
11093// GoString returns the string representation
11094func (s WAFBadRequestException) GoString() string {
11095	return s.String()
11096}
11097
11098func newErrorWAFBadRequestException(v protocol.ResponseMetadata) error {
11099	return &WAFBadRequestException{
11100		RespMetadata: v,
11101	}
11102}
11103
11104// Code returns the exception type name.
11105func (s *WAFBadRequestException) Code() string {
11106	return "WAFBadRequestException"
11107}
11108
11109// Message returns the exception's message.
11110func (s *WAFBadRequestException) Message() string {
11111	if s.Message_ != nil {
11112		return *s.Message_
11113	}
11114	return ""
11115}
11116
11117// OrigErr always returns nil, satisfies awserr.Error interface.
11118func (s *WAFBadRequestException) OrigErr() error {
11119	return nil
11120}
11121
11122func (s *WAFBadRequestException) Error() string {
11123	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11124}
11125
11126// Status code returns the HTTP status code for the request's response error.
11127func (s *WAFBadRequestException) StatusCode() int {
11128	return s.RespMetadata.StatusCode
11129}
11130
11131// RequestID returns the service's response RequestID for request.
11132func (s *WAFBadRequestException) RequestID() string {
11133	return s.RespMetadata.RequestID
11134}
11135
11136// The name specified is invalid.
11137type WAFDisallowedNameException struct {
11138	_            struct{}                  `type:"structure"`
11139	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11140
11141	Message_ *string `locationName:"message" type:"string"`
11142}
11143
11144// String returns the string representation
11145func (s WAFDisallowedNameException) String() string {
11146	return awsutil.Prettify(s)
11147}
11148
11149// GoString returns the string representation
11150func (s WAFDisallowedNameException) GoString() string {
11151	return s.String()
11152}
11153
11154func newErrorWAFDisallowedNameException(v protocol.ResponseMetadata) error {
11155	return &WAFDisallowedNameException{
11156		RespMetadata: v,
11157	}
11158}
11159
11160// Code returns the exception type name.
11161func (s *WAFDisallowedNameException) Code() string {
11162	return "WAFDisallowedNameException"
11163}
11164
11165// Message returns the exception's message.
11166func (s *WAFDisallowedNameException) Message() string {
11167	if s.Message_ != nil {
11168		return *s.Message_
11169	}
11170	return ""
11171}
11172
11173// OrigErr always returns nil, satisfies awserr.Error interface.
11174func (s *WAFDisallowedNameException) OrigErr() error {
11175	return nil
11176}
11177
11178func (s *WAFDisallowedNameException) Error() string {
11179	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11180}
11181
11182// Status code returns the HTTP status code for the request's response error.
11183func (s *WAFDisallowedNameException) StatusCode() int {
11184	return s.RespMetadata.StatusCode
11185}
11186
11187// RequestID returns the service's response RequestID for request.
11188func (s *WAFDisallowedNameException) RequestID() string {
11189	return s.RespMetadata.RequestID
11190}
11191
11192// The operation failed due to a problem with the migration. The failure cause
11193// is provided in the exception, in the MigrationErrorType:
11194//
11195//    * ENTITY_NOT_SUPPORTED - The web ACL has an unsupported entity but the
11196//    IgnoreUnsupportedType is not set to true.
11197//
11198//    * ENTITY_NOT_FOUND - The web ACL doesn't exist.
11199//
11200//    * S3_BUCKET_NO_PERMISSION - You don't have permission to perform the PutObject
11201//    action to the specified Amazon S3 bucket.
11202//
11203//    * S3_BUCKET_NOT_ACCESSIBLE - The bucket policy doesn't allow AWS WAF to
11204//    perform the PutObject action in the bucket.
11205//
11206//    * S3_BUCKET_NOT_FOUND - The S3 bucket doesn't exist.
11207//
11208//    * S3_BUCKET_INVALID_REGION - The S3 bucket is not in the same Region as
11209//    the web ACL.
11210//
11211//    * S3_INTERNAL_ERROR - AWS WAF failed to create the template in the S3
11212//    bucket for another reason.
11213type WAFEntityMigrationException struct {
11214	_            struct{}                  `type:"structure"`
11215	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11216
11217	Message_ *string `locationName:"message" type:"string"`
11218
11219	MigrationErrorReason *string `type:"string"`
11220
11221	MigrationErrorType *string `type:"string" enum:"MigrationErrorType"`
11222}
11223
11224// String returns the string representation
11225func (s WAFEntityMigrationException) String() string {
11226	return awsutil.Prettify(s)
11227}
11228
11229// GoString returns the string representation
11230func (s WAFEntityMigrationException) GoString() string {
11231	return s.String()
11232}
11233
11234func newErrorWAFEntityMigrationException(v protocol.ResponseMetadata) error {
11235	return &WAFEntityMigrationException{
11236		RespMetadata: v,
11237	}
11238}
11239
11240// Code returns the exception type name.
11241func (s *WAFEntityMigrationException) Code() string {
11242	return "WAFEntityMigrationException"
11243}
11244
11245// Message returns the exception's message.
11246func (s *WAFEntityMigrationException) Message() string {
11247	if s.Message_ != nil {
11248		return *s.Message_
11249	}
11250	return ""
11251}
11252
11253// OrigErr always returns nil, satisfies awserr.Error interface.
11254func (s *WAFEntityMigrationException) OrigErr() error {
11255	return nil
11256}
11257
11258func (s *WAFEntityMigrationException) Error() string {
11259	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11260}
11261
11262// Status code returns the HTTP status code for the request's response error.
11263func (s *WAFEntityMigrationException) StatusCode() int {
11264	return s.RespMetadata.StatusCode
11265}
11266
11267// RequestID returns the service's response RequestID for request.
11268func (s *WAFEntityMigrationException) RequestID() string {
11269	return s.RespMetadata.RequestID
11270}
11271
11272// The operation failed because of a system problem, even though the request
11273// was valid. Retry your request.
11274type WAFInternalErrorException struct {
11275	_            struct{}                  `type:"structure"`
11276	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11277
11278	Message_ *string `locationName:"message" type:"string"`
11279}
11280
11281// String returns the string representation
11282func (s WAFInternalErrorException) String() string {
11283	return awsutil.Prettify(s)
11284}
11285
11286// GoString returns the string representation
11287func (s WAFInternalErrorException) GoString() string {
11288	return s.String()
11289}
11290
11291func newErrorWAFInternalErrorException(v protocol.ResponseMetadata) error {
11292	return &WAFInternalErrorException{
11293		RespMetadata: v,
11294	}
11295}
11296
11297// Code returns the exception type name.
11298func (s *WAFInternalErrorException) Code() string {
11299	return "WAFInternalErrorException"
11300}
11301
11302// Message returns the exception's message.
11303func (s *WAFInternalErrorException) Message() string {
11304	if s.Message_ != nil {
11305		return *s.Message_
11306	}
11307	return ""
11308}
11309
11310// OrigErr always returns nil, satisfies awserr.Error interface.
11311func (s *WAFInternalErrorException) OrigErr() error {
11312	return nil
11313}
11314
11315func (s *WAFInternalErrorException) Error() string {
11316	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11317}
11318
11319// Status code returns the HTTP status code for the request's response error.
11320func (s *WAFInternalErrorException) StatusCode() int {
11321	return s.RespMetadata.StatusCode
11322}
11323
11324// RequestID returns the service's response RequestID for request.
11325func (s *WAFInternalErrorException) RequestID() string {
11326	return s.RespMetadata.RequestID
11327}
11328
11329// The operation failed because you tried to create, update, or delete an object
11330// by using an invalid account identifier.
11331type WAFInvalidAccountException struct {
11332	_            struct{}                  `type:"structure"`
11333	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11334
11335	Message_ *string `locationName:"message" type:"string"`
11336}
11337
11338// String returns the string representation
11339func (s WAFInvalidAccountException) String() string {
11340	return awsutil.Prettify(s)
11341}
11342
11343// GoString returns the string representation
11344func (s WAFInvalidAccountException) GoString() string {
11345	return s.String()
11346}
11347
11348func newErrorWAFInvalidAccountException(v protocol.ResponseMetadata) error {
11349	return &WAFInvalidAccountException{
11350		RespMetadata: v,
11351	}
11352}
11353
11354// Code returns the exception type name.
11355func (s *WAFInvalidAccountException) Code() string {
11356	return "WAFInvalidAccountException"
11357}
11358
11359// Message returns the exception's message.
11360func (s *WAFInvalidAccountException) Message() string {
11361	if s.Message_ != nil {
11362		return *s.Message_
11363	}
11364	return ""
11365}
11366
11367// OrigErr always returns nil, satisfies awserr.Error interface.
11368func (s *WAFInvalidAccountException) OrigErr() error {
11369	return nil
11370}
11371
11372func (s *WAFInvalidAccountException) Error() string {
11373	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11374}
11375
11376// Status code returns the HTTP status code for the request's response error.
11377func (s *WAFInvalidAccountException) StatusCode() int {
11378	return s.RespMetadata.StatusCode
11379}
11380
11381// RequestID returns the service's response RequestID for request.
11382func (s *WAFInvalidAccountException) RequestID() string {
11383	return s.RespMetadata.RequestID
11384}
11385
11386// The operation failed because there was nothing to do. For example:
11387//
11388//    * You tried to remove a Rule from a WebACL, but the Rule isn't in the
11389//    specified WebACL.
11390//
11391//    * You tried to remove an IP address from an IPSet, but the IP address
11392//    isn't in the specified IPSet.
11393//
11394//    * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
11395//    isn't in the specified WebACL.
11396//
11397//    * You tried to add a Rule to a WebACL, but the Rule already exists in
11398//    the specified WebACL.
11399//
11400//    * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
11401//    already exists in the specified WebACL.
11402type WAFInvalidOperationException struct {
11403	_            struct{}                  `type:"structure"`
11404	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11405
11406	Message_ *string `locationName:"message" type:"string"`
11407}
11408
11409// String returns the string representation
11410func (s WAFInvalidOperationException) String() string {
11411	return awsutil.Prettify(s)
11412}
11413
11414// GoString returns the string representation
11415func (s WAFInvalidOperationException) GoString() string {
11416	return s.String()
11417}
11418
11419func newErrorWAFInvalidOperationException(v protocol.ResponseMetadata) error {
11420	return &WAFInvalidOperationException{
11421		RespMetadata: v,
11422	}
11423}
11424
11425// Code returns the exception type name.
11426func (s *WAFInvalidOperationException) Code() string {
11427	return "WAFInvalidOperationException"
11428}
11429
11430// Message returns the exception's message.
11431func (s *WAFInvalidOperationException) Message() string {
11432	if s.Message_ != nil {
11433		return *s.Message_
11434	}
11435	return ""
11436}
11437
11438// OrigErr always returns nil, satisfies awserr.Error interface.
11439func (s *WAFInvalidOperationException) OrigErr() error {
11440	return nil
11441}
11442
11443func (s *WAFInvalidOperationException) Error() string {
11444	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11445}
11446
11447// Status code returns the HTTP status code for the request's response error.
11448func (s *WAFInvalidOperationException) StatusCode() int {
11449	return s.RespMetadata.StatusCode
11450}
11451
11452// RequestID returns the service's response RequestID for request.
11453func (s *WAFInvalidOperationException) RequestID() string {
11454	return s.RespMetadata.RequestID
11455}
11456
11457// The operation failed because AWS WAF didn't recognize a parameter in the
11458// request. For example:
11459//
11460//    * You specified an invalid parameter name.
11461//
11462//    * You specified an invalid value.
11463//
11464//    * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
11465//    using an action other than INSERT or DELETE.
11466//
11467//    * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
11468//    BLOCK, or COUNT.
11469//
11470//    * You tried to create a RateBasedRule with a RateKey value other than
11471//    IP.
11472//
11473//    * You tried to update a WebACL with a WafAction Type other than ALLOW,
11474//    BLOCK, or COUNT.
11475//
11476//    * You tried to update a ByteMatchSet with a FieldToMatch Type other than
11477//    HEADER, METHOD, QUERY_STRING, URI, or BODY.
11478//
11479//    * You tried to update a ByteMatchSet with a Field of HEADER but no value
11480//    for Data.
11481//
11482//    * Your request references an ARN that is malformed, or corresponds to
11483//    a resource with which a web ACL cannot be associated.
11484type WAFInvalidParameterException struct {
11485	_            struct{}                  `type:"structure"`
11486	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11487
11488	Field *string `locationName:"field" type:"string" enum:"ParameterExceptionField"`
11489
11490	Message_ *string `locationName:"message" type:"string"`
11491
11492	Parameter *string `locationName:"parameter" min:"1" type:"string"`
11493
11494	Reason *string `locationName:"reason" type:"string" enum:"ParameterExceptionReason"`
11495}
11496
11497// String returns the string representation
11498func (s WAFInvalidParameterException) String() string {
11499	return awsutil.Prettify(s)
11500}
11501
11502// GoString returns the string representation
11503func (s WAFInvalidParameterException) GoString() string {
11504	return s.String()
11505}
11506
11507func newErrorWAFInvalidParameterException(v protocol.ResponseMetadata) error {
11508	return &WAFInvalidParameterException{
11509		RespMetadata: v,
11510	}
11511}
11512
11513// Code returns the exception type name.
11514func (s *WAFInvalidParameterException) Code() string {
11515	return "WAFInvalidParameterException"
11516}
11517
11518// Message returns the exception's message.
11519func (s *WAFInvalidParameterException) Message() string {
11520	if s.Message_ != nil {
11521		return *s.Message_
11522	}
11523	return ""
11524}
11525
11526// OrigErr always returns nil, satisfies awserr.Error interface.
11527func (s *WAFInvalidParameterException) OrigErr() error {
11528	return nil
11529}
11530
11531func (s *WAFInvalidParameterException) Error() string {
11532	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
11533}
11534
11535// Status code returns the HTTP status code for the request's response error.
11536func (s *WAFInvalidParameterException) StatusCode() int {
11537	return s.RespMetadata.StatusCode
11538}
11539
11540// RequestID returns the service's response RequestID for request.
11541func (s *WAFInvalidParameterException) RequestID() string {
11542	return s.RespMetadata.RequestID
11543}
11544
11545// The operation failed because the specified policy is not in the proper format.
11546//
11547// The policy is subject to the following restrictions:
11548//
11549//    * You can attach only one policy with each PutPermissionPolicy request.
11550//
11551//    * The policy must include an Effect, Action and Principal.
11552//
11553//    * Effect must specify Allow.
11554//
11555//    * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL,
11556//    waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard
11557//    actions in the policy will be rejected.
11558//
11559//    * The policy cannot include a Resource parameter.
11560//
11561//    * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup
11562//    must exist in the same region.
11563//
11564//    * The user making the request must be the owner of the RuleGroup.
11565//
11566//    * Your policy must be composed using IAM Policy version 2012-10-17.
11567type WAFInvalidPermissionPolicyException struct {
11568	_            struct{}                  `type:"structure"`
11569	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11570
11571	Message_ *string `locationName:"message" type:"string"`
11572}
11573
11574// String returns the string representation
11575func (s WAFInvalidPermissionPolicyException) String() string {
11576	return awsutil.Prettify(s)
11577}
11578
11579// GoString returns the string representation
11580func (s WAFInvalidPermissionPolicyException) GoString() string {
11581	return s.String()
11582}
11583
11584func newErrorWAFInvalidPermissionPolicyException(v protocol.ResponseMetadata) error {
11585	return &WAFInvalidPermissionPolicyException{
11586		RespMetadata: v,
11587	}
11588}
11589
11590// Code returns the exception type name.
11591func (s *WAFInvalidPermissionPolicyException) Code() string {
11592	return "WAFInvalidPermissionPolicyException"
11593}
11594
11595// Message returns the exception's message.
11596func (s *WAFInvalidPermissionPolicyException) Message() string {
11597	if s.Message_ != nil {
11598		return *s.Message_
11599	}
11600	return ""
11601}
11602
11603// OrigErr always returns nil, satisfies awserr.Error interface.
11604func (s *WAFInvalidPermissionPolicyException) OrigErr() error {
11605	return nil
11606}
11607
11608func (s *WAFInvalidPermissionPolicyException) Error() string {
11609	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11610}
11611
11612// Status code returns the HTTP status code for the request's response error.
11613func (s *WAFInvalidPermissionPolicyException) StatusCode() int {
11614	return s.RespMetadata.StatusCode
11615}
11616
11617// RequestID returns the service's response RequestID for request.
11618func (s *WAFInvalidPermissionPolicyException) RequestID() string {
11619	return s.RespMetadata.RequestID
11620}
11621
11622// The regular expression (regex) you specified in RegexPatternString is invalid.
11623type WAFInvalidRegexPatternException struct {
11624	_            struct{}                  `type:"structure"`
11625	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11626
11627	Message_ *string `locationName:"message" type:"string"`
11628}
11629
11630// String returns the string representation
11631func (s WAFInvalidRegexPatternException) String() string {
11632	return awsutil.Prettify(s)
11633}
11634
11635// GoString returns the string representation
11636func (s WAFInvalidRegexPatternException) GoString() string {
11637	return s.String()
11638}
11639
11640func newErrorWAFInvalidRegexPatternException(v protocol.ResponseMetadata) error {
11641	return &WAFInvalidRegexPatternException{
11642		RespMetadata: v,
11643	}
11644}
11645
11646// Code returns the exception type name.
11647func (s *WAFInvalidRegexPatternException) Code() string {
11648	return "WAFInvalidRegexPatternException"
11649}
11650
11651// Message returns the exception's message.
11652func (s *WAFInvalidRegexPatternException) Message() string {
11653	if s.Message_ != nil {
11654		return *s.Message_
11655	}
11656	return ""
11657}
11658
11659// OrigErr always returns nil, satisfies awserr.Error interface.
11660func (s *WAFInvalidRegexPatternException) OrigErr() error {
11661	return nil
11662}
11663
11664func (s *WAFInvalidRegexPatternException) Error() string {
11665	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11666}
11667
11668// Status code returns the HTTP status code for the request's response error.
11669func (s *WAFInvalidRegexPatternException) StatusCode() int {
11670	return s.RespMetadata.StatusCode
11671}
11672
11673// RequestID returns the service's response RequestID for request.
11674func (s *WAFInvalidRegexPatternException) RequestID() string {
11675	return s.RespMetadata.RequestID
11676}
11677
11678// The operation exceeds a resource limit, for example, the maximum number of
11679// WebACL objects that you can create for an AWS account. For more information,
11680// see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
11681// in the AWS WAF Developer Guide.
11682type WAFLimitsExceededException struct {
11683	_            struct{}                  `type:"structure"`
11684	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11685
11686	Message_ *string `locationName:"message" type:"string"`
11687}
11688
11689// String returns the string representation
11690func (s WAFLimitsExceededException) String() string {
11691	return awsutil.Prettify(s)
11692}
11693
11694// GoString returns the string representation
11695func (s WAFLimitsExceededException) GoString() string {
11696	return s.String()
11697}
11698
11699func newErrorWAFLimitsExceededException(v protocol.ResponseMetadata) error {
11700	return &WAFLimitsExceededException{
11701		RespMetadata: v,
11702	}
11703}
11704
11705// Code returns the exception type name.
11706func (s *WAFLimitsExceededException) Code() string {
11707	return "WAFLimitsExceededException"
11708}
11709
11710// Message returns the exception's message.
11711func (s *WAFLimitsExceededException) Message() string {
11712	if s.Message_ != nil {
11713		return *s.Message_
11714	}
11715	return ""
11716}
11717
11718// OrigErr always returns nil, satisfies awserr.Error interface.
11719func (s *WAFLimitsExceededException) OrigErr() error {
11720	return nil
11721}
11722
11723func (s *WAFLimitsExceededException) Error() string {
11724	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11725}
11726
11727// Status code returns the HTTP status code for the request's response error.
11728func (s *WAFLimitsExceededException) StatusCode() int {
11729	return s.RespMetadata.StatusCode
11730}
11731
11732// RequestID returns the service's response RequestID for request.
11733func (s *WAFLimitsExceededException) RequestID() string {
11734	return s.RespMetadata.RequestID
11735}
11736
11737// The operation failed because you tried to delete an object that isn't empty.
11738// For example:
11739//
11740//    * You tried to delete a WebACL that still contains one or more Rule objects.
11741//
11742//    * You tried to delete a Rule that still contains one or more ByteMatchSet
11743//    objects or other predicates.
11744//
11745//    * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
11746//    objects.
11747//
11748//    * You tried to delete an IPSet that references one or more IP addresses.
11749type WAFNonEmptyEntityException struct {
11750	_            struct{}                  `type:"structure"`
11751	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11752
11753	Message_ *string `locationName:"message" type:"string"`
11754}
11755
11756// String returns the string representation
11757func (s WAFNonEmptyEntityException) String() string {
11758	return awsutil.Prettify(s)
11759}
11760
11761// GoString returns the string representation
11762func (s WAFNonEmptyEntityException) GoString() string {
11763	return s.String()
11764}
11765
11766func newErrorWAFNonEmptyEntityException(v protocol.ResponseMetadata) error {
11767	return &WAFNonEmptyEntityException{
11768		RespMetadata: v,
11769	}
11770}
11771
11772// Code returns the exception type name.
11773func (s *WAFNonEmptyEntityException) Code() string {
11774	return "WAFNonEmptyEntityException"
11775}
11776
11777// Message returns the exception's message.
11778func (s *WAFNonEmptyEntityException) Message() string {
11779	if s.Message_ != nil {
11780		return *s.Message_
11781	}
11782	return ""
11783}
11784
11785// OrigErr always returns nil, satisfies awserr.Error interface.
11786func (s *WAFNonEmptyEntityException) OrigErr() error {
11787	return nil
11788}
11789
11790func (s *WAFNonEmptyEntityException) Error() string {
11791	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11792}
11793
11794// Status code returns the HTTP status code for the request's response error.
11795func (s *WAFNonEmptyEntityException) StatusCode() int {
11796	return s.RespMetadata.StatusCode
11797}
11798
11799// RequestID returns the service's response RequestID for request.
11800func (s *WAFNonEmptyEntityException) RequestID() string {
11801	return s.RespMetadata.RequestID
11802}
11803
11804// The operation failed because you tried to add an object to or delete an object
11805// from another object that doesn't exist. For example:
11806//
11807//    * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
11808//    exist.
11809//
11810//    * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
11811//    that doesn't exist.
11812//
11813//    * You tried to add an IP address to or delete an IP address from an IPSet
11814//    that doesn't exist.
11815//
11816//    * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
11817//    a ByteMatchSet that doesn't exist.
11818type WAFNonexistentContainerException struct {
11819	_            struct{}                  `type:"structure"`
11820	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11821
11822	Message_ *string `locationName:"message" type:"string"`
11823}
11824
11825// String returns the string representation
11826func (s WAFNonexistentContainerException) String() string {
11827	return awsutil.Prettify(s)
11828}
11829
11830// GoString returns the string representation
11831func (s WAFNonexistentContainerException) GoString() string {
11832	return s.String()
11833}
11834
11835func newErrorWAFNonexistentContainerException(v protocol.ResponseMetadata) error {
11836	return &WAFNonexistentContainerException{
11837		RespMetadata: v,
11838	}
11839}
11840
11841// Code returns the exception type name.
11842func (s *WAFNonexistentContainerException) Code() string {
11843	return "WAFNonexistentContainerException"
11844}
11845
11846// Message returns the exception's message.
11847func (s *WAFNonexistentContainerException) Message() string {
11848	if s.Message_ != nil {
11849		return *s.Message_
11850	}
11851	return ""
11852}
11853
11854// OrigErr always returns nil, satisfies awserr.Error interface.
11855func (s *WAFNonexistentContainerException) OrigErr() error {
11856	return nil
11857}
11858
11859func (s *WAFNonexistentContainerException) Error() string {
11860	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11861}
11862
11863// Status code returns the HTTP status code for the request's response error.
11864func (s *WAFNonexistentContainerException) StatusCode() int {
11865	return s.RespMetadata.StatusCode
11866}
11867
11868// RequestID returns the service's response RequestID for request.
11869func (s *WAFNonexistentContainerException) RequestID() string {
11870	return s.RespMetadata.RequestID
11871}
11872
11873// The operation failed because the referenced object doesn't exist.
11874type WAFNonexistentItemException struct {
11875	_            struct{}                  `type:"structure"`
11876	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11877
11878	Message_ *string `locationName:"message" type:"string"`
11879}
11880
11881// String returns the string representation
11882func (s WAFNonexistentItemException) String() string {
11883	return awsutil.Prettify(s)
11884}
11885
11886// GoString returns the string representation
11887func (s WAFNonexistentItemException) GoString() string {
11888	return s.String()
11889}
11890
11891func newErrorWAFNonexistentItemException(v protocol.ResponseMetadata) error {
11892	return &WAFNonexistentItemException{
11893		RespMetadata: v,
11894	}
11895}
11896
11897// Code returns the exception type name.
11898func (s *WAFNonexistentItemException) Code() string {
11899	return "WAFNonexistentItemException"
11900}
11901
11902// Message returns the exception's message.
11903func (s *WAFNonexistentItemException) Message() string {
11904	if s.Message_ != nil {
11905		return *s.Message_
11906	}
11907	return ""
11908}
11909
11910// OrigErr always returns nil, satisfies awserr.Error interface.
11911func (s *WAFNonexistentItemException) OrigErr() error {
11912	return nil
11913}
11914
11915func (s *WAFNonexistentItemException) Error() string {
11916	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11917}
11918
11919// Status code returns the HTTP status code for the request's response error.
11920func (s *WAFNonexistentItemException) StatusCode() int {
11921	return s.RespMetadata.StatusCode
11922}
11923
11924// RequestID returns the service's response RequestID for request.
11925func (s *WAFNonexistentItemException) RequestID() string {
11926	return s.RespMetadata.RequestID
11927}
11928
11929// The operation failed because you tried to delete an object that is still
11930// in use. For example:
11931//
11932//    * You tried to delete a ByteMatchSet that is still referenced by a Rule.
11933//
11934//    * You tried to delete a Rule that is still referenced by a WebACL.
11935type WAFReferencedItemException struct {
11936	_            struct{}                  `type:"structure"`
11937	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
11938
11939	Message_ *string `locationName:"message" type:"string"`
11940}
11941
11942// String returns the string representation
11943func (s WAFReferencedItemException) String() string {
11944	return awsutil.Prettify(s)
11945}
11946
11947// GoString returns the string representation
11948func (s WAFReferencedItemException) GoString() string {
11949	return s.String()
11950}
11951
11952func newErrorWAFReferencedItemException(v protocol.ResponseMetadata) error {
11953	return &WAFReferencedItemException{
11954		RespMetadata: v,
11955	}
11956}
11957
11958// Code returns the exception type name.
11959func (s *WAFReferencedItemException) Code() string {
11960	return "WAFReferencedItemException"
11961}
11962
11963// Message returns the exception's message.
11964func (s *WAFReferencedItemException) Message() string {
11965	if s.Message_ != nil {
11966		return *s.Message_
11967	}
11968	return ""
11969}
11970
11971// OrigErr always returns nil, satisfies awserr.Error interface.
11972func (s *WAFReferencedItemException) OrigErr() error {
11973	return nil
11974}
11975
11976func (s *WAFReferencedItemException) Error() string {
11977	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
11978}
11979
11980// Status code returns the HTTP status code for the request's response error.
11981func (s *WAFReferencedItemException) StatusCode() int {
11982	return s.RespMetadata.StatusCode
11983}
11984
11985// RequestID returns the service's response RequestID for request.
11986func (s *WAFReferencedItemException) RequestID() string {
11987	return s.RespMetadata.RequestID
11988}
11989
11990// AWS WAF is not able to access the service linked role. This can be caused
11991// by a previous PutLoggingConfiguration request, which can lock the service
11992// linked role for about 20 seconds. Please try your request again. The service
11993// linked role can also be locked by a previous DeleteServiceLinkedRole request,
11994// which can lock the role for 15 minutes or more. If you recently made a DeleteServiceLinkedRole,
11995// wait at least 15 minutes and try the request again. If you receive this same
11996// exception again, you will have to wait additional time until the role is
11997// unlocked.
11998type WAFServiceLinkedRoleErrorException struct {
11999	_            struct{}                  `type:"structure"`
12000	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12001
12002	Message_ *string `locationName:"message" type:"string"`
12003}
12004
12005// String returns the string representation
12006func (s WAFServiceLinkedRoleErrorException) String() string {
12007	return awsutil.Prettify(s)
12008}
12009
12010// GoString returns the string representation
12011func (s WAFServiceLinkedRoleErrorException) GoString() string {
12012	return s.String()
12013}
12014
12015func newErrorWAFServiceLinkedRoleErrorException(v protocol.ResponseMetadata) error {
12016	return &WAFServiceLinkedRoleErrorException{
12017		RespMetadata: v,
12018	}
12019}
12020
12021// Code returns the exception type name.
12022func (s *WAFServiceLinkedRoleErrorException) Code() string {
12023	return "WAFServiceLinkedRoleErrorException"
12024}
12025
12026// Message returns the exception's message.
12027func (s *WAFServiceLinkedRoleErrorException) Message() string {
12028	if s.Message_ != nil {
12029		return *s.Message_
12030	}
12031	return ""
12032}
12033
12034// OrigErr always returns nil, satisfies awserr.Error interface.
12035func (s *WAFServiceLinkedRoleErrorException) OrigErr() error {
12036	return nil
12037}
12038
12039func (s *WAFServiceLinkedRoleErrorException) Error() string {
12040	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12041}
12042
12043// Status code returns the HTTP status code for the request's response error.
12044func (s *WAFServiceLinkedRoleErrorException) StatusCode() int {
12045	return s.RespMetadata.StatusCode
12046}
12047
12048// RequestID returns the service's response RequestID for request.
12049func (s *WAFServiceLinkedRoleErrorException) RequestID() string {
12050	return s.RespMetadata.RequestID
12051}
12052
12053// The operation failed because you tried to create, update, or delete an object
12054// by using a change token that has already been used.
12055type WAFStaleDataException struct {
12056	_            struct{}                  `type:"structure"`
12057	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12058
12059	Message_ *string `locationName:"message" type:"string"`
12060}
12061
12062// String returns the string representation
12063func (s WAFStaleDataException) String() string {
12064	return awsutil.Prettify(s)
12065}
12066
12067// GoString returns the string representation
12068func (s WAFStaleDataException) GoString() string {
12069	return s.String()
12070}
12071
12072func newErrorWAFStaleDataException(v protocol.ResponseMetadata) error {
12073	return &WAFStaleDataException{
12074		RespMetadata: v,
12075	}
12076}
12077
12078// Code returns the exception type name.
12079func (s *WAFStaleDataException) Code() string {
12080	return "WAFStaleDataException"
12081}
12082
12083// Message returns the exception's message.
12084func (s *WAFStaleDataException) Message() string {
12085	if s.Message_ != nil {
12086		return *s.Message_
12087	}
12088	return ""
12089}
12090
12091// OrigErr always returns nil, satisfies awserr.Error interface.
12092func (s *WAFStaleDataException) OrigErr() error {
12093	return nil
12094}
12095
12096func (s *WAFStaleDataException) Error() string {
12097	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12098}
12099
12100// Status code returns the HTTP status code for the request's response error.
12101func (s *WAFStaleDataException) StatusCode() int {
12102	return s.RespMetadata.StatusCode
12103}
12104
12105// RequestID returns the service's response RequestID for request.
12106func (s *WAFStaleDataException) RequestID() string {
12107	return s.RespMetadata.RequestID
12108}
12109
12110// The specified subscription does not exist.
12111type WAFSubscriptionNotFoundException struct {
12112	_            struct{}                  `type:"structure"`
12113	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12114
12115	Message_ *string `locationName:"message" type:"string"`
12116}
12117
12118// String returns the string representation
12119func (s WAFSubscriptionNotFoundException) String() string {
12120	return awsutil.Prettify(s)
12121}
12122
12123// GoString returns the string representation
12124func (s WAFSubscriptionNotFoundException) GoString() string {
12125	return s.String()
12126}
12127
12128func newErrorWAFSubscriptionNotFoundException(v protocol.ResponseMetadata) error {
12129	return &WAFSubscriptionNotFoundException{
12130		RespMetadata: v,
12131	}
12132}
12133
12134// Code returns the exception type name.
12135func (s *WAFSubscriptionNotFoundException) Code() string {
12136	return "WAFSubscriptionNotFoundException"
12137}
12138
12139// Message returns the exception's message.
12140func (s *WAFSubscriptionNotFoundException) Message() string {
12141	if s.Message_ != nil {
12142		return *s.Message_
12143	}
12144	return ""
12145}
12146
12147// OrigErr always returns nil, satisfies awserr.Error interface.
12148func (s *WAFSubscriptionNotFoundException) OrigErr() error {
12149	return nil
12150}
12151
12152func (s *WAFSubscriptionNotFoundException) Error() string {
12153	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12154}
12155
12156// Status code returns the HTTP status code for the request's response error.
12157func (s *WAFSubscriptionNotFoundException) StatusCode() int {
12158	return s.RespMetadata.StatusCode
12159}
12160
12161// RequestID returns the service's response RequestID for request.
12162func (s *WAFSubscriptionNotFoundException) RequestID() string {
12163	return s.RespMetadata.RequestID
12164}
12165
12166type WAFTagOperationException struct {
12167	_            struct{}                  `type:"structure"`
12168	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12169
12170	Message_ *string `locationName:"message" type:"string"`
12171}
12172
12173// String returns the string representation
12174func (s WAFTagOperationException) String() string {
12175	return awsutil.Prettify(s)
12176}
12177
12178// GoString returns the string representation
12179func (s WAFTagOperationException) GoString() string {
12180	return s.String()
12181}
12182
12183func newErrorWAFTagOperationException(v protocol.ResponseMetadata) error {
12184	return &WAFTagOperationException{
12185		RespMetadata: v,
12186	}
12187}
12188
12189// Code returns the exception type name.
12190func (s *WAFTagOperationException) Code() string {
12191	return "WAFTagOperationException"
12192}
12193
12194// Message returns the exception's message.
12195func (s *WAFTagOperationException) Message() string {
12196	if s.Message_ != nil {
12197		return *s.Message_
12198	}
12199	return ""
12200}
12201
12202// OrigErr always returns nil, satisfies awserr.Error interface.
12203func (s *WAFTagOperationException) OrigErr() error {
12204	return nil
12205}
12206
12207func (s *WAFTagOperationException) Error() string {
12208	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12209}
12210
12211// Status code returns the HTTP status code for the request's response error.
12212func (s *WAFTagOperationException) StatusCode() int {
12213	return s.RespMetadata.StatusCode
12214}
12215
12216// RequestID returns the service's response RequestID for request.
12217func (s *WAFTagOperationException) RequestID() string {
12218	return s.RespMetadata.RequestID
12219}
12220
12221type WAFTagOperationInternalErrorException struct {
12222	_            struct{}                  `type:"structure"`
12223	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12224
12225	Message_ *string `locationName:"message" type:"string"`
12226}
12227
12228// String returns the string representation
12229func (s WAFTagOperationInternalErrorException) String() string {
12230	return awsutil.Prettify(s)
12231}
12232
12233// GoString returns the string representation
12234func (s WAFTagOperationInternalErrorException) GoString() string {
12235	return s.String()
12236}
12237
12238func newErrorWAFTagOperationInternalErrorException(v protocol.ResponseMetadata) error {
12239	return &WAFTagOperationInternalErrorException{
12240		RespMetadata: v,
12241	}
12242}
12243
12244// Code returns the exception type name.
12245func (s *WAFTagOperationInternalErrorException) Code() string {
12246	return "WAFTagOperationInternalErrorException"
12247}
12248
12249// Message returns the exception's message.
12250func (s *WAFTagOperationInternalErrorException) Message() string {
12251	if s.Message_ != nil {
12252		return *s.Message_
12253	}
12254	return ""
12255}
12256
12257// OrigErr always returns nil, satisfies awserr.Error interface.
12258func (s *WAFTagOperationInternalErrorException) OrigErr() error {
12259	return nil
12260}
12261
12262func (s *WAFTagOperationInternalErrorException) Error() string {
12263	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12264}
12265
12266// Status code returns the HTTP status code for the request's response error.
12267func (s *WAFTagOperationInternalErrorException) StatusCode() int {
12268	return s.RespMetadata.StatusCode
12269}
12270
12271// RequestID returns the service's response RequestID for request.
12272func (s *WAFTagOperationInternalErrorException) RequestID() string {
12273	return s.RespMetadata.RequestID
12274}
12275
12276// The operation failed because the entity referenced is temporarily unavailable.
12277// Retry your request.
12278type WAFUnavailableEntityException struct {
12279	_            struct{}                  `type:"structure"`
12280	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
12281
12282	Message_ *string `locationName:"message" type:"string"`
12283}
12284
12285// String returns the string representation
12286func (s WAFUnavailableEntityException) String() string {
12287	return awsutil.Prettify(s)
12288}
12289
12290// GoString returns the string representation
12291func (s WAFUnavailableEntityException) GoString() string {
12292	return s.String()
12293}
12294
12295func newErrorWAFUnavailableEntityException(v protocol.ResponseMetadata) error {
12296	return &WAFUnavailableEntityException{
12297		RespMetadata: v,
12298	}
12299}
12300
12301// Code returns the exception type name.
12302func (s *WAFUnavailableEntityException) Code() string {
12303	return "WAFUnavailableEntityException"
12304}
12305
12306// Message returns the exception's message.
12307func (s *WAFUnavailableEntityException) Message() string {
12308	if s.Message_ != nil {
12309		return *s.Message_
12310	}
12311	return ""
12312}
12313
12314// OrigErr always returns nil, satisfies awserr.Error interface.
12315func (s *WAFUnavailableEntityException) OrigErr() error {
12316	return nil
12317}
12318
12319func (s *WAFUnavailableEntityException) Error() string {
12320	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
12321}
12322
12323// Status code returns the HTTP status code for the request's response error.
12324func (s *WAFUnavailableEntityException) StatusCode() int {
12325	return s.RespMetadata.StatusCode
12326}
12327
12328// RequestID returns the service's response RequestID for request.
12329func (s *WAFUnavailableEntityException) RequestID() string {
12330	return s.RespMetadata.RequestID
12331}
12332
12333const (
12334	// ChangeActionInsert is a ChangeAction enum value
12335	ChangeActionInsert = "INSERT"
12336
12337	// ChangeActionDelete is a ChangeAction enum value
12338	ChangeActionDelete = "DELETE"
12339)
12340
12341const (
12342	// ChangeTokenStatusProvisioned is a ChangeTokenStatus enum value
12343	ChangeTokenStatusProvisioned = "PROVISIONED"
12344
12345	// ChangeTokenStatusPending is a ChangeTokenStatus enum value
12346	ChangeTokenStatusPending = "PENDING"
12347
12348	// ChangeTokenStatusInsync is a ChangeTokenStatus enum value
12349	ChangeTokenStatusInsync = "INSYNC"
12350)
12351
12352const (
12353	// ComparisonOperatorEq is a ComparisonOperator enum value
12354	ComparisonOperatorEq = "EQ"
12355
12356	// ComparisonOperatorNe is a ComparisonOperator enum value
12357	ComparisonOperatorNe = "NE"
12358
12359	// ComparisonOperatorLe is a ComparisonOperator enum value
12360	ComparisonOperatorLe = "LE"
12361
12362	// ComparisonOperatorLt is a ComparisonOperator enum value
12363	ComparisonOperatorLt = "LT"
12364
12365	// ComparisonOperatorGe is a ComparisonOperator enum value
12366	ComparisonOperatorGe = "GE"
12367
12368	// ComparisonOperatorGt is a ComparisonOperator enum value
12369	ComparisonOperatorGt = "GT"
12370)
12371
12372const (
12373	// GeoMatchConstraintTypeCountry is a GeoMatchConstraintType enum value
12374	GeoMatchConstraintTypeCountry = "Country"
12375)
12376
12377const (
12378	// GeoMatchConstraintValueAf is a GeoMatchConstraintValue enum value
12379	GeoMatchConstraintValueAf = "AF"
12380
12381	// GeoMatchConstraintValueAx is a GeoMatchConstraintValue enum value
12382	GeoMatchConstraintValueAx = "AX"
12383
12384	// GeoMatchConstraintValueAl is a GeoMatchConstraintValue enum value
12385	GeoMatchConstraintValueAl = "AL"
12386
12387	// GeoMatchConstraintValueDz is a GeoMatchConstraintValue enum value
12388	GeoMatchConstraintValueDz = "DZ"
12389
12390	// GeoMatchConstraintValueAs is a GeoMatchConstraintValue enum value
12391	GeoMatchConstraintValueAs = "AS"
12392
12393	// GeoMatchConstraintValueAd is a GeoMatchConstraintValue enum value
12394	GeoMatchConstraintValueAd = "AD"
12395
12396	// GeoMatchConstraintValueAo is a GeoMatchConstraintValue enum value
12397	GeoMatchConstraintValueAo = "AO"
12398
12399	// GeoMatchConstraintValueAi is a GeoMatchConstraintValue enum value
12400	GeoMatchConstraintValueAi = "AI"
12401
12402	// GeoMatchConstraintValueAq is a GeoMatchConstraintValue enum value
12403	GeoMatchConstraintValueAq = "AQ"
12404
12405	// GeoMatchConstraintValueAg is a GeoMatchConstraintValue enum value
12406	GeoMatchConstraintValueAg = "AG"
12407
12408	// GeoMatchConstraintValueAr is a GeoMatchConstraintValue enum value
12409	GeoMatchConstraintValueAr = "AR"
12410
12411	// GeoMatchConstraintValueAm is a GeoMatchConstraintValue enum value
12412	GeoMatchConstraintValueAm = "AM"
12413
12414	// GeoMatchConstraintValueAw is a GeoMatchConstraintValue enum value
12415	GeoMatchConstraintValueAw = "AW"
12416
12417	// GeoMatchConstraintValueAu is a GeoMatchConstraintValue enum value
12418	GeoMatchConstraintValueAu = "AU"
12419
12420	// GeoMatchConstraintValueAt is a GeoMatchConstraintValue enum value
12421	GeoMatchConstraintValueAt = "AT"
12422
12423	// GeoMatchConstraintValueAz is a GeoMatchConstraintValue enum value
12424	GeoMatchConstraintValueAz = "AZ"
12425
12426	// GeoMatchConstraintValueBs is a GeoMatchConstraintValue enum value
12427	GeoMatchConstraintValueBs = "BS"
12428
12429	// GeoMatchConstraintValueBh is a GeoMatchConstraintValue enum value
12430	GeoMatchConstraintValueBh = "BH"
12431
12432	// GeoMatchConstraintValueBd is a GeoMatchConstraintValue enum value
12433	GeoMatchConstraintValueBd = "BD"
12434
12435	// GeoMatchConstraintValueBb is a GeoMatchConstraintValue enum value
12436	GeoMatchConstraintValueBb = "BB"
12437
12438	// GeoMatchConstraintValueBy is a GeoMatchConstraintValue enum value
12439	GeoMatchConstraintValueBy = "BY"
12440
12441	// GeoMatchConstraintValueBe is a GeoMatchConstraintValue enum value
12442	GeoMatchConstraintValueBe = "BE"
12443
12444	// GeoMatchConstraintValueBz is a GeoMatchConstraintValue enum value
12445	GeoMatchConstraintValueBz = "BZ"
12446
12447	// GeoMatchConstraintValueBj is a GeoMatchConstraintValue enum value
12448	GeoMatchConstraintValueBj = "BJ"
12449
12450	// GeoMatchConstraintValueBm is a GeoMatchConstraintValue enum value
12451	GeoMatchConstraintValueBm = "BM"
12452
12453	// GeoMatchConstraintValueBt is a GeoMatchConstraintValue enum value
12454	GeoMatchConstraintValueBt = "BT"
12455
12456	// GeoMatchConstraintValueBo is a GeoMatchConstraintValue enum value
12457	GeoMatchConstraintValueBo = "BO"
12458
12459	// GeoMatchConstraintValueBq is a GeoMatchConstraintValue enum value
12460	GeoMatchConstraintValueBq = "BQ"
12461
12462	// GeoMatchConstraintValueBa is a GeoMatchConstraintValue enum value
12463	GeoMatchConstraintValueBa = "BA"
12464
12465	// GeoMatchConstraintValueBw is a GeoMatchConstraintValue enum value
12466	GeoMatchConstraintValueBw = "BW"
12467
12468	// GeoMatchConstraintValueBv is a GeoMatchConstraintValue enum value
12469	GeoMatchConstraintValueBv = "BV"
12470
12471	// GeoMatchConstraintValueBr is a GeoMatchConstraintValue enum value
12472	GeoMatchConstraintValueBr = "BR"
12473
12474	// GeoMatchConstraintValueIo is a GeoMatchConstraintValue enum value
12475	GeoMatchConstraintValueIo = "IO"
12476
12477	// GeoMatchConstraintValueBn is a GeoMatchConstraintValue enum value
12478	GeoMatchConstraintValueBn = "BN"
12479
12480	// GeoMatchConstraintValueBg is a GeoMatchConstraintValue enum value
12481	GeoMatchConstraintValueBg = "BG"
12482
12483	// GeoMatchConstraintValueBf is a GeoMatchConstraintValue enum value
12484	GeoMatchConstraintValueBf = "BF"
12485
12486	// GeoMatchConstraintValueBi is a GeoMatchConstraintValue enum value
12487	GeoMatchConstraintValueBi = "BI"
12488
12489	// GeoMatchConstraintValueKh is a GeoMatchConstraintValue enum value
12490	GeoMatchConstraintValueKh = "KH"
12491
12492	// GeoMatchConstraintValueCm is a GeoMatchConstraintValue enum value
12493	GeoMatchConstraintValueCm = "CM"
12494
12495	// GeoMatchConstraintValueCa is a GeoMatchConstraintValue enum value
12496	GeoMatchConstraintValueCa = "CA"
12497
12498	// GeoMatchConstraintValueCv is a GeoMatchConstraintValue enum value
12499	GeoMatchConstraintValueCv = "CV"
12500
12501	// GeoMatchConstraintValueKy is a GeoMatchConstraintValue enum value
12502	GeoMatchConstraintValueKy = "KY"
12503
12504	// GeoMatchConstraintValueCf is a GeoMatchConstraintValue enum value
12505	GeoMatchConstraintValueCf = "CF"
12506
12507	// GeoMatchConstraintValueTd is a GeoMatchConstraintValue enum value
12508	GeoMatchConstraintValueTd = "TD"
12509
12510	// GeoMatchConstraintValueCl is a GeoMatchConstraintValue enum value
12511	GeoMatchConstraintValueCl = "CL"
12512
12513	// GeoMatchConstraintValueCn is a GeoMatchConstraintValue enum value
12514	GeoMatchConstraintValueCn = "CN"
12515
12516	// GeoMatchConstraintValueCx is a GeoMatchConstraintValue enum value
12517	GeoMatchConstraintValueCx = "CX"
12518
12519	// GeoMatchConstraintValueCc is a GeoMatchConstraintValue enum value
12520	GeoMatchConstraintValueCc = "CC"
12521
12522	// GeoMatchConstraintValueCo is a GeoMatchConstraintValue enum value
12523	GeoMatchConstraintValueCo = "CO"
12524
12525	// GeoMatchConstraintValueKm is a GeoMatchConstraintValue enum value
12526	GeoMatchConstraintValueKm = "KM"
12527
12528	// GeoMatchConstraintValueCg is a GeoMatchConstraintValue enum value
12529	GeoMatchConstraintValueCg = "CG"
12530
12531	// GeoMatchConstraintValueCd is a GeoMatchConstraintValue enum value
12532	GeoMatchConstraintValueCd = "CD"
12533
12534	// GeoMatchConstraintValueCk is a GeoMatchConstraintValue enum value
12535	GeoMatchConstraintValueCk = "CK"
12536
12537	// GeoMatchConstraintValueCr is a GeoMatchConstraintValue enum value
12538	GeoMatchConstraintValueCr = "CR"
12539
12540	// GeoMatchConstraintValueCi is a GeoMatchConstraintValue enum value
12541	GeoMatchConstraintValueCi = "CI"
12542
12543	// GeoMatchConstraintValueHr is a GeoMatchConstraintValue enum value
12544	GeoMatchConstraintValueHr = "HR"
12545
12546	// GeoMatchConstraintValueCu is a GeoMatchConstraintValue enum value
12547	GeoMatchConstraintValueCu = "CU"
12548
12549	// GeoMatchConstraintValueCw is a GeoMatchConstraintValue enum value
12550	GeoMatchConstraintValueCw = "CW"
12551
12552	// GeoMatchConstraintValueCy is a GeoMatchConstraintValue enum value
12553	GeoMatchConstraintValueCy = "CY"
12554
12555	// GeoMatchConstraintValueCz is a GeoMatchConstraintValue enum value
12556	GeoMatchConstraintValueCz = "CZ"
12557
12558	// GeoMatchConstraintValueDk is a GeoMatchConstraintValue enum value
12559	GeoMatchConstraintValueDk = "DK"
12560
12561	// GeoMatchConstraintValueDj is a GeoMatchConstraintValue enum value
12562	GeoMatchConstraintValueDj = "DJ"
12563
12564	// GeoMatchConstraintValueDm is a GeoMatchConstraintValue enum value
12565	GeoMatchConstraintValueDm = "DM"
12566
12567	// GeoMatchConstraintValueDo is a GeoMatchConstraintValue enum value
12568	GeoMatchConstraintValueDo = "DO"
12569
12570	// GeoMatchConstraintValueEc is a GeoMatchConstraintValue enum value
12571	GeoMatchConstraintValueEc = "EC"
12572
12573	// GeoMatchConstraintValueEg is a GeoMatchConstraintValue enum value
12574	GeoMatchConstraintValueEg = "EG"
12575
12576	// GeoMatchConstraintValueSv is a GeoMatchConstraintValue enum value
12577	GeoMatchConstraintValueSv = "SV"
12578
12579	// GeoMatchConstraintValueGq is a GeoMatchConstraintValue enum value
12580	GeoMatchConstraintValueGq = "GQ"
12581
12582	// GeoMatchConstraintValueEr is a GeoMatchConstraintValue enum value
12583	GeoMatchConstraintValueEr = "ER"
12584
12585	// GeoMatchConstraintValueEe is a GeoMatchConstraintValue enum value
12586	GeoMatchConstraintValueEe = "EE"
12587
12588	// GeoMatchConstraintValueEt is a GeoMatchConstraintValue enum value
12589	GeoMatchConstraintValueEt = "ET"
12590
12591	// GeoMatchConstraintValueFk is a GeoMatchConstraintValue enum value
12592	GeoMatchConstraintValueFk = "FK"
12593
12594	// GeoMatchConstraintValueFo is a GeoMatchConstraintValue enum value
12595	GeoMatchConstraintValueFo = "FO"
12596
12597	// GeoMatchConstraintValueFj is a GeoMatchConstraintValue enum value
12598	GeoMatchConstraintValueFj = "FJ"
12599
12600	// GeoMatchConstraintValueFi is a GeoMatchConstraintValue enum value
12601	GeoMatchConstraintValueFi = "FI"
12602
12603	// GeoMatchConstraintValueFr is a GeoMatchConstraintValue enum value
12604	GeoMatchConstraintValueFr = "FR"
12605
12606	// GeoMatchConstraintValueGf is a GeoMatchConstraintValue enum value
12607	GeoMatchConstraintValueGf = "GF"
12608
12609	// GeoMatchConstraintValuePf is a GeoMatchConstraintValue enum value
12610	GeoMatchConstraintValuePf = "PF"
12611
12612	// GeoMatchConstraintValueTf is a GeoMatchConstraintValue enum value
12613	GeoMatchConstraintValueTf = "TF"
12614
12615	// GeoMatchConstraintValueGa is a GeoMatchConstraintValue enum value
12616	GeoMatchConstraintValueGa = "GA"
12617
12618	// GeoMatchConstraintValueGm is a GeoMatchConstraintValue enum value
12619	GeoMatchConstraintValueGm = "GM"
12620
12621	// GeoMatchConstraintValueGe is a GeoMatchConstraintValue enum value
12622	GeoMatchConstraintValueGe = "GE"
12623
12624	// GeoMatchConstraintValueDe is a GeoMatchConstraintValue enum value
12625	GeoMatchConstraintValueDe = "DE"
12626
12627	// GeoMatchConstraintValueGh is a GeoMatchConstraintValue enum value
12628	GeoMatchConstraintValueGh = "GH"
12629
12630	// GeoMatchConstraintValueGi is a GeoMatchConstraintValue enum value
12631	GeoMatchConstraintValueGi = "GI"
12632
12633	// GeoMatchConstraintValueGr is a GeoMatchConstraintValue enum value
12634	GeoMatchConstraintValueGr = "GR"
12635
12636	// GeoMatchConstraintValueGl is a GeoMatchConstraintValue enum value
12637	GeoMatchConstraintValueGl = "GL"
12638
12639	// GeoMatchConstraintValueGd is a GeoMatchConstraintValue enum value
12640	GeoMatchConstraintValueGd = "GD"
12641
12642	// GeoMatchConstraintValueGp is a GeoMatchConstraintValue enum value
12643	GeoMatchConstraintValueGp = "GP"
12644
12645	// GeoMatchConstraintValueGu is a GeoMatchConstraintValue enum value
12646	GeoMatchConstraintValueGu = "GU"
12647
12648	// GeoMatchConstraintValueGt is a GeoMatchConstraintValue enum value
12649	GeoMatchConstraintValueGt = "GT"
12650
12651	// GeoMatchConstraintValueGg is a GeoMatchConstraintValue enum value
12652	GeoMatchConstraintValueGg = "GG"
12653
12654	// GeoMatchConstraintValueGn is a GeoMatchConstraintValue enum value
12655	GeoMatchConstraintValueGn = "GN"
12656
12657	// GeoMatchConstraintValueGw is a GeoMatchConstraintValue enum value
12658	GeoMatchConstraintValueGw = "GW"
12659
12660	// GeoMatchConstraintValueGy is a GeoMatchConstraintValue enum value
12661	GeoMatchConstraintValueGy = "GY"
12662
12663	// GeoMatchConstraintValueHt is a GeoMatchConstraintValue enum value
12664	GeoMatchConstraintValueHt = "HT"
12665
12666	// GeoMatchConstraintValueHm is a GeoMatchConstraintValue enum value
12667	GeoMatchConstraintValueHm = "HM"
12668
12669	// GeoMatchConstraintValueVa is a GeoMatchConstraintValue enum value
12670	GeoMatchConstraintValueVa = "VA"
12671
12672	// GeoMatchConstraintValueHn is a GeoMatchConstraintValue enum value
12673	GeoMatchConstraintValueHn = "HN"
12674
12675	// GeoMatchConstraintValueHk is a GeoMatchConstraintValue enum value
12676	GeoMatchConstraintValueHk = "HK"
12677
12678	// GeoMatchConstraintValueHu is a GeoMatchConstraintValue enum value
12679	GeoMatchConstraintValueHu = "HU"
12680
12681	// GeoMatchConstraintValueIs is a GeoMatchConstraintValue enum value
12682	GeoMatchConstraintValueIs = "IS"
12683
12684	// GeoMatchConstraintValueIn is a GeoMatchConstraintValue enum value
12685	GeoMatchConstraintValueIn = "IN"
12686
12687	// GeoMatchConstraintValueId is a GeoMatchConstraintValue enum value
12688	GeoMatchConstraintValueId = "ID"
12689
12690	// GeoMatchConstraintValueIr is a GeoMatchConstraintValue enum value
12691	GeoMatchConstraintValueIr = "IR"
12692
12693	// GeoMatchConstraintValueIq is a GeoMatchConstraintValue enum value
12694	GeoMatchConstraintValueIq = "IQ"
12695
12696	// GeoMatchConstraintValueIe is a GeoMatchConstraintValue enum value
12697	GeoMatchConstraintValueIe = "IE"
12698
12699	// GeoMatchConstraintValueIm is a GeoMatchConstraintValue enum value
12700	GeoMatchConstraintValueIm = "IM"
12701
12702	// GeoMatchConstraintValueIl is a GeoMatchConstraintValue enum value
12703	GeoMatchConstraintValueIl = "IL"
12704
12705	// GeoMatchConstraintValueIt is a GeoMatchConstraintValue enum value
12706	GeoMatchConstraintValueIt = "IT"
12707
12708	// GeoMatchConstraintValueJm is a GeoMatchConstraintValue enum value
12709	GeoMatchConstraintValueJm = "JM"
12710
12711	// GeoMatchConstraintValueJp is a GeoMatchConstraintValue enum value
12712	GeoMatchConstraintValueJp = "JP"
12713
12714	// GeoMatchConstraintValueJe is a GeoMatchConstraintValue enum value
12715	GeoMatchConstraintValueJe = "JE"
12716
12717	// GeoMatchConstraintValueJo is a GeoMatchConstraintValue enum value
12718	GeoMatchConstraintValueJo = "JO"
12719
12720	// GeoMatchConstraintValueKz is a GeoMatchConstraintValue enum value
12721	GeoMatchConstraintValueKz = "KZ"
12722
12723	// GeoMatchConstraintValueKe is a GeoMatchConstraintValue enum value
12724	GeoMatchConstraintValueKe = "KE"
12725
12726	// GeoMatchConstraintValueKi is a GeoMatchConstraintValue enum value
12727	GeoMatchConstraintValueKi = "KI"
12728
12729	// GeoMatchConstraintValueKp is a GeoMatchConstraintValue enum value
12730	GeoMatchConstraintValueKp = "KP"
12731
12732	// GeoMatchConstraintValueKr is a GeoMatchConstraintValue enum value
12733	GeoMatchConstraintValueKr = "KR"
12734
12735	// GeoMatchConstraintValueKw is a GeoMatchConstraintValue enum value
12736	GeoMatchConstraintValueKw = "KW"
12737
12738	// GeoMatchConstraintValueKg is a GeoMatchConstraintValue enum value
12739	GeoMatchConstraintValueKg = "KG"
12740
12741	// GeoMatchConstraintValueLa is a GeoMatchConstraintValue enum value
12742	GeoMatchConstraintValueLa = "LA"
12743
12744	// GeoMatchConstraintValueLv is a GeoMatchConstraintValue enum value
12745	GeoMatchConstraintValueLv = "LV"
12746
12747	// GeoMatchConstraintValueLb is a GeoMatchConstraintValue enum value
12748	GeoMatchConstraintValueLb = "LB"
12749
12750	// GeoMatchConstraintValueLs is a GeoMatchConstraintValue enum value
12751	GeoMatchConstraintValueLs = "LS"
12752
12753	// GeoMatchConstraintValueLr is a GeoMatchConstraintValue enum value
12754	GeoMatchConstraintValueLr = "LR"
12755
12756	// GeoMatchConstraintValueLy is a GeoMatchConstraintValue enum value
12757	GeoMatchConstraintValueLy = "LY"
12758
12759	// GeoMatchConstraintValueLi is a GeoMatchConstraintValue enum value
12760	GeoMatchConstraintValueLi = "LI"
12761
12762	// GeoMatchConstraintValueLt is a GeoMatchConstraintValue enum value
12763	GeoMatchConstraintValueLt = "LT"
12764
12765	// GeoMatchConstraintValueLu is a GeoMatchConstraintValue enum value
12766	GeoMatchConstraintValueLu = "LU"
12767
12768	// GeoMatchConstraintValueMo is a GeoMatchConstraintValue enum value
12769	GeoMatchConstraintValueMo = "MO"
12770
12771	// GeoMatchConstraintValueMk is a GeoMatchConstraintValue enum value
12772	GeoMatchConstraintValueMk = "MK"
12773
12774	// GeoMatchConstraintValueMg is a GeoMatchConstraintValue enum value
12775	GeoMatchConstraintValueMg = "MG"
12776
12777	// GeoMatchConstraintValueMw is a GeoMatchConstraintValue enum value
12778	GeoMatchConstraintValueMw = "MW"
12779
12780	// GeoMatchConstraintValueMy is a GeoMatchConstraintValue enum value
12781	GeoMatchConstraintValueMy = "MY"
12782
12783	// GeoMatchConstraintValueMv is a GeoMatchConstraintValue enum value
12784	GeoMatchConstraintValueMv = "MV"
12785
12786	// GeoMatchConstraintValueMl is a GeoMatchConstraintValue enum value
12787	GeoMatchConstraintValueMl = "ML"
12788
12789	// GeoMatchConstraintValueMt is a GeoMatchConstraintValue enum value
12790	GeoMatchConstraintValueMt = "MT"
12791
12792	// GeoMatchConstraintValueMh is a GeoMatchConstraintValue enum value
12793	GeoMatchConstraintValueMh = "MH"
12794
12795	// GeoMatchConstraintValueMq is a GeoMatchConstraintValue enum value
12796	GeoMatchConstraintValueMq = "MQ"
12797
12798	// GeoMatchConstraintValueMr is a GeoMatchConstraintValue enum value
12799	GeoMatchConstraintValueMr = "MR"
12800
12801	// GeoMatchConstraintValueMu is a GeoMatchConstraintValue enum value
12802	GeoMatchConstraintValueMu = "MU"
12803
12804	// GeoMatchConstraintValueYt is a GeoMatchConstraintValue enum value
12805	GeoMatchConstraintValueYt = "YT"
12806
12807	// GeoMatchConstraintValueMx is a GeoMatchConstraintValue enum value
12808	GeoMatchConstraintValueMx = "MX"
12809
12810	// GeoMatchConstraintValueFm is a GeoMatchConstraintValue enum value
12811	GeoMatchConstraintValueFm = "FM"
12812
12813	// GeoMatchConstraintValueMd is a GeoMatchConstraintValue enum value
12814	GeoMatchConstraintValueMd = "MD"
12815
12816	// GeoMatchConstraintValueMc is a GeoMatchConstraintValue enum value
12817	GeoMatchConstraintValueMc = "MC"
12818
12819	// GeoMatchConstraintValueMn is a GeoMatchConstraintValue enum value
12820	GeoMatchConstraintValueMn = "MN"
12821
12822	// GeoMatchConstraintValueMe is a GeoMatchConstraintValue enum value
12823	GeoMatchConstraintValueMe = "ME"
12824
12825	// GeoMatchConstraintValueMs is a GeoMatchConstraintValue enum value
12826	GeoMatchConstraintValueMs = "MS"
12827
12828	// GeoMatchConstraintValueMa is a GeoMatchConstraintValue enum value
12829	GeoMatchConstraintValueMa = "MA"
12830
12831	// GeoMatchConstraintValueMz is a GeoMatchConstraintValue enum value
12832	GeoMatchConstraintValueMz = "MZ"
12833
12834	// GeoMatchConstraintValueMm is a GeoMatchConstraintValue enum value
12835	GeoMatchConstraintValueMm = "MM"
12836
12837	// GeoMatchConstraintValueNa is a GeoMatchConstraintValue enum value
12838	GeoMatchConstraintValueNa = "NA"
12839
12840	// GeoMatchConstraintValueNr is a GeoMatchConstraintValue enum value
12841	GeoMatchConstraintValueNr = "NR"
12842
12843	// GeoMatchConstraintValueNp is a GeoMatchConstraintValue enum value
12844	GeoMatchConstraintValueNp = "NP"
12845
12846	// GeoMatchConstraintValueNl is a GeoMatchConstraintValue enum value
12847	GeoMatchConstraintValueNl = "NL"
12848
12849	// GeoMatchConstraintValueNc is a GeoMatchConstraintValue enum value
12850	GeoMatchConstraintValueNc = "NC"
12851
12852	// GeoMatchConstraintValueNz is a GeoMatchConstraintValue enum value
12853	GeoMatchConstraintValueNz = "NZ"
12854
12855	// GeoMatchConstraintValueNi is a GeoMatchConstraintValue enum value
12856	GeoMatchConstraintValueNi = "NI"
12857
12858	// GeoMatchConstraintValueNe is a GeoMatchConstraintValue enum value
12859	GeoMatchConstraintValueNe = "NE"
12860
12861	// GeoMatchConstraintValueNg is a GeoMatchConstraintValue enum value
12862	GeoMatchConstraintValueNg = "NG"
12863
12864	// GeoMatchConstraintValueNu is a GeoMatchConstraintValue enum value
12865	GeoMatchConstraintValueNu = "NU"
12866
12867	// GeoMatchConstraintValueNf is a GeoMatchConstraintValue enum value
12868	GeoMatchConstraintValueNf = "NF"
12869
12870	// GeoMatchConstraintValueMp is a GeoMatchConstraintValue enum value
12871	GeoMatchConstraintValueMp = "MP"
12872
12873	// GeoMatchConstraintValueNo is a GeoMatchConstraintValue enum value
12874	GeoMatchConstraintValueNo = "NO"
12875
12876	// GeoMatchConstraintValueOm is a GeoMatchConstraintValue enum value
12877	GeoMatchConstraintValueOm = "OM"
12878
12879	// GeoMatchConstraintValuePk is a GeoMatchConstraintValue enum value
12880	GeoMatchConstraintValuePk = "PK"
12881
12882	// GeoMatchConstraintValuePw is a GeoMatchConstraintValue enum value
12883	GeoMatchConstraintValuePw = "PW"
12884
12885	// GeoMatchConstraintValuePs is a GeoMatchConstraintValue enum value
12886	GeoMatchConstraintValuePs = "PS"
12887
12888	// GeoMatchConstraintValuePa is a GeoMatchConstraintValue enum value
12889	GeoMatchConstraintValuePa = "PA"
12890
12891	// GeoMatchConstraintValuePg is a GeoMatchConstraintValue enum value
12892	GeoMatchConstraintValuePg = "PG"
12893
12894	// GeoMatchConstraintValuePy is a GeoMatchConstraintValue enum value
12895	GeoMatchConstraintValuePy = "PY"
12896
12897	// GeoMatchConstraintValuePe is a GeoMatchConstraintValue enum value
12898	GeoMatchConstraintValuePe = "PE"
12899
12900	// GeoMatchConstraintValuePh is a GeoMatchConstraintValue enum value
12901	GeoMatchConstraintValuePh = "PH"
12902
12903	// GeoMatchConstraintValuePn is a GeoMatchConstraintValue enum value
12904	GeoMatchConstraintValuePn = "PN"
12905
12906	// GeoMatchConstraintValuePl is a GeoMatchConstraintValue enum value
12907	GeoMatchConstraintValuePl = "PL"
12908
12909	// GeoMatchConstraintValuePt is a GeoMatchConstraintValue enum value
12910	GeoMatchConstraintValuePt = "PT"
12911
12912	// GeoMatchConstraintValuePr is a GeoMatchConstraintValue enum value
12913	GeoMatchConstraintValuePr = "PR"
12914
12915	// GeoMatchConstraintValueQa is a GeoMatchConstraintValue enum value
12916	GeoMatchConstraintValueQa = "QA"
12917
12918	// GeoMatchConstraintValueRe is a GeoMatchConstraintValue enum value
12919	GeoMatchConstraintValueRe = "RE"
12920
12921	// GeoMatchConstraintValueRo is a GeoMatchConstraintValue enum value
12922	GeoMatchConstraintValueRo = "RO"
12923
12924	// GeoMatchConstraintValueRu is a GeoMatchConstraintValue enum value
12925	GeoMatchConstraintValueRu = "RU"
12926
12927	// GeoMatchConstraintValueRw is a GeoMatchConstraintValue enum value
12928	GeoMatchConstraintValueRw = "RW"
12929
12930	// GeoMatchConstraintValueBl is a GeoMatchConstraintValue enum value
12931	GeoMatchConstraintValueBl = "BL"
12932
12933	// GeoMatchConstraintValueSh is a GeoMatchConstraintValue enum value
12934	GeoMatchConstraintValueSh = "SH"
12935
12936	// GeoMatchConstraintValueKn is a GeoMatchConstraintValue enum value
12937	GeoMatchConstraintValueKn = "KN"
12938
12939	// GeoMatchConstraintValueLc is a GeoMatchConstraintValue enum value
12940	GeoMatchConstraintValueLc = "LC"
12941
12942	// GeoMatchConstraintValueMf is a GeoMatchConstraintValue enum value
12943	GeoMatchConstraintValueMf = "MF"
12944
12945	// GeoMatchConstraintValuePm is a GeoMatchConstraintValue enum value
12946	GeoMatchConstraintValuePm = "PM"
12947
12948	// GeoMatchConstraintValueVc is a GeoMatchConstraintValue enum value
12949	GeoMatchConstraintValueVc = "VC"
12950
12951	// GeoMatchConstraintValueWs is a GeoMatchConstraintValue enum value
12952	GeoMatchConstraintValueWs = "WS"
12953
12954	// GeoMatchConstraintValueSm is a GeoMatchConstraintValue enum value
12955	GeoMatchConstraintValueSm = "SM"
12956
12957	// GeoMatchConstraintValueSt is a GeoMatchConstraintValue enum value
12958	GeoMatchConstraintValueSt = "ST"
12959
12960	// GeoMatchConstraintValueSa is a GeoMatchConstraintValue enum value
12961	GeoMatchConstraintValueSa = "SA"
12962
12963	// GeoMatchConstraintValueSn is a GeoMatchConstraintValue enum value
12964	GeoMatchConstraintValueSn = "SN"
12965
12966	// GeoMatchConstraintValueRs is a GeoMatchConstraintValue enum value
12967	GeoMatchConstraintValueRs = "RS"
12968
12969	// GeoMatchConstraintValueSc is a GeoMatchConstraintValue enum value
12970	GeoMatchConstraintValueSc = "SC"
12971
12972	// GeoMatchConstraintValueSl is a GeoMatchConstraintValue enum value
12973	GeoMatchConstraintValueSl = "SL"
12974
12975	// GeoMatchConstraintValueSg is a GeoMatchConstraintValue enum value
12976	GeoMatchConstraintValueSg = "SG"
12977
12978	// GeoMatchConstraintValueSx is a GeoMatchConstraintValue enum value
12979	GeoMatchConstraintValueSx = "SX"
12980
12981	// GeoMatchConstraintValueSk is a GeoMatchConstraintValue enum value
12982	GeoMatchConstraintValueSk = "SK"
12983
12984	// GeoMatchConstraintValueSi is a GeoMatchConstraintValue enum value
12985	GeoMatchConstraintValueSi = "SI"
12986
12987	// GeoMatchConstraintValueSb is a GeoMatchConstraintValue enum value
12988	GeoMatchConstraintValueSb = "SB"
12989
12990	// GeoMatchConstraintValueSo is a GeoMatchConstraintValue enum value
12991	GeoMatchConstraintValueSo = "SO"
12992
12993	// GeoMatchConstraintValueZa is a GeoMatchConstraintValue enum value
12994	GeoMatchConstraintValueZa = "ZA"
12995
12996	// GeoMatchConstraintValueGs is a GeoMatchConstraintValue enum value
12997	GeoMatchConstraintValueGs = "GS"
12998
12999	// GeoMatchConstraintValueSs is a GeoMatchConstraintValue enum value
13000	GeoMatchConstraintValueSs = "SS"
13001
13002	// GeoMatchConstraintValueEs is a GeoMatchConstraintValue enum value
13003	GeoMatchConstraintValueEs = "ES"
13004
13005	// GeoMatchConstraintValueLk is a GeoMatchConstraintValue enum value
13006	GeoMatchConstraintValueLk = "LK"
13007
13008	// GeoMatchConstraintValueSd is a GeoMatchConstraintValue enum value
13009	GeoMatchConstraintValueSd = "SD"
13010
13011	// GeoMatchConstraintValueSr is a GeoMatchConstraintValue enum value
13012	GeoMatchConstraintValueSr = "SR"
13013
13014	// GeoMatchConstraintValueSj is a GeoMatchConstraintValue enum value
13015	GeoMatchConstraintValueSj = "SJ"
13016
13017	// GeoMatchConstraintValueSz is a GeoMatchConstraintValue enum value
13018	GeoMatchConstraintValueSz = "SZ"
13019
13020	// GeoMatchConstraintValueSe is a GeoMatchConstraintValue enum value
13021	GeoMatchConstraintValueSe = "SE"
13022
13023	// GeoMatchConstraintValueCh is a GeoMatchConstraintValue enum value
13024	GeoMatchConstraintValueCh = "CH"
13025
13026	// GeoMatchConstraintValueSy is a GeoMatchConstraintValue enum value
13027	GeoMatchConstraintValueSy = "SY"
13028
13029	// GeoMatchConstraintValueTw is a GeoMatchConstraintValue enum value
13030	GeoMatchConstraintValueTw = "TW"
13031
13032	// GeoMatchConstraintValueTj is a GeoMatchConstraintValue enum value
13033	GeoMatchConstraintValueTj = "TJ"
13034
13035	// GeoMatchConstraintValueTz is a GeoMatchConstraintValue enum value
13036	GeoMatchConstraintValueTz = "TZ"
13037
13038	// GeoMatchConstraintValueTh is a GeoMatchConstraintValue enum value
13039	GeoMatchConstraintValueTh = "TH"
13040
13041	// GeoMatchConstraintValueTl is a GeoMatchConstraintValue enum value
13042	GeoMatchConstraintValueTl = "TL"
13043
13044	// GeoMatchConstraintValueTg is a GeoMatchConstraintValue enum value
13045	GeoMatchConstraintValueTg = "TG"
13046
13047	// GeoMatchConstraintValueTk is a GeoMatchConstraintValue enum value
13048	GeoMatchConstraintValueTk = "TK"
13049
13050	// GeoMatchConstraintValueTo is a GeoMatchConstraintValue enum value
13051	GeoMatchConstraintValueTo = "TO"
13052
13053	// GeoMatchConstraintValueTt is a GeoMatchConstraintValue enum value
13054	GeoMatchConstraintValueTt = "TT"
13055
13056	// GeoMatchConstraintValueTn is a GeoMatchConstraintValue enum value
13057	GeoMatchConstraintValueTn = "TN"
13058
13059	// GeoMatchConstraintValueTr is a GeoMatchConstraintValue enum value
13060	GeoMatchConstraintValueTr = "TR"
13061
13062	// GeoMatchConstraintValueTm is a GeoMatchConstraintValue enum value
13063	GeoMatchConstraintValueTm = "TM"
13064
13065	// GeoMatchConstraintValueTc is a GeoMatchConstraintValue enum value
13066	GeoMatchConstraintValueTc = "TC"
13067
13068	// GeoMatchConstraintValueTv is a GeoMatchConstraintValue enum value
13069	GeoMatchConstraintValueTv = "TV"
13070
13071	// GeoMatchConstraintValueUg is a GeoMatchConstraintValue enum value
13072	GeoMatchConstraintValueUg = "UG"
13073
13074	// GeoMatchConstraintValueUa is a GeoMatchConstraintValue enum value
13075	GeoMatchConstraintValueUa = "UA"
13076
13077	// GeoMatchConstraintValueAe is a GeoMatchConstraintValue enum value
13078	GeoMatchConstraintValueAe = "AE"
13079
13080	// GeoMatchConstraintValueGb is a GeoMatchConstraintValue enum value
13081	GeoMatchConstraintValueGb = "GB"
13082
13083	// GeoMatchConstraintValueUs is a GeoMatchConstraintValue enum value
13084	GeoMatchConstraintValueUs = "US"
13085
13086	// GeoMatchConstraintValueUm is a GeoMatchConstraintValue enum value
13087	GeoMatchConstraintValueUm = "UM"
13088
13089	// GeoMatchConstraintValueUy is a GeoMatchConstraintValue enum value
13090	GeoMatchConstraintValueUy = "UY"
13091
13092	// GeoMatchConstraintValueUz is a GeoMatchConstraintValue enum value
13093	GeoMatchConstraintValueUz = "UZ"
13094
13095	// GeoMatchConstraintValueVu is a GeoMatchConstraintValue enum value
13096	GeoMatchConstraintValueVu = "VU"
13097
13098	// GeoMatchConstraintValueVe is a GeoMatchConstraintValue enum value
13099	GeoMatchConstraintValueVe = "VE"
13100
13101	// GeoMatchConstraintValueVn is a GeoMatchConstraintValue enum value
13102	GeoMatchConstraintValueVn = "VN"
13103
13104	// GeoMatchConstraintValueVg is a GeoMatchConstraintValue enum value
13105	GeoMatchConstraintValueVg = "VG"
13106
13107	// GeoMatchConstraintValueVi is a GeoMatchConstraintValue enum value
13108	GeoMatchConstraintValueVi = "VI"
13109
13110	// GeoMatchConstraintValueWf is a GeoMatchConstraintValue enum value
13111	GeoMatchConstraintValueWf = "WF"
13112
13113	// GeoMatchConstraintValueEh is a GeoMatchConstraintValue enum value
13114	GeoMatchConstraintValueEh = "EH"
13115
13116	// GeoMatchConstraintValueYe is a GeoMatchConstraintValue enum value
13117	GeoMatchConstraintValueYe = "YE"
13118
13119	// GeoMatchConstraintValueZm is a GeoMatchConstraintValue enum value
13120	GeoMatchConstraintValueZm = "ZM"
13121
13122	// GeoMatchConstraintValueZw is a GeoMatchConstraintValue enum value
13123	GeoMatchConstraintValueZw = "ZW"
13124)
13125
13126const (
13127	// IPSetDescriptorTypeIpv4 is a IPSetDescriptorType enum value
13128	IPSetDescriptorTypeIpv4 = "IPV4"
13129
13130	// IPSetDescriptorTypeIpv6 is a IPSetDescriptorType enum value
13131	IPSetDescriptorTypeIpv6 = "IPV6"
13132)
13133
13134const (
13135	// MatchFieldTypeUri is a MatchFieldType enum value
13136	MatchFieldTypeUri = "URI"
13137
13138	// MatchFieldTypeQueryString is a MatchFieldType enum value
13139	MatchFieldTypeQueryString = "QUERY_STRING"
13140
13141	// MatchFieldTypeHeader is a MatchFieldType enum value
13142	MatchFieldTypeHeader = "HEADER"
13143
13144	// MatchFieldTypeMethod is a MatchFieldType enum value
13145	MatchFieldTypeMethod = "METHOD"
13146
13147	// MatchFieldTypeBody is a MatchFieldType enum value
13148	MatchFieldTypeBody = "BODY"
13149
13150	// MatchFieldTypeSingleQueryArg is a MatchFieldType enum value
13151	MatchFieldTypeSingleQueryArg = "SINGLE_QUERY_ARG"
13152
13153	// MatchFieldTypeAllQueryArgs is a MatchFieldType enum value
13154	MatchFieldTypeAllQueryArgs = "ALL_QUERY_ARGS"
13155)
13156
13157const (
13158	// MigrationErrorTypeEntityNotSupported is a MigrationErrorType enum value
13159	MigrationErrorTypeEntityNotSupported = "ENTITY_NOT_SUPPORTED"
13160
13161	// MigrationErrorTypeEntityNotFound is a MigrationErrorType enum value
13162	MigrationErrorTypeEntityNotFound = "ENTITY_NOT_FOUND"
13163
13164	// MigrationErrorTypeS3BucketNoPermission is a MigrationErrorType enum value
13165	MigrationErrorTypeS3BucketNoPermission = "S3_BUCKET_NO_PERMISSION"
13166
13167	// MigrationErrorTypeS3BucketNotAccessible is a MigrationErrorType enum value
13168	MigrationErrorTypeS3BucketNotAccessible = "S3_BUCKET_NOT_ACCESSIBLE"
13169
13170	// MigrationErrorTypeS3BucketNotFound is a MigrationErrorType enum value
13171	MigrationErrorTypeS3BucketNotFound = "S3_BUCKET_NOT_FOUND"
13172
13173	// MigrationErrorTypeS3BucketInvalidRegion is a MigrationErrorType enum value
13174	MigrationErrorTypeS3BucketInvalidRegion = "S3_BUCKET_INVALID_REGION"
13175
13176	// MigrationErrorTypeS3InternalError is a MigrationErrorType enum value
13177	MigrationErrorTypeS3InternalError = "S3_INTERNAL_ERROR"
13178)
13179
13180const (
13181	// ParameterExceptionFieldChangeAction is a ParameterExceptionField enum value
13182	ParameterExceptionFieldChangeAction = "CHANGE_ACTION"
13183
13184	// ParameterExceptionFieldWafAction is a ParameterExceptionField enum value
13185	ParameterExceptionFieldWafAction = "WAF_ACTION"
13186
13187	// ParameterExceptionFieldWafOverrideAction is a ParameterExceptionField enum value
13188	ParameterExceptionFieldWafOverrideAction = "WAF_OVERRIDE_ACTION"
13189
13190	// ParameterExceptionFieldPredicateType is a ParameterExceptionField enum value
13191	ParameterExceptionFieldPredicateType = "PREDICATE_TYPE"
13192
13193	// ParameterExceptionFieldIpsetType is a ParameterExceptionField enum value
13194	ParameterExceptionFieldIpsetType = "IPSET_TYPE"
13195
13196	// ParameterExceptionFieldByteMatchFieldType is a ParameterExceptionField enum value
13197	ParameterExceptionFieldByteMatchFieldType = "BYTE_MATCH_FIELD_TYPE"
13198
13199	// ParameterExceptionFieldSqlInjectionMatchFieldType is a ParameterExceptionField enum value
13200	ParameterExceptionFieldSqlInjectionMatchFieldType = "SQL_INJECTION_MATCH_FIELD_TYPE"
13201
13202	// ParameterExceptionFieldByteMatchTextTransformation is a ParameterExceptionField enum value
13203	ParameterExceptionFieldByteMatchTextTransformation = "BYTE_MATCH_TEXT_TRANSFORMATION"
13204
13205	// ParameterExceptionFieldByteMatchPositionalConstraint is a ParameterExceptionField enum value
13206	ParameterExceptionFieldByteMatchPositionalConstraint = "BYTE_MATCH_POSITIONAL_CONSTRAINT"
13207
13208	// ParameterExceptionFieldSizeConstraintComparisonOperator is a ParameterExceptionField enum value
13209	ParameterExceptionFieldSizeConstraintComparisonOperator = "SIZE_CONSTRAINT_COMPARISON_OPERATOR"
13210
13211	// ParameterExceptionFieldGeoMatchLocationType is a ParameterExceptionField enum value
13212	ParameterExceptionFieldGeoMatchLocationType = "GEO_MATCH_LOCATION_TYPE"
13213
13214	// ParameterExceptionFieldGeoMatchLocationValue is a ParameterExceptionField enum value
13215	ParameterExceptionFieldGeoMatchLocationValue = "GEO_MATCH_LOCATION_VALUE"
13216
13217	// ParameterExceptionFieldRateKey is a ParameterExceptionField enum value
13218	ParameterExceptionFieldRateKey = "RATE_KEY"
13219
13220	// ParameterExceptionFieldRuleType is a ParameterExceptionField enum value
13221	ParameterExceptionFieldRuleType = "RULE_TYPE"
13222
13223	// ParameterExceptionFieldNextMarker is a ParameterExceptionField enum value
13224	ParameterExceptionFieldNextMarker = "NEXT_MARKER"
13225
13226	// ParameterExceptionFieldResourceArn is a ParameterExceptionField enum value
13227	ParameterExceptionFieldResourceArn = "RESOURCE_ARN"
13228
13229	// ParameterExceptionFieldTags is a ParameterExceptionField enum value
13230	ParameterExceptionFieldTags = "TAGS"
13231
13232	// ParameterExceptionFieldTagKeys is a ParameterExceptionField enum value
13233	ParameterExceptionFieldTagKeys = "TAG_KEYS"
13234)
13235
13236const (
13237	// ParameterExceptionReasonInvalidOption is a ParameterExceptionReason enum value
13238	ParameterExceptionReasonInvalidOption = "INVALID_OPTION"
13239
13240	// ParameterExceptionReasonIllegalCombination is a ParameterExceptionReason enum value
13241	ParameterExceptionReasonIllegalCombination = "ILLEGAL_COMBINATION"
13242
13243	// ParameterExceptionReasonIllegalArgument is a ParameterExceptionReason enum value
13244	ParameterExceptionReasonIllegalArgument = "ILLEGAL_ARGUMENT"
13245
13246	// ParameterExceptionReasonInvalidTagKey is a ParameterExceptionReason enum value
13247	ParameterExceptionReasonInvalidTagKey = "INVALID_TAG_KEY"
13248)
13249
13250const (
13251	// PositionalConstraintExactly is a PositionalConstraint enum value
13252	PositionalConstraintExactly = "EXACTLY"
13253
13254	// PositionalConstraintStartsWith is a PositionalConstraint enum value
13255	PositionalConstraintStartsWith = "STARTS_WITH"
13256
13257	// PositionalConstraintEndsWith is a PositionalConstraint enum value
13258	PositionalConstraintEndsWith = "ENDS_WITH"
13259
13260	// PositionalConstraintContains is a PositionalConstraint enum value
13261	PositionalConstraintContains = "CONTAINS"
13262
13263	// PositionalConstraintContainsWord is a PositionalConstraint enum value
13264	PositionalConstraintContainsWord = "CONTAINS_WORD"
13265)
13266
13267const (
13268	// PredicateTypeIpmatch is a PredicateType enum value
13269	PredicateTypeIpmatch = "IPMatch"
13270
13271	// PredicateTypeByteMatch is a PredicateType enum value
13272	PredicateTypeByteMatch = "ByteMatch"
13273
13274	// PredicateTypeSqlInjectionMatch is a PredicateType enum value
13275	PredicateTypeSqlInjectionMatch = "SqlInjectionMatch"
13276
13277	// PredicateTypeGeoMatch is a PredicateType enum value
13278	PredicateTypeGeoMatch = "GeoMatch"
13279
13280	// PredicateTypeSizeConstraint is a PredicateType enum value
13281	PredicateTypeSizeConstraint = "SizeConstraint"
13282
13283	// PredicateTypeXssMatch is a PredicateType enum value
13284	PredicateTypeXssMatch = "XssMatch"
13285
13286	// PredicateTypeRegexMatch is a PredicateType enum value
13287	PredicateTypeRegexMatch = "RegexMatch"
13288)
13289
13290const (
13291	// RateKeyIp is a RateKey enum value
13292	RateKeyIp = "IP"
13293)
13294
13295const (
13296	// ResourceTypeApplicationLoadBalancer is a ResourceType enum value
13297	ResourceTypeApplicationLoadBalancer = "APPLICATION_LOAD_BALANCER"
13298
13299	// ResourceTypeApiGateway is a ResourceType enum value
13300	ResourceTypeApiGateway = "API_GATEWAY"
13301)
13302
13303const (
13304	// TextTransformationNone is a TextTransformation enum value
13305	TextTransformationNone = "NONE"
13306
13307	// TextTransformationCompressWhiteSpace is a TextTransformation enum value
13308	TextTransformationCompressWhiteSpace = "COMPRESS_WHITE_SPACE"
13309
13310	// TextTransformationHtmlEntityDecode is a TextTransformation enum value
13311	TextTransformationHtmlEntityDecode = "HTML_ENTITY_DECODE"
13312
13313	// TextTransformationLowercase is a TextTransformation enum value
13314	TextTransformationLowercase = "LOWERCASE"
13315
13316	// TextTransformationCmdLine is a TextTransformation enum value
13317	TextTransformationCmdLine = "CMD_LINE"
13318
13319	// TextTransformationUrlDecode is a TextTransformation enum value
13320	TextTransformationUrlDecode = "URL_DECODE"
13321)
13322
13323const (
13324	// WafActionTypeBlock is a WafActionType enum value
13325	WafActionTypeBlock = "BLOCK"
13326
13327	// WafActionTypeAllow is a WafActionType enum value
13328	WafActionTypeAllow = "ALLOW"
13329
13330	// WafActionTypeCount is a WafActionType enum value
13331	WafActionTypeCount = "COUNT"
13332)
13333
13334const (
13335	// WafOverrideActionTypeNone is a WafOverrideActionType enum value
13336	WafOverrideActionTypeNone = "NONE"
13337
13338	// WafOverrideActionTypeCount is a WafOverrideActionType enum value
13339	WafOverrideActionTypeCount = "COUNT"
13340)
13341
13342const (
13343	// WafRuleTypeRegular is a WafRuleType enum value
13344	WafRuleTypeRegular = "REGULAR"
13345
13346	// WafRuleTypeRateBased is a WafRuleType enum value
13347	WafRuleTypeRateBased = "RATE_BASED"
13348
13349	// WafRuleTypeGroup is a WafRuleType enum value
13350	WafRuleTypeGroup = "GROUP"
13351)
13352