1// Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
2
3package wafregional
4
5import (
6	"github.com/aws/aws-sdk-go/aws"
7	"github.com/aws/aws-sdk-go/aws/awsutil"
8	"github.com/aws/aws-sdk-go/aws/request"
9	"github.com/aws/aws-sdk-go/private/protocol"
10	"github.com/aws/aws-sdk-go/private/protocol/jsonrpc"
11	"github.com/aws/aws-sdk-go/service/waf"
12)
13
14const opAssociateWebACL = "AssociateWebACL"
15
16// AssociateWebACLRequest generates a "aws/request.Request" representing the
17// client's request for the AssociateWebACL operation. The "output" return
18// value will be populated with the request's response once the request completes
19// successfully.
20//
21// Use "Send" method on the returned Request to send the API call to the service.
22// the "output" return value is not valid until after Send returns without error.
23//
24// See AssociateWebACL for more information on using the AssociateWebACL
25// API call, and error handling.
26//
27// This method is useful when you want to inject custom logic or configuration
28// into the SDK's request lifecycle. Such as custom headers, or retry logic.
29//
30//
31//    // Example sending a request using the AssociateWebACLRequest method.
32//    req, resp := client.AssociateWebACLRequest(params)
33//
34//    err := req.Send()
35//    if err == nil { // resp is now filled
36//        fmt.Println(resp)
37//    }
38//
39// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/AssociateWebACL
40func (c *WAFRegional) AssociateWebACLRequest(input *AssociateWebACLInput) (req *request.Request, output *AssociateWebACLOutput) {
41	op := &request.Operation{
42		Name:       opAssociateWebACL,
43		HTTPMethod: "POST",
44		HTTPPath:   "/",
45	}
46
47	if input == nil {
48		input = &AssociateWebACLInput{}
49	}
50
51	output = &AssociateWebACLOutput{}
52	req = c.newRequest(op, input, output)
53	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
54	return
55}
56
57// AssociateWebACL API operation for AWS WAF Regional.
58//
59// Associates a web ACL with a resource, either an application load balancer
60// or Amazon API Gateway stage.
61//
62// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
63// with awserr.Error's Code and Message methods to get detailed information about
64// the error.
65//
66// See the AWS API reference guide for AWS WAF Regional's
67// API operation AssociateWebACL for usage and error information.
68//
69// Returned Error Codes:
70//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
71//   The operation failed because of a system problem, even though the request
72//   was valid. Retry your request.
73//
74//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
75//   The operation failed because you tried to create, update, or delete an object
76//   by using an invalid account identifier.
77//
78//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
79//   The operation failed because AWS WAF didn't recognize a parameter in the
80//   request. For example:
81//
82//      * You specified an invalid parameter name.
83//
84//      * You specified an invalid value.
85//
86//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
87//      using an action other than INSERT or DELETE.
88//
89//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
90//      BLOCK, or COUNT.
91//
92//      * You tried to create a RateBasedRule with a RateKey value other than
93//      IP.
94//
95//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
96//      BLOCK, or COUNT.
97//
98//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
99//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
100//
101//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
102//      for Data.
103//
104//      * Your request references an ARN that is malformed, or corresponds to
105//      a resource with which a web ACL cannot be associated.
106//
107//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
108//   The operation failed because the referenced object doesn't exist.
109//
110//   * ErrCodeWAFUnavailableEntityException "WAFUnavailableEntityException"
111//   The operation failed because the entity referenced is temporarily unavailable.
112//   Retry your request.
113//
114// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/AssociateWebACL
115func (c *WAFRegional) AssociateWebACL(input *AssociateWebACLInput) (*AssociateWebACLOutput, error) {
116	req, out := c.AssociateWebACLRequest(input)
117	return out, req.Send()
118}
119
120// AssociateWebACLWithContext is the same as AssociateWebACL with the addition of
121// the ability to pass a context and additional request options.
122//
123// See AssociateWebACL for details on how to use this API operation.
124//
125// The context must be non-nil and will be used for request cancellation. If
126// the context is nil a panic will occur. In the future the SDK may create
127// sub-contexts for http.Requests. See https://golang.org/pkg/context/
128// for more information on using Contexts.
129func (c *WAFRegional) AssociateWebACLWithContext(ctx aws.Context, input *AssociateWebACLInput, opts ...request.Option) (*AssociateWebACLOutput, error) {
130	req, out := c.AssociateWebACLRequest(input)
131	req.SetContext(ctx)
132	req.ApplyOptions(opts...)
133	return out, req.Send()
134}
135
136const opCreateByteMatchSet = "CreateByteMatchSet"
137
138// CreateByteMatchSetRequest generates a "aws/request.Request" representing the
139// client's request for the CreateByteMatchSet operation. The "output" return
140// value will be populated with the request's response once the request completes
141// successfully.
142//
143// Use "Send" method on the returned Request to send the API call to the service.
144// the "output" return value is not valid until after Send returns without error.
145//
146// See CreateByteMatchSet for more information on using the CreateByteMatchSet
147// API call, and error handling.
148//
149// This method is useful when you want to inject custom logic or configuration
150// into the SDK's request lifecycle. Such as custom headers, or retry logic.
151//
152//
153//    // Example sending a request using the CreateByteMatchSetRequest method.
154//    req, resp := client.CreateByteMatchSetRequest(params)
155//
156//    err := req.Send()
157//    if err == nil { // resp is now filled
158//        fmt.Println(resp)
159//    }
160//
161// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateByteMatchSet
162func (c *WAFRegional) CreateByteMatchSetRequest(input *waf.CreateByteMatchSetInput) (req *request.Request, output *waf.CreateByteMatchSetOutput) {
163	op := &request.Operation{
164		Name:       opCreateByteMatchSet,
165		HTTPMethod: "POST",
166		HTTPPath:   "/",
167	}
168
169	if input == nil {
170		input = &waf.CreateByteMatchSetInput{}
171	}
172
173	output = &waf.CreateByteMatchSetOutput{}
174	req = c.newRequest(op, input, output)
175	return
176}
177
178// CreateByteMatchSet API operation for AWS WAF Regional.
179//
180// Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part
181// of a web request that you want AWS WAF to inspect, such as the values of
182// the User-Agent header or the query string. For example, you can create a
183// ByteMatchSet that matches any requests with User-Agent headers that contain
184// the string BadBot. You can then configure AWS WAF to reject those requests.
185//
186// To create and configure a ByteMatchSet, perform the following steps:
187//
188// Use GetChangeToken to get the change token that you provide in the ChangeToken
189// parameter of a CreateByteMatchSet request.
190//
191// Submit a CreateByteMatchSet request.
192//
193// Use GetChangeToken to get the change token that you provide in the ChangeToken
194// parameter of an UpdateByteMatchSet request.
195//
196// Submit an UpdateByteMatchSet request to specify the part of the request that
197// you want AWS WAF to inspect (for example, the header or the URI) and the
198// value that you want AWS WAF to watch for.
199//
200// For more information about how to use the AWS WAF API to allow or block HTTP
201// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
202//
203// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
204// with awserr.Error's Code and Message methods to get detailed information about
205// the error.
206//
207// See the AWS API reference guide for AWS WAF Regional's
208// API operation CreateByteMatchSet for usage and error information.
209//
210// Returned Error Codes:
211//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
212//   The name specified is invalid.
213//
214//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
215//   The operation failed because of a system problem, even though the request
216//   was valid. Retry your request.
217//
218//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
219//   The operation failed because you tried to create, update, or delete an object
220//   by using an invalid account identifier.
221//
222//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
223//   The operation failed because AWS WAF didn't recognize a parameter in the
224//   request. For example:
225//
226//      * You specified an invalid parameter name.
227//
228//      * You specified an invalid value.
229//
230//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
231//      using an action other than INSERT or DELETE.
232//
233//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
234//      BLOCK, or COUNT.
235//
236//      * You tried to create a RateBasedRule with a RateKey value other than
237//      IP.
238//
239//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
240//      BLOCK, or COUNT.
241//
242//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
243//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
244//
245//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
246//      for Data.
247//
248//      * Your request references an ARN that is malformed, or corresponds to
249//      a resource with which a web ACL cannot be associated.
250//
251//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
252//   The operation failed because you tried to create, update, or delete an object
253//   by using a change token that has already been used.
254//
255//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
256//   The operation exceeds a resource limit, for example, the maximum number of
257//   WebACL objects that you can create for an AWS account. For more information,
258//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
259//   in the AWS WAF Developer Guide.
260//
261// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateByteMatchSet
262func (c *WAFRegional) CreateByteMatchSet(input *waf.CreateByteMatchSetInput) (*waf.CreateByteMatchSetOutput, error) {
263	req, out := c.CreateByteMatchSetRequest(input)
264	return out, req.Send()
265}
266
267// CreateByteMatchSetWithContext is the same as CreateByteMatchSet with the addition of
268// the ability to pass a context and additional request options.
269//
270// See CreateByteMatchSet for details on how to use this API operation.
271//
272// The context must be non-nil and will be used for request cancellation. If
273// the context is nil a panic will occur. In the future the SDK may create
274// sub-contexts for http.Requests. See https://golang.org/pkg/context/
275// for more information on using Contexts.
276func (c *WAFRegional) CreateByteMatchSetWithContext(ctx aws.Context, input *waf.CreateByteMatchSetInput, opts ...request.Option) (*waf.CreateByteMatchSetOutput, error) {
277	req, out := c.CreateByteMatchSetRequest(input)
278	req.SetContext(ctx)
279	req.ApplyOptions(opts...)
280	return out, req.Send()
281}
282
283const opCreateGeoMatchSet = "CreateGeoMatchSet"
284
285// CreateGeoMatchSetRequest generates a "aws/request.Request" representing the
286// client's request for the CreateGeoMatchSet operation. The "output" return
287// value will be populated with the request's response once the request completes
288// successfully.
289//
290// Use "Send" method on the returned Request to send the API call to the service.
291// the "output" return value is not valid until after Send returns without error.
292//
293// See CreateGeoMatchSet for more information on using the CreateGeoMatchSet
294// API call, and error handling.
295//
296// This method is useful when you want to inject custom logic or configuration
297// into the SDK's request lifecycle. Such as custom headers, or retry logic.
298//
299//
300//    // Example sending a request using the CreateGeoMatchSetRequest method.
301//    req, resp := client.CreateGeoMatchSetRequest(params)
302//
303//    err := req.Send()
304//    if err == nil { // resp is now filled
305//        fmt.Println(resp)
306//    }
307//
308// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateGeoMatchSet
309func (c *WAFRegional) CreateGeoMatchSetRequest(input *waf.CreateGeoMatchSetInput) (req *request.Request, output *waf.CreateGeoMatchSetOutput) {
310	op := &request.Operation{
311		Name:       opCreateGeoMatchSet,
312		HTTPMethod: "POST",
313		HTTPPath:   "/",
314	}
315
316	if input == nil {
317		input = &waf.CreateGeoMatchSetInput{}
318	}
319
320	output = &waf.CreateGeoMatchSetOutput{}
321	req = c.newRequest(op, input, output)
322	return
323}
324
325// CreateGeoMatchSet API operation for AWS WAF Regional.
326//
327// Creates an GeoMatchSet, which you use to specify which web requests you want
328// to allow or block based on the country that the requests originate from.
329// For example, if you're receiving a lot of requests from one or more countries
330// and you want to block the requests, you can create an GeoMatchSet that contains
331// those countries and then configure AWS WAF to block the requests.
332//
333// To create and configure a GeoMatchSet, perform the following steps:
334//
335// Use GetChangeToken to get the change token that you provide in the ChangeToken
336// parameter of a CreateGeoMatchSet request.
337//
338// Submit a CreateGeoMatchSet request.
339//
340// Use GetChangeToken to get the change token that you provide in the ChangeToken
341// parameter of an UpdateGeoMatchSet request.
342//
343// Submit an UpdateGeoMatchSetSet request to specify the countries that you
344// want AWS WAF to watch for.
345//
346// For more information about how to use the AWS WAF API to allow or block HTTP
347// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
348//
349// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
350// with awserr.Error's Code and Message methods to get detailed information about
351// the error.
352//
353// See the AWS API reference guide for AWS WAF Regional's
354// API operation CreateGeoMatchSet for usage and error information.
355//
356// Returned Error Codes:
357//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
358//   The operation failed because you tried to create, update, or delete an object
359//   by using a change token that has already been used.
360//
361//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
362//   The operation failed because of a system problem, even though the request
363//   was valid. Retry your request.
364//
365//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
366//   The operation failed because you tried to create, update, or delete an object
367//   by using an invalid account identifier.
368//
369//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
370//   The name specified is invalid.
371//
372//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
373//   The operation failed because AWS WAF didn't recognize a parameter in the
374//   request. For example:
375//
376//      * You specified an invalid parameter name.
377//
378//      * You specified an invalid value.
379//
380//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
381//      using an action other than INSERT or DELETE.
382//
383//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
384//      BLOCK, or COUNT.
385//
386//      * You tried to create a RateBasedRule with a RateKey value other than
387//      IP.
388//
389//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
390//      BLOCK, or COUNT.
391//
392//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
393//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
394//
395//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
396//      for Data.
397//
398//      * Your request references an ARN that is malformed, or corresponds to
399//      a resource with which a web ACL cannot be associated.
400//
401//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
402//   The operation exceeds a resource limit, for example, the maximum number of
403//   WebACL objects that you can create for an AWS account. For more information,
404//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
405//   in the AWS WAF Developer Guide.
406//
407// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateGeoMatchSet
408func (c *WAFRegional) CreateGeoMatchSet(input *waf.CreateGeoMatchSetInput) (*waf.CreateGeoMatchSetOutput, error) {
409	req, out := c.CreateGeoMatchSetRequest(input)
410	return out, req.Send()
411}
412
413// CreateGeoMatchSetWithContext is the same as CreateGeoMatchSet with the addition of
414// the ability to pass a context and additional request options.
415//
416// See CreateGeoMatchSet for details on how to use this API operation.
417//
418// The context must be non-nil and will be used for request cancellation. If
419// the context is nil a panic will occur. In the future the SDK may create
420// sub-contexts for http.Requests. See https://golang.org/pkg/context/
421// for more information on using Contexts.
422func (c *WAFRegional) CreateGeoMatchSetWithContext(ctx aws.Context, input *waf.CreateGeoMatchSetInput, opts ...request.Option) (*waf.CreateGeoMatchSetOutput, error) {
423	req, out := c.CreateGeoMatchSetRequest(input)
424	req.SetContext(ctx)
425	req.ApplyOptions(opts...)
426	return out, req.Send()
427}
428
429const opCreateIPSet = "CreateIPSet"
430
431// CreateIPSetRequest generates a "aws/request.Request" representing the
432// client's request for the CreateIPSet operation. The "output" return
433// value will be populated with the request's response once the request completes
434// successfully.
435//
436// Use "Send" method on the returned Request to send the API call to the service.
437// the "output" return value is not valid until after Send returns without error.
438//
439// See CreateIPSet for more information on using the CreateIPSet
440// API call, and error handling.
441//
442// This method is useful when you want to inject custom logic or configuration
443// into the SDK's request lifecycle. Such as custom headers, or retry logic.
444//
445//
446//    // Example sending a request using the CreateIPSetRequest method.
447//    req, resp := client.CreateIPSetRequest(params)
448//
449//    err := req.Send()
450//    if err == nil { // resp is now filled
451//        fmt.Println(resp)
452//    }
453//
454// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateIPSet
455func (c *WAFRegional) CreateIPSetRequest(input *waf.CreateIPSetInput) (req *request.Request, output *waf.CreateIPSetOutput) {
456	op := &request.Operation{
457		Name:       opCreateIPSet,
458		HTTPMethod: "POST",
459		HTTPPath:   "/",
460	}
461
462	if input == nil {
463		input = &waf.CreateIPSetInput{}
464	}
465
466	output = &waf.CreateIPSetOutput{}
467	req = c.newRequest(op, input, output)
468	return
469}
470
471// CreateIPSet API operation for AWS WAF Regional.
472//
473// Creates an IPSet, which you use to specify which web requests that you want
474// to allow or block based on the IP addresses that the requests originate from.
475// For example, if you're receiving a lot of requests from one or more individual
476// IP addresses or one or more ranges of IP addresses and you want to block
477// the requests, you can create an IPSet that contains those IP addresses and
478// then configure AWS WAF to block the requests.
479//
480// To create and configure an IPSet, perform the following steps:
481//
482// Use GetChangeToken to get the change token that you provide in the ChangeToken
483// parameter of a CreateIPSet request.
484//
485// Submit a CreateIPSet request.
486//
487// Use GetChangeToken to get the change token that you provide in the ChangeToken
488// parameter of an UpdateIPSet request.
489//
490// Submit an UpdateIPSet request to specify the IP addresses that you want AWS
491// WAF to watch for.
492//
493// For more information about how to use the AWS WAF API to allow or block HTTP
494// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
495//
496// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
497// with awserr.Error's Code and Message methods to get detailed information about
498// the error.
499//
500// See the AWS API reference guide for AWS WAF Regional's
501// API operation CreateIPSet for usage and error information.
502//
503// Returned Error Codes:
504//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
505//   The operation failed because you tried to create, update, or delete an object
506//   by using a change token that has already been used.
507//
508//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
509//   The operation failed because of a system problem, even though the request
510//   was valid. Retry your request.
511//
512//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
513//   The operation failed because you tried to create, update, or delete an object
514//   by using an invalid account identifier.
515//
516//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
517//   The name specified is invalid.
518//
519//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
520//   The operation failed because AWS WAF didn't recognize a parameter in the
521//   request. For example:
522//
523//      * You specified an invalid parameter name.
524//
525//      * You specified an invalid value.
526//
527//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
528//      using an action other than INSERT or DELETE.
529//
530//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
531//      BLOCK, or COUNT.
532//
533//      * You tried to create a RateBasedRule with a RateKey value other than
534//      IP.
535//
536//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
537//      BLOCK, or COUNT.
538//
539//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
540//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
541//
542//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
543//      for Data.
544//
545//      * Your request references an ARN that is malformed, or corresponds to
546//      a resource with which a web ACL cannot be associated.
547//
548//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
549//   The operation exceeds a resource limit, for example, the maximum number of
550//   WebACL objects that you can create for an AWS account. For more information,
551//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
552//   in the AWS WAF Developer Guide.
553//
554// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateIPSet
555func (c *WAFRegional) CreateIPSet(input *waf.CreateIPSetInput) (*waf.CreateIPSetOutput, error) {
556	req, out := c.CreateIPSetRequest(input)
557	return out, req.Send()
558}
559
560// CreateIPSetWithContext is the same as CreateIPSet with the addition of
561// the ability to pass a context and additional request options.
562//
563// See CreateIPSet for details on how to use this API operation.
564//
565// The context must be non-nil and will be used for request cancellation. If
566// the context is nil a panic will occur. In the future the SDK may create
567// sub-contexts for http.Requests. See https://golang.org/pkg/context/
568// for more information on using Contexts.
569func (c *WAFRegional) CreateIPSetWithContext(ctx aws.Context, input *waf.CreateIPSetInput, opts ...request.Option) (*waf.CreateIPSetOutput, error) {
570	req, out := c.CreateIPSetRequest(input)
571	req.SetContext(ctx)
572	req.ApplyOptions(opts...)
573	return out, req.Send()
574}
575
576const opCreateRateBasedRule = "CreateRateBasedRule"
577
578// CreateRateBasedRuleRequest generates a "aws/request.Request" representing the
579// client's request for the CreateRateBasedRule operation. The "output" return
580// value will be populated with the request's response once the request completes
581// successfully.
582//
583// Use "Send" method on the returned Request to send the API call to the service.
584// the "output" return value is not valid until after Send returns without error.
585//
586// See CreateRateBasedRule for more information on using the CreateRateBasedRule
587// API call, and error handling.
588//
589// This method is useful when you want to inject custom logic or configuration
590// into the SDK's request lifecycle. Such as custom headers, or retry logic.
591//
592//
593//    // Example sending a request using the CreateRateBasedRuleRequest method.
594//    req, resp := client.CreateRateBasedRuleRequest(params)
595//
596//    err := req.Send()
597//    if err == nil { // resp is now filled
598//        fmt.Println(resp)
599//    }
600//
601// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRateBasedRule
602func (c *WAFRegional) CreateRateBasedRuleRequest(input *waf.CreateRateBasedRuleInput) (req *request.Request, output *waf.CreateRateBasedRuleOutput) {
603	op := &request.Operation{
604		Name:       opCreateRateBasedRule,
605		HTTPMethod: "POST",
606		HTTPPath:   "/",
607	}
608
609	if input == nil {
610		input = &waf.CreateRateBasedRuleInput{}
611	}
612
613	output = &waf.CreateRateBasedRuleOutput{}
614	req = c.newRequest(op, input, output)
615	return
616}
617
618// CreateRateBasedRule API operation for AWS WAF Regional.
619//
620// Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies
621// the maximum number of requests that AWS WAF allows from a specified IP address
622// in a five-minute period. The RateBasedRule also contains the IPSet objects,
623// ByteMatchSet objects, and other predicates that identify the requests that
624// you want to count or block if these requests exceed the RateLimit.
625//
626// If you add more than one predicate to a RateBasedRule, a request not only
627// must exceed the RateLimit, but it also must match all the specifications
628// to be counted or blocked. For example, suppose you add the following to a
629// RateBasedRule:
630//
631//    * An IPSet that matches the IP address 192.0.2.44/32
632//
633//    * A ByteMatchSet that matches BadBot in the User-Agent header
634//
635// Further, you specify a RateLimit of 15,000.
636//
637// You then add the RateBasedRule to a WebACL and specify that you want to block
638// requests that meet the conditions in the rule. For a request to be blocked,
639// it must come from the IP address 192.0.2.44 and the User-Agent header in
640// the request must contain the value BadBot. Further, requests that match these
641// two conditions must be received at a rate of more than 15,000 requests every
642// five minutes. If both conditions are met and the rate is exceeded, AWS WAF
643// blocks the requests. If the rate drops below 15,000 for a five-minute period,
644// AWS WAF no longer blocks the requests.
645//
646// As a second example, suppose you want to limit requests to a particular page
647// on your site. To do this, you could add the following to a RateBasedRule:
648//
649//    * A ByteMatchSet with FieldToMatch of URI
650//
651//    * A PositionalConstraint of STARTS_WITH
652//
653//    * A TargetString of login
654//
655// Further, you specify a RateLimit of 15,000.
656//
657// By adding this RateBasedRule to a WebACL, you could limit requests to your
658// login page without affecting the rest of your site.
659//
660// To create and configure a RateBasedRule, perform the following steps:
661//
662// Create and update the predicates that you want to include in the rule. For
663// more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.
664//
665// Use GetChangeToken to get the change token that you provide in the ChangeToken
666// parameter of a CreateRule request.
667//
668// Submit a CreateRateBasedRule request.
669//
670// Use GetChangeToken to get the change token that you provide in the ChangeToken
671// parameter of an UpdateRule request.
672//
673// Submit an UpdateRateBasedRule request to specify the predicates that you
674// want to include in the rule.
675//
676// Create and update a WebACL that contains the RateBasedRule. For more information,
677// see CreateWebACL.
678//
679// For more information about how to use the AWS WAF API to allow or block HTTP
680// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
681//
682// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
683// with awserr.Error's Code and Message methods to get detailed information about
684// the error.
685//
686// See the AWS API reference guide for AWS WAF Regional's
687// API operation CreateRateBasedRule for usage and error information.
688//
689// Returned Error Codes:
690//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
691//   The operation failed because you tried to create, update, or delete an object
692//   by using a change token that has already been used.
693//
694//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
695//   The operation failed because of a system problem, even though the request
696//   was valid. Retry your request.
697//
698//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
699//   The name specified is invalid.
700//
701//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
702//   The operation failed because AWS WAF didn't recognize a parameter in the
703//   request. For example:
704//
705//      * You specified an invalid parameter name.
706//
707//      * You specified an invalid value.
708//
709//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
710//      using an action other than INSERT or DELETE.
711//
712//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
713//      BLOCK, or COUNT.
714//
715//      * You tried to create a RateBasedRule with a RateKey value other than
716//      IP.
717//
718//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
719//      BLOCK, or COUNT.
720//
721//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
722//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
723//
724//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
725//      for Data.
726//
727//      * Your request references an ARN that is malformed, or corresponds to
728//      a resource with which a web ACL cannot be associated.
729//
730//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
731//   The operation exceeds a resource limit, for example, the maximum number of
732//   WebACL objects that you can create for an AWS account. For more information,
733//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
734//   in the AWS WAF Developer Guide.
735//
736//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
737//
738//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
739//
740//   * ErrCodeWAFBadRequestException "WAFBadRequestException"
741//
742// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRateBasedRule
743func (c *WAFRegional) CreateRateBasedRule(input *waf.CreateRateBasedRuleInput) (*waf.CreateRateBasedRuleOutput, error) {
744	req, out := c.CreateRateBasedRuleRequest(input)
745	return out, req.Send()
746}
747
748// CreateRateBasedRuleWithContext is the same as CreateRateBasedRule with the addition of
749// the ability to pass a context and additional request options.
750//
751// See CreateRateBasedRule for details on how to use this API operation.
752//
753// The context must be non-nil and will be used for request cancellation. If
754// the context is nil a panic will occur. In the future the SDK may create
755// sub-contexts for http.Requests. See https://golang.org/pkg/context/
756// for more information on using Contexts.
757func (c *WAFRegional) CreateRateBasedRuleWithContext(ctx aws.Context, input *waf.CreateRateBasedRuleInput, opts ...request.Option) (*waf.CreateRateBasedRuleOutput, error) {
758	req, out := c.CreateRateBasedRuleRequest(input)
759	req.SetContext(ctx)
760	req.ApplyOptions(opts...)
761	return out, req.Send()
762}
763
764const opCreateRegexMatchSet = "CreateRegexMatchSet"
765
766// CreateRegexMatchSetRequest generates a "aws/request.Request" representing the
767// client's request for the CreateRegexMatchSet operation. The "output" return
768// value will be populated with the request's response once the request completes
769// successfully.
770//
771// Use "Send" method on the returned Request to send the API call to the service.
772// the "output" return value is not valid until after Send returns without error.
773//
774// See CreateRegexMatchSet for more information on using the CreateRegexMatchSet
775// API call, and error handling.
776//
777// This method is useful when you want to inject custom logic or configuration
778// into the SDK's request lifecycle. Such as custom headers, or retry logic.
779//
780//
781//    // Example sending a request using the CreateRegexMatchSetRequest method.
782//    req, resp := client.CreateRegexMatchSetRequest(params)
783//
784//    err := req.Send()
785//    if err == nil { // resp is now filled
786//        fmt.Println(resp)
787//    }
788//
789// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexMatchSet
790func (c *WAFRegional) CreateRegexMatchSetRequest(input *waf.CreateRegexMatchSetInput) (req *request.Request, output *waf.CreateRegexMatchSetOutput) {
791	op := &request.Operation{
792		Name:       opCreateRegexMatchSet,
793		HTTPMethod: "POST",
794		HTTPPath:   "/",
795	}
796
797	if input == nil {
798		input = &waf.CreateRegexMatchSetInput{}
799	}
800
801	output = &waf.CreateRegexMatchSetOutput{}
802	req = c.newRequest(op, input, output)
803	return
804}
805
806// CreateRegexMatchSet API operation for AWS WAF Regional.
807//
808// Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the
809// part of a web request that you want AWS WAF to inspect, such as the values
810// of the User-Agent header or the query string. For example, you can create
811// a RegexMatchSet that contains a RegexMatchTuple that looks for any requests
812// with User-Agent headers that match a RegexPatternSet with pattern B[a@]dB[o0]t.
813// You can then configure AWS WAF to reject those requests.
814//
815// To create and configure a RegexMatchSet, perform the following steps:
816//
817// Use GetChangeToken to get the change token that you provide in the ChangeToken
818// parameter of a CreateRegexMatchSet request.
819//
820// Submit a CreateRegexMatchSet request.
821//
822// Use GetChangeToken to get the change token that you provide in the ChangeToken
823// parameter of an UpdateRegexMatchSet request.
824//
825// Submit an UpdateRegexMatchSet request to specify the part of the request
826// that you want AWS WAF to inspect (for example, the header or the URI) and
827// the value, using a RegexPatternSet, that you want AWS WAF to watch for.
828//
829// For more information about how to use the AWS WAF API to allow or block HTTP
830// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
831//
832// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
833// with awserr.Error's Code and Message methods to get detailed information about
834// the error.
835//
836// See the AWS API reference guide for AWS WAF Regional's
837// API operation CreateRegexMatchSet for usage and error information.
838//
839// Returned Error Codes:
840//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
841//   The operation failed because you tried to create, update, or delete an object
842//   by using a change token that has already been used.
843//
844//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
845//   The operation failed because of a system problem, even though the request
846//   was valid. Retry your request.
847//
848//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
849//   The name specified is invalid.
850//
851//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
852//   The operation exceeds a resource limit, for example, the maximum number of
853//   WebACL objects that you can create for an AWS account. For more information,
854//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
855//   in the AWS WAF Developer Guide.
856//
857// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexMatchSet
858func (c *WAFRegional) CreateRegexMatchSet(input *waf.CreateRegexMatchSetInput) (*waf.CreateRegexMatchSetOutput, error) {
859	req, out := c.CreateRegexMatchSetRequest(input)
860	return out, req.Send()
861}
862
863// CreateRegexMatchSetWithContext is the same as CreateRegexMatchSet with the addition of
864// the ability to pass a context and additional request options.
865//
866// See CreateRegexMatchSet for details on how to use this API operation.
867//
868// The context must be non-nil and will be used for request cancellation. If
869// the context is nil a panic will occur. In the future the SDK may create
870// sub-contexts for http.Requests. See https://golang.org/pkg/context/
871// for more information on using Contexts.
872func (c *WAFRegional) CreateRegexMatchSetWithContext(ctx aws.Context, input *waf.CreateRegexMatchSetInput, opts ...request.Option) (*waf.CreateRegexMatchSetOutput, error) {
873	req, out := c.CreateRegexMatchSetRequest(input)
874	req.SetContext(ctx)
875	req.ApplyOptions(opts...)
876	return out, req.Send()
877}
878
879const opCreateRegexPatternSet = "CreateRegexPatternSet"
880
881// CreateRegexPatternSetRequest generates a "aws/request.Request" representing the
882// client's request for the CreateRegexPatternSet operation. The "output" return
883// value will be populated with the request's response once the request completes
884// successfully.
885//
886// Use "Send" method on the returned Request to send the API call to the service.
887// the "output" return value is not valid until after Send returns without error.
888//
889// See CreateRegexPatternSet for more information on using the CreateRegexPatternSet
890// API call, and error handling.
891//
892// This method is useful when you want to inject custom logic or configuration
893// into the SDK's request lifecycle. Such as custom headers, or retry logic.
894//
895//
896//    // Example sending a request using the CreateRegexPatternSetRequest method.
897//    req, resp := client.CreateRegexPatternSetRequest(params)
898//
899//    err := req.Send()
900//    if err == nil { // resp is now filled
901//        fmt.Println(resp)
902//    }
903//
904// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexPatternSet
905func (c *WAFRegional) CreateRegexPatternSetRequest(input *waf.CreateRegexPatternSetInput) (req *request.Request, output *waf.CreateRegexPatternSetOutput) {
906	op := &request.Operation{
907		Name:       opCreateRegexPatternSet,
908		HTTPMethod: "POST",
909		HTTPPath:   "/",
910	}
911
912	if input == nil {
913		input = &waf.CreateRegexPatternSetInput{}
914	}
915
916	output = &waf.CreateRegexPatternSetOutput{}
917	req = c.newRequest(op, input, output)
918	return
919}
920
921// CreateRegexPatternSet API operation for AWS WAF Regional.
922//
923// Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify
924// the regular expression (regex) pattern that you want AWS WAF to search for,
925// such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.
926//
927// To create and configure a RegexPatternSet, perform the following steps:
928//
929// Use GetChangeToken to get the change token that you provide in the ChangeToken
930// parameter of a CreateRegexPatternSet request.
931//
932// Submit a CreateRegexPatternSet request.
933//
934// Use GetChangeToken to get the change token that you provide in the ChangeToken
935// parameter of an UpdateRegexPatternSet request.
936//
937// Submit an UpdateRegexPatternSet request to specify the string that you want
938// AWS WAF to watch for.
939//
940// For more information about how to use the AWS WAF API to allow or block HTTP
941// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
942//
943// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
944// with awserr.Error's Code and Message methods to get detailed information about
945// the error.
946//
947// See the AWS API reference guide for AWS WAF Regional's
948// API operation CreateRegexPatternSet for usage and error information.
949//
950// Returned Error Codes:
951//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
952//   The operation failed because you tried to create, update, or delete an object
953//   by using a change token that has already been used.
954//
955//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
956//   The operation failed because of a system problem, even though the request
957//   was valid. Retry your request.
958//
959//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
960//   The name specified is invalid.
961//
962//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
963//   The operation exceeds a resource limit, for example, the maximum number of
964//   WebACL objects that you can create for an AWS account. For more information,
965//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
966//   in the AWS WAF Developer Guide.
967//
968// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRegexPatternSet
969func (c *WAFRegional) CreateRegexPatternSet(input *waf.CreateRegexPatternSetInput) (*waf.CreateRegexPatternSetOutput, error) {
970	req, out := c.CreateRegexPatternSetRequest(input)
971	return out, req.Send()
972}
973
974// CreateRegexPatternSetWithContext is the same as CreateRegexPatternSet with the addition of
975// the ability to pass a context and additional request options.
976//
977// See CreateRegexPatternSet for details on how to use this API operation.
978//
979// The context must be non-nil and will be used for request cancellation. If
980// the context is nil a panic will occur. In the future the SDK may create
981// sub-contexts for http.Requests. See https://golang.org/pkg/context/
982// for more information on using Contexts.
983func (c *WAFRegional) CreateRegexPatternSetWithContext(ctx aws.Context, input *waf.CreateRegexPatternSetInput, opts ...request.Option) (*waf.CreateRegexPatternSetOutput, error) {
984	req, out := c.CreateRegexPatternSetRequest(input)
985	req.SetContext(ctx)
986	req.ApplyOptions(opts...)
987	return out, req.Send()
988}
989
990const opCreateRule = "CreateRule"
991
992// CreateRuleRequest generates a "aws/request.Request" representing the
993// client's request for the CreateRule operation. The "output" return
994// value will be populated with the request's response once the request completes
995// successfully.
996//
997// Use "Send" method on the returned Request to send the API call to the service.
998// the "output" return value is not valid until after Send returns without error.
999//
1000// See CreateRule for more information on using the CreateRule
1001// API call, and error handling.
1002//
1003// This method is useful when you want to inject custom logic or configuration
1004// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1005//
1006//
1007//    // Example sending a request using the CreateRuleRequest method.
1008//    req, resp := client.CreateRuleRequest(params)
1009//
1010//    err := req.Send()
1011//    if err == nil { // resp is now filled
1012//        fmt.Println(resp)
1013//    }
1014//
1015// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRule
1016func (c *WAFRegional) CreateRuleRequest(input *waf.CreateRuleInput) (req *request.Request, output *waf.CreateRuleOutput) {
1017	op := &request.Operation{
1018		Name:       opCreateRule,
1019		HTTPMethod: "POST",
1020		HTTPPath:   "/",
1021	}
1022
1023	if input == nil {
1024		input = &waf.CreateRuleInput{}
1025	}
1026
1027	output = &waf.CreateRuleOutput{}
1028	req = c.newRequest(op, input, output)
1029	return
1030}
1031
1032// CreateRule API operation for AWS WAF Regional.
1033//
1034// Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and
1035// other predicates that identify the requests that you want to block. If you
1036// add more than one predicate to a Rule, a request must match all of the specifications
1037// to be allowed or blocked. For example, suppose that you add the following
1038// to a Rule:
1039//
1040//    * An IPSet that matches the IP address 192.0.2.44/32
1041//
1042//    * A ByteMatchSet that matches BadBot in the User-Agent header
1043//
1044// You then add the Rule to a WebACL and specify that you want to blocks requests
1045// that satisfy the Rule. For a request to be blocked, it must come from the
1046// IP address 192.0.2.44 and the User-Agent header in the request must contain
1047// the value BadBot.
1048//
1049// To create and configure a Rule, perform the following steps:
1050//
1051// Create and update the predicates that you want to include in the Rule. For
1052// more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.
1053//
1054// Use GetChangeToken to get the change token that you provide in the ChangeToken
1055// parameter of a CreateRule request.
1056//
1057// Submit a CreateRule request.
1058//
1059// Use GetChangeToken to get the change token that you provide in the ChangeToken
1060// parameter of an UpdateRule request.
1061//
1062// Submit an UpdateRule request to specify the predicates that you want to include
1063// in the Rule.
1064//
1065// Create and update a WebACL that contains the Rule. For more information,
1066// see CreateWebACL.
1067//
1068// For more information about how to use the AWS WAF API to allow or block HTTP
1069// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1070//
1071// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1072// with awserr.Error's Code and Message methods to get detailed information about
1073// the error.
1074//
1075// See the AWS API reference guide for AWS WAF Regional's
1076// API operation CreateRule for usage and error information.
1077//
1078// Returned Error Codes:
1079//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
1080//   The operation failed because you tried to create, update, or delete an object
1081//   by using a change token that has already been used.
1082//
1083//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
1084//   The operation failed because of a system problem, even though the request
1085//   was valid. Retry your request.
1086//
1087//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
1088//   The name specified is invalid.
1089//
1090//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
1091//   The operation failed because AWS WAF didn't recognize a parameter in the
1092//   request. For example:
1093//
1094//      * You specified an invalid parameter name.
1095//
1096//      * You specified an invalid value.
1097//
1098//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1099//      using an action other than INSERT or DELETE.
1100//
1101//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1102//      BLOCK, or COUNT.
1103//
1104//      * You tried to create a RateBasedRule with a RateKey value other than
1105//      IP.
1106//
1107//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1108//      BLOCK, or COUNT.
1109//
1110//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1111//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1112//
1113//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1114//      for Data.
1115//
1116//      * Your request references an ARN that is malformed, or corresponds to
1117//      a resource with which a web ACL cannot be associated.
1118//
1119//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
1120//   The operation exceeds a resource limit, for example, the maximum number of
1121//   WebACL objects that you can create for an AWS account. For more information,
1122//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1123//   in the AWS WAF Developer Guide.
1124//
1125//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
1126//
1127//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
1128//
1129//   * ErrCodeWAFBadRequestException "WAFBadRequestException"
1130//
1131// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRule
1132func (c *WAFRegional) CreateRule(input *waf.CreateRuleInput) (*waf.CreateRuleOutput, error) {
1133	req, out := c.CreateRuleRequest(input)
1134	return out, req.Send()
1135}
1136
1137// CreateRuleWithContext is the same as CreateRule with the addition of
1138// the ability to pass a context and additional request options.
1139//
1140// See CreateRule for details on how to use this API operation.
1141//
1142// The context must be non-nil and will be used for request cancellation. If
1143// the context is nil a panic will occur. In the future the SDK may create
1144// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1145// for more information on using Contexts.
1146func (c *WAFRegional) CreateRuleWithContext(ctx aws.Context, input *waf.CreateRuleInput, opts ...request.Option) (*waf.CreateRuleOutput, error) {
1147	req, out := c.CreateRuleRequest(input)
1148	req.SetContext(ctx)
1149	req.ApplyOptions(opts...)
1150	return out, req.Send()
1151}
1152
1153const opCreateRuleGroup = "CreateRuleGroup"
1154
1155// CreateRuleGroupRequest generates a "aws/request.Request" representing the
1156// client's request for the CreateRuleGroup operation. The "output" return
1157// value will be populated with the request's response once the request completes
1158// successfully.
1159//
1160// Use "Send" method on the returned Request to send the API call to the service.
1161// the "output" return value is not valid until after Send returns without error.
1162//
1163// See CreateRuleGroup for more information on using the CreateRuleGroup
1164// API call, and error handling.
1165//
1166// This method is useful when you want to inject custom logic or configuration
1167// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1168//
1169//
1170//    // Example sending a request using the CreateRuleGroupRequest method.
1171//    req, resp := client.CreateRuleGroupRequest(params)
1172//
1173//    err := req.Send()
1174//    if err == nil { // resp is now filled
1175//        fmt.Println(resp)
1176//    }
1177//
1178// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRuleGroup
1179func (c *WAFRegional) CreateRuleGroupRequest(input *waf.CreateRuleGroupInput) (req *request.Request, output *waf.CreateRuleGroupOutput) {
1180	op := &request.Operation{
1181		Name:       opCreateRuleGroup,
1182		HTTPMethod: "POST",
1183		HTTPPath:   "/",
1184	}
1185
1186	if input == nil {
1187		input = &waf.CreateRuleGroupInput{}
1188	}
1189
1190	output = &waf.CreateRuleGroupOutput{}
1191	req = c.newRequest(op, input, output)
1192	return
1193}
1194
1195// CreateRuleGroup API operation for AWS WAF Regional.
1196//
1197// Creates a RuleGroup. A rule group is a collection of predefined rules that
1198// you add to a web ACL. You use UpdateRuleGroup to add rules to the rule group.
1199//
1200// Rule groups are subject to the following limits:
1201//
1202//    * Three rule groups per account. You can request an increase to this limit
1203//    by contacting customer support.
1204//
1205//    * One rule group per web ACL.
1206//
1207//    * Ten rules per rule group.
1208//
1209// For more information about how to use the AWS WAF API to allow or block HTTP
1210// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1211//
1212// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1213// with awserr.Error's Code and Message methods to get detailed information about
1214// the error.
1215//
1216// See the AWS API reference guide for AWS WAF Regional's
1217// API operation CreateRuleGroup for usage and error information.
1218//
1219// Returned Error Codes:
1220//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
1221//   The operation failed because you tried to create, update, or delete an object
1222//   by using a change token that has already been used.
1223//
1224//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
1225//   The operation failed because of a system problem, even though the request
1226//   was valid. Retry your request.
1227//
1228//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
1229//   The name specified is invalid.
1230//
1231//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
1232//   The operation exceeds a resource limit, for example, the maximum number of
1233//   WebACL objects that you can create for an AWS account. For more information,
1234//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1235//   in the AWS WAF Developer Guide.
1236//
1237//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
1238//
1239//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
1240//
1241//   * ErrCodeWAFBadRequestException "WAFBadRequestException"
1242//
1243// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateRuleGroup
1244func (c *WAFRegional) CreateRuleGroup(input *waf.CreateRuleGroupInput) (*waf.CreateRuleGroupOutput, error) {
1245	req, out := c.CreateRuleGroupRequest(input)
1246	return out, req.Send()
1247}
1248
1249// CreateRuleGroupWithContext is the same as CreateRuleGroup with the addition of
1250// the ability to pass a context and additional request options.
1251//
1252// See CreateRuleGroup for details on how to use this API operation.
1253//
1254// The context must be non-nil and will be used for request cancellation. If
1255// the context is nil a panic will occur. In the future the SDK may create
1256// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1257// for more information on using Contexts.
1258func (c *WAFRegional) CreateRuleGroupWithContext(ctx aws.Context, input *waf.CreateRuleGroupInput, opts ...request.Option) (*waf.CreateRuleGroupOutput, error) {
1259	req, out := c.CreateRuleGroupRequest(input)
1260	req.SetContext(ctx)
1261	req.ApplyOptions(opts...)
1262	return out, req.Send()
1263}
1264
1265const opCreateSizeConstraintSet = "CreateSizeConstraintSet"
1266
1267// CreateSizeConstraintSetRequest generates a "aws/request.Request" representing the
1268// client's request for the CreateSizeConstraintSet operation. The "output" return
1269// value will be populated with the request's response once the request completes
1270// successfully.
1271//
1272// Use "Send" method on the returned Request to send the API call to the service.
1273// the "output" return value is not valid until after Send returns without error.
1274//
1275// See CreateSizeConstraintSet for more information on using the CreateSizeConstraintSet
1276// API call, and error handling.
1277//
1278// This method is useful when you want to inject custom logic or configuration
1279// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1280//
1281//
1282//    // Example sending a request using the CreateSizeConstraintSetRequest method.
1283//    req, resp := client.CreateSizeConstraintSetRequest(params)
1284//
1285//    err := req.Send()
1286//    if err == nil { // resp is now filled
1287//        fmt.Println(resp)
1288//    }
1289//
1290// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSizeConstraintSet
1291func (c *WAFRegional) CreateSizeConstraintSetRequest(input *waf.CreateSizeConstraintSetInput) (req *request.Request, output *waf.CreateSizeConstraintSetOutput) {
1292	op := &request.Operation{
1293		Name:       opCreateSizeConstraintSet,
1294		HTTPMethod: "POST",
1295		HTTPPath:   "/",
1296	}
1297
1298	if input == nil {
1299		input = &waf.CreateSizeConstraintSetInput{}
1300	}
1301
1302	output = &waf.CreateSizeConstraintSetOutput{}
1303	req = c.newRequest(op, input, output)
1304	return
1305}
1306
1307// CreateSizeConstraintSet API operation for AWS WAF Regional.
1308//
1309// Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify
1310// the part of a web request that you want AWS WAF to check for length, such
1311// as the length of the User-Agent header or the length of the query string.
1312// For example, you can create a SizeConstraintSet that matches any requests
1313// that have a query string that is longer than 100 bytes. You can then configure
1314// AWS WAF to reject those requests.
1315//
1316// To create and configure a SizeConstraintSet, perform the following steps:
1317//
1318// Use GetChangeToken to get the change token that you provide in the ChangeToken
1319// parameter of a CreateSizeConstraintSet request.
1320//
1321// Submit a CreateSizeConstraintSet request.
1322//
1323// Use GetChangeToken to get the change token that you provide in the ChangeToken
1324// parameter of an UpdateSizeConstraintSet request.
1325//
1326// Submit an UpdateSizeConstraintSet request to specify the part of the request
1327// that you want AWS WAF to inspect (for example, the header or the URI) and
1328// the value that you want AWS WAF to watch for.
1329//
1330// For more information about how to use the AWS WAF API to allow or block HTTP
1331// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1332//
1333// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1334// with awserr.Error's Code and Message methods to get detailed information about
1335// the error.
1336//
1337// See the AWS API reference guide for AWS WAF Regional's
1338// API operation CreateSizeConstraintSet for usage and error information.
1339//
1340// Returned Error Codes:
1341//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
1342//   The operation failed because you tried to create, update, or delete an object
1343//   by using a change token that has already been used.
1344//
1345//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
1346//   The operation failed because of a system problem, even though the request
1347//   was valid. Retry your request.
1348//
1349//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
1350//   The operation failed because you tried to create, update, or delete an object
1351//   by using an invalid account identifier.
1352//
1353//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
1354//   The name specified is invalid.
1355//
1356//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
1357//   The operation failed because AWS WAF didn't recognize a parameter in the
1358//   request. For example:
1359//
1360//      * You specified an invalid parameter name.
1361//
1362//      * You specified an invalid value.
1363//
1364//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1365//      using an action other than INSERT or DELETE.
1366//
1367//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1368//      BLOCK, or COUNT.
1369//
1370//      * You tried to create a RateBasedRule with a RateKey value other than
1371//      IP.
1372//
1373//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1374//      BLOCK, or COUNT.
1375//
1376//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1377//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1378//
1379//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1380//      for Data.
1381//
1382//      * Your request references an ARN that is malformed, or corresponds to
1383//      a resource with which a web ACL cannot be associated.
1384//
1385//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
1386//   The operation exceeds a resource limit, for example, the maximum number of
1387//   WebACL objects that you can create for an AWS account. For more information,
1388//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1389//   in the AWS WAF Developer Guide.
1390//
1391// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSizeConstraintSet
1392func (c *WAFRegional) CreateSizeConstraintSet(input *waf.CreateSizeConstraintSetInput) (*waf.CreateSizeConstraintSetOutput, error) {
1393	req, out := c.CreateSizeConstraintSetRequest(input)
1394	return out, req.Send()
1395}
1396
1397// CreateSizeConstraintSetWithContext is the same as CreateSizeConstraintSet with the addition of
1398// the ability to pass a context and additional request options.
1399//
1400// See CreateSizeConstraintSet for details on how to use this API operation.
1401//
1402// The context must be non-nil and will be used for request cancellation. If
1403// the context is nil a panic will occur. In the future the SDK may create
1404// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1405// for more information on using Contexts.
1406func (c *WAFRegional) CreateSizeConstraintSetWithContext(ctx aws.Context, input *waf.CreateSizeConstraintSetInput, opts ...request.Option) (*waf.CreateSizeConstraintSetOutput, error) {
1407	req, out := c.CreateSizeConstraintSetRequest(input)
1408	req.SetContext(ctx)
1409	req.ApplyOptions(opts...)
1410	return out, req.Send()
1411}
1412
1413const opCreateSqlInjectionMatchSet = "CreateSqlInjectionMatchSet"
1414
1415// CreateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
1416// client's request for the CreateSqlInjectionMatchSet operation. The "output" return
1417// value will be populated with the request's response once the request completes
1418// successfully.
1419//
1420// Use "Send" method on the returned Request to send the API call to the service.
1421// the "output" return value is not valid until after Send returns without error.
1422//
1423// See CreateSqlInjectionMatchSet for more information on using the CreateSqlInjectionMatchSet
1424// API call, and error handling.
1425//
1426// This method is useful when you want to inject custom logic or configuration
1427// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1428//
1429//
1430//    // Example sending a request using the CreateSqlInjectionMatchSetRequest method.
1431//    req, resp := client.CreateSqlInjectionMatchSetRequest(params)
1432//
1433//    err := req.Send()
1434//    if err == nil { // resp is now filled
1435//        fmt.Println(resp)
1436//    }
1437//
1438// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSqlInjectionMatchSet
1439func (c *WAFRegional) CreateSqlInjectionMatchSetRequest(input *waf.CreateSqlInjectionMatchSetInput) (req *request.Request, output *waf.CreateSqlInjectionMatchSetOutput) {
1440	op := &request.Operation{
1441		Name:       opCreateSqlInjectionMatchSet,
1442		HTTPMethod: "POST",
1443		HTTPPath:   "/",
1444	}
1445
1446	if input == nil {
1447		input = &waf.CreateSqlInjectionMatchSetInput{}
1448	}
1449
1450	output = &waf.CreateSqlInjectionMatchSetOutput{}
1451	req = c.newRequest(op, input, output)
1452	return
1453}
1454
1455// CreateSqlInjectionMatchSet API operation for AWS WAF Regional.
1456//
1457// Creates a SqlInjectionMatchSet, which you use to allow, block, or count requests
1458// that contain snippets of SQL code in a specified part of web requests. AWS
1459// WAF searches for character sequences that are likely to be malicious strings.
1460//
1461// To create and configure a SqlInjectionMatchSet, perform the following steps:
1462//
1463// Use GetChangeToken to get the change token that you provide in the ChangeToken
1464// parameter of a CreateSqlInjectionMatchSet request.
1465//
1466// Submit a CreateSqlInjectionMatchSet request.
1467//
1468// Use GetChangeToken to get the change token that you provide in the ChangeToken
1469// parameter of an UpdateSqlInjectionMatchSet request.
1470//
1471// Submit an UpdateSqlInjectionMatchSet request to specify the parts of web
1472// requests in which you want to allow, block, or count malicious SQL code.
1473//
1474// For more information about how to use the AWS WAF API to allow or block HTTP
1475// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1476//
1477// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1478// with awserr.Error's Code and Message methods to get detailed information about
1479// the error.
1480//
1481// See the AWS API reference guide for AWS WAF Regional's
1482// API operation CreateSqlInjectionMatchSet for usage and error information.
1483//
1484// Returned Error Codes:
1485//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
1486//   The name specified is invalid.
1487//
1488//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
1489//   The operation failed because of a system problem, even though the request
1490//   was valid. Retry your request.
1491//
1492//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
1493//   The operation failed because you tried to create, update, or delete an object
1494//   by using an invalid account identifier.
1495//
1496//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
1497//   The operation failed because AWS WAF didn't recognize a parameter in the
1498//   request. For example:
1499//
1500//      * You specified an invalid parameter name.
1501//
1502//      * You specified an invalid value.
1503//
1504//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1505//      using an action other than INSERT or DELETE.
1506//
1507//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1508//      BLOCK, or COUNT.
1509//
1510//      * You tried to create a RateBasedRule with a RateKey value other than
1511//      IP.
1512//
1513//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1514//      BLOCK, or COUNT.
1515//
1516//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1517//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1518//
1519//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1520//      for Data.
1521//
1522//      * Your request references an ARN that is malformed, or corresponds to
1523//      a resource with which a web ACL cannot be associated.
1524//
1525//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
1526//   The operation failed because you tried to create, update, or delete an object
1527//   by using a change token that has already been used.
1528//
1529//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
1530//   The operation exceeds a resource limit, for example, the maximum number of
1531//   WebACL objects that you can create for an AWS account. For more information,
1532//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1533//   in the AWS WAF Developer Guide.
1534//
1535// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateSqlInjectionMatchSet
1536func (c *WAFRegional) CreateSqlInjectionMatchSet(input *waf.CreateSqlInjectionMatchSetInput) (*waf.CreateSqlInjectionMatchSetOutput, error) {
1537	req, out := c.CreateSqlInjectionMatchSetRequest(input)
1538	return out, req.Send()
1539}
1540
1541// CreateSqlInjectionMatchSetWithContext is the same as CreateSqlInjectionMatchSet with the addition of
1542// the ability to pass a context and additional request options.
1543//
1544// See CreateSqlInjectionMatchSet for details on how to use this API operation.
1545//
1546// The context must be non-nil and will be used for request cancellation. If
1547// the context is nil a panic will occur. In the future the SDK may create
1548// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1549// for more information on using Contexts.
1550func (c *WAFRegional) CreateSqlInjectionMatchSetWithContext(ctx aws.Context, input *waf.CreateSqlInjectionMatchSetInput, opts ...request.Option) (*waf.CreateSqlInjectionMatchSetOutput, error) {
1551	req, out := c.CreateSqlInjectionMatchSetRequest(input)
1552	req.SetContext(ctx)
1553	req.ApplyOptions(opts...)
1554	return out, req.Send()
1555}
1556
1557const opCreateWebACL = "CreateWebACL"
1558
1559// CreateWebACLRequest generates a "aws/request.Request" representing the
1560// client's request for the CreateWebACL operation. The "output" return
1561// value will be populated with the request's response once the request completes
1562// successfully.
1563//
1564// Use "Send" method on the returned Request to send the API call to the service.
1565// the "output" return value is not valid until after Send returns without error.
1566//
1567// See CreateWebACL for more information on using the CreateWebACL
1568// API call, and error handling.
1569//
1570// This method is useful when you want to inject custom logic or configuration
1571// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1572//
1573//
1574//    // Example sending a request using the CreateWebACLRequest method.
1575//    req, resp := client.CreateWebACLRequest(params)
1576//
1577//    err := req.Send()
1578//    if err == nil { // resp is now filled
1579//        fmt.Println(resp)
1580//    }
1581//
1582// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateWebACL
1583func (c *WAFRegional) CreateWebACLRequest(input *waf.CreateWebACLInput) (req *request.Request, output *waf.CreateWebACLOutput) {
1584	op := &request.Operation{
1585		Name:       opCreateWebACL,
1586		HTTPMethod: "POST",
1587		HTTPPath:   "/",
1588	}
1589
1590	if input == nil {
1591		input = &waf.CreateWebACLInput{}
1592	}
1593
1594	output = &waf.CreateWebACLOutput{}
1595	req = c.newRequest(op, input, output)
1596	return
1597}
1598
1599// CreateWebACL API operation for AWS WAF Regional.
1600//
1601// Creates a WebACL, which contains the Rules that identify the CloudFront web
1602// requests that you want to allow, block, or count. AWS WAF evaluates Rules
1603// in order based on the value of Priority for each Rule.
1604//
1605// You also specify a default action, either ALLOW or BLOCK. If a web request
1606// doesn't match any of the Rules in a WebACL, AWS WAF responds to the request
1607// with the default action.
1608//
1609// To create and configure a WebACL, perform the following steps:
1610//
1611// Create and update the ByteMatchSet objects and other predicates that you
1612// want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet,
1613// CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.
1614//
1615// Create and update the Rules that you want to include in the WebACL. For more
1616// information, see CreateRule and UpdateRule.
1617//
1618// Use GetChangeToken to get the change token that you provide in the ChangeToken
1619// parameter of a CreateWebACL request.
1620//
1621// Submit a CreateWebACL request.
1622//
1623// Use GetChangeToken to get the change token that you provide in the ChangeToken
1624// parameter of an UpdateWebACL request.
1625//
1626// Submit an UpdateWebACL request to specify the Rules that you want to include
1627// in the WebACL, to specify the default action, and to associate the WebACL
1628// with a CloudFront distribution.
1629//
1630// For more information about how to use the AWS WAF API, see the AWS WAF Developer
1631// Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1632//
1633// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1634// with awserr.Error's Code and Message methods to get detailed information about
1635// the error.
1636//
1637// See the AWS API reference guide for AWS WAF Regional's
1638// API operation CreateWebACL for usage and error information.
1639//
1640// Returned Error Codes:
1641//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
1642//   The operation failed because you tried to create, update, or delete an object
1643//   by using a change token that has already been used.
1644//
1645//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
1646//   The operation failed because of a system problem, even though the request
1647//   was valid. Retry your request.
1648//
1649//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
1650//   The operation failed because you tried to create, update, or delete an object
1651//   by using an invalid account identifier.
1652//
1653//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
1654//   The name specified is invalid.
1655//
1656//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
1657//   The operation failed because AWS WAF didn't recognize a parameter in the
1658//   request. For example:
1659//
1660//      * You specified an invalid parameter name.
1661//
1662//      * You specified an invalid value.
1663//
1664//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1665//      using an action other than INSERT or DELETE.
1666//
1667//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1668//      BLOCK, or COUNT.
1669//
1670//      * You tried to create a RateBasedRule with a RateKey value other than
1671//      IP.
1672//
1673//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1674//      BLOCK, or COUNT.
1675//
1676//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1677//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1678//
1679//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1680//      for Data.
1681//
1682//      * Your request references an ARN that is malformed, or corresponds to
1683//      a resource with which a web ACL cannot be associated.
1684//
1685//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
1686//   The operation exceeds a resource limit, for example, the maximum number of
1687//   WebACL objects that you can create for an AWS account. For more information,
1688//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1689//   in the AWS WAF Developer Guide.
1690//
1691//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
1692//
1693//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
1694//
1695//   * ErrCodeWAFBadRequestException "WAFBadRequestException"
1696//
1697// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateWebACL
1698func (c *WAFRegional) CreateWebACL(input *waf.CreateWebACLInput) (*waf.CreateWebACLOutput, error) {
1699	req, out := c.CreateWebACLRequest(input)
1700	return out, req.Send()
1701}
1702
1703// CreateWebACLWithContext is the same as CreateWebACL with the addition of
1704// the ability to pass a context and additional request options.
1705//
1706// See CreateWebACL for details on how to use this API operation.
1707//
1708// The context must be non-nil and will be used for request cancellation. If
1709// the context is nil a panic will occur. In the future the SDK may create
1710// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1711// for more information on using Contexts.
1712func (c *WAFRegional) CreateWebACLWithContext(ctx aws.Context, input *waf.CreateWebACLInput, opts ...request.Option) (*waf.CreateWebACLOutput, error) {
1713	req, out := c.CreateWebACLRequest(input)
1714	req.SetContext(ctx)
1715	req.ApplyOptions(opts...)
1716	return out, req.Send()
1717}
1718
1719const opCreateXssMatchSet = "CreateXssMatchSet"
1720
1721// CreateXssMatchSetRequest generates a "aws/request.Request" representing the
1722// client's request for the CreateXssMatchSet operation. The "output" return
1723// value will be populated with the request's response once the request completes
1724// successfully.
1725//
1726// Use "Send" method on the returned Request to send the API call to the service.
1727// the "output" return value is not valid until after Send returns without error.
1728//
1729// See CreateXssMatchSet for more information on using the CreateXssMatchSet
1730// API call, and error handling.
1731//
1732// This method is useful when you want to inject custom logic or configuration
1733// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1734//
1735//
1736//    // Example sending a request using the CreateXssMatchSetRequest method.
1737//    req, resp := client.CreateXssMatchSetRequest(params)
1738//
1739//    err := req.Send()
1740//    if err == nil { // resp is now filled
1741//        fmt.Println(resp)
1742//    }
1743//
1744// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateXssMatchSet
1745func (c *WAFRegional) CreateXssMatchSetRequest(input *waf.CreateXssMatchSetInput) (req *request.Request, output *waf.CreateXssMatchSetOutput) {
1746	op := &request.Operation{
1747		Name:       opCreateXssMatchSet,
1748		HTTPMethod: "POST",
1749		HTTPPath:   "/",
1750	}
1751
1752	if input == nil {
1753		input = &waf.CreateXssMatchSetInput{}
1754	}
1755
1756	output = &waf.CreateXssMatchSetOutput{}
1757	req = c.newRequest(op, input, output)
1758	return
1759}
1760
1761// CreateXssMatchSet API operation for AWS WAF Regional.
1762//
1763// Creates an XssMatchSet, which you use to allow, block, or count requests
1764// that contain cross-site scripting attacks in the specified part of web requests.
1765// AWS WAF searches for character sequences that are likely to be malicious
1766// strings.
1767//
1768// To create and configure an XssMatchSet, perform the following steps:
1769//
1770// Use GetChangeToken to get the change token that you provide in the ChangeToken
1771// parameter of a CreateXssMatchSet request.
1772//
1773// Submit a CreateXssMatchSet request.
1774//
1775// Use GetChangeToken to get the change token that you provide in the ChangeToken
1776// parameter of an UpdateXssMatchSet request.
1777//
1778// Submit an UpdateXssMatchSet request to specify the parts of web requests
1779// in which you want to allow, block, or count cross-site scripting attacks.
1780//
1781// For more information about how to use the AWS WAF API to allow or block HTTP
1782// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
1783//
1784// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1785// with awserr.Error's Code and Message methods to get detailed information about
1786// the error.
1787//
1788// See the AWS API reference guide for AWS WAF Regional's
1789// API operation CreateXssMatchSet for usage and error information.
1790//
1791// Returned Error Codes:
1792//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
1793//   The name specified is invalid.
1794//
1795//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
1796//   The operation failed because of a system problem, even though the request
1797//   was valid. Retry your request.
1798//
1799//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
1800//   The operation failed because you tried to create, update, or delete an object
1801//   by using an invalid account identifier.
1802//
1803//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
1804//   The operation failed because AWS WAF didn't recognize a parameter in the
1805//   request. For example:
1806//
1807//      * You specified an invalid parameter name.
1808//
1809//      * You specified an invalid value.
1810//
1811//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
1812//      using an action other than INSERT or DELETE.
1813//
1814//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
1815//      BLOCK, or COUNT.
1816//
1817//      * You tried to create a RateBasedRule with a RateKey value other than
1818//      IP.
1819//
1820//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
1821//      BLOCK, or COUNT.
1822//
1823//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
1824//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
1825//
1826//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
1827//      for Data.
1828//
1829//      * Your request references an ARN that is malformed, or corresponds to
1830//      a resource with which a web ACL cannot be associated.
1831//
1832//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
1833//   The operation failed because you tried to create, update, or delete an object
1834//   by using a change token that has already been used.
1835//
1836//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
1837//   The operation exceeds a resource limit, for example, the maximum number of
1838//   WebACL objects that you can create for an AWS account. For more information,
1839//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
1840//   in the AWS WAF Developer Guide.
1841//
1842// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/CreateXssMatchSet
1843func (c *WAFRegional) CreateXssMatchSet(input *waf.CreateXssMatchSetInput) (*waf.CreateXssMatchSetOutput, error) {
1844	req, out := c.CreateXssMatchSetRequest(input)
1845	return out, req.Send()
1846}
1847
1848// CreateXssMatchSetWithContext is the same as CreateXssMatchSet with the addition of
1849// the ability to pass a context and additional request options.
1850//
1851// See CreateXssMatchSet for details on how to use this API operation.
1852//
1853// The context must be non-nil and will be used for request cancellation. If
1854// the context is nil a panic will occur. In the future the SDK may create
1855// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1856// for more information on using Contexts.
1857func (c *WAFRegional) CreateXssMatchSetWithContext(ctx aws.Context, input *waf.CreateXssMatchSetInput, opts ...request.Option) (*waf.CreateXssMatchSetOutput, error) {
1858	req, out := c.CreateXssMatchSetRequest(input)
1859	req.SetContext(ctx)
1860	req.ApplyOptions(opts...)
1861	return out, req.Send()
1862}
1863
1864const opDeleteByteMatchSet = "DeleteByteMatchSet"
1865
1866// DeleteByteMatchSetRequest generates a "aws/request.Request" representing the
1867// client's request for the DeleteByteMatchSet operation. The "output" return
1868// value will be populated with the request's response once the request completes
1869// successfully.
1870//
1871// Use "Send" method on the returned Request to send the API call to the service.
1872// the "output" return value is not valid until after Send returns without error.
1873//
1874// See DeleteByteMatchSet for more information on using the DeleteByteMatchSet
1875// API call, and error handling.
1876//
1877// This method is useful when you want to inject custom logic or configuration
1878// into the SDK's request lifecycle. Such as custom headers, or retry logic.
1879//
1880//
1881//    // Example sending a request using the DeleteByteMatchSetRequest method.
1882//    req, resp := client.DeleteByteMatchSetRequest(params)
1883//
1884//    err := req.Send()
1885//    if err == nil { // resp is now filled
1886//        fmt.Println(resp)
1887//    }
1888//
1889// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteByteMatchSet
1890func (c *WAFRegional) DeleteByteMatchSetRequest(input *waf.DeleteByteMatchSetInput) (req *request.Request, output *waf.DeleteByteMatchSetOutput) {
1891	op := &request.Operation{
1892		Name:       opDeleteByteMatchSet,
1893		HTTPMethod: "POST",
1894		HTTPPath:   "/",
1895	}
1896
1897	if input == nil {
1898		input = &waf.DeleteByteMatchSetInput{}
1899	}
1900
1901	output = &waf.DeleteByteMatchSetOutput{}
1902	req = c.newRequest(op, input, output)
1903	return
1904}
1905
1906// DeleteByteMatchSet API operation for AWS WAF Regional.
1907//
1908// Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's
1909// still used in any Rules or if it still includes any ByteMatchTuple objects
1910// (any filters).
1911//
1912// If you just want to remove a ByteMatchSet from a Rule, use UpdateRule.
1913//
1914// To permanently delete a ByteMatchSet, perform the following steps:
1915//
1916// Update the ByteMatchSet to remove filters, if any. For more information,
1917// see UpdateByteMatchSet.
1918//
1919// Use GetChangeToken to get the change token that you provide in the ChangeToken
1920// parameter of a DeleteByteMatchSet request.
1921//
1922// Submit a DeleteByteMatchSet request.
1923//
1924// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
1925// with awserr.Error's Code and Message methods to get detailed information about
1926// the error.
1927//
1928// See the AWS API reference guide for AWS WAF Regional's
1929// API operation DeleteByteMatchSet for usage and error information.
1930//
1931// Returned Error Codes:
1932//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
1933//   The operation failed because of a system problem, even though the request
1934//   was valid. Retry your request.
1935//
1936//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
1937//   The operation failed because you tried to create, update, or delete an object
1938//   by using an invalid account identifier.
1939//
1940//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
1941//   The operation failed because the referenced object doesn't exist.
1942//
1943//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
1944//   The operation failed because you tried to delete an object that is still
1945//   in use. For example:
1946//
1947//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
1948//
1949//      * You tried to delete a Rule that is still referenced by a WebACL.
1950//
1951//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
1952//   The operation failed because you tried to create, update, or delete an object
1953//   by using a change token that has already been used.
1954//
1955//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
1956//   The operation failed because you tried to delete an object that isn't empty.
1957//   For example:
1958//
1959//      * You tried to delete a WebACL that still contains one or more Rule objects.
1960//
1961//      * You tried to delete a Rule that still contains one or more ByteMatchSet
1962//      objects or other predicates.
1963//
1964//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
1965//      objects.
1966//
1967//      * You tried to delete an IPSet that references one or more IP addresses.
1968//
1969// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteByteMatchSet
1970func (c *WAFRegional) DeleteByteMatchSet(input *waf.DeleteByteMatchSetInput) (*waf.DeleteByteMatchSetOutput, error) {
1971	req, out := c.DeleteByteMatchSetRequest(input)
1972	return out, req.Send()
1973}
1974
1975// DeleteByteMatchSetWithContext is the same as DeleteByteMatchSet with the addition of
1976// the ability to pass a context and additional request options.
1977//
1978// See DeleteByteMatchSet for details on how to use this API operation.
1979//
1980// The context must be non-nil and will be used for request cancellation. If
1981// the context is nil a panic will occur. In the future the SDK may create
1982// sub-contexts for http.Requests. See https://golang.org/pkg/context/
1983// for more information on using Contexts.
1984func (c *WAFRegional) DeleteByteMatchSetWithContext(ctx aws.Context, input *waf.DeleteByteMatchSetInput, opts ...request.Option) (*waf.DeleteByteMatchSetOutput, error) {
1985	req, out := c.DeleteByteMatchSetRequest(input)
1986	req.SetContext(ctx)
1987	req.ApplyOptions(opts...)
1988	return out, req.Send()
1989}
1990
1991const opDeleteGeoMatchSet = "DeleteGeoMatchSet"
1992
1993// DeleteGeoMatchSetRequest generates a "aws/request.Request" representing the
1994// client's request for the DeleteGeoMatchSet operation. The "output" return
1995// value will be populated with the request's response once the request completes
1996// successfully.
1997//
1998// Use "Send" method on the returned Request to send the API call to the service.
1999// the "output" return value is not valid until after Send returns without error.
2000//
2001// See DeleteGeoMatchSet for more information on using the DeleteGeoMatchSet
2002// API call, and error handling.
2003//
2004// This method is useful when you want to inject custom logic or configuration
2005// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2006//
2007//
2008//    // Example sending a request using the DeleteGeoMatchSetRequest method.
2009//    req, resp := client.DeleteGeoMatchSetRequest(params)
2010//
2011//    err := req.Send()
2012//    if err == nil { // resp is now filled
2013//        fmt.Println(resp)
2014//    }
2015//
2016// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteGeoMatchSet
2017func (c *WAFRegional) DeleteGeoMatchSetRequest(input *waf.DeleteGeoMatchSetInput) (req *request.Request, output *waf.DeleteGeoMatchSetOutput) {
2018	op := &request.Operation{
2019		Name:       opDeleteGeoMatchSet,
2020		HTTPMethod: "POST",
2021		HTTPPath:   "/",
2022	}
2023
2024	if input == nil {
2025		input = &waf.DeleteGeoMatchSetInput{}
2026	}
2027
2028	output = &waf.DeleteGeoMatchSetOutput{}
2029	req = c.newRequest(op, input, output)
2030	return
2031}
2032
2033// DeleteGeoMatchSet API operation for AWS WAF Regional.
2034//
2035// Permanently deletes a GeoMatchSet. You can't delete a GeoMatchSet if it's
2036// still used in any Rules or if it still includes any countries.
2037//
2038// If you just want to remove a GeoMatchSet from a Rule, use UpdateRule.
2039//
2040// To permanently delete a GeoMatchSet from AWS WAF, perform the following steps:
2041//
2042// Update the GeoMatchSet to remove any countries. For more information, see
2043// UpdateGeoMatchSet.
2044//
2045// Use GetChangeToken to get the change token that you provide in the ChangeToken
2046// parameter of a DeleteGeoMatchSet request.
2047//
2048// Submit a DeleteGeoMatchSet request.
2049//
2050// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2051// with awserr.Error's Code and Message methods to get detailed information about
2052// the error.
2053//
2054// See the AWS API reference guide for AWS WAF Regional's
2055// API operation DeleteGeoMatchSet for usage and error information.
2056//
2057// Returned Error Codes:
2058//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2059//   The operation failed because you tried to create, update, or delete an object
2060//   by using a change token that has already been used.
2061//
2062//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2063//   The operation failed because of a system problem, even though the request
2064//   was valid. Retry your request.
2065//
2066//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
2067//   The operation failed because you tried to create, update, or delete an object
2068//   by using an invalid account identifier.
2069//
2070//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
2071//   The operation failed because the referenced object doesn't exist.
2072//
2073//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
2074//   The operation failed because you tried to delete an object that is still
2075//   in use. For example:
2076//
2077//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2078//
2079//      * You tried to delete a Rule that is still referenced by a WebACL.
2080//
2081//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
2082//   The operation failed because you tried to delete an object that isn't empty.
2083//   For example:
2084//
2085//      * You tried to delete a WebACL that still contains one or more Rule objects.
2086//
2087//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2088//      objects or other predicates.
2089//
2090//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2091//      objects.
2092//
2093//      * You tried to delete an IPSet that references one or more IP addresses.
2094//
2095// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteGeoMatchSet
2096func (c *WAFRegional) DeleteGeoMatchSet(input *waf.DeleteGeoMatchSetInput) (*waf.DeleteGeoMatchSetOutput, error) {
2097	req, out := c.DeleteGeoMatchSetRequest(input)
2098	return out, req.Send()
2099}
2100
2101// DeleteGeoMatchSetWithContext is the same as DeleteGeoMatchSet with the addition of
2102// the ability to pass a context and additional request options.
2103//
2104// See DeleteGeoMatchSet for details on how to use this API operation.
2105//
2106// The context must be non-nil and will be used for request cancellation. If
2107// the context is nil a panic will occur. In the future the SDK may create
2108// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2109// for more information on using Contexts.
2110func (c *WAFRegional) DeleteGeoMatchSetWithContext(ctx aws.Context, input *waf.DeleteGeoMatchSetInput, opts ...request.Option) (*waf.DeleteGeoMatchSetOutput, error) {
2111	req, out := c.DeleteGeoMatchSetRequest(input)
2112	req.SetContext(ctx)
2113	req.ApplyOptions(opts...)
2114	return out, req.Send()
2115}
2116
2117const opDeleteIPSet = "DeleteIPSet"
2118
2119// DeleteIPSetRequest generates a "aws/request.Request" representing the
2120// client's request for the DeleteIPSet operation. The "output" return
2121// value will be populated with the request's response once the request completes
2122// successfully.
2123//
2124// Use "Send" method on the returned Request to send the API call to the service.
2125// the "output" return value is not valid until after Send returns without error.
2126//
2127// See DeleteIPSet for more information on using the DeleteIPSet
2128// API call, and error handling.
2129//
2130// This method is useful when you want to inject custom logic or configuration
2131// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2132//
2133//
2134//    // Example sending a request using the DeleteIPSetRequest method.
2135//    req, resp := client.DeleteIPSetRequest(params)
2136//
2137//    err := req.Send()
2138//    if err == nil { // resp is now filled
2139//        fmt.Println(resp)
2140//    }
2141//
2142// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteIPSet
2143func (c *WAFRegional) DeleteIPSetRequest(input *waf.DeleteIPSetInput) (req *request.Request, output *waf.DeleteIPSetOutput) {
2144	op := &request.Operation{
2145		Name:       opDeleteIPSet,
2146		HTTPMethod: "POST",
2147		HTTPPath:   "/",
2148	}
2149
2150	if input == nil {
2151		input = &waf.DeleteIPSetInput{}
2152	}
2153
2154	output = &waf.DeleteIPSetOutput{}
2155	req = c.newRequest(op, input, output)
2156	return
2157}
2158
2159// DeleteIPSet API operation for AWS WAF Regional.
2160//
2161// Permanently deletes an IPSet. You can't delete an IPSet if it's still used
2162// in any Rules or if it still includes any IP addresses.
2163//
2164// If you just want to remove an IPSet from a Rule, use UpdateRule.
2165//
2166// To permanently delete an IPSet from AWS WAF, perform the following steps:
2167//
2168// Update the IPSet to remove IP address ranges, if any. For more information,
2169// see UpdateIPSet.
2170//
2171// Use GetChangeToken to get the change token that you provide in the ChangeToken
2172// parameter of a DeleteIPSet request.
2173//
2174// Submit a DeleteIPSet request.
2175//
2176// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2177// with awserr.Error's Code and Message methods to get detailed information about
2178// the error.
2179//
2180// See the AWS API reference guide for AWS WAF Regional's
2181// API operation DeleteIPSet for usage and error information.
2182//
2183// Returned Error Codes:
2184//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2185//   The operation failed because you tried to create, update, or delete an object
2186//   by using a change token that has already been used.
2187//
2188//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2189//   The operation failed because of a system problem, even though the request
2190//   was valid. Retry your request.
2191//
2192//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
2193//   The operation failed because you tried to create, update, or delete an object
2194//   by using an invalid account identifier.
2195//
2196//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
2197//   The operation failed because the referenced object doesn't exist.
2198//
2199//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
2200//   The operation failed because you tried to delete an object that is still
2201//   in use. For example:
2202//
2203//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2204//
2205//      * You tried to delete a Rule that is still referenced by a WebACL.
2206//
2207//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
2208//   The operation failed because you tried to delete an object that isn't empty.
2209//   For example:
2210//
2211//      * You tried to delete a WebACL that still contains one or more Rule objects.
2212//
2213//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2214//      objects or other predicates.
2215//
2216//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2217//      objects.
2218//
2219//      * You tried to delete an IPSet that references one or more IP addresses.
2220//
2221// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteIPSet
2222func (c *WAFRegional) DeleteIPSet(input *waf.DeleteIPSetInput) (*waf.DeleteIPSetOutput, error) {
2223	req, out := c.DeleteIPSetRequest(input)
2224	return out, req.Send()
2225}
2226
2227// DeleteIPSetWithContext is the same as DeleteIPSet with the addition of
2228// the ability to pass a context and additional request options.
2229//
2230// See DeleteIPSet for details on how to use this API operation.
2231//
2232// The context must be non-nil and will be used for request cancellation. If
2233// the context is nil a panic will occur. In the future the SDK may create
2234// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2235// for more information on using Contexts.
2236func (c *WAFRegional) DeleteIPSetWithContext(ctx aws.Context, input *waf.DeleteIPSetInput, opts ...request.Option) (*waf.DeleteIPSetOutput, error) {
2237	req, out := c.DeleteIPSetRequest(input)
2238	req.SetContext(ctx)
2239	req.ApplyOptions(opts...)
2240	return out, req.Send()
2241}
2242
2243const opDeleteLoggingConfiguration = "DeleteLoggingConfiguration"
2244
2245// DeleteLoggingConfigurationRequest generates a "aws/request.Request" representing the
2246// client's request for the DeleteLoggingConfiguration operation. The "output" return
2247// value will be populated with the request's response once the request completes
2248// successfully.
2249//
2250// Use "Send" method on the returned Request to send the API call to the service.
2251// the "output" return value is not valid until after Send returns without error.
2252//
2253// See DeleteLoggingConfiguration for more information on using the DeleteLoggingConfiguration
2254// API call, and error handling.
2255//
2256// This method is useful when you want to inject custom logic or configuration
2257// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2258//
2259//
2260//    // Example sending a request using the DeleteLoggingConfigurationRequest method.
2261//    req, resp := client.DeleteLoggingConfigurationRequest(params)
2262//
2263//    err := req.Send()
2264//    if err == nil { // resp is now filled
2265//        fmt.Println(resp)
2266//    }
2267//
2268// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteLoggingConfiguration
2269func (c *WAFRegional) DeleteLoggingConfigurationRequest(input *waf.DeleteLoggingConfigurationInput) (req *request.Request, output *waf.DeleteLoggingConfigurationOutput) {
2270	op := &request.Operation{
2271		Name:       opDeleteLoggingConfiguration,
2272		HTTPMethod: "POST",
2273		HTTPPath:   "/",
2274	}
2275
2276	if input == nil {
2277		input = &waf.DeleteLoggingConfigurationInput{}
2278	}
2279
2280	output = &waf.DeleteLoggingConfigurationOutput{}
2281	req = c.newRequest(op, input, output)
2282	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2283	return
2284}
2285
2286// DeleteLoggingConfiguration API operation for AWS WAF Regional.
2287//
2288// Permanently deletes the LoggingConfiguration from the specified web ACL.
2289//
2290// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2291// with awserr.Error's Code and Message methods to get detailed information about
2292// the error.
2293//
2294// See the AWS API reference guide for AWS WAF Regional's
2295// API operation DeleteLoggingConfiguration for usage and error information.
2296//
2297// Returned Error Codes:
2298//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2299//   The operation failed because of a system problem, even though the request
2300//   was valid. Retry your request.
2301//
2302//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
2303//   The operation failed because the referenced object doesn't exist.
2304//
2305//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2306//   The operation failed because you tried to create, update, or delete an object
2307//   by using a change token that has already been used.
2308//
2309// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteLoggingConfiguration
2310func (c *WAFRegional) DeleteLoggingConfiguration(input *waf.DeleteLoggingConfigurationInput) (*waf.DeleteLoggingConfigurationOutput, error) {
2311	req, out := c.DeleteLoggingConfigurationRequest(input)
2312	return out, req.Send()
2313}
2314
2315// DeleteLoggingConfigurationWithContext is the same as DeleteLoggingConfiguration with the addition of
2316// the ability to pass a context and additional request options.
2317//
2318// See DeleteLoggingConfiguration for details on how to use this API operation.
2319//
2320// The context must be non-nil and will be used for request cancellation. If
2321// the context is nil a panic will occur. In the future the SDK may create
2322// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2323// for more information on using Contexts.
2324func (c *WAFRegional) DeleteLoggingConfigurationWithContext(ctx aws.Context, input *waf.DeleteLoggingConfigurationInput, opts ...request.Option) (*waf.DeleteLoggingConfigurationOutput, error) {
2325	req, out := c.DeleteLoggingConfigurationRequest(input)
2326	req.SetContext(ctx)
2327	req.ApplyOptions(opts...)
2328	return out, req.Send()
2329}
2330
2331const opDeletePermissionPolicy = "DeletePermissionPolicy"
2332
2333// DeletePermissionPolicyRequest generates a "aws/request.Request" representing the
2334// client's request for the DeletePermissionPolicy operation. The "output" return
2335// value will be populated with the request's response once the request completes
2336// successfully.
2337//
2338// Use "Send" method on the returned Request to send the API call to the service.
2339// the "output" return value is not valid until after Send returns without error.
2340//
2341// See DeletePermissionPolicy for more information on using the DeletePermissionPolicy
2342// API call, and error handling.
2343//
2344// This method is useful when you want to inject custom logic or configuration
2345// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2346//
2347//
2348//    // Example sending a request using the DeletePermissionPolicyRequest method.
2349//    req, resp := client.DeletePermissionPolicyRequest(params)
2350//
2351//    err := req.Send()
2352//    if err == nil { // resp is now filled
2353//        fmt.Println(resp)
2354//    }
2355//
2356// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeletePermissionPolicy
2357func (c *WAFRegional) DeletePermissionPolicyRequest(input *waf.DeletePermissionPolicyInput) (req *request.Request, output *waf.DeletePermissionPolicyOutput) {
2358	op := &request.Operation{
2359		Name:       opDeletePermissionPolicy,
2360		HTTPMethod: "POST",
2361		HTTPPath:   "/",
2362	}
2363
2364	if input == nil {
2365		input = &waf.DeletePermissionPolicyInput{}
2366	}
2367
2368	output = &waf.DeletePermissionPolicyOutput{}
2369	req = c.newRequest(op, input, output)
2370	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
2371	return
2372}
2373
2374// DeletePermissionPolicy API operation for AWS WAF Regional.
2375//
2376// Permanently deletes an IAM policy from the specified RuleGroup.
2377//
2378// The user making the request must be the owner of the RuleGroup.
2379//
2380// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2381// with awserr.Error's Code and Message methods to get detailed information about
2382// the error.
2383//
2384// See the AWS API reference guide for AWS WAF Regional's
2385// API operation DeletePermissionPolicy for usage and error information.
2386//
2387// Returned Error Codes:
2388//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2389//   The operation failed because of a system problem, even though the request
2390//   was valid. Retry your request.
2391//
2392//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2393//   The operation failed because you tried to create, update, or delete an object
2394//   by using a change token that has already been used.
2395//
2396//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
2397//   The operation failed because the referenced object doesn't exist.
2398//
2399// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeletePermissionPolicy
2400func (c *WAFRegional) DeletePermissionPolicy(input *waf.DeletePermissionPolicyInput) (*waf.DeletePermissionPolicyOutput, error) {
2401	req, out := c.DeletePermissionPolicyRequest(input)
2402	return out, req.Send()
2403}
2404
2405// DeletePermissionPolicyWithContext is the same as DeletePermissionPolicy with the addition of
2406// the ability to pass a context and additional request options.
2407//
2408// See DeletePermissionPolicy for details on how to use this API operation.
2409//
2410// The context must be non-nil and will be used for request cancellation. If
2411// the context is nil a panic will occur. In the future the SDK may create
2412// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2413// for more information on using Contexts.
2414func (c *WAFRegional) DeletePermissionPolicyWithContext(ctx aws.Context, input *waf.DeletePermissionPolicyInput, opts ...request.Option) (*waf.DeletePermissionPolicyOutput, error) {
2415	req, out := c.DeletePermissionPolicyRequest(input)
2416	req.SetContext(ctx)
2417	req.ApplyOptions(opts...)
2418	return out, req.Send()
2419}
2420
2421const opDeleteRateBasedRule = "DeleteRateBasedRule"
2422
2423// DeleteRateBasedRuleRequest generates a "aws/request.Request" representing the
2424// client's request for the DeleteRateBasedRule operation. The "output" return
2425// value will be populated with the request's response once the request completes
2426// successfully.
2427//
2428// Use "Send" method on the returned Request to send the API call to the service.
2429// the "output" return value is not valid until after Send returns without error.
2430//
2431// See DeleteRateBasedRule for more information on using the DeleteRateBasedRule
2432// API call, and error handling.
2433//
2434// This method is useful when you want to inject custom logic or configuration
2435// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2436//
2437//
2438//    // Example sending a request using the DeleteRateBasedRuleRequest method.
2439//    req, resp := client.DeleteRateBasedRuleRequest(params)
2440//
2441//    err := req.Send()
2442//    if err == nil { // resp is now filled
2443//        fmt.Println(resp)
2444//    }
2445//
2446// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRateBasedRule
2447func (c *WAFRegional) DeleteRateBasedRuleRequest(input *waf.DeleteRateBasedRuleInput) (req *request.Request, output *waf.DeleteRateBasedRuleOutput) {
2448	op := &request.Operation{
2449		Name:       opDeleteRateBasedRule,
2450		HTTPMethod: "POST",
2451		HTTPPath:   "/",
2452	}
2453
2454	if input == nil {
2455		input = &waf.DeleteRateBasedRuleInput{}
2456	}
2457
2458	output = &waf.DeleteRateBasedRuleOutput{}
2459	req = c.newRequest(op, input, output)
2460	return
2461}
2462
2463// DeleteRateBasedRule API operation for AWS WAF Regional.
2464//
2465// Permanently deletes a RateBasedRule. You can't delete a rule if it's still
2466// used in any WebACL objects or if it still includes any predicates, such as
2467// ByteMatchSet objects.
2468//
2469// If you just want to remove a rule from a WebACL, use UpdateWebACL.
2470//
2471// To permanently delete a RateBasedRule from AWS WAF, perform the following
2472// steps:
2473//
2474// Update the RateBasedRule to remove predicates, if any. For more information,
2475// see UpdateRateBasedRule.
2476//
2477// Use GetChangeToken to get the change token that you provide in the ChangeToken
2478// parameter of a DeleteRateBasedRule request.
2479//
2480// Submit a DeleteRateBasedRule request.
2481//
2482// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2483// with awserr.Error's Code and Message methods to get detailed information about
2484// the error.
2485//
2486// See the AWS API reference guide for AWS WAF Regional's
2487// API operation DeleteRateBasedRule for usage and error information.
2488//
2489// Returned Error Codes:
2490//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2491//   The operation failed because you tried to create, update, or delete an object
2492//   by using a change token that has already been used.
2493//
2494//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2495//   The operation failed because of a system problem, even though the request
2496//   was valid. Retry your request.
2497//
2498//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
2499//   The operation failed because you tried to create, update, or delete an object
2500//   by using an invalid account identifier.
2501//
2502//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
2503//   The operation failed because the referenced object doesn't exist.
2504//
2505//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
2506//   The operation failed because you tried to delete an object that is still
2507//   in use. For example:
2508//
2509//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2510//
2511//      * You tried to delete a Rule that is still referenced by a WebACL.
2512//
2513//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
2514//   The operation failed because you tried to delete an object that isn't empty.
2515//   For example:
2516//
2517//      * You tried to delete a WebACL that still contains one or more Rule objects.
2518//
2519//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2520//      objects or other predicates.
2521//
2522//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2523//      objects.
2524//
2525//      * You tried to delete an IPSet that references one or more IP addresses.
2526//
2527//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
2528//
2529//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
2530//
2531// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRateBasedRule
2532func (c *WAFRegional) DeleteRateBasedRule(input *waf.DeleteRateBasedRuleInput) (*waf.DeleteRateBasedRuleOutput, error) {
2533	req, out := c.DeleteRateBasedRuleRequest(input)
2534	return out, req.Send()
2535}
2536
2537// DeleteRateBasedRuleWithContext is the same as DeleteRateBasedRule with the addition of
2538// the ability to pass a context and additional request options.
2539//
2540// See DeleteRateBasedRule for details on how to use this API operation.
2541//
2542// The context must be non-nil and will be used for request cancellation. If
2543// the context is nil a panic will occur. In the future the SDK may create
2544// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2545// for more information on using Contexts.
2546func (c *WAFRegional) DeleteRateBasedRuleWithContext(ctx aws.Context, input *waf.DeleteRateBasedRuleInput, opts ...request.Option) (*waf.DeleteRateBasedRuleOutput, error) {
2547	req, out := c.DeleteRateBasedRuleRequest(input)
2548	req.SetContext(ctx)
2549	req.ApplyOptions(opts...)
2550	return out, req.Send()
2551}
2552
2553const opDeleteRegexMatchSet = "DeleteRegexMatchSet"
2554
2555// DeleteRegexMatchSetRequest generates a "aws/request.Request" representing the
2556// client's request for the DeleteRegexMatchSet operation. The "output" return
2557// value will be populated with the request's response once the request completes
2558// successfully.
2559//
2560// Use "Send" method on the returned Request to send the API call to the service.
2561// the "output" return value is not valid until after Send returns without error.
2562//
2563// See DeleteRegexMatchSet for more information on using the DeleteRegexMatchSet
2564// API call, and error handling.
2565//
2566// This method is useful when you want to inject custom logic or configuration
2567// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2568//
2569//
2570//    // Example sending a request using the DeleteRegexMatchSetRequest method.
2571//    req, resp := client.DeleteRegexMatchSetRequest(params)
2572//
2573//    err := req.Send()
2574//    if err == nil { // resp is now filled
2575//        fmt.Println(resp)
2576//    }
2577//
2578// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRegexMatchSet
2579func (c *WAFRegional) DeleteRegexMatchSetRequest(input *waf.DeleteRegexMatchSetInput) (req *request.Request, output *waf.DeleteRegexMatchSetOutput) {
2580	op := &request.Operation{
2581		Name:       opDeleteRegexMatchSet,
2582		HTTPMethod: "POST",
2583		HTTPPath:   "/",
2584	}
2585
2586	if input == nil {
2587		input = &waf.DeleteRegexMatchSetInput{}
2588	}
2589
2590	output = &waf.DeleteRegexMatchSetOutput{}
2591	req = c.newRequest(op, input, output)
2592	return
2593}
2594
2595// DeleteRegexMatchSet API operation for AWS WAF Regional.
2596//
2597// Permanently deletes a RegexMatchSet. You can't delete a RegexMatchSet if
2598// it's still used in any Rules or if it still includes any RegexMatchTuples
2599// objects (any filters).
2600//
2601// If you just want to remove a RegexMatchSet from a Rule, use UpdateRule.
2602//
2603// To permanently delete a RegexMatchSet, perform the following steps:
2604//
2605// Update the RegexMatchSet to remove filters, if any. For more information,
2606// see UpdateRegexMatchSet.
2607//
2608// Use GetChangeToken to get the change token that you provide in the ChangeToken
2609// parameter of a DeleteRegexMatchSet request.
2610//
2611// Submit a DeleteRegexMatchSet request.
2612//
2613// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2614// with awserr.Error's Code and Message methods to get detailed information about
2615// the error.
2616//
2617// See the AWS API reference guide for AWS WAF Regional's
2618// API operation DeleteRegexMatchSet for usage and error information.
2619//
2620// Returned Error Codes:
2621//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2622//   The operation failed because of a system problem, even though the request
2623//   was valid. Retry your request.
2624//
2625//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
2626//   The operation failed because you tried to create, update, or delete an object
2627//   by using an invalid account identifier.
2628//
2629//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
2630//   The operation failed because the referenced object doesn't exist.
2631//
2632//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
2633//   The operation failed because you tried to delete an object that is still
2634//   in use. For example:
2635//
2636//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2637//
2638//      * You tried to delete a Rule that is still referenced by a WebACL.
2639//
2640//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2641//   The operation failed because you tried to create, update, or delete an object
2642//   by using a change token that has already been used.
2643//
2644//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
2645//   The operation failed because you tried to delete an object that isn't empty.
2646//   For example:
2647//
2648//      * You tried to delete a WebACL that still contains one or more Rule objects.
2649//
2650//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2651//      objects or other predicates.
2652//
2653//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2654//      objects.
2655//
2656//      * You tried to delete an IPSet that references one or more IP addresses.
2657//
2658// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRegexMatchSet
2659func (c *WAFRegional) DeleteRegexMatchSet(input *waf.DeleteRegexMatchSetInput) (*waf.DeleteRegexMatchSetOutput, error) {
2660	req, out := c.DeleteRegexMatchSetRequest(input)
2661	return out, req.Send()
2662}
2663
2664// DeleteRegexMatchSetWithContext is the same as DeleteRegexMatchSet with the addition of
2665// the ability to pass a context and additional request options.
2666//
2667// See DeleteRegexMatchSet for details on how to use this API operation.
2668//
2669// The context must be non-nil and will be used for request cancellation. If
2670// the context is nil a panic will occur. In the future the SDK may create
2671// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2672// for more information on using Contexts.
2673func (c *WAFRegional) DeleteRegexMatchSetWithContext(ctx aws.Context, input *waf.DeleteRegexMatchSetInput, opts ...request.Option) (*waf.DeleteRegexMatchSetOutput, error) {
2674	req, out := c.DeleteRegexMatchSetRequest(input)
2675	req.SetContext(ctx)
2676	req.ApplyOptions(opts...)
2677	return out, req.Send()
2678}
2679
2680const opDeleteRegexPatternSet = "DeleteRegexPatternSet"
2681
2682// DeleteRegexPatternSetRequest generates a "aws/request.Request" representing the
2683// client's request for the DeleteRegexPatternSet operation. The "output" return
2684// value will be populated with the request's response once the request completes
2685// successfully.
2686//
2687// Use "Send" method on the returned Request to send the API call to the service.
2688// the "output" return value is not valid until after Send returns without error.
2689//
2690// See DeleteRegexPatternSet for more information on using the DeleteRegexPatternSet
2691// API call, and error handling.
2692//
2693// This method is useful when you want to inject custom logic or configuration
2694// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2695//
2696//
2697//    // Example sending a request using the DeleteRegexPatternSetRequest method.
2698//    req, resp := client.DeleteRegexPatternSetRequest(params)
2699//
2700//    err := req.Send()
2701//    if err == nil { // resp is now filled
2702//        fmt.Println(resp)
2703//    }
2704//
2705// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRegexPatternSet
2706func (c *WAFRegional) DeleteRegexPatternSetRequest(input *waf.DeleteRegexPatternSetInput) (req *request.Request, output *waf.DeleteRegexPatternSetOutput) {
2707	op := &request.Operation{
2708		Name:       opDeleteRegexPatternSet,
2709		HTTPMethod: "POST",
2710		HTTPPath:   "/",
2711	}
2712
2713	if input == nil {
2714		input = &waf.DeleteRegexPatternSetInput{}
2715	}
2716
2717	output = &waf.DeleteRegexPatternSetOutput{}
2718	req = c.newRequest(op, input, output)
2719	return
2720}
2721
2722// DeleteRegexPatternSet API operation for AWS WAF Regional.
2723//
2724// Permanently deletes a RegexPatternSet. You can't delete a RegexPatternSet
2725// if it's still used in any RegexMatchSet or if the RegexPatternSet is not
2726// empty.
2727//
2728// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2729// with awserr.Error's Code and Message methods to get detailed information about
2730// the error.
2731//
2732// See the AWS API reference guide for AWS WAF Regional's
2733// API operation DeleteRegexPatternSet for usage and error information.
2734//
2735// Returned Error Codes:
2736//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2737//   The operation failed because of a system problem, even though the request
2738//   was valid. Retry your request.
2739//
2740//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
2741//   The operation failed because you tried to create, update, or delete an object
2742//   by using an invalid account identifier.
2743//
2744//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
2745//   The operation failed because the referenced object doesn't exist.
2746//
2747//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
2748//   The operation failed because you tried to delete an object that is still
2749//   in use. For example:
2750//
2751//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2752//
2753//      * You tried to delete a Rule that is still referenced by a WebACL.
2754//
2755//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2756//   The operation failed because you tried to create, update, or delete an object
2757//   by using a change token that has already been used.
2758//
2759//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
2760//   The operation failed because you tried to delete an object that isn't empty.
2761//   For example:
2762//
2763//      * You tried to delete a WebACL that still contains one or more Rule objects.
2764//
2765//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2766//      objects or other predicates.
2767//
2768//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2769//      objects.
2770//
2771//      * You tried to delete an IPSet that references one or more IP addresses.
2772//
2773// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRegexPatternSet
2774func (c *WAFRegional) DeleteRegexPatternSet(input *waf.DeleteRegexPatternSetInput) (*waf.DeleteRegexPatternSetOutput, error) {
2775	req, out := c.DeleteRegexPatternSetRequest(input)
2776	return out, req.Send()
2777}
2778
2779// DeleteRegexPatternSetWithContext is the same as DeleteRegexPatternSet with the addition of
2780// the ability to pass a context and additional request options.
2781//
2782// See DeleteRegexPatternSet for details on how to use this API operation.
2783//
2784// The context must be non-nil and will be used for request cancellation. If
2785// the context is nil a panic will occur. In the future the SDK may create
2786// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2787// for more information on using Contexts.
2788func (c *WAFRegional) DeleteRegexPatternSetWithContext(ctx aws.Context, input *waf.DeleteRegexPatternSetInput, opts ...request.Option) (*waf.DeleteRegexPatternSetOutput, error) {
2789	req, out := c.DeleteRegexPatternSetRequest(input)
2790	req.SetContext(ctx)
2791	req.ApplyOptions(opts...)
2792	return out, req.Send()
2793}
2794
2795const opDeleteRule = "DeleteRule"
2796
2797// DeleteRuleRequest generates a "aws/request.Request" representing the
2798// client's request for the DeleteRule operation. The "output" return
2799// value will be populated with the request's response once the request completes
2800// successfully.
2801//
2802// Use "Send" method on the returned Request to send the API call to the service.
2803// the "output" return value is not valid until after Send returns without error.
2804//
2805// See DeleteRule for more information on using the DeleteRule
2806// API call, and error handling.
2807//
2808// This method is useful when you want to inject custom logic or configuration
2809// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2810//
2811//
2812//    // Example sending a request using the DeleteRuleRequest method.
2813//    req, resp := client.DeleteRuleRequest(params)
2814//
2815//    err := req.Send()
2816//    if err == nil { // resp is now filled
2817//        fmt.Println(resp)
2818//    }
2819//
2820// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRule
2821func (c *WAFRegional) DeleteRuleRequest(input *waf.DeleteRuleInput) (req *request.Request, output *waf.DeleteRuleOutput) {
2822	op := &request.Operation{
2823		Name:       opDeleteRule,
2824		HTTPMethod: "POST",
2825		HTTPPath:   "/",
2826	}
2827
2828	if input == nil {
2829		input = &waf.DeleteRuleInput{}
2830	}
2831
2832	output = &waf.DeleteRuleOutput{}
2833	req = c.newRequest(op, input, output)
2834	return
2835}
2836
2837// DeleteRule API operation for AWS WAF Regional.
2838//
2839// Permanently deletes a Rule. You can't delete a Rule if it's still used in
2840// any WebACL objects or if it still includes any predicates, such as ByteMatchSet
2841// objects.
2842//
2843// If you just want to remove a Rule from a WebACL, use UpdateWebACL.
2844//
2845// To permanently delete a Rule from AWS WAF, perform the following steps:
2846//
2847// Update the Rule to remove predicates, if any. For more information, see UpdateRule.
2848//
2849// Use GetChangeToken to get the change token that you provide in the ChangeToken
2850// parameter of a DeleteRule request.
2851//
2852// Submit a DeleteRule request.
2853//
2854// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2855// with awserr.Error's Code and Message methods to get detailed information about
2856// the error.
2857//
2858// See the AWS API reference guide for AWS WAF Regional's
2859// API operation DeleteRule for usage and error information.
2860//
2861// Returned Error Codes:
2862//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2863//   The operation failed because you tried to create, update, or delete an object
2864//   by using a change token that has already been used.
2865//
2866//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2867//   The operation failed because of a system problem, even though the request
2868//   was valid. Retry your request.
2869//
2870//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
2871//   The operation failed because you tried to create, update, or delete an object
2872//   by using an invalid account identifier.
2873//
2874//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
2875//   The operation failed because the referenced object doesn't exist.
2876//
2877//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
2878//   The operation failed because you tried to delete an object that is still
2879//   in use. For example:
2880//
2881//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
2882//
2883//      * You tried to delete a Rule that is still referenced by a WebACL.
2884//
2885//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
2886//   The operation failed because you tried to delete an object that isn't empty.
2887//   For example:
2888//
2889//      * You tried to delete a WebACL that still contains one or more Rule objects.
2890//
2891//      * You tried to delete a Rule that still contains one or more ByteMatchSet
2892//      objects or other predicates.
2893//
2894//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
2895//      objects.
2896//
2897//      * You tried to delete an IPSet that references one or more IP addresses.
2898//
2899//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
2900//
2901//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
2902//
2903// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRule
2904func (c *WAFRegional) DeleteRule(input *waf.DeleteRuleInput) (*waf.DeleteRuleOutput, error) {
2905	req, out := c.DeleteRuleRequest(input)
2906	return out, req.Send()
2907}
2908
2909// DeleteRuleWithContext is the same as DeleteRule with the addition of
2910// the ability to pass a context and additional request options.
2911//
2912// See DeleteRule for details on how to use this API operation.
2913//
2914// The context must be non-nil and will be used for request cancellation. If
2915// the context is nil a panic will occur. In the future the SDK may create
2916// sub-contexts for http.Requests. See https://golang.org/pkg/context/
2917// for more information on using Contexts.
2918func (c *WAFRegional) DeleteRuleWithContext(ctx aws.Context, input *waf.DeleteRuleInput, opts ...request.Option) (*waf.DeleteRuleOutput, error) {
2919	req, out := c.DeleteRuleRequest(input)
2920	req.SetContext(ctx)
2921	req.ApplyOptions(opts...)
2922	return out, req.Send()
2923}
2924
2925const opDeleteRuleGroup = "DeleteRuleGroup"
2926
2927// DeleteRuleGroupRequest generates a "aws/request.Request" representing the
2928// client's request for the DeleteRuleGroup operation. The "output" return
2929// value will be populated with the request's response once the request completes
2930// successfully.
2931//
2932// Use "Send" method on the returned Request to send the API call to the service.
2933// the "output" return value is not valid until after Send returns without error.
2934//
2935// See DeleteRuleGroup for more information on using the DeleteRuleGroup
2936// API call, and error handling.
2937//
2938// This method is useful when you want to inject custom logic or configuration
2939// into the SDK's request lifecycle. Such as custom headers, or retry logic.
2940//
2941//
2942//    // Example sending a request using the DeleteRuleGroupRequest method.
2943//    req, resp := client.DeleteRuleGroupRequest(params)
2944//
2945//    err := req.Send()
2946//    if err == nil { // resp is now filled
2947//        fmt.Println(resp)
2948//    }
2949//
2950// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRuleGroup
2951func (c *WAFRegional) DeleteRuleGroupRequest(input *waf.DeleteRuleGroupInput) (req *request.Request, output *waf.DeleteRuleGroupOutput) {
2952	op := &request.Operation{
2953		Name:       opDeleteRuleGroup,
2954		HTTPMethod: "POST",
2955		HTTPPath:   "/",
2956	}
2957
2958	if input == nil {
2959		input = &waf.DeleteRuleGroupInput{}
2960	}
2961
2962	output = &waf.DeleteRuleGroupOutput{}
2963	req = c.newRequest(op, input, output)
2964	return
2965}
2966
2967// DeleteRuleGroup API operation for AWS WAF Regional.
2968//
2969// Permanently deletes a RuleGroup. You can't delete a RuleGroup if it's still
2970// used in any WebACL objects or if it still includes any rules.
2971//
2972// If you just want to remove a RuleGroup from a WebACL, use UpdateWebACL.
2973//
2974// To permanently delete a RuleGroup from AWS WAF, perform the following steps:
2975//
2976// Update the RuleGroup to remove rules, if any. For more information, see UpdateRuleGroup.
2977//
2978// Use GetChangeToken to get the change token that you provide in the ChangeToken
2979// parameter of a DeleteRuleGroup request.
2980//
2981// Submit a DeleteRuleGroup request.
2982//
2983// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
2984// with awserr.Error's Code and Message methods to get detailed information about
2985// the error.
2986//
2987// See the AWS API reference guide for AWS WAF Regional's
2988// API operation DeleteRuleGroup for usage and error information.
2989//
2990// Returned Error Codes:
2991//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
2992//   The operation failed because you tried to create, update, or delete an object
2993//   by using a change token that has already been used.
2994//
2995//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
2996//   The operation failed because of a system problem, even though the request
2997//   was valid. Retry your request.
2998//
2999//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
3000//   The operation failed because the referenced object doesn't exist.
3001//
3002//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
3003//   The operation failed because you tried to delete an object that is still
3004//   in use. For example:
3005//
3006//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3007//
3008//      * You tried to delete a Rule that is still referenced by a WebACL.
3009//
3010//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
3011//   The operation failed because you tried to delete an object that isn't empty.
3012//   For example:
3013//
3014//      * You tried to delete a WebACL that still contains one or more Rule objects.
3015//
3016//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3017//      objects or other predicates.
3018//
3019//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3020//      objects.
3021//
3022//      * You tried to delete an IPSet that references one or more IP addresses.
3023//
3024//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
3025//   The operation failed because there was nothing to do. For example:
3026//
3027//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
3028//      specified WebACL.
3029//
3030//      * You tried to remove an IP address from an IPSet, but the IP address
3031//      isn't in the specified IPSet.
3032//
3033//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
3034//      isn't in the specified WebACL.
3035//
3036//      * You tried to add a Rule to a WebACL, but the Rule already exists in
3037//      the specified WebACL.
3038//
3039//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
3040//      already exists in the specified WebACL.
3041//
3042//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
3043//
3044//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
3045//
3046// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteRuleGroup
3047func (c *WAFRegional) DeleteRuleGroup(input *waf.DeleteRuleGroupInput) (*waf.DeleteRuleGroupOutput, error) {
3048	req, out := c.DeleteRuleGroupRequest(input)
3049	return out, req.Send()
3050}
3051
3052// DeleteRuleGroupWithContext is the same as DeleteRuleGroup with the addition of
3053// the ability to pass a context and additional request options.
3054//
3055// See DeleteRuleGroup for details on how to use this API operation.
3056//
3057// The context must be non-nil and will be used for request cancellation. If
3058// the context is nil a panic will occur. In the future the SDK may create
3059// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3060// for more information on using Contexts.
3061func (c *WAFRegional) DeleteRuleGroupWithContext(ctx aws.Context, input *waf.DeleteRuleGroupInput, opts ...request.Option) (*waf.DeleteRuleGroupOutput, error) {
3062	req, out := c.DeleteRuleGroupRequest(input)
3063	req.SetContext(ctx)
3064	req.ApplyOptions(opts...)
3065	return out, req.Send()
3066}
3067
3068const opDeleteSizeConstraintSet = "DeleteSizeConstraintSet"
3069
3070// DeleteSizeConstraintSetRequest generates a "aws/request.Request" representing the
3071// client's request for the DeleteSizeConstraintSet operation. The "output" return
3072// value will be populated with the request's response once the request completes
3073// successfully.
3074//
3075// Use "Send" method on the returned Request to send the API call to the service.
3076// the "output" return value is not valid until after Send returns without error.
3077//
3078// See DeleteSizeConstraintSet for more information on using the DeleteSizeConstraintSet
3079// API call, and error handling.
3080//
3081// This method is useful when you want to inject custom logic or configuration
3082// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3083//
3084//
3085//    // Example sending a request using the DeleteSizeConstraintSetRequest method.
3086//    req, resp := client.DeleteSizeConstraintSetRequest(params)
3087//
3088//    err := req.Send()
3089//    if err == nil { // resp is now filled
3090//        fmt.Println(resp)
3091//    }
3092//
3093// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteSizeConstraintSet
3094func (c *WAFRegional) DeleteSizeConstraintSetRequest(input *waf.DeleteSizeConstraintSetInput) (req *request.Request, output *waf.DeleteSizeConstraintSetOutput) {
3095	op := &request.Operation{
3096		Name:       opDeleteSizeConstraintSet,
3097		HTTPMethod: "POST",
3098		HTTPPath:   "/",
3099	}
3100
3101	if input == nil {
3102		input = &waf.DeleteSizeConstraintSetInput{}
3103	}
3104
3105	output = &waf.DeleteSizeConstraintSetOutput{}
3106	req = c.newRequest(op, input, output)
3107	return
3108}
3109
3110// DeleteSizeConstraintSet API operation for AWS WAF Regional.
3111//
3112// Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet
3113// if it's still used in any Rules or if it still includes any SizeConstraint
3114// objects (any filters).
3115//
3116// If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule.
3117//
3118// To permanently delete a SizeConstraintSet, perform the following steps:
3119//
3120// Update the SizeConstraintSet to remove filters, if any. For more information,
3121// see UpdateSizeConstraintSet.
3122//
3123// Use GetChangeToken to get the change token that you provide in the ChangeToken
3124// parameter of a DeleteSizeConstraintSet request.
3125//
3126// Submit a DeleteSizeConstraintSet request.
3127//
3128// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3129// with awserr.Error's Code and Message methods to get detailed information about
3130// the error.
3131//
3132// See the AWS API reference guide for AWS WAF Regional's
3133// API operation DeleteSizeConstraintSet for usage and error information.
3134//
3135// Returned Error Codes:
3136//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
3137//   The operation failed because you tried to create, update, or delete an object
3138//   by using a change token that has already been used.
3139//
3140//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
3141//   The operation failed because of a system problem, even though the request
3142//   was valid. Retry your request.
3143//
3144//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
3145//   The operation failed because you tried to create, update, or delete an object
3146//   by using an invalid account identifier.
3147//
3148//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
3149//   The operation failed because the referenced object doesn't exist.
3150//
3151//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
3152//   The operation failed because you tried to delete an object that is still
3153//   in use. For example:
3154//
3155//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3156//
3157//      * You tried to delete a Rule that is still referenced by a WebACL.
3158//
3159//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
3160//   The operation failed because you tried to delete an object that isn't empty.
3161//   For example:
3162//
3163//      * You tried to delete a WebACL that still contains one or more Rule objects.
3164//
3165//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3166//      objects or other predicates.
3167//
3168//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3169//      objects.
3170//
3171//      * You tried to delete an IPSet that references one or more IP addresses.
3172//
3173// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteSizeConstraintSet
3174func (c *WAFRegional) DeleteSizeConstraintSet(input *waf.DeleteSizeConstraintSetInput) (*waf.DeleteSizeConstraintSetOutput, error) {
3175	req, out := c.DeleteSizeConstraintSetRequest(input)
3176	return out, req.Send()
3177}
3178
3179// DeleteSizeConstraintSetWithContext is the same as DeleteSizeConstraintSet with the addition of
3180// the ability to pass a context and additional request options.
3181//
3182// See DeleteSizeConstraintSet for details on how to use this API operation.
3183//
3184// The context must be non-nil and will be used for request cancellation. If
3185// the context is nil a panic will occur. In the future the SDK may create
3186// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3187// for more information on using Contexts.
3188func (c *WAFRegional) DeleteSizeConstraintSetWithContext(ctx aws.Context, input *waf.DeleteSizeConstraintSetInput, opts ...request.Option) (*waf.DeleteSizeConstraintSetOutput, error) {
3189	req, out := c.DeleteSizeConstraintSetRequest(input)
3190	req.SetContext(ctx)
3191	req.ApplyOptions(opts...)
3192	return out, req.Send()
3193}
3194
3195const opDeleteSqlInjectionMatchSet = "DeleteSqlInjectionMatchSet"
3196
3197// DeleteSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
3198// client's request for the DeleteSqlInjectionMatchSet operation. The "output" return
3199// value will be populated with the request's response once the request completes
3200// successfully.
3201//
3202// Use "Send" method on the returned Request to send the API call to the service.
3203// the "output" return value is not valid until after Send returns without error.
3204//
3205// See DeleteSqlInjectionMatchSet for more information on using the DeleteSqlInjectionMatchSet
3206// API call, and error handling.
3207//
3208// This method is useful when you want to inject custom logic or configuration
3209// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3210//
3211//
3212//    // Example sending a request using the DeleteSqlInjectionMatchSetRequest method.
3213//    req, resp := client.DeleteSqlInjectionMatchSetRequest(params)
3214//
3215//    err := req.Send()
3216//    if err == nil { // resp is now filled
3217//        fmt.Println(resp)
3218//    }
3219//
3220// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteSqlInjectionMatchSet
3221func (c *WAFRegional) DeleteSqlInjectionMatchSetRequest(input *waf.DeleteSqlInjectionMatchSetInput) (req *request.Request, output *waf.DeleteSqlInjectionMatchSetOutput) {
3222	op := &request.Operation{
3223		Name:       opDeleteSqlInjectionMatchSet,
3224		HTTPMethod: "POST",
3225		HTTPPath:   "/",
3226	}
3227
3228	if input == nil {
3229		input = &waf.DeleteSqlInjectionMatchSetInput{}
3230	}
3231
3232	output = &waf.DeleteSqlInjectionMatchSetOutput{}
3233	req = c.newRequest(op, input, output)
3234	return
3235}
3236
3237// DeleteSqlInjectionMatchSet API operation for AWS WAF Regional.
3238//
3239// Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet
3240// if it's still used in any Rules or if it still contains any SqlInjectionMatchTuple
3241// objects.
3242//
3243// If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule.
3244//
3245// To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following
3246// steps:
3247//
3248// Update the SqlInjectionMatchSet to remove filters, if any. For more information,
3249// see UpdateSqlInjectionMatchSet.
3250//
3251// Use GetChangeToken to get the change token that you provide in the ChangeToken
3252// parameter of a DeleteSqlInjectionMatchSet request.
3253//
3254// Submit a DeleteSqlInjectionMatchSet request.
3255//
3256// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3257// with awserr.Error's Code and Message methods to get detailed information about
3258// the error.
3259//
3260// See the AWS API reference guide for AWS WAF Regional's
3261// API operation DeleteSqlInjectionMatchSet for usage and error information.
3262//
3263// Returned Error Codes:
3264//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
3265//   The operation failed because of a system problem, even though the request
3266//   was valid. Retry your request.
3267//
3268//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
3269//   The operation failed because you tried to create, update, or delete an object
3270//   by using an invalid account identifier.
3271//
3272//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
3273//   The operation failed because the referenced object doesn't exist.
3274//
3275//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
3276//   The operation failed because you tried to delete an object that is still
3277//   in use. For example:
3278//
3279//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3280//
3281//      * You tried to delete a Rule that is still referenced by a WebACL.
3282//
3283//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
3284//   The operation failed because you tried to create, update, or delete an object
3285//   by using a change token that has already been used.
3286//
3287//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
3288//   The operation failed because you tried to delete an object that isn't empty.
3289//   For example:
3290//
3291//      * You tried to delete a WebACL that still contains one or more Rule objects.
3292//
3293//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3294//      objects or other predicates.
3295//
3296//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3297//      objects.
3298//
3299//      * You tried to delete an IPSet that references one or more IP addresses.
3300//
3301// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteSqlInjectionMatchSet
3302func (c *WAFRegional) DeleteSqlInjectionMatchSet(input *waf.DeleteSqlInjectionMatchSetInput) (*waf.DeleteSqlInjectionMatchSetOutput, error) {
3303	req, out := c.DeleteSqlInjectionMatchSetRequest(input)
3304	return out, req.Send()
3305}
3306
3307// DeleteSqlInjectionMatchSetWithContext is the same as DeleteSqlInjectionMatchSet with the addition of
3308// the ability to pass a context and additional request options.
3309//
3310// See DeleteSqlInjectionMatchSet for details on how to use this API operation.
3311//
3312// The context must be non-nil and will be used for request cancellation. If
3313// the context is nil a panic will occur. In the future the SDK may create
3314// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3315// for more information on using Contexts.
3316func (c *WAFRegional) DeleteSqlInjectionMatchSetWithContext(ctx aws.Context, input *waf.DeleteSqlInjectionMatchSetInput, opts ...request.Option) (*waf.DeleteSqlInjectionMatchSetOutput, error) {
3317	req, out := c.DeleteSqlInjectionMatchSetRequest(input)
3318	req.SetContext(ctx)
3319	req.ApplyOptions(opts...)
3320	return out, req.Send()
3321}
3322
3323const opDeleteWebACL = "DeleteWebACL"
3324
3325// DeleteWebACLRequest generates a "aws/request.Request" representing the
3326// client's request for the DeleteWebACL operation. The "output" return
3327// value will be populated with the request's response once the request completes
3328// successfully.
3329//
3330// Use "Send" method on the returned Request to send the API call to the service.
3331// the "output" return value is not valid until after Send returns without error.
3332//
3333// See DeleteWebACL for more information on using the DeleteWebACL
3334// API call, and error handling.
3335//
3336// This method is useful when you want to inject custom logic or configuration
3337// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3338//
3339//
3340//    // Example sending a request using the DeleteWebACLRequest method.
3341//    req, resp := client.DeleteWebACLRequest(params)
3342//
3343//    err := req.Send()
3344//    if err == nil { // resp is now filled
3345//        fmt.Println(resp)
3346//    }
3347//
3348// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteWebACL
3349func (c *WAFRegional) DeleteWebACLRequest(input *waf.DeleteWebACLInput) (req *request.Request, output *waf.DeleteWebACLOutput) {
3350	op := &request.Operation{
3351		Name:       opDeleteWebACL,
3352		HTTPMethod: "POST",
3353		HTTPPath:   "/",
3354	}
3355
3356	if input == nil {
3357		input = &waf.DeleteWebACLInput{}
3358	}
3359
3360	output = &waf.DeleteWebACLOutput{}
3361	req = c.newRequest(op, input, output)
3362	return
3363}
3364
3365// DeleteWebACL API operation for AWS WAF Regional.
3366//
3367// Permanently deletes a WebACL. You can't delete a WebACL if it still contains
3368// any Rules.
3369//
3370// To delete a WebACL, perform the following steps:
3371//
3372// Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL.
3373//
3374// Use GetChangeToken to get the change token that you provide in the ChangeToken
3375// parameter of a DeleteWebACL request.
3376//
3377// Submit a DeleteWebACL request.
3378//
3379// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3380// with awserr.Error's Code and Message methods to get detailed information about
3381// the error.
3382//
3383// See the AWS API reference guide for AWS WAF Regional's
3384// API operation DeleteWebACL for usage and error information.
3385//
3386// Returned Error Codes:
3387//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
3388//   The operation failed because you tried to create, update, or delete an object
3389//   by using a change token that has already been used.
3390//
3391//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
3392//   The operation failed because of a system problem, even though the request
3393//   was valid. Retry your request.
3394//
3395//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
3396//   The operation failed because you tried to create, update, or delete an object
3397//   by using an invalid account identifier.
3398//
3399//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
3400//   The operation failed because the referenced object doesn't exist.
3401//
3402//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
3403//   The operation failed because you tried to delete an object that is still
3404//   in use. For example:
3405//
3406//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3407//
3408//      * You tried to delete a Rule that is still referenced by a WebACL.
3409//
3410//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
3411//   The operation failed because you tried to delete an object that isn't empty.
3412//   For example:
3413//
3414//      * You tried to delete a WebACL that still contains one or more Rule objects.
3415//
3416//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3417//      objects or other predicates.
3418//
3419//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3420//      objects.
3421//
3422//      * You tried to delete an IPSet that references one or more IP addresses.
3423//
3424//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
3425//
3426//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
3427//
3428// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteWebACL
3429func (c *WAFRegional) DeleteWebACL(input *waf.DeleteWebACLInput) (*waf.DeleteWebACLOutput, error) {
3430	req, out := c.DeleteWebACLRequest(input)
3431	return out, req.Send()
3432}
3433
3434// DeleteWebACLWithContext is the same as DeleteWebACL with the addition of
3435// the ability to pass a context and additional request options.
3436//
3437// See DeleteWebACL for details on how to use this API operation.
3438//
3439// The context must be non-nil and will be used for request cancellation. If
3440// the context is nil a panic will occur. In the future the SDK may create
3441// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3442// for more information on using Contexts.
3443func (c *WAFRegional) DeleteWebACLWithContext(ctx aws.Context, input *waf.DeleteWebACLInput, opts ...request.Option) (*waf.DeleteWebACLOutput, error) {
3444	req, out := c.DeleteWebACLRequest(input)
3445	req.SetContext(ctx)
3446	req.ApplyOptions(opts...)
3447	return out, req.Send()
3448}
3449
3450const opDeleteXssMatchSet = "DeleteXssMatchSet"
3451
3452// DeleteXssMatchSetRequest generates a "aws/request.Request" representing the
3453// client's request for the DeleteXssMatchSet operation. The "output" return
3454// value will be populated with the request's response once the request completes
3455// successfully.
3456//
3457// Use "Send" method on the returned Request to send the API call to the service.
3458// the "output" return value is not valid until after Send returns without error.
3459//
3460// See DeleteXssMatchSet for more information on using the DeleteXssMatchSet
3461// API call, and error handling.
3462//
3463// This method is useful when you want to inject custom logic or configuration
3464// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3465//
3466//
3467//    // Example sending a request using the DeleteXssMatchSetRequest method.
3468//    req, resp := client.DeleteXssMatchSetRequest(params)
3469//
3470//    err := req.Send()
3471//    if err == nil { // resp is now filled
3472//        fmt.Println(resp)
3473//    }
3474//
3475// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteXssMatchSet
3476func (c *WAFRegional) DeleteXssMatchSetRequest(input *waf.DeleteXssMatchSetInput) (req *request.Request, output *waf.DeleteXssMatchSetOutput) {
3477	op := &request.Operation{
3478		Name:       opDeleteXssMatchSet,
3479		HTTPMethod: "POST",
3480		HTTPPath:   "/",
3481	}
3482
3483	if input == nil {
3484		input = &waf.DeleteXssMatchSetInput{}
3485	}
3486
3487	output = &waf.DeleteXssMatchSetOutput{}
3488	req = c.newRequest(op, input, output)
3489	return
3490}
3491
3492// DeleteXssMatchSet API operation for AWS WAF Regional.
3493//
3494// Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's
3495// still used in any Rules or if it still contains any XssMatchTuple objects.
3496//
3497// If you just want to remove an XssMatchSet from a Rule, use UpdateRule.
3498//
3499// To permanently delete an XssMatchSet from AWS WAF, perform the following
3500// steps:
3501//
3502// Update the XssMatchSet to remove filters, if any. For more information, see
3503// UpdateXssMatchSet.
3504//
3505// Use GetChangeToken to get the change token that you provide in the ChangeToken
3506// parameter of a DeleteXssMatchSet request.
3507//
3508// Submit a DeleteXssMatchSet request.
3509//
3510// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3511// with awserr.Error's Code and Message methods to get detailed information about
3512// the error.
3513//
3514// See the AWS API reference guide for AWS WAF Regional's
3515// API operation DeleteXssMatchSet for usage and error information.
3516//
3517// Returned Error Codes:
3518//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
3519//   The operation failed because of a system problem, even though the request
3520//   was valid. Retry your request.
3521//
3522//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
3523//   The operation failed because you tried to create, update, or delete an object
3524//   by using an invalid account identifier.
3525//
3526//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
3527//   The operation failed because the referenced object doesn't exist.
3528//
3529//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
3530//   The operation failed because you tried to delete an object that is still
3531//   in use. For example:
3532//
3533//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
3534//
3535//      * You tried to delete a Rule that is still referenced by a WebACL.
3536//
3537//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
3538//   The operation failed because you tried to create, update, or delete an object
3539//   by using a change token that has already been used.
3540//
3541//   * ErrCodeWAFNonEmptyEntityException "WAFNonEmptyEntityException"
3542//   The operation failed because you tried to delete an object that isn't empty.
3543//   For example:
3544//
3545//      * You tried to delete a WebACL that still contains one or more Rule objects.
3546//
3547//      * You tried to delete a Rule that still contains one or more ByteMatchSet
3548//      objects or other predicates.
3549//
3550//      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
3551//      objects.
3552//
3553//      * You tried to delete an IPSet that references one or more IP addresses.
3554//
3555// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DeleteXssMatchSet
3556func (c *WAFRegional) DeleteXssMatchSet(input *waf.DeleteXssMatchSetInput) (*waf.DeleteXssMatchSetOutput, error) {
3557	req, out := c.DeleteXssMatchSetRequest(input)
3558	return out, req.Send()
3559}
3560
3561// DeleteXssMatchSetWithContext is the same as DeleteXssMatchSet with the addition of
3562// the ability to pass a context and additional request options.
3563//
3564// See DeleteXssMatchSet for details on how to use this API operation.
3565//
3566// The context must be non-nil and will be used for request cancellation. If
3567// the context is nil a panic will occur. In the future the SDK may create
3568// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3569// for more information on using Contexts.
3570func (c *WAFRegional) DeleteXssMatchSetWithContext(ctx aws.Context, input *waf.DeleteXssMatchSetInput, opts ...request.Option) (*waf.DeleteXssMatchSetOutput, error) {
3571	req, out := c.DeleteXssMatchSetRequest(input)
3572	req.SetContext(ctx)
3573	req.ApplyOptions(opts...)
3574	return out, req.Send()
3575}
3576
3577const opDisassociateWebACL = "DisassociateWebACL"
3578
3579// DisassociateWebACLRequest generates a "aws/request.Request" representing the
3580// client's request for the DisassociateWebACL operation. The "output" return
3581// value will be populated with the request's response once the request completes
3582// successfully.
3583//
3584// Use "Send" method on the returned Request to send the API call to the service.
3585// the "output" return value is not valid until after Send returns without error.
3586//
3587// See DisassociateWebACL for more information on using the DisassociateWebACL
3588// API call, and error handling.
3589//
3590// This method is useful when you want to inject custom logic or configuration
3591// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3592//
3593//
3594//    // Example sending a request using the DisassociateWebACLRequest method.
3595//    req, resp := client.DisassociateWebACLRequest(params)
3596//
3597//    err := req.Send()
3598//    if err == nil { // resp is now filled
3599//        fmt.Println(resp)
3600//    }
3601//
3602// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DisassociateWebACL
3603func (c *WAFRegional) DisassociateWebACLRequest(input *DisassociateWebACLInput) (req *request.Request, output *DisassociateWebACLOutput) {
3604	op := &request.Operation{
3605		Name:       opDisassociateWebACL,
3606		HTTPMethod: "POST",
3607		HTTPPath:   "/",
3608	}
3609
3610	if input == nil {
3611		input = &DisassociateWebACLInput{}
3612	}
3613
3614	output = &DisassociateWebACLOutput{}
3615	req = c.newRequest(op, input, output)
3616	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
3617	return
3618}
3619
3620// DisassociateWebACL API operation for AWS WAF Regional.
3621//
3622// Removes a web ACL from the specified resource, either an application load
3623// balancer or Amazon API Gateway stage.
3624//
3625// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3626// with awserr.Error's Code and Message methods to get detailed information about
3627// the error.
3628//
3629// See the AWS API reference guide for AWS WAF Regional's
3630// API operation DisassociateWebACL for usage and error information.
3631//
3632// Returned Error Codes:
3633//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
3634//   The operation failed because of a system problem, even though the request
3635//   was valid. Retry your request.
3636//
3637//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
3638//   The operation failed because you tried to create, update, or delete an object
3639//   by using an invalid account identifier.
3640//
3641//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
3642//   The operation failed because AWS WAF didn't recognize a parameter in the
3643//   request. For example:
3644//
3645//      * You specified an invalid parameter name.
3646//
3647//      * You specified an invalid value.
3648//
3649//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
3650//      using an action other than INSERT or DELETE.
3651//
3652//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
3653//      BLOCK, or COUNT.
3654//
3655//      * You tried to create a RateBasedRule with a RateKey value other than
3656//      IP.
3657//
3658//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
3659//      BLOCK, or COUNT.
3660//
3661//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
3662//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
3663//
3664//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
3665//      for Data.
3666//
3667//      * Your request references an ARN that is malformed, or corresponds to
3668//      a resource with which a web ACL cannot be associated.
3669//
3670//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
3671//   The operation failed because the referenced object doesn't exist.
3672//
3673// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/DisassociateWebACL
3674func (c *WAFRegional) DisassociateWebACL(input *DisassociateWebACLInput) (*DisassociateWebACLOutput, error) {
3675	req, out := c.DisassociateWebACLRequest(input)
3676	return out, req.Send()
3677}
3678
3679// DisassociateWebACLWithContext is the same as DisassociateWebACL with the addition of
3680// the ability to pass a context and additional request options.
3681//
3682// See DisassociateWebACL for details on how to use this API operation.
3683//
3684// The context must be non-nil and will be used for request cancellation. If
3685// the context is nil a panic will occur. In the future the SDK may create
3686// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3687// for more information on using Contexts.
3688func (c *WAFRegional) DisassociateWebACLWithContext(ctx aws.Context, input *DisassociateWebACLInput, opts ...request.Option) (*DisassociateWebACLOutput, error) {
3689	req, out := c.DisassociateWebACLRequest(input)
3690	req.SetContext(ctx)
3691	req.ApplyOptions(opts...)
3692	return out, req.Send()
3693}
3694
3695const opGetByteMatchSet = "GetByteMatchSet"
3696
3697// GetByteMatchSetRequest generates a "aws/request.Request" representing the
3698// client's request for the GetByteMatchSet operation. The "output" return
3699// value will be populated with the request's response once the request completes
3700// successfully.
3701//
3702// Use "Send" method on the returned Request to send the API call to the service.
3703// the "output" return value is not valid until after Send returns without error.
3704//
3705// See GetByteMatchSet for more information on using the GetByteMatchSet
3706// API call, and error handling.
3707//
3708// This method is useful when you want to inject custom logic or configuration
3709// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3710//
3711//
3712//    // Example sending a request using the GetByteMatchSetRequest method.
3713//    req, resp := client.GetByteMatchSetRequest(params)
3714//
3715//    err := req.Send()
3716//    if err == nil { // resp is now filled
3717//        fmt.Println(resp)
3718//    }
3719//
3720// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetByteMatchSet
3721func (c *WAFRegional) GetByteMatchSetRequest(input *waf.GetByteMatchSetInput) (req *request.Request, output *waf.GetByteMatchSetOutput) {
3722	op := &request.Operation{
3723		Name:       opGetByteMatchSet,
3724		HTTPMethod: "POST",
3725		HTTPPath:   "/",
3726	}
3727
3728	if input == nil {
3729		input = &waf.GetByteMatchSetInput{}
3730	}
3731
3732	output = &waf.GetByteMatchSetOutput{}
3733	req = c.newRequest(op, input, output)
3734	return
3735}
3736
3737// GetByteMatchSet API operation for AWS WAF Regional.
3738//
3739// Returns the ByteMatchSet specified by ByteMatchSetId.
3740//
3741// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3742// with awserr.Error's Code and Message methods to get detailed information about
3743// the error.
3744//
3745// See the AWS API reference guide for AWS WAF Regional's
3746// API operation GetByteMatchSet for usage and error information.
3747//
3748// Returned Error Codes:
3749//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
3750//   The operation failed because of a system problem, even though the request
3751//   was valid. Retry your request.
3752//
3753//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
3754//   The operation failed because you tried to create, update, or delete an object
3755//   by using an invalid account identifier.
3756//
3757//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
3758//   The operation failed because the referenced object doesn't exist.
3759//
3760// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetByteMatchSet
3761func (c *WAFRegional) GetByteMatchSet(input *waf.GetByteMatchSetInput) (*waf.GetByteMatchSetOutput, error) {
3762	req, out := c.GetByteMatchSetRequest(input)
3763	return out, req.Send()
3764}
3765
3766// GetByteMatchSetWithContext is the same as GetByteMatchSet with the addition of
3767// the ability to pass a context and additional request options.
3768//
3769// See GetByteMatchSet for details on how to use this API operation.
3770//
3771// The context must be non-nil and will be used for request cancellation. If
3772// the context is nil a panic will occur. In the future the SDK may create
3773// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3774// for more information on using Contexts.
3775func (c *WAFRegional) GetByteMatchSetWithContext(ctx aws.Context, input *waf.GetByteMatchSetInput, opts ...request.Option) (*waf.GetByteMatchSetOutput, error) {
3776	req, out := c.GetByteMatchSetRequest(input)
3777	req.SetContext(ctx)
3778	req.ApplyOptions(opts...)
3779	return out, req.Send()
3780}
3781
3782const opGetChangeToken = "GetChangeToken"
3783
3784// GetChangeTokenRequest generates a "aws/request.Request" representing the
3785// client's request for the GetChangeToken operation. The "output" return
3786// value will be populated with the request's response once the request completes
3787// successfully.
3788//
3789// Use "Send" method on the returned Request to send the API call to the service.
3790// the "output" return value is not valid until after Send returns without error.
3791//
3792// See GetChangeToken for more information on using the GetChangeToken
3793// API call, and error handling.
3794//
3795// This method is useful when you want to inject custom logic or configuration
3796// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3797//
3798//
3799//    // Example sending a request using the GetChangeTokenRequest method.
3800//    req, resp := client.GetChangeTokenRequest(params)
3801//
3802//    err := req.Send()
3803//    if err == nil { // resp is now filled
3804//        fmt.Println(resp)
3805//    }
3806//
3807// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetChangeToken
3808func (c *WAFRegional) GetChangeTokenRequest(input *waf.GetChangeTokenInput) (req *request.Request, output *waf.GetChangeTokenOutput) {
3809	op := &request.Operation{
3810		Name:       opGetChangeToken,
3811		HTTPMethod: "POST",
3812		HTTPPath:   "/",
3813	}
3814
3815	if input == nil {
3816		input = &waf.GetChangeTokenInput{}
3817	}
3818
3819	output = &waf.GetChangeTokenOutput{}
3820	req = c.newRequest(op, input, output)
3821	return
3822}
3823
3824// GetChangeToken API operation for AWS WAF Regional.
3825//
3826// When you want to create, update, or delete AWS WAF objects, get a change
3827// token and include the change token in the create, update, or delete request.
3828// Change tokens ensure that your application doesn't submit conflicting requests
3829// to AWS WAF.
3830//
3831// Each create, update, or delete request must use a unique change token. If
3832// your application submits a GetChangeToken request and then submits a second
3833// GetChangeToken request before submitting a create, update, or delete request,
3834// the second GetChangeToken request returns the same value as the first GetChangeToken
3835// request.
3836//
3837// When you use a change token in a create, update, or delete request, the status
3838// of the change token changes to PENDING, which indicates that AWS WAF is propagating
3839// the change to all AWS WAF servers. Use GetChangeTokenStatus to determine
3840// the status of your change token.
3841//
3842// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3843// with awserr.Error's Code and Message methods to get detailed information about
3844// the error.
3845//
3846// See the AWS API reference guide for AWS WAF Regional's
3847// API operation GetChangeToken for usage and error information.
3848//
3849// Returned Error Codes:
3850//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
3851//   The operation failed because of a system problem, even though the request
3852//   was valid. Retry your request.
3853//
3854// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetChangeToken
3855func (c *WAFRegional) GetChangeToken(input *waf.GetChangeTokenInput) (*waf.GetChangeTokenOutput, error) {
3856	req, out := c.GetChangeTokenRequest(input)
3857	return out, req.Send()
3858}
3859
3860// GetChangeTokenWithContext is the same as GetChangeToken with the addition of
3861// the ability to pass a context and additional request options.
3862//
3863// See GetChangeToken for details on how to use this API operation.
3864//
3865// The context must be non-nil and will be used for request cancellation. If
3866// the context is nil a panic will occur. In the future the SDK may create
3867// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3868// for more information on using Contexts.
3869func (c *WAFRegional) GetChangeTokenWithContext(ctx aws.Context, input *waf.GetChangeTokenInput, opts ...request.Option) (*waf.GetChangeTokenOutput, error) {
3870	req, out := c.GetChangeTokenRequest(input)
3871	req.SetContext(ctx)
3872	req.ApplyOptions(opts...)
3873	return out, req.Send()
3874}
3875
3876const opGetChangeTokenStatus = "GetChangeTokenStatus"
3877
3878// GetChangeTokenStatusRequest generates a "aws/request.Request" representing the
3879// client's request for the GetChangeTokenStatus operation. The "output" return
3880// value will be populated with the request's response once the request completes
3881// successfully.
3882//
3883// Use "Send" method on the returned Request to send the API call to the service.
3884// the "output" return value is not valid until after Send returns without error.
3885//
3886// See GetChangeTokenStatus for more information on using the GetChangeTokenStatus
3887// API call, and error handling.
3888//
3889// This method is useful when you want to inject custom logic or configuration
3890// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3891//
3892//
3893//    // Example sending a request using the GetChangeTokenStatusRequest method.
3894//    req, resp := client.GetChangeTokenStatusRequest(params)
3895//
3896//    err := req.Send()
3897//    if err == nil { // resp is now filled
3898//        fmt.Println(resp)
3899//    }
3900//
3901// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetChangeTokenStatus
3902func (c *WAFRegional) GetChangeTokenStatusRequest(input *waf.GetChangeTokenStatusInput) (req *request.Request, output *waf.GetChangeTokenStatusOutput) {
3903	op := &request.Operation{
3904		Name:       opGetChangeTokenStatus,
3905		HTTPMethod: "POST",
3906		HTTPPath:   "/",
3907	}
3908
3909	if input == nil {
3910		input = &waf.GetChangeTokenStatusInput{}
3911	}
3912
3913	output = &waf.GetChangeTokenStatusOutput{}
3914	req = c.newRequest(op, input, output)
3915	return
3916}
3917
3918// GetChangeTokenStatus API operation for AWS WAF Regional.
3919//
3920// Returns the status of a ChangeToken that you got by calling GetChangeToken.
3921// ChangeTokenStatus is one of the following values:
3922//
3923//    * PROVISIONED: You requested the change token by calling GetChangeToken,
3924//    but you haven't used it yet in a call to create, update, or delete an
3925//    AWS WAF object.
3926//
3927//    * PENDING: AWS WAF is propagating the create, update, or delete request
3928//    to all AWS WAF servers.
3929//
3930//    * INSYNC: Propagation is complete.
3931//
3932// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
3933// with awserr.Error's Code and Message methods to get detailed information about
3934// the error.
3935//
3936// See the AWS API reference guide for AWS WAF Regional's
3937// API operation GetChangeTokenStatus for usage and error information.
3938//
3939// Returned Error Codes:
3940//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
3941//   The operation failed because the referenced object doesn't exist.
3942//
3943//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
3944//   The operation failed because of a system problem, even though the request
3945//   was valid. Retry your request.
3946//
3947// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetChangeTokenStatus
3948func (c *WAFRegional) GetChangeTokenStatus(input *waf.GetChangeTokenStatusInput) (*waf.GetChangeTokenStatusOutput, error) {
3949	req, out := c.GetChangeTokenStatusRequest(input)
3950	return out, req.Send()
3951}
3952
3953// GetChangeTokenStatusWithContext is the same as GetChangeTokenStatus with the addition of
3954// the ability to pass a context and additional request options.
3955//
3956// See GetChangeTokenStatus for details on how to use this API operation.
3957//
3958// The context must be non-nil and will be used for request cancellation. If
3959// the context is nil a panic will occur. In the future the SDK may create
3960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
3961// for more information on using Contexts.
3962func (c *WAFRegional) GetChangeTokenStatusWithContext(ctx aws.Context, input *waf.GetChangeTokenStatusInput, opts ...request.Option) (*waf.GetChangeTokenStatusOutput, error) {
3963	req, out := c.GetChangeTokenStatusRequest(input)
3964	req.SetContext(ctx)
3965	req.ApplyOptions(opts...)
3966	return out, req.Send()
3967}
3968
3969const opGetGeoMatchSet = "GetGeoMatchSet"
3970
3971// GetGeoMatchSetRequest generates a "aws/request.Request" representing the
3972// client's request for the GetGeoMatchSet operation. The "output" return
3973// value will be populated with the request's response once the request completes
3974// successfully.
3975//
3976// Use "Send" method on the returned Request to send the API call to the service.
3977// the "output" return value is not valid until after Send returns without error.
3978//
3979// See GetGeoMatchSet for more information on using the GetGeoMatchSet
3980// API call, and error handling.
3981//
3982// This method is useful when you want to inject custom logic or configuration
3983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
3984//
3985//
3986//    // Example sending a request using the GetGeoMatchSetRequest method.
3987//    req, resp := client.GetGeoMatchSetRequest(params)
3988//
3989//    err := req.Send()
3990//    if err == nil { // resp is now filled
3991//        fmt.Println(resp)
3992//    }
3993//
3994// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetGeoMatchSet
3995func (c *WAFRegional) GetGeoMatchSetRequest(input *waf.GetGeoMatchSetInput) (req *request.Request, output *waf.GetGeoMatchSetOutput) {
3996	op := &request.Operation{
3997		Name:       opGetGeoMatchSet,
3998		HTTPMethod: "POST",
3999		HTTPPath:   "/",
4000	}
4001
4002	if input == nil {
4003		input = &waf.GetGeoMatchSetInput{}
4004	}
4005
4006	output = &waf.GetGeoMatchSetOutput{}
4007	req = c.newRequest(op, input, output)
4008	return
4009}
4010
4011// GetGeoMatchSet API operation for AWS WAF Regional.
4012//
4013// Returns the GeoMatchSet that is specified by GeoMatchSetId.
4014//
4015// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4016// with awserr.Error's Code and Message methods to get detailed information about
4017// the error.
4018//
4019// See the AWS API reference guide for AWS WAF Regional's
4020// API operation GetGeoMatchSet for usage and error information.
4021//
4022// Returned Error Codes:
4023//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4024//   The operation failed because of a system problem, even though the request
4025//   was valid. Retry your request.
4026//
4027//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
4028//   The operation failed because you tried to create, update, or delete an object
4029//   by using an invalid account identifier.
4030//
4031//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4032//   The operation failed because the referenced object doesn't exist.
4033//
4034// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetGeoMatchSet
4035func (c *WAFRegional) GetGeoMatchSet(input *waf.GetGeoMatchSetInput) (*waf.GetGeoMatchSetOutput, error) {
4036	req, out := c.GetGeoMatchSetRequest(input)
4037	return out, req.Send()
4038}
4039
4040// GetGeoMatchSetWithContext is the same as GetGeoMatchSet with the addition of
4041// the ability to pass a context and additional request options.
4042//
4043// See GetGeoMatchSet for details on how to use this API operation.
4044//
4045// The context must be non-nil and will be used for request cancellation. If
4046// the context is nil a panic will occur. In the future the SDK may create
4047// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4048// for more information on using Contexts.
4049func (c *WAFRegional) GetGeoMatchSetWithContext(ctx aws.Context, input *waf.GetGeoMatchSetInput, opts ...request.Option) (*waf.GetGeoMatchSetOutput, error) {
4050	req, out := c.GetGeoMatchSetRequest(input)
4051	req.SetContext(ctx)
4052	req.ApplyOptions(opts...)
4053	return out, req.Send()
4054}
4055
4056const opGetIPSet = "GetIPSet"
4057
4058// GetIPSetRequest generates a "aws/request.Request" representing the
4059// client's request for the GetIPSet operation. The "output" return
4060// value will be populated with the request's response once the request completes
4061// successfully.
4062//
4063// Use "Send" method on the returned Request to send the API call to the service.
4064// the "output" return value is not valid until after Send returns without error.
4065//
4066// See GetIPSet for more information on using the GetIPSet
4067// API call, and error handling.
4068//
4069// This method is useful when you want to inject custom logic or configuration
4070// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4071//
4072//
4073//    // Example sending a request using the GetIPSetRequest method.
4074//    req, resp := client.GetIPSetRequest(params)
4075//
4076//    err := req.Send()
4077//    if err == nil { // resp is now filled
4078//        fmt.Println(resp)
4079//    }
4080//
4081// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetIPSet
4082func (c *WAFRegional) GetIPSetRequest(input *waf.GetIPSetInput) (req *request.Request, output *waf.GetIPSetOutput) {
4083	op := &request.Operation{
4084		Name:       opGetIPSet,
4085		HTTPMethod: "POST",
4086		HTTPPath:   "/",
4087	}
4088
4089	if input == nil {
4090		input = &waf.GetIPSetInput{}
4091	}
4092
4093	output = &waf.GetIPSetOutput{}
4094	req = c.newRequest(op, input, output)
4095	return
4096}
4097
4098// GetIPSet API operation for AWS WAF Regional.
4099//
4100// Returns the IPSet that is specified by IPSetId.
4101//
4102// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4103// with awserr.Error's Code and Message methods to get detailed information about
4104// the error.
4105//
4106// See the AWS API reference guide for AWS WAF Regional's
4107// API operation GetIPSet for usage and error information.
4108//
4109// Returned Error Codes:
4110//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4111//   The operation failed because of a system problem, even though the request
4112//   was valid. Retry your request.
4113//
4114//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
4115//   The operation failed because you tried to create, update, or delete an object
4116//   by using an invalid account identifier.
4117//
4118//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4119//   The operation failed because the referenced object doesn't exist.
4120//
4121// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetIPSet
4122func (c *WAFRegional) GetIPSet(input *waf.GetIPSetInput) (*waf.GetIPSetOutput, error) {
4123	req, out := c.GetIPSetRequest(input)
4124	return out, req.Send()
4125}
4126
4127// GetIPSetWithContext is the same as GetIPSet with the addition of
4128// the ability to pass a context and additional request options.
4129//
4130// See GetIPSet for details on how to use this API operation.
4131//
4132// The context must be non-nil and will be used for request cancellation. If
4133// the context is nil a panic will occur. In the future the SDK may create
4134// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4135// for more information on using Contexts.
4136func (c *WAFRegional) GetIPSetWithContext(ctx aws.Context, input *waf.GetIPSetInput, opts ...request.Option) (*waf.GetIPSetOutput, error) {
4137	req, out := c.GetIPSetRequest(input)
4138	req.SetContext(ctx)
4139	req.ApplyOptions(opts...)
4140	return out, req.Send()
4141}
4142
4143const opGetLoggingConfiguration = "GetLoggingConfiguration"
4144
4145// GetLoggingConfigurationRequest generates a "aws/request.Request" representing the
4146// client's request for the GetLoggingConfiguration operation. The "output" return
4147// value will be populated with the request's response once the request completes
4148// successfully.
4149//
4150// Use "Send" method on the returned Request to send the API call to the service.
4151// the "output" return value is not valid until after Send returns without error.
4152//
4153// See GetLoggingConfiguration for more information on using the GetLoggingConfiguration
4154// API call, and error handling.
4155//
4156// This method is useful when you want to inject custom logic or configuration
4157// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4158//
4159//
4160//    // Example sending a request using the GetLoggingConfigurationRequest method.
4161//    req, resp := client.GetLoggingConfigurationRequest(params)
4162//
4163//    err := req.Send()
4164//    if err == nil { // resp is now filled
4165//        fmt.Println(resp)
4166//    }
4167//
4168// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetLoggingConfiguration
4169func (c *WAFRegional) GetLoggingConfigurationRequest(input *waf.GetLoggingConfigurationInput) (req *request.Request, output *waf.GetLoggingConfigurationOutput) {
4170	op := &request.Operation{
4171		Name:       opGetLoggingConfiguration,
4172		HTTPMethod: "POST",
4173		HTTPPath:   "/",
4174	}
4175
4176	if input == nil {
4177		input = &waf.GetLoggingConfigurationInput{}
4178	}
4179
4180	output = &waf.GetLoggingConfigurationOutput{}
4181	req = c.newRequest(op, input, output)
4182	return
4183}
4184
4185// GetLoggingConfiguration API operation for AWS WAF Regional.
4186//
4187// Returns the LoggingConfiguration for the specified web ACL.
4188//
4189// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4190// with awserr.Error's Code and Message methods to get detailed information about
4191// the error.
4192//
4193// See the AWS API reference guide for AWS WAF Regional's
4194// API operation GetLoggingConfiguration for usage and error information.
4195//
4196// Returned Error Codes:
4197//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4198//   The operation failed because of a system problem, even though the request
4199//   was valid. Retry your request.
4200//
4201//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4202//   The operation failed because the referenced object doesn't exist.
4203//
4204// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetLoggingConfiguration
4205func (c *WAFRegional) GetLoggingConfiguration(input *waf.GetLoggingConfigurationInput) (*waf.GetLoggingConfigurationOutput, error) {
4206	req, out := c.GetLoggingConfigurationRequest(input)
4207	return out, req.Send()
4208}
4209
4210// GetLoggingConfigurationWithContext is the same as GetLoggingConfiguration with the addition of
4211// the ability to pass a context and additional request options.
4212//
4213// See GetLoggingConfiguration for details on how to use this API operation.
4214//
4215// The context must be non-nil and will be used for request cancellation. If
4216// the context is nil a panic will occur. In the future the SDK may create
4217// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4218// for more information on using Contexts.
4219func (c *WAFRegional) GetLoggingConfigurationWithContext(ctx aws.Context, input *waf.GetLoggingConfigurationInput, opts ...request.Option) (*waf.GetLoggingConfigurationOutput, error) {
4220	req, out := c.GetLoggingConfigurationRequest(input)
4221	req.SetContext(ctx)
4222	req.ApplyOptions(opts...)
4223	return out, req.Send()
4224}
4225
4226const opGetPermissionPolicy = "GetPermissionPolicy"
4227
4228// GetPermissionPolicyRequest generates a "aws/request.Request" representing the
4229// client's request for the GetPermissionPolicy operation. The "output" return
4230// value will be populated with the request's response once the request completes
4231// successfully.
4232//
4233// Use "Send" method on the returned Request to send the API call to the service.
4234// the "output" return value is not valid until after Send returns without error.
4235//
4236// See GetPermissionPolicy for more information on using the GetPermissionPolicy
4237// API call, and error handling.
4238//
4239// This method is useful when you want to inject custom logic or configuration
4240// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4241//
4242//
4243//    // Example sending a request using the GetPermissionPolicyRequest method.
4244//    req, resp := client.GetPermissionPolicyRequest(params)
4245//
4246//    err := req.Send()
4247//    if err == nil { // resp is now filled
4248//        fmt.Println(resp)
4249//    }
4250//
4251// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetPermissionPolicy
4252func (c *WAFRegional) GetPermissionPolicyRequest(input *waf.GetPermissionPolicyInput) (req *request.Request, output *waf.GetPermissionPolicyOutput) {
4253	op := &request.Operation{
4254		Name:       opGetPermissionPolicy,
4255		HTTPMethod: "POST",
4256		HTTPPath:   "/",
4257	}
4258
4259	if input == nil {
4260		input = &waf.GetPermissionPolicyInput{}
4261	}
4262
4263	output = &waf.GetPermissionPolicyOutput{}
4264	req = c.newRequest(op, input, output)
4265	return
4266}
4267
4268// GetPermissionPolicy API operation for AWS WAF Regional.
4269//
4270// Returns the IAM policy attached to the RuleGroup.
4271//
4272// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4273// with awserr.Error's Code and Message methods to get detailed information about
4274// the error.
4275//
4276// See the AWS API reference guide for AWS WAF Regional's
4277// API operation GetPermissionPolicy for usage and error information.
4278//
4279// Returned Error Codes:
4280//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4281//   The operation failed because of a system problem, even though the request
4282//   was valid. Retry your request.
4283//
4284//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4285//   The operation failed because the referenced object doesn't exist.
4286//
4287// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetPermissionPolicy
4288func (c *WAFRegional) GetPermissionPolicy(input *waf.GetPermissionPolicyInput) (*waf.GetPermissionPolicyOutput, error) {
4289	req, out := c.GetPermissionPolicyRequest(input)
4290	return out, req.Send()
4291}
4292
4293// GetPermissionPolicyWithContext is the same as GetPermissionPolicy with the addition of
4294// the ability to pass a context and additional request options.
4295//
4296// See GetPermissionPolicy for details on how to use this API operation.
4297//
4298// The context must be non-nil and will be used for request cancellation. If
4299// the context is nil a panic will occur. In the future the SDK may create
4300// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4301// for more information on using Contexts.
4302func (c *WAFRegional) GetPermissionPolicyWithContext(ctx aws.Context, input *waf.GetPermissionPolicyInput, opts ...request.Option) (*waf.GetPermissionPolicyOutput, error) {
4303	req, out := c.GetPermissionPolicyRequest(input)
4304	req.SetContext(ctx)
4305	req.ApplyOptions(opts...)
4306	return out, req.Send()
4307}
4308
4309const opGetRateBasedRule = "GetRateBasedRule"
4310
4311// GetRateBasedRuleRequest generates a "aws/request.Request" representing the
4312// client's request for the GetRateBasedRule operation. The "output" return
4313// value will be populated with the request's response once the request completes
4314// successfully.
4315//
4316// Use "Send" method on the returned Request to send the API call to the service.
4317// the "output" return value is not valid until after Send returns without error.
4318//
4319// See GetRateBasedRule for more information on using the GetRateBasedRule
4320// API call, and error handling.
4321//
4322// This method is useful when you want to inject custom logic or configuration
4323// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4324//
4325//
4326//    // Example sending a request using the GetRateBasedRuleRequest method.
4327//    req, resp := client.GetRateBasedRuleRequest(params)
4328//
4329//    err := req.Send()
4330//    if err == nil { // resp is now filled
4331//        fmt.Println(resp)
4332//    }
4333//
4334// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRule
4335func (c *WAFRegional) GetRateBasedRuleRequest(input *waf.GetRateBasedRuleInput) (req *request.Request, output *waf.GetRateBasedRuleOutput) {
4336	op := &request.Operation{
4337		Name:       opGetRateBasedRule,
4338		HTTPMethod: "POST",
4339		HTTPPath:   "/",
4340	}
4341
4342	if input == nil {
4343		input = &waf.GetRateBasedRuleInput{}
4344	}
4345
4346	output = &waf.GetRateBasedRuleOutput{}
4347	req = c.newRequest(op, input, output)
4348	return
4349}
4350
4351// GetRateBasedRule API operation for AWS WAF Regional.
4352//
4353// Returns the RateBasedRule that is specified by the RuleId that you included
4354// in the GetRateBasedRule request.
4355//
4356// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4357// with awserr.Error's Code and Message methods to get detailed information about
4358// the error.
4359//
4360// See the AWS API reference guide for AWS WAF Regional's
4361// API operation GetRateBasedRule for usage and error information.
4362//
4363// Returned Error Codes:
4364//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4365//   The operation failed because of a system problem, even though the request
4366//   was valid. Retry your request.
4367//
4368//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
4369//   The operation failed because you tried to create, update, or delete an object
4370//   by using an invalid account identifier.
4371//
4372//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4373//   The operation failed because the referenced object doesn't exist.
4374//
4375// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRule
4376func (c *WAFRegional) GetRateBasedRule(input *waf.GetRateBasedRuleInput) (*waf.GetRateBasedRuleOutput, error) {
4377	req, out := c.GetRateBasedRuleRequest(input)
4378	return out, req.Send()
4379}
4380
4381// GetRateBasedRuleWithContext is the same as GetRateBasedRule with the addition of
4382// the ability to pass a context and additional request options.
4383//
4384// See GetRateBasedRule for details on how to use this API operation.
4385//
4386// The context must be non-nil and will be used for request cancellation. If
4387// the context is nil a panic will occur. In the future the SDK may create
4388// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4389// for more information on using Contexts.
4390func (c *WAFRegional) GetRateBasedRuleWithContext(ctx aws.Context, input *waf.GetRateBasedRuleInput, opts ...request.Option) (*waf.GetRateBasedRuleOutput, error) {
4391	req, out := c.GetRateBasedRuleRequest(input)
4392	req.SetContext(ctx)
4393	req.ApplyOptions(opts...)
4394	return out, req.Send()
4395}
4396
4397const opGetRateBasedRuleManagedKeys = "GetRateBasedRuleManagedKeys"
4398
4399// GetRateBasedRuleManagedKeysRequest generates a "aws/request.Request" representing the
4400// client's request for the GetRateBasedRuleManagedKeys operation. The "output" return
4401// value will be populated with the request's response once the request completes
4402// successfully.
4403//
4404// Use "Send" method on the returned Request to send the API call to the service.
4405// the "output" return value is not valid until after Send returns without error.
4406//
4407// See GetRateBasedRuleManagedKeys for more information on using the GetRateBasedRuleManagedKeys
4408// API call, and error handling.
4409//
4410// This method is useful when you want to inject custom logic or configuration
4411// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4412//
4413//
4414//    // Example sending a request using the GetRateBasedRuleManagedKeysRequest method.
4415//    req, resp := client.GetRateBasedRuleManagedKeysRequest(params)
4416//
4417//    err := req.Send()
4418//    if err == nil { // resp is now filled
4419//        fmt.Println(resp)
4420//    }
4421//
4422// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRuleManagedKeys
4423func (c *WAFRegional) GetRateBasedRuleManagedKeysRequest(input *waf.GetRateBasedRuleManagedKeysInput) (req *request.Request, output *waf.GetRateBasedRuleManagedKeysOutput) {
4424	op := &request.Operation{
4425		Name:       opGetRateBasedRuleManagedKeys,
4426		HTTPMethod: "POST",
4427		HTTPPath:   "/",
4428	}
4429
4430	if input == nil {
4431		input = &waf.GetRateBasedRuleManagedKeysInput{}
4432	}
4433
4434	output = &waf.GetRateBasedRuleManagedKeysOutput{}
4435	req = c.newRequest(op, input, output)
4436	return
4437}
4438
4439// GetRateBasedRuleManagedKeys API operation for AWS WAF Regional.
4440//
4441// Returns an array of IP addresses currently being blocked by the RateBasedRule
4442// that is specified by the RuleId. The maximum number of managed keys that
4443// will be blocked is 10,000. If more than 10,000 addresses exceed the rate
4444// limit, the 10,000 addresses with the highest rates will be blocked.
4445//
4446// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4447// with awserr.Error's Code and Message methods to get detailed information about
4448// the error.
4449//
4450// See the AWS API reference guide for AWS WAF Regional's
4451// API operation GetRateBasedRuleManagedKeys for usage and error information.
4452//
4453// Returned Error Codes:
4454//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4455//   The operation failed because of a system problem, even though the request
4456//   was valid. Retry your request.
4457//
4458//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
4459//   The operation failed because you tried to create, update, or delete an object
4460//   by using an invalid account identifier.
4461//
4462//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4463//   The operation failed because the referenced object doesn't exist.
4464//
4465//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
4466//   The operation failed because AWS WAF didn't recognize a parameter in the
4467//   request. For example:
4468//
4469//      * You specified an invalid parameter name.
4470//
4471//      * You specified an invalid value.
4472//
4473//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
4474//      using an action other than INSERT or DELETE.
4475//
4476//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
4477//      BLOCK, or COUNT.
4478//
4479//      * You tried to create a RateBasedRule with a RateKey value other than
4480//      IP.
4481//
4482//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
4483//      BLOCK, or COUNT.
4484//
4485//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
4486//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
4487//
4488//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
4489//      for Data.
4490//
4491//      * Your request references an ARN that is malformed, or corresponds to
4492//      a resource with which a web ACL cannot be associated.
4493//
4494// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRateBasedRuleManagedKeys
4495func (c *WAFRegional) GetRateBasedRuleManagedKeys(input *waf.GetRateBasedRuleManagedKeysInput) (*waf.GetRateBasedRuleManagedKeysOutput, error) {
4496	req, out := c.GetRateBasedRuleManagedKeysRequest(input)
4497	return out, req.Send()
4498}
4499
4500// GetRateBasedRuleManagedKeysWithContext is the same as GetRateBasedRuleManagedKeys with the addition of
4501// the ability to pass a context and additional request options.
4502//
4503// See GetRateBasedRuleManagedKeys for details on how to use this API operation.
4504//
4505// The context must be non-nil and will be used for request cancellation. If
4506// the context is nil a panic will occur. In the future the SDK may create
4507// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4508// for more information on using Contexts.
4509func (c *WAFRegional) GetRateBasedRuleManagedKeysWithContext(ctx aws.Context, input *waf.GetRateBasedRuleManagedKeysInput, opts ...request.Option) (*waf.GetRateBasedRuleManagedKeysOutput, error) {
4510	req, out := c.GetRateBasedRuleManagedKeysRequest(input)
4511	req.SetContext(ctx)
4512	req.ApplyOptions(opts...)
4513	return out, req.Send()
4514}
4515
4516const opGetRegexMatchSet = "GetRegexMatchSet"
4517
4518// GetRegexMatchSetRequest generates a "aws/request.Request" representing the
4519// client's request for the GetRegexMatchSet operation. The "output" return
4520// value will be populated with the request's response once the request completes
4521// successfully.
4522//
4523// Use "Send" method on the returned Request to send the API call to the service.
4524// the "output" return value is not valid until after Send returns without error.
4525//
4526// See GetRegexMatchSet for more information on using the GetRegexMatchSet
4527// API call, and error handling.
4528//
4529// This method is useful when you want to inject custom logic or configuration
4530// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4531//
4532//
4533//    // Example sending a request using the GetRegexMatchSetRequest method.
4534//    req, resp := client.GetRegexMatchSetRequest(params)
4535//
4536//    err := req.Send()
4537//    if err == nil { // resp is now filled
4538//        fmt.Println(resp)
4539//    }
4540//
4541// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRegexMatchSet
4542func (c *WAFRegional) GetRegexMatchSetRequest(input *waf.GetRegexMatchSetInput) (req *request.Request, output *waf.GetRegexMatchSetOutput) {
4543	op := &request.Operation{
4544		Name:       opGetRegexMatchSet,
4545		HTTPMethod: "POST",
4546		HTTPPath:   "/",
4547	}
4548
4549	if input == nil {
4550		input = &waf.GetRegexMatchSetInput{}
4551	}
4552
4553	output = &waf.GetRegexMatchSetOutput{}
4554	req = c.newRequest(op, input, output)
4555	return
4556}
4557
4558// GetRegexMatchSet API operation for AWS WAF Regional.
4559//
4560// Returns the RegexMatchSet specified by RegexMatchSetId.
4561//
4562// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4563// with awserr.Error's Code and Message methods to get detailed information about
4564// the error.
4565//
4566// See the AWS API reference guide for AWS WAF Regional's
4567// API operation GetRegexMatchSet for usage and error information.
4568//
4569// Returned Error Codes:
4570//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4571//   The operation failed because of a system problem, even though the request
4572//   was valid. Retry your request.
4573//
4574//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
4575//   The operation failed because you tried to create, update, or delete an object
4576//   by using an invalid account identifier.
4577//
4578//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4579//   The operation failed because the referenced object doesn't exist.
4580//
4581// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRegexMatchSet
4582func (c *WAFRegional) GetRegexMatchSet(input *waf.GetRegexMatchSetInput) (*waf.GetRegexMatchSetOutput, error) {
4583	req, out := c.GetRegexMatchSetRequest(input)
4584	return out, req.Send()
4585}
4586
4587// GetRegexMatchSetWithContext is the same as GetRegexMatchSet with the addition of
4588// the ability to pass a context and additional request options.
4589//
4590// See GetRegexMatchSet for details on how to use this API operation.
4591//
4592// The context must be non-nil and will be used for request cancellation. If
4593// the context is nil a panic will occur. In the future the SDK may create
4594// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4595// for more information on using Contexts.
4596func (c *WAFRegional) GetRegexMatchSetWithContext(ctx aws.Context, input *waf.GetRegexMatchSetInput, opts ...request.Option) (*waf.GetRegexMatchSetOutput, error) {
4597	req, out := c.GetRegexMatchSetRequest(input)
4598	req.SetContext(ctx)
4599	req.ApplyOptions(opts...)
4600	return out, req.Send()
4601}
4602
4603const opGetRegexPatternSet = "GetRegexPatternSet"
4604
4605// GetRegexPatternSetRequest generates a "aws/request.Request" representing the
4606// client's request for the GetRegexPatternSet operation. The "output" return
4607// value will be populated with the request's response once the request completes
4608// successfully.
4609//
4610// Use "Send" method on the returned Request to send the API call to the service.
4611// the "output" return value is not valid until after Send returns without error.
4612//
4613// See GetRegexPatternSet for more information on using the GetRegexPatternSet
4614// API call, and error handling.
4615//
4616// This method is useful when you want to inject custom logic or configuration
4617// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4618//
4619//
4620//    // Example sending a request using the GetRegexPatternSetRequest method.
4621//    req, resp := client.GetRegexPatternSetRequest(params)
4622//
4623//    err := req.Send()
4624//    if err == nil { // resp is now filled
4625//        fmt.Println(resp)
4626//    }
4627//
4628// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRegexPatternSet
4629func (c *WAFRegional) GetRegexPatternSetRequest(input *waf.GetRegexPatternSetInput) (req *request.Request, output *waf.GetRegexPatternSetOutput) {
4630	op := &request.Operation{
4631		Name:       opGetRegexPatternSet,
4632		HTTPMethod: "POST",
4633		HTTPPath:   "/",
4634	}
4635
4636	if input == nil {
4637		input = &waf.GetRegexPatternSetInput{}
4638	}
4639
4640	output = &waf.GetRegexPatternSetOutput{}
4641	req = c.newRequest(op, input, output)
4642	return
4643}
4644
4645// GetRegexPatternSet API operation for AWS WAF Regional.
4646//
4647// Returns the RegexPatternSet specified by RegexPatternSetId.
4648//
4649// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4650// with awserr.Error's Code and Message methods to get detailed information about
4651// the error.
4652//
4653// See the AWS API reference guide for AWS WAF Regional's
4654// API operation GetRegexPatternSet for usage and error information.
4655//
4656// Returned Error Codes:
4657//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4658//   The operation failed because of a system problem, even though the request
4659//   was valid. Retry your request.
4660//
4661//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
4662//   The operation failed because you tried to create, update, or delete an object
4663//   by using an invalid account identifier.
4664//
4665//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4666//   The operation failed because the referenced object doesn't exist.
4667//
4668// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRegexPatternSet
4669func (c *WAFRegional) GetRegexPatternSet(input *waf.GetRegexPatternSetInput) (*waf.GetRegexPatternSetOutput, error) {
4670	req, out := c.GetRegexPatternSetRequest(input)
4671	return out, req.Send()
4672}
4673
4674// GetRegexPatternSetWithContext is the same as GetRegexPatternSet with the addition of
4675// the ability to pass a context and additional request options.
4676//
4677// See GetRegexPatternSet for details on how to use this API operation.
4678//
4679// The context must be non-nil and will be used for request cancellation. If
4680// the context is nil a panic will occur. In the future the SDK may create
4681// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4682// for more information on using Contexts.
4683func (c *WAFRegional) GetRegexPatternSetWithContext(ctx aws.Context, input *waf.GetRegexPatternSetInput, opts ...request.Option) (*waf.GetRegexPatternSetOutput, error) {
4684	req, out := c.GetRegexPatternSetRequest(input)
4685	req.SetContext(ctx)
4686	req.ApplyOptions(opts...)
4687	return out, req.Send()
4688}
4689
4690const opGetRule = "GetRule"
4691
4692// GetRuleRequest generates a "aws/request.Request" representing the
4693// client's request for the GetRule operation. The "output" return
4694// value will be populated with the request's response once the request completes
4695// successfully.
4696//
4697// Use "Send" method on the returned Request to send the API call to the service.
4698// the "output" return value is not valid until after Send returns without error.
4699//
4700// See GetRule for more information on using the GetRule
4701// API call, and error handling.
4702//
4703// This method is useful when you want to inject custom logic or configuration
4704// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4705//
4706//
4707//    // Example sending a request using the GetRuleRequest method.
4708//    req, resp := client.GetRuleRequest(params)
4709//
4710//    err := req.Send()
4711//    if err == nil { // resp is now filled
4712//        fmt.Println(resp)
4713//    }
4714//
4715// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRule
4716func (c *WAFRegional) GetRuleRequest(input *waf.GetRuleInput) (req *request.Request, output *waf.GetRuleOutput) {
4717	op := &request.Operation{
4718		Name:       opGetRule,
4719		HTTPMethod: "POST",
4720		HTTPPath:   "/",
4721	}
4722
4723	if input == nil {
4724		input = &waf.GetRuleInput{}
4725	}
4726
4727	output = &waf.GetRuleOutput{}
4728	req = c.newRequest(op, input, output)
4729	return
4730}
4731
4732// GetRule API operation for AWS WAF Regional.
4733//
4734// Returns the Rule that is specified by the RuleId that you included in the
4735// GetRule request.
4736//
4737// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4738// with awserr.Error's Code and Message methods to get detailed information about
4739// the error.
4740//
4741// See the AWS API reference guide for AWS WAF Regional's
4742// API operation GetRule for usage and error information.
4743//
4744// Returned Error Codes:
4745//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4746//   The operation failed because of a system problem, even though the request
4747//   was valid. Retry your request.
4748//
4749//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
4750//   The operation failed because you tried to create, update, or delete an object
4751//   by using an invalid account identifier.
4752//
4753//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4754//   The operation failed because the referenced object doesn't exist.
4755//
4756// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRule
4757func (c *WAFRegional) GetRule(input *waf.GetRuleInput) (*waf.GetRuleOutput, error) {
4758	req, out := c.GetRuleRequest(input)
4759	return out, req.Send()
4760}
4761
4762// GetRuleWithContext is the same as GetRule with the addition of
4763// the ability to pass a context and additional request options.
4764//
4765// See GetRule for details on how to use this API operation.
4766//
4767// The context must be non-nil and will be used for request cancellation. If
4768// the context is nil a panic will occur. In the future the SDK may create
4769// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4770// for more information on using Contexts.
4771func (c *WAFRegional) GetRuleWithContext(ctx aws.Context, input *waf.GetRuleInput, opts ...request.Option) (*waf.GetRuleOutput, error) {
4772	req, out := c.GetRuleRequest(input)
4773	req.SetContext(ctx)
4774	req.ApplyOptions(opts...)
4775	return out, req.Send()
4776}
4777
4778const opGetRuleGroup = "GetRuleGroup"
4779
4780// GetRuleGroupRequest generates a "aws/request.Request" representing the
4781// client's request for the GetRuleGroup operation. The "output" return
4782// value will be populated with the request's response once the request completes
4783// successfully.
4784//
4785// Use "Send" method on the returned Request to send the API call to the service.
4786// the "output" return value is not valid until after Send returns without error.
4787//
4788// See GetRuleGroup for more information on using the GetRuleGroup
4789// API call, and error handling.
4790//
4791// This method is useful when you want to inject custom logic or configuration
4792// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4793//
4794//
4795//    // Example sending a request using the GetRuleGroupRequest method.
4796//    req, resp := client.GetRuleGroupRequest(params)
4797//
4798//    err := req.Send()
4799//    if err == nil { // resp is now filled
4800//        fmt.Println(resp)
4801//    }
4802//
4803// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRuleGroup
4804func (c *WAFRegional) GetRuleGroupRequest(input *waf.GetRuleGroupInput) (req *request.Request, output *waf.GetRuleGroupOutput) {
4805	op := &request.Operation{
4806		Name:       opGetRuleGroup,
4807		HTTPMethod: "POST",
4808		HTTPPath:   "/",
4809	}
4810
4811	if input == nil {
4812		input = &waf.GetRuleGroupInput{}
4813	}
4814
4815	output = &waf.GetRuleGroupOutput{}
4816	req = c.newRequest(op, input, output)
4817	return
4818}
4819
4820// GetRuleGroup API operation for AWS WAF Regional.
4821//
4822// Returns the RuleGroup that is specified by the RuleGroupId that you included
4823// in the GetRuleGroup request.
4824//
4825// To view the rules in a rule group, use ListActivatedRulesInRuleGroup.
4826//
4827// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4828// with awserr.Error's Code and Message methods to get detailed information about
4829// the error.
4830//
4831// See the AWS API reference guide for AWS WAF Regional's
4832// API operation GetRuleGroup for usage and error information.
4833//
4834// Returned Error Codes:
4835//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4836//   The operation failed because of a system problem, even though the request
4837//   was valid. Retry your request.
4838//
4839//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4840//   The operation failed because the referenced object doesn't exist.
4841//
4842// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetRuleGroup
4843func (c *WAFRegional) GetRuleGroup(input *waf.GetRuleGroupInput) (*waf.GetRuleGroupOutput, error) {
4844	req, out := c.GetRuleGroupRequest(input)
4845	return out, req.Send()
4846}
4847
4848// GetRuleGroupWithContext is the same as GetRuleGroup with the addition of
4849// the ability to pass a context and additional request options.
4850//
4851// See GetRuleGroup for details on how to use this API operation.
4852//
4853// The context must be non-nil and will be used for request cancellation. If
4854// the context is nil a panic will occur. In the future the SDK may create
4855// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4856// for more information on using Contexts.
4857func (c *WAFRegional) GetRuleGroupWithContext(ctx aws.Context, input *waf.GetRuleGroupInput, opts ...request.Option) (*waf.GetRuleGroupOutput, error) {
4858	req, out := c.GetRuleGroupRequest(input)
4859	req.SetContext(ctx)
4860	req.ApplyOptions(opts...)
4861	return out, req.Send()
4862}
4863
4864const opGetSampledRequests = "GetSampledRequests"
4865
4866// GetSampledRequestsRequest generates a "aws/request.Request" representing the
4867// client's request for the GetSampledRequests operation. The "output" return
4868// value will be populated with the request's response once the request completes
4869// successfully.
4870//
4871// Use "Send" method on the returned Request to send the API call to the service.
4872// the "output" return value is not valid until after Send returns without error.
4873//
4874// See GetSampledRequests for more information on using the GetSampledRequests
4875// API call, and error handling.
4876//
4877// This method is useful when you want to inject custom logic or configuration
4878// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4879//
4880//
4881//    // Example sending a request using the GetSampledRequestsRequest method.
4882//    req, resp := client.GetSampledRequestsRequest(params)
4883//
4884//    err := req.Send()
4885//    if err == nil { // resp is now filled
4886//        fmt.Println(resp)
4887//    }
4888//
4889// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSampledRequests
4890func (c *WAFRegional) GetSampledRequestsRequest(input *waf.GetSampledRequestsInput) (req *request.Request, output *waf.GetSampledRequestsOutput) {
4891	op := &request.Operation{
4892		Name:       opGetSampledRequests,
4893		HTTPMethod: "POST",
4894		HTTPPath:   "/",
4895	}
4896
4897	if input == nil {
4898		input = &waf.GetSampledRequestsInput{}
4899	}
4900
4901	output = &waf.GetSampledRequestsOutput{}
4902	req = c.newRequest(op, input, output)
4903	return
4904}
4905
4906// GetSampledRequests API operation for AWS WAF Regional.
4907//
4908// Gets detailed information about a specified number of requests--a sample--that
4909// AWS WAF randomly selects from among the first 5,000 requests that your AWS
4910// resource received during a time range that you choose. You can specify a
4911// sample size of up to 500 requests, and you can specify any time range in
4912// the previous three hours.
4913//
4914// GetSampledRequests returns a time range, which is usually the time range
4915// that you specified. However, if your resource (such as a CloudFront distribution)
4916// received 5,000 requests before the specified time range elapsed, GetSampledRequests
4917// returns an updated time range. This new time range indicates the actual period
4918// during which AWS WAF selected the requests in the sample.
4919//
4920// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
4921// with awserr.Error's Code and Message methods to get detailed information about
4922// the error.
4923//
4924// See the AWS API reference guide for AWS WAF Regional's
4925// API operation GetSampledRequests for usage and error information.
4926//
4927// Returned Error Codes:
4928//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
4929//   The operation failed because the referenced object doesn't exist.
4930//
4931//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
4932//   The operation failed because of a system problem, even though the request
4933//   was valid. Retry your request.
4934//
4935// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSampledRequests
4936func (c *WAFRegional) GetSampledRequests(input *waf.GetSampledRequestsInput) (*waf.GetSampledRequestsOutput, error) {
4937	req, out := c.GetSampledRequestsRequest(input)
4938	return out, req.Send()
4939}
4940
4941// GetSampledRequestsWithContext is the same as GetSampledRequests with the addition of
4942// the ability to pass a context and additional request options.
4943//
4944// See GetSampledRequests for details on how to use this API operation.
4945//
4946// The context must be non-nil and will be used for request cancellation. If
4947// the context is nil a panic will occur. In the future the SDK may create
4948// sub-contexts for http.Requests. See https://golang.org/pkg/context/
4949// for more information on using Contexts.
4950func (c *WAFRegional) GetSampledRequestsWithContext(ctx aws.Context, input *waf.GetSampledRequestsInput, opts ...request.Option) (*waf.GetSampledRequestsOutput, error) {
4951	req, out := c.GetSampledRequestsRequest(input)
4952	req.SetContext(ctx)
4953	req.ApplyOptions(opts...)
4954	return out, req.Send()
4955}
4956
4957const opGetSizeConstraintSet = "GetSizeConstraintSet"
4958
4959// GetSizeConstraintSetRequest generates a "aws/request.Request" representing the
4960// client's request for the GetSizeConstraintSet operation. The "output" return
4961// value will be populated with the request's response once the request completes
4962// successfully.
4963//
4964// Use "Send" method on the returned Request to send the API call to the service.
4965// the "output" return value is not valid until after Send returns without error.
4966//
4967// See GetSizeConstraintSet for more information on using the GetSizeConstraintSet
4968// API call, and error handling.
4969//
4970// This method is useful when you want to inject custom logic or configuration
4971// into the SDK's request lifecycle. Such as custom headers, or retry logic.
4972//
4973//
4974//    // Example sending a request using the GetSizeConstraintSetRequest method.
4975//    req, resp := client.GetSizeConstraintSetRequest(params)
4976//
4977//    err := req.Send()
4978//    if err == nil { // resp is now filled
4979//        fmt.Println(resp)
4980//    }
4981//
4982// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSizeConstraintSet
4983func (c *WAFRegional) GetSizeConstraintSetRequest(input *waf.GetSizeConstraintSetInput) (req *request.Request, output *waf.GetSizeConstraintSetOutput) {
4984	op := &request.Operation{
4985		Name:       opGetSizeConstraintSet,
4986		HTTPMethod: "POST",
4987		HTTPPath:   "/",
4988	}
4989
4990	if input == nil {
4991		input = &waf.GetSizeConstraintSetInput{}
4992	}
4993
4994	output = &waf.GetSizeConstraintSetOutput{}
4995	req = c.newRequest(op, input, output)
4996	return
4997}
4998
4999// GetSizeConstraintSet API operation for AWS WAF Regional.
5000//
5001// Returns the SizeConstraintSet specified by SizeConstraintSetId.
5002//
5003// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5004// with awserr.Error's Code and Message methods to get detailed information about
5005// the error.
5006//
5007// See the AWS API reference guide for AWS WAF Regional's
5008// API operation GetSizeConstraintSet for usage and error information.
5009//
5010// Returned Error Codes:
5011//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5012//   The operation failed because of a system problem, even though the request
5013//   was valid. Retry your request.
5014//
5015//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5016//   The operation failed because you tried to create, update, or delete an object
5017//   by using an invalid account identifier.
5018//
5019//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
5020//   The operation failed because the referenced object doesn't exist.
5021//
5022// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSizeConstraintSet
5023func (c *WAFRegional) GetSizeConstraintSet(input *waf.GetSizeConstraintSetInput) (*waf.GetSizeConstraintSetOutput, error) {
5024	req, out := c.GetSizeConstraintSetRequest(input)
5025	return out, req.Send()
5026}
5027
5028// GetSizeConstraintSetWithContext is the same as GetSizeConstraintSet with the addition of
5029// the ability to pass a context and additional request options.
5030//
5031// See GetSizeConstraintSet for details on how to use this API operation.
5032//
5033// The context must be non-nil and will be used for request cancellation. If
5034// the context is nil a panic will occur. In the future the SDK may create
5035// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5036// for more information on using Contexts.
5037func (c *WAFRegional) GetSizeConstraintSetWithContext(ctx aws.Context, input *waf.GetSizeConstraintSetInput, opts ...request.Option) (*waf.GetSizeConstraintSetOutput, error) {
5038	req, out := c.GetSizeConstraintSetRequest(input)
5039	req.SetContext(ctx)
5040	req.ApplyOptions(opts...)
5041	return out, req.Send()
5042}
5043
5044const opGetSqlInjectionMatchSet = "GetSqlInjectionMatchSet"
5045
5046// GetSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
5047// client's request for the GetSqlInjectionMatchSet operation. The "output" return
5048// value will be populated with the request's response once the request completes
5049// successfully.
5050//
5051// Use "Send" method on the returned Request to send the API call to the service.
5052// the "output" return value is not valid until after Send returns without error.
5053//
5054// See GetSqlInjectionMatchSet for more information on using the GetSqlInjectionMatchSet
5055// API call, and error handling.
5056//
5057// This method is useful when you want to inject custom logic or configuration
5058// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5059//
5060//
5061//    // Example sending a request using the GetSqlInjectionMatchSetRequest method.
5062//    req, resp := client.GetSqlInjectionMatchSetRequest(params)
5063//
5064//    err := req.Send()
5065//    if err == nil { // resp is now filled
5066//        fmt.Println(resp)
5067//    }
5068//
5069// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSqlInjectionMatchSet
5070func (c *WAFRegional) GetSqlInjectionMatchSetRequest(input *waf.GetSqlInjectionMatchSetInput) (req *request.Request, output *waf.GetSqlInjectionMatchSetOutput) {
5071	op := &request.Operation{
5072		Name:       opGetSqlInjectionMatchSet,
5073		HTTPMethod: "POST",
5074		HTTPPath:   "/",
5075	}
5076
5077	if input == nil {
5078		input = &waf.GetSqlInjectionMatchSetInput{}
5079	}
5080
5081	output = &waf.GetSqlInjectionMatchSetOutput{}
5082	req = c.newRequest(op, input, output)
5083	return
5084}
5085
5086// GetSqlInjectionMatchSet API operation for AWS WAF Regional.
5087//
5088// Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId.
5089//
5090// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5091// with awserr.Error's Code and Message methods to get detailed information about
5092// the error.
5093//
5094// See the AWS API reference guide for AWS WAF Regional's
5095// API operation GetSqlInjectionMatchSet for usage and error information.
5096//
5097// Returned Error Codes:
5098//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5099//   The operation failed because of a system problem, even though the request
5100//   was valid. Retry your request.
5101//
5102//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5103//   The operation failed because you tried to create, update, or delete an object
5104//   by using an invalid account identifier.
5105//
5106//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
5107//   The operation failed because the referenced object doesn't exist.
5108//
5109// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetSqlInjectionMatchSet
5110func (c *WAFRegional) GetSqlInjectionMatchSet(input *waf.GetSqlInjectionMatchSetInput) (*waf.GetSqlInjectionMatchSetOutput, error) {
5111	req, out := c.GetSqlInjectionMatchSetRequest(input)
5112	return out, req.Send()
5113}
5114
5115// GetSqlInjectionMatchSetWithContext is the same as GetSqlInjectionMatchSet with the addition of
5116// the ability to pass a context and additional request options.
5117//
5118// See GetSqlInjectionMatchSet for details on how to use this API operation.
5119//
5120// The context must be non-nil and will be used for request cancellation. If
5121// the context is nil a panic will occur. In the future the SDK may create
5122// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5123// for more information on using Contexts.
5124func (c *WAFRegional) GetSqlInjectionMatchSetWithContext(ctx aws.Context, input *waf.GetSqlInjectionMatchSetInput, opts ...request.Option) (*waf.GetSqlInjectionMatchSetOutput, error) {
5125	req, out := c.GetSqlInjectionMatchSetRequest(input)
5126	req.SetContext(ctx)
5127	req.ApplyOptions(opts...)
5128	return out, req.Send()
5129}
5130
5131const opGetWebACL = "GetWebACL"
5132
5133// GetWebACLRequest generates a "aws/request.Request" representing the
5134// client's request for the GetWebACL operation. The "output" return
5135// value will be populated with the request's response once the request completes
5136// successfully.
5137//
5138// Use "Send" method on the returned Request to send the API call to the service.
5139// the "output" return value is not valid until after Send returns without error.
5140//
5141// See GetWebACL for more information on using the GetWebACL
5142// API call, and error handling.
5143//
5144// This method is useful when you want to inject custom logic or configuration
5145// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5146//
5147//
5148//    // Example sending a request using the GetWebACLRequest method.
5149//    req, resp := client.GetWebACLRequest(params)
5150//
5151//    err := req.Send()
5152//    if err == nil { // resp is now filled
5153//        fmt.Println(resp)
5154//    }
5155//
5156// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACL
5157func (c *WAFRegional) GetWebACLRequest(input *waf.GetWebACLInput) (req *request.Request, output *waf.GetWebACLOutput) {
5158	op := &request.Operation{
5159		Name:       opGetWebACL,
5160		HTTPMethod: "POST",
5161		HTTPPath:   "/",
5162	}
5163
5164	if input == nil {
5165		input = &waf.GetWebACLInput{}
5166	}
5167
5168	output = &waf.GetWebACLOutput{}
5169	req = c.newRequest(op, input, output)
5170	return
5171}
5172
5173// GetWebACL API operation for AWS WAF Regional.
5174//
5175// Returns the WebACL that is specified by WebACLId.
5176//
5177// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5178// with awserr.Error's Code and Message methods to get detailed information about
5179// the error.
5180//
5181// See the AWS API reference guide for AWS WAF Regional's
5182// API operation GetWebACL for usage and error information.
5183//
5184// Returned Error Codes:
5185//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5186//   The operation failed because of a system problem, even though the request
5187//   was valid. Retry your request.
5188//
5189//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5190//   The operation failed because you tried to create, update, or delete an object
5191//   by using an invalid account identifier.
5192//
5193//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
5194//   The operation failed because the referenced object doesn't exist.
5195//
5196// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACL
5197func (c *WAFRegional) GetWebACL(input *waf.GetWebACLInput) (*waf.GetWebACLOutput, error) {
5198	req, out := c.GetWebACLRequest(input)
5199	return out, req.Send()
5200}
5201
5202// GetWebACLWithContext is the same as GetWebACL with the addition of
5203// the ability to pass a context and additional request options.
5204//
5205// See GetWebACL for details on how to use this API operation.
5206//
5207// The context must be non-nil and will be used for request cancellation. If
5208// the context is nil a panic will occur. In the future the SDK may create
5209// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5210// for more information on using Contexts.
5211func (c *WAFRegional) GetWebACLWithContext(ctx aws.Context, input *waf.GetWebACLInput, opts ...request.Option) (*waf.GetWebACLOutput, error) {
5212	req, out := c.GetWebACLRequest(input)
5213	req.SetContext(ctx)
5214	req.ApplyOptions(opts...)
5215	return out, req.Send()
5216}
5217
5218const opGetWebACLForResource = "GetWebACLForResource"
5219
5220// GetWebACLForResourceRequest generates a "aws/request.Request" representing the
5221// client's request for the GetWebACLForResource operation. The "output" return
5222// value will be populated with the request's response once the request completes
5223// successfully.
5224//
5225// Use "Send" method on the returned Request to send the API call to the service.
5226// the "output" return value is not valid until after Send returns without error.
5227//
5228// See GetWebACLForResource for more information on using the GetWebACLForResource
5229// API call, and error handling.
5230//
5231// This method is useful when you want to inject custom logic or configuration
5232// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5233//
5234//
5235//    // Example sending a request using the GetWebACLForResourceRequest method.
5236//    req, resp := client.GetWebACLForResourceRequest(params)
5237//
5238//    err := req.Send()
5239//    if err == nil { // resp is now filled
5240//        fmt.Println(resp)
5241//    }
5242//
5243// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACLForResource
5244func (c *WAFRegional) GetWebACLForResourceRequest(input *GetWebACLForResourceInput) (req *request.Request, output *GetWebACLForResourceOutput) {
5245	op := &request.Operation{
5246		Name:       opGetWebACLForResource,
5247		HTTPMethod: "POST",
5248		HTTPPath:   "/",
5249	}
5250
5251	if input == nil {
5252		input = &GetWebACLForResourceInput{}
5253	}
5254
5255	output = &GetWebACLForResourceOutput{}
5256	req = c.newRequest(op, input, output)
5257	return
5258}
5259
5260// GetWebACLForResource API operation for AWS WAF Regional.
5261//
5262// Returns the web ACL for the specified resource, either an application load
5263// balancer or Amazon API Gateway stage.
5264//
5265// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5266// with awserr.Error's Code and Message methods to get detailed information about
5267// the error.
5268//
5269// See the AWS API reference guide for AWS WAF Regional's
5270// API operation GetWebACLForResource for usage and error information.
5271//
5272// Returned Error Codes:
5273//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5274//   The operation failed because of a system problem, even though the request
5275//   was valid. Retry your request.
5276//
5277//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5278//   The operation failed because you tried to create, update, or delete an object
5279//   by using an invalid account identifier.
5280//
5281//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
5282//   The operation failed because the referenced object doesn't exist.
5283//
5284//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
5285//   The operation failed because AWS WAF didn't recognize a parameter in the
5286//   request. For example:
5287//
5288//      * You specified an invalid parameter name.
5289//
5290//      * You specified an invalid value.
5291//
5292//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
5293//      using an action other than INSERT or DELETE.
5294//
5295//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
5296//      BLOCK, or COUNT.
5297//
5298//      * You tried to create a RateBasedRule with a RateKey value other than
5299//      IP.
5300//
5301//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
5302//      BLOCK, or COUNT.
5303//
5304//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
5305//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
5306//
5307//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
5308//      for Data.
5309//
5310//      * Your request references an ARN that is malformed, or corresponds to
5311//      a resource with which a web ACL cannot be associated.
5312//
5313//   * ErrCodeWAFUnavailableEntityException "WAFUnavailableEntityException"
5314//   The operation failed because the entity referenced is temporarily unavailable.
5315//   Retry your request.
5316//
5317// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetWebACLForResource
5318func (c *WAFRegional) GetWebACLForResource(input *GetWebACLForResourceInput) (*GetWebACLForResourceOutput, error) {
5319	req, out := c.GetWebACLForResourceRequest(input)
5320	return out, req.Send()
5321}
5322
5323// GetWebACLForResourceWithContext is the same as GetWebACLForResource with the addition of
5324// the ability to pass a context and additional request options.
5325//
5326// See GetWebACLForResource for details on how to use this API operation.
5327//
5328// The context must be non-nil and will be used for request cancellation. If
5329// the context is nil a panic will occur. In the future the SDK may create
5330// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5331// for more information on using Contexts.
5332func (c *WAFRegional) GetWebACLForResourceWithContext(ctx aws.Context, input *GetWebACLForResourceInput, opts ...request.Option) (*GetWebACLForResourceOutput, error) {
5333	req, out := c.GetWebACLForResourceRequest(input)
5334	req.SetContext(ctx)
5335	req.ApplyOptions(opts...)
5336	return out, req.Send()
5337}
5338
5339const opGetXssMatchSet = "GetXssMatchSet"
5340
5341// GetXssMatchSetRequest generates a "aws/request.Request" representing the
5342// client's request for the GetXssMatchSet operation. The "output" return
5343// value will be populated with the request's response once the request completes
5344// successfully.
5345//
5346// Use "Send" method on the returned Request to send the API call to the service.
5347// the "output" return value is not valid until after Send returns without error.
5348//
5349// See GetXssMatchSet for more information on using the GetXssMatchSet
5350// API call, and error handling.
5351//
5352// This method is useful when you want to inject custom logic or configuration
5353// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5354//
5355//
5356//    // Example sending a request using the GetXssMatchSetRequest method.
5357//    req, resp := client.GetXssMatchSetRequest(params)
5358//
5359//    err := req.Send()
5360//    if err == nil { // resp is now filled
5361//        fmt.Println(resp)
5362//    }
5363//
5364// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetXssMatchSet
5365func (c *WAFRegional) GetXssMatchSetRequest(input *waf.GetXssMatchSetInput) (req *request.Request, output *waf.GetXssMatchSetOutput) {
5366	op := &request.Operation{
5367		Name:       opGetXssMatchSet,
5368		HTTPMethod: "POST",
5369		HTTPPath:   "/",
5370	}
5371
5372	if input == nil {
5373		input = &waf.GetXssMatchSetInput{}
5374	}
5375
5376	output = &waf.GetXssMatchSetOutput{}
5377	req = c.newRequest(op, input, output)
5378	return
5379}
5380
5381// GetXssMatchSet API operation for AWS WAF Regional.
5382//
5383// Returns the XssMatchSet that is specified by XssMatchSetId.
5384//
5385// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5386// with awserr.Error's Code and Message methods to get detailed information about
5387// the error.
5388//
5389// See the AWS API reference guide for AWS WAF Regional's
5390// API operation GetXssMatchSet for usage and error information.
5391//
5392// Returned Error Codes:
5393//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5394//   The operation failed because of a system problem, even though the request
5395//   was valid. Retry your request.
5396//
5397//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5398//   The operation failed because you tried to create, update, or delete an object
5399//   by using an invalid account identifier.
5400//
5401//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
5402//   The operation failed because the referenced object doesn't exist.
5403//
5404// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/GetXssMatchSet
5405func (c *WAFRegional) GetXssMatchSet(input *waf.GetXssMatchSetInput) (*waf.GetXssMatchSetOutput, error) {
5406	req, out := c.GetXssMatchSetRequest(input)
5407	return out, req.Send()
5408}
5409
5410// GetXssMatchSetWithContext is the same as GetXssMatchSet with the addition of
5411// the ability to pass a context and additional request options.
5412//
5413// See GetXssMatchSet for details on how to use this API operation.
5414//
5415// The context must be non-nil and will be used for request cancellation. If
5416// the context is nil a panic will occur. In the future the SDK may create
5417// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5418// for more information on using Contexts.
5419func (c *WAFRegional) GetXssMatchSetWithContext(ctx aws.Context, input *waf.GetXssMatchSetInput, opts ...request.Option) (*waf.GetXssMatchSetOutput, error) {
5420	req, out := c.GetXssMatchSetRequest(input)
5421	req.SetContext(ctx)
5422	req.ApplyOptions(opts...)
5423	return out, req.Send()
5424}
5425
5426const opListActivatedRulesInRuleGroup = "ListActivatedRulesInRuleGroup"
5427
5428// ListActivatedRulesInRuleGroupRequest generates a "aws/request.Request" representing the
5429// client's request for the ListActivatedRulesInRuleGroup operation. The "output" return
5430// value will be populated with the request's response once the request completes
5431// successfully.
5432//
5433// Use "Send" method on the returned Request to send the API call to the service.
5434// the "output" return value is not valid until after Send returns without error.
5435//
5436// See ListActivatedRulesInRuleGroup for more information on using the ListActivatedRulesInRuleGroup
5437// API call, and error handling.
5438//
5439// This method is useful when you want to inject custom logic or configuration
5440// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5441//
5442//
5443//    // Example sending a request using the ListActivatedRulesInRuleGroupRequest method.
5444//    req, resp := client.ListActivatedRulesInRuleGroupRequest(params)
5445//
5446//    err := req.Send()
5447//    if err == nil { // resp is now filled
5448//        fmt.Println(resp)
5449//    }
5450//
5451// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListActivatedRulesInRuleGroup
5452func (c *WAFRegional) ListActivatedRulesInRuleGroupRequest(input *waf.ListActivatedRulesInRuleGroupInput) (req *request.Request, output *waf.ListActivatedRulesInRuleGroupOutput) {
5453	op := &request.Operation{
5454		Name:       opListActivatedRulesInRuleGroup,
5455		HTTPMethod: "POST",
5456		HTTPPath:   "/",
5457	}
5458
5459	if input == nil {
5460		input = &waf.ListActivatedRulesInRuleGroupInput{}
5461	}
5462
5463	output = &waf.ListActivatedRulesInRuleGroupOutput{}
5464	req = c.newRequest(op, input, output)
5465	return
5466}
5467
5468// ListActivatedRulesInRuleGroup API operation for AWS WAF Regional.
5469//
5470// Returns an array of ActivatedRule objects.
5471//
5472// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5473// with awserr.Error's Code and Message methods to get detailed information about
5474// the error.
5475//
5476// See the AWS API reference guide for AWS WAF Regional's
5477// API operation ListActivatedRulesInRuleGroup for usage and error information.
5478//
5479// Returned Error Codes:
5480//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5481//   The operation failed because of a system problem, even though the request
5482//   was valid. Retry your request.
5483//
5484//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
5485//   The operation failed because the referenced object doesn't exist.
5486//
5487//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
5488//   The operation failed because AWS WAF didn't recognize a parameter in the
5489//   request. For example:
5490//
5491//      * You specified an invalid parameter name.
5492//
5493//      * You specified an invalid value.
5494//
5495//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
5496//      using an action other than INSERT or DELETE.
5497//
5498//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
5499//      BLOCK, or COUNT.
5500//
5501//      * You tried to create a RateBasedRule with a RateKey value other than
5502//      IP.
5503//
5504//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
5505//      BLOCK, or COUNT.
5506//
5507//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
5508//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
5509//
5510//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
5511//      for Data.
5512//
5513//      * Your request references an ARN that is malformed, or corresponds to
5514//      a resource with which a web ACL cannot be associated.
5515//
5516// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListActivatedRulesInRuleGroup
5517func (c *WAFRegional) ListActivatedRulesInRuleGroup(input *waf.ListActivatedRulesInRuleGroupInput) (*waf.ListActivatedRulesInRuleGroupOutput, error) {
5518	req, out := c.ListActivatedRulesInRuleGroupRequest(input)
5519	return out, req.Send()
5520}
5521
5522// ListActivatedRulesInRuleGroupWithContext is the same as ListActivatedRulesInRuleGroup with the addition of
5523// the ability to pass a context and additional request options.
5524//
5525// See ListActivatedRulesInRuleGroup for details on how to use this API operation.
5526//
5527// The context must be non-nil and will be used for request cancellation. If
5528// the context is nil a panic will occur. In the future the SDK may create
5529// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5530// for more information on using Contexts.
5531func (c *WAFRegional) ListActivatedRulesInRuleGroupWithContext(ctx aws.Context, input *waf.ListActivatedRulesInRuleGroupInput, opts ...request.Option) (*waf.ListActivatedRulesInRuleGroupOutput, error) {
5532	req, out := c.ListActivatedRulesInRuleGroupRequest(input)
5533	req.SetContext(ctx)
5534	req.ApplyOptions(opts...)
5535	return out, req.Send()
5536}
5537
5538const opListByteMatchSets = "ListByteMatchSets"
5539
5540// ListByteMatchSetsRequest generates a "aws/request.Request" representing the
5541// client's request for the ListByteMatchSets operation. The "output" return
5542// value will be populated with the request's response once the request completes
5543// successfully.
5544//
5545// Use "Send" method on the returned Request to send the API call to the service.
5546// the "output" return value is not valid until after Send returns without error.
5547//
5548// See ListByteMatchSets for more information on using the ListByteMatchSets
5549// API call, and error handling.
5550//
5551// This method is useful when you want to inject custom logic or configuration
5552// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5553//
5554//
5555//    // Example sending a request using the ListByteMatchSetsRequest method.
5556//    req, resp := client.ListByteMatchSetsRequest(params)
5557//
5558//    err := req.Send()
5559//    if err == nil { // resp is now filled
5560//        fmt.Println(resp)
5561//    }
5562//
5563// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListByteMatchSets
5564func (c *WAFRegional) ListByteMatchSetsRequest(input *waf.ListByteMatchSetsInput) (req *request.Request, output *waf.ListByteMatchSetsOutput) {
5565	op := &request.Operation{
5566		Name:       opListByteMatchSets,
5567		HTTPMethod: "POST",
5568		HTTPPath:   "/",
5569	}
5570
5571	if input == nil {
5572		input = &waf.ListByteMatchSetsInput{}
5573	}
5574
5575	output = &waf.ListByteMatchSetsOutput{}
5576	req = c.newRequest(op, input, output)
5577	return
5578}
5579
5580// ListByteMatchSets API operation for AWS WAF Regional.
5581//
5582// Returns an array of ByteMatchSetSummary objects.
5583//
5584// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5585// with awserr.Error's Code and Message methods to get detailed information about
5586// the error.
5587//
5588// See the AWS API reference guide for AWS WAF Regional's
5589// API operation ListByteMatchSets for usage and error information.
5590//
5591// Returned Error Codes:
5592//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5593//   The operation failed because of a system problem, even though the request
5594//   was valid. Retry your request.
5595//
5596//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5597//   The operation failed because you tried to create, update, or delete an object
5598//   by using an invalid account identifier.
5599//
5600// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListByteMatchSets
5601func (c *WAFRegional) ListByteMatchSets(input *waf.ListByteMatchSetsInput) (*waf.ListByteMatchSetsOutput, error) {
5602	req, out := c.ListByteMatchSetsRequest(input)
5603	return out, req.Send()
5604}
5605
5606// ListByteMatchSetsWithContext is the same as ListByteMatchSets with the addition of
5607// the ability to pass a context and additional request options.
5608//
5609// See ListByteMatchSets for details on how to use this API operation.
5610//
5611// The context must be non-nil and will be used for request cancellation. If
5612// the context is nil a panic will occur. In the future the SDK may create
5613// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5614// for more information on using Contexts.
5615func (c *WAFRegional) ListByteMatchSetsWithContext(ctx aws.Context, input *waf.ListByteMatchSetsInput, opts ...request.Option) (*waf.ListByteMatchSetsOutput, error) {
5616	req, out := c.ListByteMatchSetsRequest(input)
5617	req.SetContext(ctx)
5618	req.ApplyOptions(opts...)
5619	return out, req.Send()
5620}
5621
5622const opListGeoMatchSets = "ListGeoMatchSets"
5623
5624// ListGeoMatchSetsRequest generates a "aws/request.Request" representing the
5625// client's request for the ListGeoMatchSets operation. The "output" return
5626// value will be populated with the request's response once the request completes
5627// successfully.
5628//
5629// Use "Send" method on the returned Request to send the API call to the service.
5630// the "output" return value is not valid until after Send returns without error.
5631//
5632// See ListGeoMatchSets for more information on using the ListGeoMatchSets
5633// API call, and error handling.
5634//
5635// This method is useful when you want to inject custom logic or configuration
5636// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5637//
5638//
5639//    // Example sending a request using the ListGeoMatchSetsRequest method.
5640//    req, resp := client.ListGeoMatchSetsRequest(params)
5641//
5642//    err := req.Send()
5643//    if err == nil { // resp is now filled
5644//        fmt.Println(resp)
5645//    }
5646//
5647// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListGeoMatchSets
5648func (c *WAFRegional) ListGeoMatchSetsRequest(input *waf.ListGeoMatchSetsInput) (req *request.Request, output *waf.ListGeoMatchSetsOutput) {
5649	op := &request.Operation{
5650		Name:       opListGeoMatchSets,
5651		HTTPMethod: "POST",
5652		HTTPPath:   "/",
5653	}
5654
5655	if input == nil {
5656		input = &waf.ListGeoMatchSetsInput{}
5657	}
5658
5659	output = &waf.ListGeoMatchSetsOutput{}
5660	req = c.newRequest(op, input, output)
5661	return
5662}
5663
5664// ListGeoMatchSets API operation for AWS WAF Regional.
5665//
5666// Returns an array of GeoMatchSetSummary objects in the response.
5667//
5668// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5669// with awserr.Error's Code and Message methods to get detailed information about
5670// the error.
5671//
5672// See the AWS API reference guide for AWS WAF Regional's
5673// API operation ListGeoMatchSets for usage and error information.
5674//
5675// Returned Error Codes:
5676//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5677//   The operation failed because of a system problem, even though the request
5678//   was valid. Retry your request.
5679//
5680//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5681//   The operation failed because you tried to create, update, or delete an object
5682//   by using an invalid account identifier.
5683//
5684// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListGeoMatchSets
5685func (c *WAFRegional) ListGeoMatchSets(input *waf.ListGeoMatchSetsInput) (*waf.ListGeoMatchSetsOutput, error) {
5686	req, out := c.ListGeoMatchSetsRequest(input)
5687	return out, req.Send()
5688}
5689
5690// ListGeoMatchSetsWithContext is the same as ListGeoMatchSets with the addition of
5691// the ability to pass a context and additional request options.
5692//
5693// See ListGeoMatchSets for details on how to use this API operation.
5694//
5695// The context must be non-nil and will be used for request cancellation. If
5696// the context is nil a panic will occur. In the future the SDK may create
5697// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5698// for more information on using Contexts.
5699func (c *WAFRegional) ListGeoMatchSetsWithContext(ctx aws.Context, input *waf.ListGeoMatchSetsInput, opts ...request.Option) (*waf.ListGeoMatchSetsOutput, error) {
5700	req, out := c.ListGeoMatchSetsRequest(input)
5701	req.SetContext(ctx)
5702	req.ApplyOptions(opts...)
5703	return out, req.Send()
5704}
5705
5706const opListIPSets = "ListIPSets"
5707
5708// ListIPSetsRequest generates a "aws/request.Request" representing the
5709// client's request for the ListIPSets operation. The "output" return
5710// value will be populated with the request's response once the request completes
5711// successfully.
5712//
5713// Use "Send" method on the returned Request to send the API call to the service.
5714// the "output" return value is not valid until after Send returns without error.
5715//
5716// See ListIPSets for more information on using the ListIPSets
5717// API call, and error handling.
5718//
5719// This method is useful when you want to inject custom logic or configuration
5720// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5721//
5722//
5723//    // Example sending a request using the ListIPSetsRequest method.
5724//    req, resp := client.ListIPSetsRequest(params)
5725//
5726//    err := req.Send()
5727//    if err == nil { // resp is now filled
5728//        fmt.Println(resp)
5729//    }
5730//
5731// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListIPSets
5732func (c *WAFRegional) ListIPSetsRequest(input *waf.ListIPSetsInput) (req *request.Request, output *waf.ListIPSetsOutput) {
5733	op := &request.Operation{
5734		Name:       opListIPSets,
5735		HTTPMethod: "POST",
5736		HTTPPath:   "/",
5737	}
5738
5739	if input == nil {
5740		input = &waf.ListIPSetsInput{}
5741	}
5742
5743	output = &waf.ListIPSetsOutput{}
5744	req = c.newRequest(op, input, output)
5745	return
5746}
5747
5748// ListIPSets API operation for AWS WAF Regional.
5749//
5750// Returns an array of IPSetSummary objects in the response.
5751//
5752// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5753// with awserr.Error's Code and Message methods to get detailed information about
5754// the error.
5755//
5756// See the AWS API reference guide for AWS WAF Regional's
5757// API operation ListIPSets for usage and error information.
5758//
5759// Returned Error Codes:
5760//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5761//   The operation failed because of a system problem, even though the request
5762//   was valid. Retry your request.
5763//
5764//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5765//   The operation failed because you tried to create, update, or delete an object
5766//   by using an invalid account identifier.
5767//
5768// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListIPSets
5769func (c *WAFRegional) ListIPSets(input *waf.ListIPSetsInput) (*waf.ListIPSetsOutput, error) {
5770	req, out := c.ListIPSetsRequest(input)
5771	return out, req.Send()
5772}
5773
5774// ListIPSetsWithContext is the same as ListIPSets with the addition of
5775// the ability to pass a context and additional request options.
5776//
5777// See ListIPSets for details on how to use this API operation.
5778//
5779// The context must be non-nil and will be used for request cancellation. If
5780// the context is nil a panic will occur. In the future the SDK may create
5781// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5782// for more information on using Contexts.
5783func (c *WAFRegional) ListIPSetsWithContext(ctx aws.Context, input *waf.ListIPSetsInput, opts ...request.Option) (*waf.ListIPSetsOutput, error) {
5784	req, out := c.ListIPSetsRequest(input)
5785	req.SetContext(ctx)
5786	req.ApplyOptions(opts...)
5787	return out, req.Send()
5788}
5789
5790const opListLoggingConfigurations = "ListLoggingConfigurations"
5791
5792// ListLoggingConfigurationsRequest generates a "aws/request.Request" representing the
5793// client's request for the ListLoggingConfigurations operation. The "output" return
5794// value will be populated with the request's response once the request completes
5795// successfully.
5796//
5797// Use "Send" method on the returned Request to send the API call to the service.
5798// the "output" return value is not valid until after Send returns without error.
5799//
5800// See ListLoggingConfigurations for more information on using the ListLoggingConfigurations
5801// API call, and error handling.
5802//
5803// This method is useful when you want to inject custom logic or configuration
5804// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5805//
5806//
5807//    // Example sending a request using the ListLoggingConfigurationsRequest method.
5808//    req, resp := client.ListLoggingConfigurationsRequest(params)
5809//
5810//    err := req.Send()
5811//    if err == nil { // resp is now filled
5812//        fmt.Println(resp)
5813//    }
5814//
5815// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListLoggingConfigurations
5816func (c *WAFRegional) ListLoggingConfigurationsRequest(input *waf.ListLoggingConfigurationsInput) (req *request.Request, output *waf.ListLoggingConfigurationsOutput) {
5817	op := &request.Operation{
5818		Name:       opListLoggingConfigurations,
5819		HTTPMethod: "POST",
5820		HTTPPath:   "/",
5821	}
5822
5823	if input == nil {
5824		input = &waf.ListLoggingConfigurationsInput{}
5825	}
5826
5827	output = &waf.ListLoggingConfigurationsOutput{}
5828	req = c.newRequest(op, input, output)
5829	return
5830}
5831
5832// ListLoggingConfigurations API operation for AWS WAF Regional.
5833//
5834// Returns an array of LoggingConfiguration objects.
5835//
5836// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5837// with awserr.Error's Code and Message methods to get detailed information about
5838// the error.
5839//
5840// See the AWS API reference guide for AWS WAF Regional's
5841// API operation ListLoggingConfigurations for usage and error information.
5842//
5843// Returned Error Codes:
5844//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5845//   The operation failed because of a system problem, even though the request
5846//   was valid. Retry your request.
5847//
5848//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
5849//   The operation failed because the referenced object doesn't exist.
5850//
5851//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
5852//   The operation failed because AWS WAF didn't recognize a parameter in the
5853//   request. For example:
5854//
5855//      * You specified an invalid parameter name.
5856//
5857//      * You specified an invalid value.
5858//
5859//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
5860//      using an action other than INSERT or DELETE.
5861//
5862//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
5863//      BLOCK, or COUNT.
5864//
5865//      * You tried to create a RateBasedRule with a RateKey value other than
5866//      IP.
5867//
5868//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
5869//      BLOCK, or COUNT.
5870//
5871//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
5872//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
5873//
5874//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
5875//      for Data.
5876//
5877//      * Your request references an ARN that is malformed, or corresponds to
5878//      a resource with which a web ACL cannot be associated.
5879//
5880// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListLoggingConfigurations
5881func (c *WAFRegional) ListLoggingConfigurations(input *waf.ListLoggingConfigurationsInput) (*waf.ListLoggingConfigurationsOutput, error) {
5882	req, out := c.ListLoggingConfigurationsRequest(input)
5883	return out, req.Send()
5884}
5885
5886// ListLoggingConfigurationsWithContext is the same as ListLoggingConfigurations with the addition of
5887// the ability to pass a context and additional request options.
5888//
5889// See ListLoggingConfigurations for details on how to use this API operation.
5890//
5891// The context must be non-nil and will be used for request cancellation. If
5892// the context is nil a panic will occur. In the future the SDK may create
5893// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5894// for more information on using Contexts.
5895func (c *WAFRegional) ListLoggingConfigurationsWithContext(ctx aws.Context, input *waf.ListLoggingConfigurationsInput, opts ...request.Option) (*waf.ListLoggingConfigurationsOutput, error) {
5896	req, out := c.ListLoggingConfigurationsRequest(input)
5897	req.SetContext(ctx)
5898	req.ApplyOptions(opts...)
5899	return out, req.Send()
5900}
5901
5902const opListRateBasedRules = "ListRateBasedRules"
5903
5904// ListRateBasedRulesRequest generates a "aws/request.Request" representing the
5905// client's request for the ListRateBasedRules operation. The "output" return
5906// value will be populated with the request's response once the request completes
5907// successfully.
5908//
5909// Use "Send" method on the returned Request to send the API call to the service.
5910// the "output" return value is not valid until after Send returns without error.
5911//
5912// See ListRateBasedRules for more information on using the ListRateBasedRules
5913// API call, and error handling.
5914//
5915// This method is useful when you want to inject custom logic or configuration
5916// into the SDK's request lifecycle. Such as custom headers, or retry logic.
5917//
5918//
5919//    // Example sending a request using the ListRateBasedRulesRequest method.
5920//    req, resp := client.ListRateBasedRulesRequest(params)
5921//
5922//    err := req.Send()
5923//    if err == nil { // resp is now filled
5924//        fmt.Println(resp)
5925//    }
5926//
5927// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRateBasedRules
5928func (c *WAFRegional) ListRateBasedRulesRequest(input *waf.ListRateBasedRulesInput) (req *request.Request, output *waf.ListRateBasedRulesOutput) {
5929	op := &request.Operation{
5930		Name:       opListRateBasedRules,
5931		HTTPMethod: "POST",
5932		HTTPPath:   "/",
5933	}
5934
5935	if input == nil {
5936		input = &waf.ListRateBasedRulesInput{}
5937	}
5938
5939	output = &waf.ListRateBasedRulesOutput{}
5940	req = c.newRequest(op, input, output)
5941	return
5942}
5943
5944// ListRateBasedRules API operation for AWS WAF Regional.
5945//
5946// Returns an array of RuleSummary objects.
5947//
5948// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
5949// with awserr.Error's Code and Message methods to get detailed information about
5950// the error.
5951//
5952// See the AWS API reference guide for AWS WAF Regional's
5953// API operation ListRateBasedRules for usage and error information.
5954//
5955// Returned Error Codes:
5956//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
5957//   The operation failed because of a system problem, even though the request
5958//   was valid. Retry your request.
5959//
5960//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
5961//   The operation failed because you tried to create, update, or delete an object
5962//   by using an invalid account identifier.
5963//
5964// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRateBasedRules
5965func (c *WAFRegional) ListRateBasedRules(input *waf.ListRateBasedRulesInput) (*waf.ListRateBasedRulesOutput, error) {
5966	req, out := c.ListRateBasedRulesRequest(input)
5967	return out, req.Send()
5968}
5969
5970// ListRateBasedRulesWithContext is the same as ListRateBasedRules with the addition of
5971// the ability to pass a context and additional request options.
5972//
5973// See ListRateBasedRules for details on how to use this API operation.
5974//
5975// The context must be non-nil and will be used for request cancellation. If
5976// the context is nil a panic will occur. In the future the SDK may create
5977// sub-contexts for http.Requests. See https://golang.org/pkg/context/
5978// for more information on using Contexts.
5979func (c *WAFRegional) ListRateBasedRulesWithContext(ctx aws.Context, input *waf.ListRateBasedRulesInput, opts ...request.Option) (*waf.ListRateBasedRulesOutput, error) {
5980	req, out := c.ListRateBasedRulesRequest(input)
5981	req.SetContext(ctx)
5982	req.ApplyOptions(opts...)
5983	return out, req.Send()
5984}
5985
5986const opListRegexMatchSets = "ListRegexMatchSets"
5987
5988// ListRegexMatchSetsRequest generates a "aws/request.Request" representing the
5989// client's request for the ListRegexMatchSets operation. The "output" return
5990// value will be populated with the request's response once the request completes
5991// successfully.
5992//
5993// Use "Send" method on the returned Request to send the API call to the service.
5994// the "output" return value is not valid until after Send returns without error.
5995//
5996// See ListRegexMatchSets for more information on using the ListRegexMatchSets
5997// API call, and error handling.
5998//
5999// This method is useful when you want to inject custom logic or configuration
6000// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6001//
6002//
6003//    // Example sending a request using the ListRegexMatchSetsRequest method.
6004//    req, resp := client.ListRegexMatchSetsRequest(params)
6005//
6006//    err := req.Send()
6007//    if err == nil { // resp is now filled
6008//        fmt.Println(resp)
6009//    }
6010//
6011// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRegexMatchSets
6012func (c *WAFRegional) ListRegexMatchSetsRequest(input *waf.ListRegexMatchSetsInput) (req *request.Request, output *waf.ListRegexMatchSetsOutput) {
6013	op := &request.Operation{
6014		Name:       opListRegexMatchSets,
6015		HTTPMethod: "POST",
6016		HTTPPath:   "/",
6017	}
6018
6019	if input == nil {
6020		input = &waf.ListRegexMatchSetsInput{}
6021	}
6022
6023	output = &waf.ListRegexMatchSetsOutput{}
6024	req = c.newRequest(op, input, output)
6025	return
6026}
6027
6028// ListRegexMatchSets API operation for AWS WAF Regional.
6029//
6030// Returns an array of RegexMatchSetSummary objects.
6031//
6032// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6033// with awserr.Error's Code and Message methods to get detailed information about
6034// the error.
6035//
6036// See the AWS API reference guide for AWS WAF Regional's
6037// API operation ListRegexMatchSets for usage and error information.
6038//
6039// Returned Error Codes:
6040//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6041//   The operation failed because of a system problem, even though the request
6042//   was valid. Retry your request.
6043//
6044//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
6045//   The operation failed because you tried to create, update, or delete an object
6046//   by using an invalid account identifier.
6047//
6048// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRegexMatchSets
6049func (c *WAFRegional) ListRegexMatchSets(input *waf.ListRegexMatchSetsInput) (*waf.ListRegexMatchSetsOutput, error) {
6050	req, out := c.ListRegexMatchSetsRequest(input)
6051	return out, req.Send()
6052}
6053
6054// ListRegexMatchSetsWithContext is the same as ListRegexMatchSets with the addition of
6055// the ability to pass a context and additional request options.
6056//
6057// See ListRegexMatchSets for details on how to use this API operation.
6058//
6059// The context must be non-nil and will be used for request cancellation. If
6060// the context is nil a panic will occur. In the future the SDK may create
6061// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6062// for more information on using Contexts.
6063func (c *WAFRegional) ListRegexMatchSetsWithContext(ctx aws.Context, input *waf.ListRegexMatchSetsInput, opts ...request.Option) (*waf.ListRegexMatchSetsOutput, error) {
6064	req, out := c.ListRegexMatchSetsRequest(input)
6065	req.SetContext(ctx)
6066	req.ApplyOptions(opts...)
6067	return out, req.Send()
6068}
6069
6070const opListRegexPatternSets = "ListRegexPatternSets"
6071
6072// ListRegexPatternSetsRequest generates a "aws/request.Request" representing the
6073// client's request for the ListRegexPatternSets operation. The "output" return
6074// value will be populated with the request's response once the request completes
6075// successfully.
6076//
6077// Use "Send" method on the returned Request to send the API call to the service.
6078// the "output" return value is not valid until after Send returns without error.
6079//
6080// See ListRegexPatternSets for more information on using the ListRegexPatternSets
6081// API call, and error handling.
6082//
6083// This method is useful when you want to inject custom logic or configuration
6084// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6085//
6086//
6087//    // Example sending a request using the ListRegexPatternSetsRequest method.
6088//    req, resp := client.ListRegexPatternSetsRequest(params)
6089//
6090//    err := req.Send()
6091//    if err == nil { // resp is now filled
6092//        fmt.Println(resp)
6093//    }
6094//
6095// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRegexPatternSets
6096func (c *WAFRegional) ListRegexPatternSetsRequest(input *waf.ListRegexPatternSetsInput) (req *request.Request, output *waf.ListRegexPatternSetsOutput) {
6097	op := &request.Operation{
6098		Name:       opListRegexPatternSets,
6099		HTTPMethod: "POST",
6100		HTTPPath:   "/",
6101	}
6102
6103	if input == nil {
6104		input = &waf.ListRegexPatternSetsInput{}
6105	}
6106
6107	output = &waf.ListRegexPatternSetsOutput{}
6108	req = c.newRequest(op, input, output)
6109	return
6110}
6111
6112// ListRegexPatternSets API operation for AWS WAF Regional.
6113//
6114// Returns an array of RegexPatternSetSummary 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 ListRegexPatternSets for usage and error information.
6122//
6123// Returned Error Codes:
6124//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6125//   The operation failed because of a system problem, even though the request
6126//   was valid. Retry your request.
6127//
6128//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
6129//   The operation failed because you tried to create, update, or delete an object
6130//   by using an invalid account identifier.
6131//
6132// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRegexPatternSets
6133func (c *WAFRegional) ListRegexPatternSets(input *waf.ListRegexPatternSetsInput) (*waf.ListRegexPatternSetsOutput, error) {
6134	req, out := c.ListRegexPatternSetsRequest(input)
6135	return out, req.Send()
6136}
6137
6138// ListRegexPatternSetsWithContext is the same as ListRegexPatternSets with the addition of
6139// the ability to pass a context and additional request options.
6140//
6141// See ListRegexPatternSets for details on how to use this API operation.
6142//
6143// The context must be non-nil and will be used for request cancellation. If
6144// the context is nil a panic will occur. In the future the SDK may create
6145// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6146// for more information on using Contexts.
6147func (c *WAFRegional) ListRegexPatternSetsWithContext(ctx aws.Context, input *waf.ListRegexPatternSetsInput, opts ...request.Option) (*waf.ListRegexPatternSetsOutput, error) {
6148	req, out := c.ListRegexPatternSetsRequest(input)
6149	req.SetContext(ctx)
6150	req.ApplyOptions(opts...)
6151	return out, req.Send()
6152}
6153
6154const opListResourcesForWebACL = "ListResourcesForWebACL"
6155
6156// ListResourcesForWebACLRequest generates a "aws/request.Request" representing the
6157// client's request for the ListResourcesForWebACL operation. The "output" return
6158// value will be populated with the request's response once the request completes
6159// successfully.
6160//
6161// Use "Send" method on the returned Request to send the API call to the service.
6162// the "output" return value is not valid until after Send returns without error.
6163//
6164// See ListResourcesForWebACL for more information on using the ListResourcesForWebACL
6165// API call, and error handling.
6166//
6167// This method is useful when you want to inject custom logic or configuration
6168// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6169//
6170//
6171//    // Example sending a request using the ListResourcesForWebACLRequest method.
6172//    req, resp := client.ListResourcesForWebACLRequest(params)
6173//
6174//    err := req.Send()
6175//    if err == nil { // resp is now filled
6176//        fmt.Println(resp)
6177//    }
6178//
6179// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListResourcesForWebACL
6180func (c *WAFRegional) ListResourcesForWebACLRequest(input *ListResourcesForWebACLInput) (req *request.Request, output *ListResourcesForWebACLOutput) {
6181	op := &request.Operation{
6182		Name:       opListResourcesForWebACL,
6183		HTTPMethod: "POST",
6184		HTTPPath:   "/",
6185	}
6186
6187	if input == nil {
6188		input = &ListResourcesForWebACLInput{}
6189	}
6190
6191	output = &ListResourcesForWebACLOutput{}
6192	req = c.newRequest(op, input, output)
6193	return
6194}
6195
6196// ListResourcesForWebACL API operation for AWS WAF Regional.
6197//
6198// Returns an array of resources associated with the specified web ACL.
6199//
6200// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6201// with awserr.Error's Code and Message methods to get detailed information about
6202// the error.
6203//
6204// See the AWS API reference guide for AWS WAF Regional's
6205// API operation ListResourcesForWebACL for usage and error information.
6206//
6207// Returned Error Codes:
6208//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6209//   The operation failed because of a system problem, even though the request
6210//   was valid. Retry your request.
6211//
6212//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
6213//   The operation failed because you tried to create, update, or delete an object
6214//   by using an invalid account identifier.
6215//
6216//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
6217//   The operation failed because the referenced object doesn't exist.
6218//
6219//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
6220//   The operation failed because AWS WAF didn't recognize a parameter in the
6221//   request. For example:
6222//
6223//      * You specified an invalid parameter name.
6224//
6225//      * You specified an invalid value.
6226//
6227//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
6228//      using an action other than INSERT or DELETE.
6229//
6230//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
6231//      BLOCK, or COUNT.
6232//
6233//      * You tried to create a RateBasedRule with a RateKey value other than
6234//      IP.
6235//
6236//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
6237//      BLOCK, or COUNT.
6238//
6239//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
6240//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
6241//
6242//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
6243//      for Data.
6244//
6245//      * Your request references an ARN that is malformed, or corresponds to
6246//      a resource with which a web ACL cannot be associated.
6247//
6248// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListResourcesForWebACL
6249func (c *WAFRegional) ListResourcesForWebACL(input *ListResourcesForWebACLInput) (*ListResourcesForWebACLOutput, error) {
6250	req, out := c.ListResourcesForWebACLRequest(input)
6251	return out, req.Send()
6252}
6253
6254// ListResourcesForWebACLWithContext is the same as ListResourcesForWebACL with the addition of
6255// the ability to pass a context and additional request options.
6256//
6257// See ListResourcesForWebACL for details on how to use this API operation.
6258//
6259// The context must be non-nil and will be used for request cancellation. If
6260// the context is nil a panic will occur. In the future the SDK may create
6261// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6262// for more information on using Contexts.
6263func (c *WAFRegional) ListResourcesForWebACLWithContext(ctx aws.Context, input *ListResourcesForWebACLInput, opts ...request.Option) (*ListResourcesForWebACLOutput, error) {
6264	req, out := c.ListResourcesForWebACLRequest(input)
6265	req.SetContext(ctx)
6266	req.ApplyOptions(opts...)
6267	return out, req.Send()
6268}
6269
6270const opListRuleGroups = "ListRuleGroups"
6271
6272// ListRuleGroupsRequest generates a "aws/request.Request" representing the
6273// client's request for the ListRuleGroups operation. The "output" return
6274// value will be populated with the request's response once the request completes
6275// successfully.
6276//
6277// Use "Send" method on the returned Request to send the API call to the service.
6278// the "output" return value is not valid until after Send returns without error.
6279//
6280// See ListRuleGroups for more information on using the ListRuleGroups
6281// API call, and error handling.
6282//
6283// This method is useful when you want to inject custom logic or configuration
6284// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6285//
6286//
6287//    // Example sending a request using the ListRuleGroupsRequest method.
6288//    req, resp := client.ListRuleGroupsRequest(params)
6289//
6290//    err := req.Send()
6291//    if err == nil { // resp is now filled
6292//        fmt.Println(resp)
6293//    }
6294//
6295// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRuleGroups
6296func (c *WAFRegional) ListRuleGroupsRequest(input *waf.ListRuleGroupsInput) (req *request.Request, output *waf.ListRuleGroupsOutput) {
6297	op := &request.Operation{
6298		Name:       opListRuleGroups,
6299		HTTPMethod: "POST",
6300		HTTPPath:   "/",
6301	}
6302
6303	if input == nil {
6304		input = &waf.ListRuleGroupsInput{}
6305	}
6306
6307	output = &waf.ListRuleGroupsOutput{}
6308	req = c.newRequest(op, input, output)
6309	return
6310}
6311
6312// ListRuleGroups API operation for AWS WAF Regional.
6313//
6314// Returns an array of RuleGroup objects.
6315//
6316// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6317// with awserr.Error's Code and Message methods to get detailed information about
6318// the error.
6319//
6320// See the AWS API reference guide for AWS WAF Regional's
6321// API operation ListRuleGroups for usage and error information.
6322//
6323// Returned Error Codes:
6324//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6325//   The operation failed because of a system problem, even though the request
6326//   was valid. Retry your request.
6327//
6328// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRuleGroups
6329func (c *WAFRegional) ListRuleGroups(input *waf.ListRuleGroupsInput) (*waf.ListRuleGroupsOutput, error) {
6330	req, out := c.ListRuleGroupsRequest(input)
6331	return out, req.Send()
6332}
6333
6334// ListRuleGroupsWithContext is the same as ListRuleGroups with the addition of
6335// the ability to pass a context and additional request options.
6336//
6337// See ListRuleGroups for details on how to use this API operation.
6338//
6339// The context must be non-nil and will be used for request cancellation. If
6340// the context is nil a panic will occur. In the future the SDK may create
6341// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6342// for more information on using Contexts.
6343func (c *WAFRegional) ListRuleGroupsWithContext(ctx aws.Context, input *waf.ListRuleGroupsInput, opts ...request.Option) (*waf.ListRuleGroupsOutput, error) {
6344	req, out := c.ListRuleGroupsRequest(input)
6345	req.SetContext(ctx)
6346	req.ApplyOptions(opts...)
6347	return out, req.Send()
6348}
6349
6350const opListRules = "ListRules"
6351
6352// ListRulesRequest generates a "aws/request.Request" representing the
6353// client's request for the ListRules operation. The "output" return
6354// value will be populated with the request's response once the request completes
6355// successfully.
6356//
6357// Use "Send" method on the returned Request to send the API call to the service.
6358// the "output" return value is not valid until after Send returns without error.
6359//
6360// See ListRules for more information on using the ListRules
6361// API call, and error handling.
6362//
6363// This method is useful when you want to inject custom logic or configuration
6364// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6365//
6366//
6367//    // Example sending a request using the ListRulesRequest method.
6368//    req, resp := client.ListRulesRequest(params)
6369//
6370//    err := req.Send()
6371//    if err == nil { // resp is now filled
6372//        fmt.Println(resp)
6373//    }
6374//
6375// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRules
6376func (c *WAFRegional) ListRulesRequest(input *waf.ListRulesInput) (req *request.Request, output *waf.ListRulesOutput) {
6377	op := &request.Operation{
6378		Name:       opListRules,
6379		HTTPMethod: "POST",
6380		HTTPPath:   "/",
6381	}
6382
6383	if input == nil {
6384		input = &waf.ListRulesInput{}
6385	}
6386
6387	output = &waf.ListRulesOutput{}
6388	req = c.newRequest(op, input, output)
6389	return
6390}
6391
6392// ListRules API operation for AWS WAF Regional.
6393//
6394// Returns an array of RuleSummary objects.
6395//
6396// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6397// with awserr.Error's Code and Message methods to get detailed information about
6398// the error.
6399//
6400// See the AWS API reference guide for AWS WAF Regional's
6401// API operation ListRules for usage and error information.
6402//
6403// Returned Error Codes:
6404//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6405//   The operation failed because of a system problem, even though the request
6406//   was valid. Retry your request.
6407//
6408//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
6409//   The operation failed because you tried to create, update, or delete an object
6410//   by using an invalid account identifier.
6411//
6412// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListRules
6413func (c *WAFRegional) ListRules(input *waf.ListRulesInput) (*waf.ListRulesOutput, error) {
6414	req, out := c.ListRulesRequest(input)
6415	return out, req.Send()
6416}
6417
6418// ListRulesWithContext is the same as ListRules with the addition of
6419// the ability to pass a context and additional request options.
6420//
6421// See ListRules for details on how to use this API operation.
6422//
6423// The context must be non-nil and will be used for request cancellation. If
6424// the context is nil a panic will occur. In the future the SDK may create
6425// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6426// for more information on using Contexts.
6427func (c *WAFRegional) ListRulesWithContext(ctx aws.Context, input *waf.ListRulesInput, opts ...request.Option) (*waf.ListRulesOutput, error) {
6428	req, out := c.ListRulesRequest(input)
6429	req.SetContext(ctx)
6430	req.ApplyOptions(opts...)
6431	return out, req.Send()
6432}
6433
6434const opListSizeConstraintSets = "ListSizeConstraintSets"
6435
6436// ListSizeConstraintSetsRequest generates a "aws/request.Request" representing the
6437// client's request for the ListSizeConstraintSets operation. The "output" return
6438// value will be populated with the request's response once the request completes
6439// successfully.
6440//
6441// Use "Send" method on the returned Request to send the API call to the service.
6442// the "output" return value is not valid until after Send returns without error.
6443//
6444// See ListSizeConstraintSets for more information on using the ListSizeConstraintSets
6445// API call, and error handling.
6446//
6447// This method is useful when you want to inject custom logic or configuration
6448// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6449//
6450//
6451//    // Example sending a request using the ListSizeConstraintSetsRequest method.
6452//    req, resp := client.ListSizeConstraintSetsRequest(params)
6453//
6454//    err := req.Send()
6455//    if err == nil { // resp is now filled
6456//        fmt.Println(resp)
6457//    }
6458//
6459// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSizeConstraintSets
6460func (c *WAFRegional) ListSizeConstraintSetsRequest(input *waf.ListSizeConstraintSetsInput) (req *request.Request, output *waf.ListSizeConstraintSetsOutput) {
6461	op := &request.Operation{
6462		Name:       opListSizeConstraintSets,
6463		HTTPMethod: "POST",
6464		HTTPPath:   "/",
6465	}
6466
6467	if input == nil {
6468		input = &waf.ListSizeConstraintSetsInput{}
6469	}
6470
6471	output = &waf.ListSizeConstraintSetsOutput{}
6472	req = c.newRequest(op, input, output)
6473	return
6474}
6475
6476// ListSizeConstraintSets API operation for AWS WAF Regional.
6477//
6478// Returns an array of SizeConstraintSetSummary objects.
6479//
6480// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6481// with awserr.Error's Code and Message methods to get detailed information about
6482// the error.
6483//
6484// See the AWS API reference guide for AWS WAF Regional's
6485// API operation ListSizeConstraintSets for usage and error information.
6486//
6487// Returned Error Codes:
6488//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6489//   The operation failed because of a system problem, even though the request
6490//   was valid. Retry your request.
6491//
6492//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
6493//   The operation failed because you tried to create, update, or delete an object
6494//   by using an invalid account identifier.
6495//
6496// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSizeConstraintSets
6497func (c *WAFRegional) ListSizeConstraintSets(input *waf.ListSizeConstraintSetsInput) (*waf.ListSizeConstraintSetsOutput, error) {
6498	req, out := c.ListSizeConstraintSetsRequest(input)
6499	return out, req.Send()
6500}
6501
6502// ListSizeConstraintSetsWithContext is the same as ListSizeConstraintSets with the addition of
6503// the ability to pass a context and additional request options.
6504//
6505// See ListSizeConstraintSets for details on how to use this API operation.
6506//
6507// The context must be non-nil and will be used for request cancellation. If
6508// the context is nil a panic will occur. In the future the SDK may create
6509// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6510// for more information on using Contexts.
6511func (c *WAFRegional) ListSizeConstraintSetsWithContext(ctx aws.Context, input *waf.ListSizeConstraintSetsInput, opts ...request.Option) (*waf.ListSizeConstraintSetsOutput, error) {
6512	req, out := c.ListSizeConstraintSetsRequest(input)
6513	req.SetContext(ctx)
6514	req.ApplyOptions(opts...)
6515	return out, req.Send()
6516}
6517
6518const opListSqlInjectionMatchSets = "ListSqlInjectionMatchSets"
6519
6520// ListSqlInjectionMatchSetsRequest generates a "aws/request.Request" representing the
6521// client's request for the ListSqlInjectionMatchSets operation. The "output" return
6522// value will be populated with the request's response once the request completes
6523// successfully.
6524//
6525// Use "Send" method on the returned Request to send the API call to the service.
6526// the "output" return value is not valid until after Send returns without error.
6527//
6528// See ListSqlInjectionMatchSets for more information on using the ListSqlInjectionMatchSets
6529// API call, and error handling.
6530//
6531// This method is useful when you want to inject custom logic or configuration
6532// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6533//
6534//
6535//    // Example sending a request using the ListSqlInjectionMatchSetsRequest method.
6536//    req, resp := client.ListSqlInjectionMatchSetsRequest(params)
6537//
6538//    err := req.Send()
6539//    if err == nil { // resp is now filled
6540//        fmt.Println(resp)
6541//    }
6542//
6543// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSqlInjectionMatchSets
6544func (c *WAFRegional) ListSqlInjectionMatchSetsRequest(input *waf.ListSqlInjectionMatchSetsInput) (req *request.Request, output *waf.ListSqlInjectionMatchSetsOutput) {
6545	op := &request.Operation{
6546		Name:       opListSqlInjectionMatchSets,
6547		HTTPMethod: "POST",
6548		HTTPPath:   "/",
6549	}
6550
6551	if input == nil {
6552		input = &waf.ListSqlInjectionMatchSetsInput{}
6553	}
6554
6555	output = &waf.ListSqlInjectionMatchSetsOutput{}
6556	req = c.newRequest(op, input, output)
6557	return
6558}
6559
6560// ListSqlInjectionMatchSets API operation for AWS WAF Regional.
6561//
6562// Returns an array of SqlInjectionMatchSet objects.
6563//
6564// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6565// with awserr.Error's Code and Message methods to get detailed information about
6566// the error.
6567//
6568// See the AWS API reference guide for AWS WAF Regional's
6569// API operation ListSqlInjectionMatchSets for usage and error information.
6570//
6571// Returned Error Codes:
6572//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6573//   The operation failed because of a system problem, even though the request
6574//   was valid. Retry your request.
6575//
6576//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
6577//   The operation failed because you tried to create, update, or delete an object
6578//   by using an invalid account identifier.
6579//
6580// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSqlInjectionMatchSets
6581func (c *WAFRegional) ListSqlInjectionMatchSets(input *waf.ListSqlInjectionMatchSetsInput) (*waf.ListSqlInjectionMatchSetsOutput, error) {
6582	req, out := c.ListSqlInjectionMatchSetsRequest(input)
6583	return out, req.Send()
6584}
6585
6586// ListSqlInjectionMatchSetsWithContext is the same as ListSqlInjectionMatchSets with the addition of
6587// the ability to pass a context and additional request options.
6588//
6589// See ListSqlInjectionMatchSets for details on how to use this API operation.
6590//
6591// The context must be non-nil and will be used for request cancellation. If
6592// the context is nil a panic will occur. In the future the SDK may create
6593// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6594// for more information on using Contexts.
6595func (c *WAFRegional) ListSqlInjectionMatchSetsWithContext(ctx aws.Context, input *waf.ListSqlInjectionMatchSetsInput, opts ...request.Option) (*waf.ListSqlInjectionMatchSetsOutput, error) {
6596	req, out := c.ListSqlInjectionMatchSetsRequest(input)
6597	req.SetContext(ctx)
6598	req.ApplyOptions(opts...)
6599	return out, req.Send()
6600}
6601
6602const opListSubscribedRuleGroups = "ListSubscribedRuleGroups"
6603
6604// ListSubscribedRuleGroupsRequest generates a "aws/request.Request" representing the
6605// client's request for the ListSubscribedRuleGroups operation. The "output" return
6606// value will be populated with the request's response once the request completes
6607// successfully.
6608//
6609// Use "Send" method on the returned Request to send the API call to the service.
6610// the "output" return value is not valid until after Send returns without error.
6611//
6612// See ListSubscribedRuleGroups for more information on using the ListSubscribedRuleGroups
6613// API call, and error handling.
6614//
6615// This method is useful when you want to inject custom logic or configuration
6616// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6617//
6618//
6619//    // Example sending a request using the ListSubscribedRuleGroupsRequest method.
6620//    req, resp := client.ListSubscribedRuleGroupsRequest(params)
6621//
6622//    err := req.Send()
6623//    if err == nil { // resp is now filled
6624//        fmt.Println(resp)
6625//    }
6626//
6627// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSubscribedRuleGroups
6628func (c *WAFRegional) ListSubscribedRuleGroupsRequest(input *waf.ListSubscribedRuleGroupsInput) (req *request.Request, output *waf.ListSubscribedRuleGroupsOutput) {
6629	op := &request.Operation{
6630		Name:       opListSubscribedRuleGroups,
6631		HTTPMethod: "POST",
6632		HTTPPath:   "/",
6633	}
6634
6635	if input == nil {
6636		input = &waf.ListSubscribedRuleGroupsInput{}
6637	}
6638
6639	output = &waf.ListSubscribedRuleGroupsOutput{}
6640	req = c.newRequest(op, input, output)
6641	return
6642}
6643
6644// ListSubscribedRuleGroups API operation for AWS WAF Regional.
6645//
6646// Returns an array of RuleGroup objects that you are subscribed to.
6647//
6648// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6649// with awserr.Error's Code and Message methods to get detailed information about
6650// the error.
6651//
6652// See the AWS API reference guide for AWS WAF Regional's
6653// API operation ListSubscribedRuleGroups for usage and error information.
6654//
6655// Returned Error Codes:
6656//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
6657//   The operation failed because the referenced object doesn't exist.
6658//
6659//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6660//   The operation failed because of a system problem, even though the request
6661//   was valid. Retry your request.
6662//
6663// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListSubscribedRuleGroups
6664func (c *WAFRegional) ListSubscribedRuleGroups(input *waf.ListSubscribedRuleGroupsInput) (*waf.ListSubscribedRuleGroupsOutput, error) {
6665	req, out := c.ListSubscribedRuleGroupsRequest(input)
6666	return out, req.Send()
6667}
6668
6669// ListSubscribedRuleGroupsWithContext is the same as ListSubscribedRuleGroups with the addition of
6670// the ability to pass a context and additional request options.
6671//
6672// See ListSubscribedRuleGroups for details on how to use this API operation.
6673//
6674// The context must be non-nil and will be used for request cancellation. If
6675// the context is nil a panic will occur. In the future the SDK may create
6676// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6677// for more information on using Contexts.
6678func (c *WAFRegional) ListSubscribedRuleGroupsWithContext(ctx aws.Context, input *waf.ListSubscribedRuleGroupsInput, opts ...request.Option) (*waf.ListSubscribedRuleGroupsOutput, error) {
6679	req, out := c.ListSubscribedRuleGroupsRequest(input)
6680	req.SetContext(ctx)
6681	req.ApplyOptions(opts...)
6682	return out, req.Send()
6683}
6684
6685const opListTagsForResource = "ListTagsForResource"
6686
6687// ListTagsForResourceRequest generates a "aws/request.Request" representing the
6688// client's request for the ListTagsForResource operation. The "output" return
6689// value will be populated with the request's response once the request completes
6690// successfully.
6691//
6692// Use "Send" method on the returned Request to send the API call to the service.
6693// the "output" return value is not valid until after Send returns without error.
6694//
6695// See ListTagsForResource for more information on using the ListTagsForResource
6696// API call, and error handling.
6697//
6698// This method is useful when you want to inject custom logic or configuration
6699// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6700//
6701//
6702//    // Example sending a request using the ListTagsForResourceRequest method.
6703//    req, resp := client.ListTagsForResourceRequest(params)
6704//
6705//    err := req.Send()
6706//    if err == nil { // resp is now filled
6707//        fmt.Println(resp)
6708//    }
6709//
6710// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListTagsForResource
6711func (c *WAFRegional) ListTagsForResourceRequest(input *waf.ListTagsForResourceInput) (req *request.Request, output *waf.ListTagsForResourceOutput) {
6712	op := &request.Operation{
6713		Name:       opListTagsForResource,
6714		HTTPMethod: "POST",
6715		HTTPPath:   "/",
6716	}
6717
6718	if input == nil {
6719		input = &waf.ListTagsForResourceInput{}
6720	}
6721
6722	output = &waf.ListTagsForResourceOutput{}
6723	req = c.newRequest(op, input, output)
6724	return
6725}
6726
6727// ListTagsForResource API operation for AWS WAF Regional.
6728//
6729// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6730// with awserr.Error's Code and Message methods to get detailed information about
6731// the error.
6732//
6733// See the AWS API reference guide for AWS WAF Regional's
6734// API operation ListTagsForResource for usage and error information.
6735//
6736// Returned Error Codes:
6737//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6738//   The operation failed because of a system problem, even though the request
6739//   was valid. Retry your request.
6740//
6741//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
6742//   The operation failed because AWS WAF didn't recognize a parameter in the
6743//   request. For example:
6744//
6745//      * You specified an invalid parameter name.
6746//
6747//      * You specified an invalid value.
6748//
6749//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
6750//      using an action other than INSERT or DELETE.
6751//
6752//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
6753//      BLOCK, or COUNT.
6754//
6755//      * You tried to create a RateBasedRule with a RateKey value other than
6756//      IP.
6757//
6758//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
6759//      BLOCK, or COUNT.
6760//
6761//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
6762//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
6763//
6764//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
6765//      for Data.
6766//
6767//      * Your request references an ARN that is malformed, or corresponds to
6768//      a resource with which a web ACL cannot be associated.
6769//
6770//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
6771//   The operation failed because the referenced object doesn't exist.
6772//
6773//   * ErrCodeWAFBadRequestException "WAFBadRequestException"
6774//
6775//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
6776//
6777//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
6778//
6779// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListTagsForResource
6780func (c *WAFRegional) ListTagsForResource(input *waf.ListTagsForResourceInput) (*waf.ListTagsForResourceOutput, error) {
6781	req, out := c.ListTagsForResourceRequest(input)
6782	return out, req.Send()
6783}
6784
6785// ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
6786// the ability to pass a context and additional request options.
6787//
6788// See ListTagsForResource for details on how to use this API operation.
6789//
6790// The context must be non-nil and will be used for request cancellation. If
6791// the context is nil a panic will occur. In the future the SDK may create
6792// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6793// for more information on using Contexts.
6794func (c *WAFRegional) ListTagsForResourceWithContext(ctx aws.Context, input *waf.ListTagsForResourceInput, opts ...request.Option) (*waf.ListTagsForResourceOutput, error) {
6795	req, out := c.ListTagsForResourceRequest(input)
6796	req.SetContext(ctx)
6797	req.ApplyOptions(opts...)
6798	return out, req.Send()
6799}
6800
6801const opListWebACLs = "ListWebACLs"
6802
6803// ListWebACLsRequest generates a "aws/request.Request" representing the
6804// client's request for the ListWebACLs operation. The "output" return
6805// value will be populated with the request's response once the request completes
6806// successfully.
6807//
6808// Use "Send" method on the returned Request to send the API call to the service.
6809// the "output" return value is not valid until after Send returns without error.
6810//
6811// See ListWebACLs for more information on using the ListWebACLs
6812// API call, and error handling.
6813//
6814// This method is useful when you want to inject custom logic or configuration
6815// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6816//
6817//
6818//    // Example sending a request using the ListWebACLsRequest method.
6819//    req, resp := client.ListWebACLsRequest(params)
6820//
6821//    err := req.Send()
6822//    if err == nil { // resp is now filled
6823//        fmt.Println(resp)
6824//    }
6825//
6826// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListWebACLs
6827func (c *WAFRegional) ListWebACLsRequest(input *waf.ListWebACLsInput) (req *request.Request, output *waf.ListWebACLsOutput) {
6828	op := &request.Operation{
6829		Name:       opListWebACLs,
6830		HTTPMethod: "POST",
6831		HTTPPath:   "/",
6832	}
6833
6834	if input == nil {
6835		input = &waf.ListWebACLsInput{}
6836	}
6837
6838	output = &waf.ListWebACLsOutput{}
6839	req = c.newRequest(op, input, output)
6840	return
6841}
6842
6843// ListWebACLs API operation for AWS WAF Regional.
6844//
6845// Returns an array of WebACLSummary objects in the response.
6846//
6847// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6848// with awserr.Error's Code and Message methods to get detailed information about
6849// the error.
6850//
6851// See the AWS API reference guide for AWS WAF Regional's
6852// API operation ListWebACLs for usage and error information.
6853//
6854// Returned Error Codes:
6855//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6856//   The operation failed because of a system problem, even though the request
6857//   was valid. Retry your request.
6858//
6859//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
6860//   The operation failed because you tried to create, update, or delete an object
6861//   by using an invalid account identifier.
6862//
6863// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListWebACLs
6864func (c *WAFRegional) ListWebACLs(input *waf.ListWebACLsInput) (*waf.ListWebACLsOutput, error) {
6865	req, out := c.ListWebACLsRequest(input)
6866	return out, req.Send()
6867}
6868
6869// ListWebACLsWithContext is the same as ListWebACLs with the addition of
6870// the ability to pass a context and additional request options.
6871//
6872// See ListWebACLs for details on how to use this API operation.
6873//
6874// The context must be non-nil and will be used for request cancellation. If
6875// the context is nil a panic will occur. In the future the SDK may create
6876// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6877// for more information on using Contexts.
6878func (c *WAFRegional) ListWebACLsWithContext(ctx aws.Context, input *waf.ListWebACLsInput, opts ...request.Option) (*waf.ListWebACLsOutput, error) {
6879	req, out := c.ListWebACLsRequest(input)
6880	req.SetContext(ctx)
6881	req.ApplyOptions(opts...)
6882	return out, req.Send()
6883}
6884
6885const opListXssMatchSets = "ListXssMatchSets"
6886
6887// ListXssMatchSetsRequest generates a "aws/request.Request" representing the
6888// client's request for the ListXssMatchSets operation. The "output" return
6889// value will be populated with the request's response once the request completes
6890// successfully.
6891//
6892// Use "Send" method on the returned Request to send the API call to the service.
6893// the "output" return value is not valid until after Send returns without error.
6894//
6895// See ListXssMatchSets for more information on using the ListXssMatchSets
6896// API call, and error handling.
6897//
6898// This method is useful when you want to inject custom logic or configuration
6899// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6900//
6901//
6902//    // Example sending a request using the ListXssMatchSetsRequest method.
6903//    req, resp := client.ListXssMatchSetsRequest(params)
6904//
6905//    err := req.Send()
6906//    if err == nil { // resp is now filled
6907//        fmt.Println(resp)
6908//    }
6909//
6910// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListXssMatchSets
6911func (c *WAFRegional) ListXssMatchSetsRequest(input *waf.ListXssMatchSetsInput) (req *request.Request, output *waf.ListXssMatchSetsOutput) {
6912	op := &request.Operation{
6913		Name:       opListXssMatchSets,
6914		HTTPMethod: "POST",
6915		HTTPPath:   "/",
6916	}
6917
6918	if input == nil {
6919		input = &waf.ListXssMatchSetsInput{}
6920	}
6921
6922	output = &waf.ListXssMatchSetsOutput{}
6923	req = c.newRequest(op, input, output)
6924	return
6925}
6926
6927// ListXssMatchSets API operation for AWS WAF Regional.
6928//
6929// Returns an array of XssMatchSet objects.
6930//
6931// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
6932// with awserr.Error's Code and Message methods to get detailed information about
6933// the error.
6934//
6935// See the AWS API reference guide for AWS WAF Regional's
6936// API operation ListXssMatchSets for usage and error information.
6937//
6938// Returned Error Codes:
6939//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
6940//   The operation failed because of a system problem, even though the request
6941//   was valid. Retry your request.
6942//
6943//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
6944//   The operation failed because you tried to create, update, or delete an object
6945//   by using an invalid account identifier.
6946//
6947// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/ListXssMatchSets
6948func (c *WAFRegional) ListXssMatchSets(input *waf.ListXssMatchSetsInput) (*waf.ListXssMatchSetsOutput, error) {
6949	req, out := c.ListXssMatchSetsRequest(input)
6950	return out, req.Send()
6951}
6952
6953// ListXssMatchSetsWithContext is the same as ListXssMatchSets with the addition of
6954// the ability to pass a context and additional request options.
6955//
6956// See ListXssMatchSets for details on how to use this API operation.
6957//
6958// The context must be non-nil and will be used for request cancellation. If
6959// the context is nil a panic will occur. In the future the SDK may create
6960// sub-contexts for http.Requests. See https://golang.org/pkg/context/
6961// for more information on using Contexts.
6962func (c *WAFRegional) ListXssMatchSetsWithContext(ctx aws.Context, input *waf.ListXssMatchSetsInput, opts ...request.Option) (*waf.ListXssMatchSetsOutput, error) {
6963	req, out := c.ListXssMatchSetsRequest(input)
6964	req.SetContext(ctx)
6965	req.ApplyOptions(opts...)
6966	return out, req.Send()
6967}
6968
6969const opPutLoggingConfiguration = "PutLoggingConfiguration"
6970
6971// PutLoggingConfigurationRequest generates a "aws/request.Request" representing the
6972// client's request for the PutLoggingConfiguration operation. The "output" return
6973// value will be populated with the request's response once the request completes
6974// successfully.
6975//
6976// Use "Send" method on the returned Request to send the API call to the service.
6977// the "output" return value is not valid until after Send returns without error.
6978//
6979// See PutLoggingConfiguration for more information on using the PutLoggingConfiguration
6980// API call, and error handling.
6981//
6982// This method is useful when you want to inject custom logic or configuration
6983// into the SDK's request lifecycle. Such as custom headers, or retry logic.
6984//
6985//
6986//    // Example sending a request using the PutLoggingConfigurationRequest method.
6987//    req, resp := client.PutLoggingConfigurationRequest(params)
6988//
6989//    err := req.Send()
6990//    if err == nil { // resp is now filled
6991//        fmt.Println(resp)
6992//    }
6993//
6994// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutLoggingConfiguration
6995func (c *WAFRegional) PutLoggingConfigurationRequest(input *waf.PutLoggingConfigurationInput) (req *request.Request, output *waf.PutLoggingConfigurationOutput) {
6996	op := &request.Operation{
6997		Name:       opPutLoggingConfiguration,
6998		HTTPMethod: "POST",
6999		HTTPPath:   "/",
7000	}
7001
7002	if input == nil {
7003		input = &waf.PutLoggingConfigurationInput{}
7004	}
7005
7006	output = &waf.PutLoggingConfigurationOutput{}
7007	req = c.newRequest(op, input, output)
7008	return
7009}
7010
7011// PutLoggingConfiguration API operation for AWS WAF Regional.
7012//
7013// Associates a LoggingConfiguration with a specified web ACL.
7014//
7015// You can access information about all traffic that AWS WAF inspects using
7016// the following steps:
7017//
7018// Create an Amazon Kinesis Data Firehose.
7019//
7020// Create the data firehose with a PUT source and in the region that you are
7021// operating. However, if you are capturing logs for Amazon CloudFront, always
7022// create the firehose in US East (N. Virginia).
7023//
7024// Do not create the data firehose using a Kinesis stream as your source.
7025//
7026// Associate that firehose to your web ACL using a PutLoggingConfiguration request.
7027//
7028// When you successfully enable logging using a PutLoggingConfiguration request,
7029// AWS WAF will create a service linked role with the necessary permissions
7030// to write logs to the Amazon Kinesis Data Firehose. For more information,
7031// see Logging Web ACL Traffic Information (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html)
7032// in the AWS WAF Developer Guide.
7033//
7034// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7035// with awserr.Error's Code and Message methods to get detailed information about
7036// the error.
7037//
7038// See the AWS API reference guide for AWS WAF Regional's
7039// API operation PutLoggingConfiguration for usage and error information.
7040//
7041// Returned Error Codes:
7042//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
7043//   The operation failed because of a system problem, even though the request
7044//   was valid. Retry your request.
7045//
7046//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
7047//   The operation failed because the referenced object doesn't exist.
7048//
7049//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
7050//   The operation failed because you tried to create, update, or delete an object
7051//   by using a change token that has already been used.
7052//
7053//   * ErrCodeWAFServiceLinkedRoleErrorException "WAFServiceLinkedRoleErrorException"
7054//   AWS WAF is not able to access the service linked role. This can be caused
7055//   by a previous PutLoggingConfiguration request, which can lock the service
7056//   linked role for about 20 seconds. Please try your request again. The service
7057//   linked role can also be locked by a previous DeleteServiceLinkedRole request,
7058//   which can lock the role for 15 minutes or more. If you recently made a DeleteServiceLinkedRole,
7059//   wait at least 15 minutes and try the request again. If you receive this same
7060//   exception again, you will have to wait additional time until the role is
7061//   unlocked.
7062//
7063// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutLoggingConfiguration
7064func (c *WAFRegional) PutLoggingConfiguration(input *waf.PutLoggingConfigurationInput) (*waf.PutLoggingConfigurationOutput, error) {
7065	req, out := c.PutLoggingConfigurationRequest(input)
7066	return out, req.Send()
7067}
7068
7069// PutLoggingConfigurationWithContext is the same as PutLoggingConfiguration with the addition of
7070// the ability to pass a context and additional request options.
7071//
7072// See PutLoggingConfiguration for details on how to use this API operation.
7073//
7074// The context must be non-nil and will be used for request cancellation. If
7075// the context is nil a panic will occur. In the future the SDK may create
7076// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7077// for more information on using Contexts.
7078func (c *WAFRegional) PutLoggingConfigurationWithContext(ctx aws.Context, input *waf.PutLoggingConfigurationInput, opts ...request.Option) (*waf.PutLoggingConfigurationOutput, error) {
7079	req, out := c.PutLoggingConfigurationRequest(input)
7080	req.SetContext(ctx)
7081	req.ApplyOptions(opts...)
7082	return out, req.Send()
7083}
7084
7085const opPutPermissionPolicy = "PutPermissionPolicy"
7086
7087// PutPermissionPolicyRequest generates a "aws/request.Request" representing the
7088// client's request for the PutPermissionPolicy operation. The "output" return
7089// value will be populated with the request's response once the request completes
7090// successfully.
7091//
7092// Use "Send" method on the returned Request to send the API call to the service.
7093// the "output" return value is not valid until after Send returns without error.
7094//
7095// See PutPermissionPolicy for more information on using the PutPermissionPolicy
7096// API call, and error handling.
7097//
7098// This method is useful when you want to inject custom logic or configuration
7099// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7100//
7101//
7102//    // Example sending a request using the PutPermissionPolicyRequest method.
7103//    req, resp := client.PutPermissionPolicyRequest(params)
7104//
7105//    err := req.Send()
7106//    if err == nil { // resp is now filled
7107//        fmt.Println(resp)
7108//    }
7109//
7110// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutPermissionPolicy
7111func (c *WAFRegional) PutPermissionPolicyRequest(input *waf.PutPermissionPolicyInput) (req *request.Request, output *waf.PutPermissionPolicyOutput) {
7112	op := &request.Operation{
7113		Name:       opPutPermissionPolicy,
7114		HTTPMethod: "POST",
7115		HTTPPath:   "/",
7116	}
7117
7118	if input == nil {
7119		input = &waf.PutPermissionPolicyInput{}
7120	}
7121
7122	output = &waf.PutPermissionPolicyOutput{}
7123	req = c.newRequest(op, input, output)
7124	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7125	return
7126}
7127
7128// PutPermissionPolicy API operation for AWS WAF Regional.
7129//
7130// Attaches a IAM policy to the specified resource. The only supported use for
7131// this action is to share a RuleGroup across accounts.
7132//
7133// The PutPermissionPolicy is subject to the following restrictions:
7134//
7135//    * You can attach only one policy with each PutPermissionPolicy request.
7136//
7137//    * The policy must include an Effect, Action and Principal.
7138//
7139//    * Effect must specify Allow.
7140//
7141//    * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL,
7142//    waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard
7143//    actions in the policy will be rejected.
7144//
7145//    * The policy cannot include a Resource parameter.
7146//
7147//    * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup
7148//    must exist in the same region.
7149//
7150//    * The user making the request must be the owner of the RuleGroup.
7151//
7152//    * Your policy must be composed using IAM Policy version 2012-10-17.
7153//
7154// For more information, see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).
7155//
7156// An example of a valid policy parameter is shown in the Examples section below.
7157//
7158// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7159// with awserr.Error's Code and Message methods to get detailed information about
7160// the error.
7161//
7162// See the AWS API reference guide for AWS WAF Regional's
7163// API operation PutPermissionPolicy for usage and error information.
7164//
7165// Returned Error Codes:
7166//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
7167//   The operation failed because of a system problem, even though the request
7168//   was valid. Retry your request.
7169//
7170//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
7171//   The operation failed because you tried to create, update, or delete an object
7172//   by using a change token that has already been used.
7173//
7174//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
7175//   The operation failed because the referenced object doesn't exist.
7176//
7177//   * ErrCodeWAFInvalidPermissionPolicyException "WAFInvalidPermissionPolicyException"
7178//   The operation failed because the specified policy is not in the proper format.
7179//
7180//   The policy is subject to the following restrictions:
7181//
7182//      * You can attach only one policy with each PutPermissionPolicy request.
7183//
7184//      * The policy must include an Effect, Action and Principal.
7185//
7186//      * Effect must specify Allow.
7187//
7188//      * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL,
7189//      waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard
7190//      actions in the policy will be rejected.
7191//
7192//      * The policy cannot include a Resource parameter.
7193//
7194//      * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup
7195//      must exist in the same region.
7196//
7197//      * The user making the request must be the owner of the RuleGroup.
7198//
7199//      * Your policy must be composed using IAM Policy version 2012-10-17.
7200//
7201// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/PutPermissionPolicy
7202func (c *WAFRegional) PutPermissionPolicy(input *waf.PutPermissionPolicyInput) (*waf.PutPermissionPolicyOutput, error) {
7203	req, out := c.PutPermissionPolicyRequest(input)
7204	return out, req.Send()
7205}
7206
7207// PutPermissionPolicyWithContext is the same as PutPermissionPolicy with the addition of
7208// the ability to pass a context and additional request options.
7209//
7210// See PutPermissionPolicy for details on how to use this API operation.
7211//
7212// The context must be non-nil and will be used for request cancellation. If
7213// the context is nil a panic will occur. In the future the SDK may create
7214// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7215// for more information on using Contexts.
7216func (c *WAFRegional) PutPermissionPolicyWithContext(ctx aws.Context, input *waf.PutPermissionPolicyInput, opts ...request.Option) (*waf.PutPermissionPolicyOutput, error) {
7217	req, out := c.PutPermissionPolicyRequest(input)
7218	req.SetContext(ctx)
7219	req.ApplyOptions(opts...)
7220	return out, req.Send()
7221}
7222
7223const opTagResource = "TagResource"
7224
7225// TagResourceRequest generates a "aws/request.Request" representing the
7226// client's request for the TagResource operation. The "output" return
7227// value will be populated with the request's response once the request completes
7228// successfully.
7229//
7230// Use "Send" method on the returned Request to send the API call to the service.
7231// the "output" return value is not valid until after Send returns without error.
7232//
7233// See TagResource for more information on using the TagResource
7234// API call, and error handling.
7235//
7236// This method is useful when you want to inject custom logic or configuration
7237// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7238//
7239//
7240//    // Example sending a request using the TagResourceRequest method.
7241//    req, resp := client.TagResourceRequest(params)
7242//
7243//    err := req.Send()
7244//    if err == nil { // resp is now filled
7245//        fmt.Println(resp)
7246//    }
7247//
7248// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/TagResource
7249func (c *WAFRegional) TagResourceRequest(input *waf.TagResourceInput) (req *request.Request, output *waf.TagResourceOutput) {
7250	op := &request.Operation{
7251		Name:       opTagResource,
7252		HTTPMethod: "POST",
7253		HTTPPath:   "/",
7254	}
7255
7256	if input == nil {
7257		input = &waf.TagResourceInput{}
7258	}
7259
7260	output = &waf.TagResourceOutput{}
7261	req = c.newRequest(op, input, output)
7262	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7263	return
7264}
7265
7266// TagResource API operation for AWS WAF Regional.
7267//
7268// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7269// with awserr.Error's Code and Message methods to get detailed information about
7270// the error.
7271//
7272// See the AWS API reference guide for AWS WAF Regional's
7273// API operation TagResource for usage and error information.
7274//
7275// Returned Error Codes:
7276//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
7277//   The operation failed because of a system problem, even though the request
7278//   was valid. Retry your request.
7279//
7280//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
7281//   The operation failed because AWS WAF didn't recognize a parameter in the
7282//   request. For example:
7283//
7284//      * You specified an invalid parameter name.
7285//
7286//      * You specified an invalid value.
7287//
7288//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
7289//      using an action other than INSERT or DELETE.
7290//
7291//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
7292//      BLOCK, or COUNT.
7293//
7294//      * You tried to create a RateBasedRule with a RateKey value other than
7295//      IP.
7296//
7297//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
7298//      BLOCK, or COUNT.
7299//
7300//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
7301//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
7302//
7303//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
7304//      for Data.
7305//
7306//      * Your request references an ARN that is malformed, or corresponds to
7307//      a resource with which a web ACL cannot be associated.
7308//
7309//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
7310//   The operation exceeds a resource limit, for example, the maximum number of
7311//   WebACL objects that you can create for an AWS account. For more information,
7312//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
7313//   in the AWS WAF Developer Guide.
7314//
7315//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
7316//   The operation failed because the referenced object doesn't exist.
7317//
7318//   * ErrCodeWAFBadRequestException "WAFBadRequestException"
7319//
7320//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
7321//
7322//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
7323//
7324// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/TagResource
7325func (c *WAFRegional) TagResource(input *waf.TagResourceInput) (*waf.TagResourceOutput, error) {
7326	req, out := c.TagResourceRequest(input)
7327	return out, req.Send()
7328}
7329
7330// TagResourceWithContext is the same as TagResource with the addition of
7331// the ability to pass a context and additional request options.
7332//
7333// See TagResource for details on how to use this API operation.
7334//
7335// The context must be non-nil and will be used for request cancellation. If
7336// the context is nil a panic will occur. In the future the SDK may create
7337// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7338// for more information on using Contexts.
7339func (c *WAFRegional) TagResourceWithContext(ctx aws.Context, input *waf.TagResourceInput, opts ...request.Option) (*waf.TagResourceOutput, error) {
7340	req, out := c.TagResourceRequest(input)
7341	req.SetContext(ctx)
7342	req.ApplyOptions(opts...)
7343	return out, req.Send()
7344}
7345
7346const opUntagResource = "UntagResource"
7347
7348// UntagResourceRequest generates a "aws/request.Request" representing the
7349// client's request for the UntagResource operation. The "output" return
7350// value will be populated with the request's response once the request completes
7351// successfully.
7352//
7353// Use "Send" method on the returned Request to send the API call to the service.
7354// the "output" return value is not valid until after Send returns without error.
7355//
7356// See UntagResource for more information on using the UntagResource
7357// API call, and error handling.
7358//
7359// This method is useful when you want to inject custom logic or configuration
7360// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7361//
7362//
7363//    // Example sending a request using the UntagResourceRequest method.
7364//    req, resp := client.UntagResourceRequest(params)
7365//
7366//    err := req.Send()
7367//    if err == nil { // resp is now filled
7368//        fmt.Println(resp)
7369//    }
7370//
7371// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UntagResource
7372func (c *WAFRegional) UntagResourceRequest(input *waf.UntagResourceInput) (req *request.Request, output *waf.UntagResourceOutput) {
7373	op := &request.Operation{
7374		Name:       opUntagResource,
7375		HTTPMethod: "POST",
7376		HTTPPath:   "/",
7377	}
7378
7379	if input == nil {
7380		input = &waf.UntagResourceInput{}
7381	}
7382
7383	output = &waf.UntagResourceOutput{}
7384	req = c.newRequest(op, input, output)
7385	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
7386	return
7387}
7388
7389// UntagResource API operation for AWS WAF Regional.
7390//
7391// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7392// with awserr.Error's Code and Message methods to get detailed information about
7393// the error.
7394//
7395// See the AWS API reference guide for AWS WAF Regional's
7396// API operation UntagResource for usage and error information.
7397//
7398// Returned Error Codes:
7399//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
7400//   The operation failed because of a system problem, even though the request
7401//   was valid. Retry your request.
7402//
7403//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
7404//   The operation failed because AWS WAF didn't recognize a parameter in the
7405//   request. For example:
7406//
7407//      * You specified an invalid parameter name.
7408//
7409//      * You specified an invalid value.
7410//
7411//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
7412//      using an action other than INSERT or DELETE.
7413//
7414//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
7415//      BLOCK, or COUNT.
7416//
7417//      * You tried to create a RateBasedRule with a RateKey value other than
7418//      IP.
7419//
7420//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
7421//      BLOCK, or COUNT.
7422//
7423//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
7424//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
7425//
7426//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
7427//      for Data.
7428//
7429//      * Your request references an ARN that is malformed, or corresponds to
7430//      a resource with which a web ACL cannot be associated.
7431//
7432//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
7433//   The operation failed because the referenced object doesn't exist.
7434//
7435//   * ErrCodeWAFBadRequestException "WAFBadRequestException"
7436//
7437//   * ErrCodeWAFTagOperationException "WAFTagOperationException"
7438//
7439//   * ErrCodeWAFTagOperationInternalErrorException "WAFTagOperationInternalErrorException"
7440//
7441// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UntagResource
7442func (c *WAFRegional) UntagResource(input *waf.UntagResourceInput) (*waf.UntagResourceOutput, error) {
7443	req, out := c.UntagResourceRequest(input)
7444	return out, req.Send()
7445}
7446
7447// UntagResourceWithContext is the same as UntagResource with the addition of
7448// the ability to pass a context and additional request options.
7449//
7450// See UntagResource for details on how to use this API operation.
7451//
7452// The context must be non-nil and will be used for request cancellation. If
7453// the context is nil a panic will occur. In the future the SDK may create
7454// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7455// for more information on using Contexts.
7456func (c *WAFRegional) UntagResourceWithContext(ctx aws.Context, input *waf.UntagResourceInput, opts ...request.Option) (*waf.UntagResourceOutput, error) {
7457	req, out := c.UntagResourceRequest(input)
7458	req.SetContext(ctx)
7459	req.ApplyOptions(opts...)
7460	return out, req.Send()
7461}
7462
7463const opUpdateByteMatchSet = "UpdateByteMatchSet"
7464
7465// UpdateByteMatchSetRequest generates a "aws/request.Request" representing the
7466// client's request for the UpdateByteMatchSet operation. The "output" return
7467// value will be populated with the request's response once the request completes
7468// successfully.
7469//
7470// Use "Send" method on the returned Request to send the API call to the service.
7471// the "output" return value is not valid until after Send returns without error.
7472//
7473// See UpdateByteMatchSet for more information on using the UpdateByteMatchSet
7474// API call, and error handling.
7475//
7476// This method is useful when you want to inject custom logic or configuration
7477// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7478//
7479//
7480//    // Example sending a request using the UpdateByteMatchSetRequest method.
7481//    req, resp := client.UpdateByteMatchSetRequest(params)
7482//
7483//    err := req.Send()
7484//    if err == nil { // resp is now filled
7485//        fmt.Println(resp)
7486//    }
7487//
7488// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateByteMatchSet
7489func (c *WAFRegional) UpdateByteMatchSetRequest(input *waf.UpdateByteMatchSetInput) (req *request.Request, output *waf.UpdateByteMatchSetOutput) {
7490	op := &request.Operation{
7491		Name:       opUpdateByteMatchSet,
7492		HTTPMethod: "POST",
7493		HTTPPath:   "/",
7494	}
7495
7496	if input == nil {
7497		input = &waf.UpdateByteMatchSetInput{}
7498	}
7499
7500	output = &waf.UpdateByteMatchSetOutput{}
7501	req = c.newRequest(op, input, output)
7502	return
7503}
7504
7505// UpdateByteMatchSet API operation for AWS WAF Regional.
7506//
7507// Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For
7508// each ByteMatchTuple object, you specify the following values:
7509//
7510//    * Whether to insert or delete the object from the array. If you want to
7511//    change a ByteMatchSetUpdate object, you delete the existing object and
7512//    add a new one.
7513//
7514//    * The part of a web request that you want AWS WAF to inspect, such as
7515//    a query string or the value of the User-Agent header.
7516//
7517//    * The bytes (typically a string that corresponds with ASCII characters)
7518//    that you want AWS WAF to look for. For more information, including how
7519//    you specify the values for the AWS WAF API and the AWS CLI or SDKs, see
7520//    TargetString in the ByteMatchTuple data type.
7521//
7522//    * Where to look, such as at the beginning or the end of a query string.
7523//
7524//    * Whether to perform any conversions on the request, such as converting
7525//    it to lowercase, before inspecting it for the specified string.
7526//
7527// For example, you can add a ByteMatchSetUpdate object that matches web requests
7528// in which User-Agent headers contain the string BadBot. You can then configure
7529// AWS WAF to block those requests.
7530//
7531// To create and configure a ByteMatchSet, perform the following steps:
7532//
7533// Create a ByteMatchSet. For more information, see CreateByteMatchSet.
7534//
7535// Use GetChangeToken to get the change token that you provide in the ChangeToken
7536// parameter of an UpdateByteMatchSet request.
7537//
7538// Submit an UpdateByteMatchSet request to specify the part of the request that
7539// you want AWS WAF to inspect (for example, the header or the URI) and the
7540// value that you want AWS WAF to watch for.
7541//
7542// For more information about how to use the AWS WAF API to allow or block HTTP
7543// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
7544//
7545// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7546// with awserr.Error's Code and Message methods to get detailed information about
7547// the error.
7548//
7549// See the AWS API reference guide for AWS WAF Regional's
7550// API operation UpdateByteMatchSet for usage and error information.
7551//
7552// Returned Error Codes:
7553//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
7554//   The operation failed because of a system problem, even though the request
7555//   was valid. Retry your request.
7556//
7557//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
7558//   The operation failed because you tried to create, update, or delete an object
7559//   by using an invalid account identifier.
7560//
7561//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
7562//   The operation failed because there was nothing to do. For example:
7563//
7564//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
7565//      specified WebACL.
7566//
7567//      * You tried to remove an IP address from an IPSet, but the IP address
7568//      isn't in the specified IPSet.
7569//
7570//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
7571//      isn't in the specified WebACL.
7572//
7573//      * You tried to add a Rule to a WebACL, but the Rule already exists in
7574//      the specified WebACL.
7575//
7576//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
7577//      already exists in the specified WebACL.
7578//
7579//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
7580//   The operation failed because AWS WAF didn't recognize a parameter in the
7581//   request. For example:
7582//
7583//      * You specified an invalid parameter name.
7584//
7585//      * You specified an invalid value.
7586//
7587//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
7588//      using an action other than INSERT or DELETE.
7589//
7590//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
7591//      BLOCK, or COUNT.
7592//
7593//      * You tried to create a RateBasedRule with a RateKey value other than
7594//      IP.
7595//
7596//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
7597//      BLOCK, or COUNT.
7598//
7599//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
7600//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
7601//
7602//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
7603//      for Data.
7604//
7605//      * Your request references an ARN that is malformed, or corresponds to
7606//      a resource with which a web ACL cannot be associated.
7607//
7608//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
7609//   The operation failed because you tried to add an object to or delete an object
7610//   from another object that doesn't exist. For example:
7611//
7612//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
7613//      exist.
7614//
7615//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
7616//      that doesn't exist.
7617//
7618//      * You tried to add an IP address to or delete an IP address from an IPSet
7619//      that doesn't exist.
7620//
7621//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
7622//      a ByteMatchSet that doesn't exist.
7623//
7624//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
7625//   The operation failed because the referenced object doesn't exist.
7626//
7627//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
7628//   The operation failed because you tried to create, update, or delete an object
7629//   by using a change token that has already been used.
7630//
7631//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
7632//   The operation exceeds a resource limit, for example, the maximum number of
7633//   WebACL objects that you can create for an AWS account. For more information,
7634//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
7635//   in the AWS WAF Developer Guide.
7636//
7637// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateByteMatchSet
7638func (c *WAFRegional) UpdateByteMatchSet(input *waf.UpdateByteMatchSetInput) (*waf.UpdateByteMatchSetOutput, error) {
7639	req, out := c.UpdateByteMatchSetRequest(input)
7640	return out, req.Send()
7641}
7642
7643// UpdateByteMatchSetWithContext is the same as UpdateByteMatchSet with the addition of
7644// the ability to pass a context and additional request options.
7645//
7646// See UpdateByteMatchSet for details on how to use this API operation.
7647//
7648// The context must be non-nil and will be used for request cancellation. If
7649// the context is nil a panic will occur. In the future the SDK may create
7650// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7651// for more information on using Contexts.
7652func (c *WAFRegional) UpdateByteMatchSetWithContext(ctx aws.Context, input *waf.UpdateByteMatchSetInput, opts ...request.Option) (*waf.UpdateByteMatchSetOutput, error) {
7653	req, out := c.UpdateByteMatchSetRequest(input)
7654	req.SetContext(ctx)
7655	req.ApplyOptions(opts...)
7656	return out, req.Send()
7657}
7658
7659const opUpdateGeoMatchSet = "UpdateGeoMatchSet"
7660
7661// UpdateGeoMatchSetRequest generates a "aws/request.Request" representing the
7662// client's request for the UpdateGeoMatchSet operation. The "output" return
7663// value will be populated with the request's response once the request completes
7664// successfully.
7665//
7666// Use "Send" method on the returned Request to send the API call to the service.
7667// the "output" return value is not valid until after Send returns without error.
7668//
7669// See UpdateGeoMatchSet for more information on using the UpdateGeoMatchSet
7670// API call, and error handling.
7671//
7672// This method is useful when you want to inject custom logic or configuration
7673// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7674//
7675//
7676//    // Example sending a request using the UpdateGeoMatchSetRequest method.
7677//    req, resp := client.UpdateGeoMatchSetRequest(params)
7678//
7679//    err := req.Send()
7680//    if err == nil { // resp is now filled
7681//        fmt.Println(resp)
7682//    }
7683//
7684// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateGeoMatchSet
7685func (c *WAFRegional) UpdateGeoMatchSetRequest(input *waf.UpdateGeoMatchSetInput) (req *request.Request, output *waf.UpdateGeoMatchSetOutput) {
7686	op := &request.Operation{
7687		Name:       opUpdateGeoMatchSet,
7688		HTTPMethod: "POST",
7689		HTTPPath:   "/",
7690	}
7691
7692	if input == nil {
7693		input = &waf.UpdateGeoMatchSetInput{}
7694	}
7695
7696	output = &waf.UpdateGeoMatchSetOutput{}
7697	req = c.newRequest(op, input, output)
7698	return
7699}
7700
7701// UpdateGeoMatchSet API operation for AWS WAF Regional.
7702//
7703// Inserts or deletes GeoMatchConstraint objects in an GeoMatchSet. For each
7704// GeoMatchConstraint object, you specify the following values:
7705//
7706//    * Whether to insert or delete the object from the array. If you want to
7707//    change an GeoMatchConstraint object, you delete the existing object and
7708//    add a new one.
7709//
7710//    * The Type. The only valid value for Type is Country.
7711//
7712//    * The Value, which is a two character code for the country to add to the
7713//    GeoMatchConstraint object. Valid codes are listed in GeoMatchConstraint$Value.
7714//
7715// To create and configure an GeoMatchSet, perform the following steps:
7716//
7717// Submit a CreateGeoMatchSet request.
7718//
7719// Use GetChangeToken to get the change token that you provide in the ChangeToken
7720// parameter of an UpdateGeoMatchSet request.
7721//
7722// Submit an UpdateGeoMatchSet request to specify the country that you want
7723// AWS WAF to watch for.
7724//
7725// When you update an GeoMatchSet, you specify the country that you want to
7726// add and/or the country that you want to delete. If you want to change a country,
7727// you delete the existing country and add the new one.
7728//
7729// For more information about how to use the AWS WAF API to allow or block HTTP
7730// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
7731//
7732// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7733// with awserr.Error's Code and Message methods to get detailed information about
7734// the error.
7735//
7736// See the AWS API reference guide for AWS WAF Regional's
7737// API operation UpdateGeoMatchSet for usage and error information.
7738//
7739// Returned Error Codes:
7740//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
7741//   The operation failed because you tried to create, update, or delete an object
7742//   by using a change token that has already been used.
7743//
7744//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
7745//   The operation failed because of a system problem, even though the request
7746//   was valid. Retry your request.
7747//
7748//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
7749//   The operation failed because you tried to create, update, or delete an object
7750//   by using an invalid account identifier.
7751//
7752//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
7753//   The operation failed because there was nothing to do. For example:
7754//
7755//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
7756//      specified WebACL.
7757//
7758//      * You tried to remove an IP address from an IPSet, but the IP address
7759//      isn't in the specified IPSet.
7760//
7761//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
7762//      isn't in the specified WebACL.
7763//
7764//      * You tried to add a Rule to a WebACL, but the Rule already exists in
7765//      the specified WebACL.
7766//
7767//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
7768//      already exists in the specified WebACL.
7769//
7770//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
7771//   The operation failed because AWS WAF didn't recognize a parameter in the
7772//   request. For example:
7773//
7774//      * You specified an invalid parameter name.
7775//
7776//      * You specified an invalid value.
7777//
7778//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
7779//      using an action other than INSERT or DELETE.
7780//
7781//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
7782//      BLOCK, or COUNT.
7783//
7784//      * You tried to create a RateBasedRule with a RateKey value other than
7785//      IP.
7786//
7787//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
7788//      BLOCK, or COUNT.
7789//
7790//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
7791//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
7792//
7793//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
7794//      for Data.
7795//
7796//      * Your request references an ARN that is malformed, or corresponds to
7797//      a resource with which a web ACL cannot be associated.
7798//
7799//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
7800//   The operation failed because you tried to add an object to or delete an object
7801//   from another object that doesn't exist. For example:
7802//
7803//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
7804//      exist.
7805//
7806//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
7807//      that doesn't exist.
7808//
7809//      * You tried to add an IP address to or delete an IP address from an IPSet
7810//      that doesn't exist.
7811//
7812//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
7813//      a ByteMatchSet that doesn't exist.
7814//
7815//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
7816//   The operation failed because the referenced object doesn't exist.
7817//
7818//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
7819//   The operation failed because you tried to delete an object that is still
7820//   in use. For example:
7821//
7822//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
7823//
7824//      * You tried to delete a Rule that is still referenced by a WebACL.
7825//
7826//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
7827//   The operation exceeds a resource limit, for example, the maximum number of
7828//   WebACL objects that you can create for an AWS account. For more information,
7829//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
7830//   in the AWS WAF Developer Guide.
7831//
7832// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateGeoMatchSet
7833func (c *WAFRegional) UpdateGeoMatchSet(input *waf.UpdateGeoMatchSetInput) (*waf.UpdateGeoMatchSetOutput, error) {
7834	req, out := c.UpdateGeoMatchSetRequest(input)
7835	return out, req.Send()
7836}
7837
7838// UpdateGeoMatchSetWithContext is the same as UpdateGeoMatchSet with the addition of
7839// the ability to pass a context and additional request options.
7840//
7841// See UpdateGeoMatchSet for details on how to use this API operation.
7842//
7843// The context must be non-nil and will be used for request cancellation. If
7844// the context is nil a panic will occur. In the future the SDK may create
7845// sub-contexts for http.Requests. See https://golang.org/pkg/context/
7846// for more information on using Contexts.
7847func (c *WAFRegional) UpdateGeoMatchSetWithContext(ctx aws.Context, input *waf.UpdateGeoMatchSetInput, opts ...request.Option) (*waf.UpdateGeoMatchSetOutput, error) {
7848	req, out := c.UpdateGeoMatchSetRequest(input)
7849	req.SetContext(ctx)
7850	req.ApplyOptions(opts...)
7851	return out, req.Send()
7852}
7853
7854const opUpdateIPSet = "UpdateIPSet"
7855
7856// UpdateIPSetRequest generates a "aws/request.Request" representing the
7857// client's request for the UpdateIPSet operation. The "output" return
7858// value will be populated with the request's response once the request completes
7859// successfully.
7860//
7861// Use "Send" method on the returned Request to send the API call to the service.
7862// the "output" return value is not valid until after Send returns without error.
7863//
7864// See UpdateIPSet for more information on using the UpdateIPSet
7865// API call, and error handling.
7866//
7867// This method is useful when you want to inject custom logic or configuration
7868// into the SDK's request lifecycle. Such as custom headers, or retry logic.
7869//
7870//
7871//    // Example sending a request using the UpdateIPSetRequest method.
7872//    req, resp := client.UpdateIPSetRequest(params)
7873//
7874//    err := req.Send()
7875//    if err == nil { // resp is now filled
7876//        fmt.Println(resp)
7877//    }
7878//
7879// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateIPSet
7880func (c *WAFRegional) UpdateIPSetRequest(input *waf.UpdateIPSetInput) (req *request.Request, output *waf.UpdateIPSetOutput) {
7881	op := &request.Operation{
7882		Name:       opUpdateIPSet,
7883		HTTPMethod: "POST",
7884		HTTPPath:   "/",
7885	}
7886
7887	if input == nil {
7888		input = &waf.UpdateIPSetInput{}
7889	}
7890
7891	output = &waf.UpdateIPSetOutput{}
7892	req = c.newRequest(op, input, output)
7893	return
7894}
7895
7896// UpdateIPSet API operation for AWS WAF Regional.
7897//
7898// Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor
7899// object, you specify the following values:
7900//
7901//    * Whether to insert or delete the object from the array. If you want to
7902//    change an IPSetDescriptor object, you delete the existing object and add
7903//    a new one.
7904//
7905//    * The IP address version, IPv4 or IPv6.
7906//
7907//    * The IP address in CIDR notation, for example, 192.0.2.0/24 (for the
7908//    range of IP addresses from 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32
7909//    (for the individual IP address 192.0.2.44).
7910//
7911// AWS WAF supports IPv4 address ranges: /8 and any range between /16 through
7912// /32. AWS WAF supports IPv6 address ranges: /24, /32, /48, /56, /64, and /128.
7913// For more information about CIDR notation, see the Wikipedia entry Classless
7914// Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
7915//
7916// IPv6 addresses can be represented using any of the following formats:
7917//
7918//    * 1111:0000:0000:0000:0000:0000:0000:0111/128
7919//
7920//    * 1111:0:0:0:0:0:0:0111/128
7921//
7922//    * 1111::0111/128
7923//
7924//    * 1111::111/128
7925//
7926// You use an IPSet to specify which web requests you want to allow or block
7927// based on the IP addresses that the requests originated from. For example,
7928// if you're receiving a lot of requests from one or a small number of IP addresses
7929// and you want to block the requests, you can create an IPSet that specifies
7930// those IP addresses, and then configure AWS WAF to block the requests.
7931//
7932// To create and configure an IPSet, perform the following steps:
7933//
7934// Submit a CreateIPSet request.
7935//
7936// Use GetChangeToken to get the change token that you provide in the ChangeToken
7937// parameter of an UpdateIPSet request.
7938//
7939// Submit an UpdateIPSet request to specify the IP addresses that you want AWS
7940// WAF to watch for.
7941//
7942// When you update an IPSet, you specify the IP addresses that you want to add
7943// and/or the IP addresses that you want to delete. If you want to change an
7944// IP address, you delete the existing IP address and add the new one.
7945//
7946// You can insert a maximum of 1000 addresses in a single request.
7947//
7948// For more information about how to use the AWS WAF API to allow or block HTTP
7949// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
7950//
7951// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
7952// with awserr.Error's Code and Message methods to get detailed information about
7953// the error.
7954//
7955// See the AWS API reference guide for AWS WAF Regional's
7956// API operation UpdateIPSet for usage and error information.
7957//
7958// Returned Error Codes:
7959//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
7960//   The operation failed because you tried to create, update, or delete an object
7961//   by using a change token that has already been used.
7962//
7963//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
7964//   The operation failed because of a system problem, even though the request
7965//   was valid. Retry your request.
7966//
7967//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
7968//   The operation failed because you tried to create, update, or delete an object
7969//   by using an invalid account identifier.
7970//
7971//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
7972//   The operation failed because there was nothing to do. For example:
7973//
7974//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
7975//      specified WebACL.
7976//
7977//      * You tried to remove an IP address from an IPSet, but the IP address
7978//      isn't in the specified IPSet.
7979//
7980//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
7981//      isn't in the specified WebACL.
7982//
7983//      * You tried to add a Rule to a WebACL, but the Rule already exists in
7984//      the specified WebACL.
7985//
7986//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
7987//      already exists in the specified WebACL.
7988//
7989//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
7990//   The operation failed because AWS WAF didn't recognize a parameter in the
7991//   request. For example:
7992//
7993//      * You specified an invalid parameter name.
7994//
7995//      * You specified an invalid value.
7996//
7997//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
7998//      using an action other than INSERT or DELETE.
7999//
8000//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8001//      BLOCK, or COUNT.
8002//
8003//      * You tried to create a RateBasedRule with a RateKey value other than
8004//      IP.
8005//
8006//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8007//      BLOCK, or COUNT.
8008//
8009//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8010//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8011//
8012//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8013//      for Data.
8014//
8015//      * Your request references an ARN that is malformed, or corresponds to
8016//      a resource with which a web ACL cannot be associated.
8017//
8018//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
8019//   The operation failed because you tried to add an object to or delete an object
8020//   from another object that doesn't exist. For example:
8021//
8022//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8023//      exist.
8024//
8025//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8026//      that doesn't exist.
8027//
8028//      * You tried to add an IP address to or delete an IP address from an IPSet
8029//      that doesn't exist.
8030//
8031//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8032//      a ByteMatchSet that doesn't exist.
8033//
8034//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
8035//   The operation failed because the referenced object doesn't exist.
8036//
8037//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
8038//   The operation failed because you tried to delete an object that is still
8039//   in use. For example:
8040//
8041//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
8042//
8043//      * You tried to delete a Rule that is still referenced by a WebACL.
8044//
8045//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
8046//   The operation exceeds a resource limit, for example, the maximum number of
8047//   WebACL objects that you can create for an AWS account. For more information,
8048//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8049//   in the AWS WAF Developer Guide.
8050//
8051// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateIPSet
8052func (c *WAFRegional) UpdateIPSet(input *waf.UpdateIPSetInput) (*waf.UpdateIPSetOutput, error) {
8053	req, out := c.UpdateIPSetRequest(input)
8054	return out, req.Send()
8055}
8056
8057// UpdateIPSetWithContext is the same as UpdateIPSet with the addition of
8058// the ability to pass a context and additional request options.
8059//
8060// See UpdateIPSet for details on how to use this API operation.
8061//
8062// The context must be non-nil and will be used for request cancellation. If
8063// the context is nil a panic will occur. In the future the SDK may create
8064// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8065// for more information on using Contexts.
8066func (c *WAFRegional) UpdateIPSetWithContext(ctx aws.Context, input *waf.UpdateIPSetInput, opts ...request.Option) (*waf.UpdateIPSetOutput, error) {
8067	req, out := c.UpdateIPSetRequest(input)
8068	req.SetContext(ctx)
8069	req.ApplyOptions(opts...)
8070	return out, req.Send()
8071}
8072
8073const opUpdateRateBasedRule = "UpdateRateBasedRule"
8074
8075// UpdateRateBasedRuleRequest generates a "aws/request.Request" representing the
8076// client's request for the UpdateRateBasedRule operation. The "output" return
8077// value will be populated with the request's response once the request completes
8078// successfully.
8079//
8080// Use "Send" method on the returned Request to send the API call to the service.
8081// the "output" return value is not valid until after Send returns without error.
8082//
8083// See UpdateRateBasedRule for more information on using the UpdateRateBasedRule
8084// API call, and error handling.
8085//
8086// This method is useful when you want to inject custom logic or configuration
8087// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8088//
8089//
8090//    // Example sending a request using the UpdateRateBasedRuleRequest method.
8091//    req, resp := client.UpdateRateBasedRuleRequest(params)
8092//
8093//    err := req.Send()
8094//    if err == nil { // resp is now filled
8095//        fmt.Println(resp)
8096//    }
8097//
8098// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRateBasedRule
8099func (c *WAFRegional) UpdateRateBasedRuleRequest(input *waf.UpdateRateBasedRuleInput) (req *request.Request, output *waf.UpdateRateBasedRuleOutput) {
8100	op := &request.Operation{
8101		Name:       opUpdateRateBasedRule,
8102		HTTPMethod: "POST",
8103		HTTPPath:   "/",
8104	}
8105
8106	if input == nil {
8107		input = &waf.UpdateRateBasedRuleInput{}
8108	}
8109
8110	output = &waf.UpdateRateBasedRuleOutput{}
8111	req = c.newRequest(op, input, output)
8112	return
8113}
8114
8115// UpdateRateBasedRule API operation for AWS WAF Regional.
8116//
8117// Inserts or deletes Predicate objects in a rule and updates the RateLimit
8118// in the rule.
8119//
8120// Each Predicate object identifies a predicate, such as a ByteMatchSet or an
8121// IPSet, that specifies the web requests that you want to block or count. The
8122// RateLimit specifies the number of requests every five minutes that triggers
8123// the rule.
8124//
8125// If you add more than one predicate to a RateBasedRule, a request must match
8126// all the predicates and exceed the RateLimit to be counted or blocked. For
8127// example, suppose you add the following to a RateBasedRule:
8128//
8129//    * An IPSet that matches the IP address 192.0.2.44/32
8130//
8131//    * A ByteMatchSet that matches BadBot in the User-Agent header
8132//
8133// Further, you specify a RateLimit of 15,000.
8134//
8135// You then add the RateBasedRule to a WebACL and specify that you want to block
8136// requests that satisfy the rule. For a request to be blocked, it must come
8137// from the IP address 192.0.2.44 and the User-Agent header in the request must
8138// contain the value BadBot. Further, requests that match these two conditions
8139// much be received at a rate of more than 15,000 every five minutes. If the
8140// rate drops below this limit, AWS WAF no longer blocks the requests.
8141//
8142// As a second example, suppose you want to limit requests to a particular page
8143// on your site. To do this, you could add the following to a RateBasedRule:
8144//
8145//    * A ByteMatchSet with FieldToMatch of URI
8146//
8147//    * A PositionalConstraint of STARTS_WITH
8148//
8149//    * A TargetString of login
8150//
8151// Further, you specify a RateLimit of 15,000.
8152//
8153// By adding this RateBasedRule to a WebACL, you could limit requests to your
8154// login page without affecting the rest of your site.
8155//
8156// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8157// with awserr.Error's Code and Message methods to get detailed information about
8158// the error.
8159//
8160// See the AWS API reference guide for AWS WAF Regional's
8161// API operation UpdateRateBasedRule for usage and error information.
8162//
8163// Returned Error Codes:
8164//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
8165//   The operation failed because you tried to create, update, or delete an object
8166//   by using a change token that has already been used.
8167//
8168//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
8169//   The operation failed because of a system problem, even though the request
8170//   was valid. Retry your request.
8171//
8172//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
8173//   The operation failed because you tried to create, update, or delete an object
8174//   by using an invalid account identifier.
8175//
8176//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
8177//   The operation failed because there was nothing to do. For example:
8178//
8179//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
8180//      specified WebACL.
8181//
8182//      * You tried to remove an IP address from an IPSet, but the IP address
8183//      isn't in the specified IPSet.
8184//
8185//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
8186//      isn't in the specified WebACL.
8187//
8188//      * You tried to add a Rule to a WebACL, but the Rule already exists in
8189//      the specified WebACL.
8190//
8191//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
8192//      already exists in the specified WebACL.
8193//
8194//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
8195//   The operation failed because AWS WAF didn't recognize a parameter in the
8196//   request. For example:
8197//
8198//      * You specified an invalid parameter name.
8199//
8200//      * You specified an invalid value.
8201//
8202//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
8203//      using an action other than INSERT or DELETE.
8204//
8205//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8206//      BLOCK, or COUNT.
8207//
8208//      * You tried to create a RateBasedRule with a RateKey value other than
8209//      IP.
8210//
8211//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8212//      BLOCK, or COUNT.
8213//
8214//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8215//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8216//
8217//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8218//      for Data.
8219//
8220//      * Your request references an ARN that is malformed, or corresponds to
8221//      a resource with which a web ACL cannot be associated.
8222//
8223//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
8224//   The operation failed because you tried to add an object to or delete an object
8225//   from another object that doesn't exist. For example:
8226//
8227//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8228//      exist.
8229//
8230//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8231//      that doesn't exist.
8232//
8233//      * You tried to add an IP address to or delete an IP address from an IPSet
8234//      that doesn't exist.
8235//
8236//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8237//      a ByteMatchSet that doesn't exist.
8238//
8239//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
8240//   The operation failed because the referenced object doesn't exist.
8241//
8242//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
8243//   The operation failed because you tried to delete an object that is still
8244//   in use. For example:
8245//
8246//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
8247//
8248//      * You tried to delete a Rule that is still referenced by a WebACL.
8249//
8250//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
8251//   The operation exceeds a resource limit, for example, the maximum number of
8252//   WebACL objects that you can create for an AWS account. For more information,
8253//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8254//   in the AWS WAF Developer Guide.
8255//
8256// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRateBasedRule
8257func (c *WAFRegional) UpdateRateBasedRule(input *waf.UpdateRateBasedRuleInput) (*waf.UpdateRateBasedRuleOutput, error) {
8258	req, out := c.UpdateRateBasedRuleRequest(input)
8259	return out, req.Send()
8260}
8261
8262// UpdateRateBasedRuleWithContext is the same as UpdateRateBasedRule with the addition of
8263// the ability to pass a context and additional request options.
8264//
8265// See UpdateRateBasedRule for details on how to use this API operation.
8266//
8267// The context must be non-nil and will be used for request cancellation. If
8268// the context is nil a panic will occur. In the future the SDK may create
8269// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8270// for more information on using Contexts.
8271func (c *WAFRegional) UpdateRateBasedRuleWithContext(ctx aws.Context, input *waf.UpdateRateBasedRuleInput, opts ...request.Option) (*waf.UpdateRateBasedRuleOutput, error) {
8272	req, out := c.UpdateRateBasedRuleRequest(input)
8273	req.SetContext(ctx)
8274	req.ApplyOptions(opts...)
8275	return out, req.Send()
8276}
8277
8278const opUpdateRegexMatchSet = "UpdateRegexMatchSet"
8279
8280// UpdateRegexMatchSetRequest generates a "aws/request.Request" representing the
8281// client's request for the UpdateRegexMatchSet operation. The "output" return
8282// value will be populated with the request's response once the request completes
8283// successfully.
8284//
8285// Use "Send" method on the returned Request to send the API call to the service.
8286// the "output" return value is not valid until after Send returns without error.
8287//
8288// See UpdateRegexMatchSet for more information on using the UpdateRegexMatchSet
8289// API call, and error handling.
8290//
8291// This method is useful when you want to inject custom logic or configuration
8292// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8293//
8294//
8295//    // Example sending a request using the UpdateRegexMatchSetRequest method.
8296//    req, resp := client.UpdateRegexMatchSetRequest(params)
8297//
8298//    err := req.Send()
8299//    if err == nil { // resp is now filled
8300//        fmt.Println(resp)
8301//    }
8302//
8303// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRegexMatchSet
8304func (c *WAFRegional) UpdateRegexMatchSetRequest(input *waf.UpdateRegexMatchSetInput) (req *request.Request, output *waf.UpdateRegexMatchSetOutput) {
8305	op := &request.Operation{
8306		Name:       opUpdateRegexMatchSet,
8307		HTTPMethod: "POST",
8308		HTTPPath:   "/",
8309	}
8310
8311	if input == nil {
8312		input = &waf.UpdateRegexMatchSetInput{}
8313	}
8314
8315	output = &waf.UpdateRegexMatchSetOutput{}
8316	req = c.newRequest(op, input, output)
8317	return
8318}
8319
8320// UpdateRegexMatchSet API operation for AWS WAF Regional.
8321//
8322// Inserts or deletes RegexMatchTuple objects (filters) in a RegexMatchSet.
8323// For each RegexMatchSetUpdate object, you specify the following values:
8324//
8325//    * Whether to insert or delete the object from the array. If you want to
8326//    change a RegexMatchSetUpdate object, you delete the existing object and
8327//    add a new one.
8328//
8329//    * The part of a web request that you want AWS WAF to inspectupdate, such
8330//    as a query string or the value of the User-Agent header.
8331//
8332//    * The identifier of the pattern (a regular expression) that you want AWS
8333//    WAF to look for. For more information, see RegexPatternSet.
8334//
8335//    * Whether to perform any conversions on the request, such as converting
8336//    it to lowercase, before inspecting it for the specified string.
8337//
8338// For example, you can create a RegexPatternSet that matches any requests with
8339// User-Agent headers that contain the string B[a@]dB[o0]t. You can then configure
8340// AWS WAF to reject those requests.
8341//
8342// To create and configure a RegexMatchSet, perform the following steps:
8343//
8344// Create a RegexMatchSet. For more information, see CreateRegexMatchSet.
8345//
8346// Use GetChangeToken to get the change token that you provide in the ChangeToken
8347// parameter of an UpdateRegexMatchSet request.
8348//
8349// Submit an UpdateRegexMatchSet request to specify the part of the request
8350// that you want AWS WAF to inspect (for example, the header or the URI) and
8351// the identifier of the RegexPatternSet that contain the regular expression
8352// patters you want AWS WAF to watch for.
8353//
8354// For more information about how to use the AWS WAF API to allow or block HTTP
8355// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
8356//
8357// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8358// with awserr.Error's Code and Message methods to get detailed information about
8359// the error.
8360//
8361// See the AWS API reference guide for AWS WAF Regional's
8362// API operation UpdateRegexMatchSet for usage and error information.
8363//
8364// Returned Error Codes:
8365//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
8366//   The operation failed because you tried to create, update, or delete an object
8367//   by using a change token that has already been used.
8368//
8369//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
8370//   The operation failed because of a system problem, even though the request
8371//   was valid. Retry your request.
8372//
8373//   * ErrCodeWAFDisallowedNameException "WAFDisallowedNameException"
8374//   The name specified is invalid.
8375//
8376//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
8377//   The operation exceeds a resource limit, for example, the maximum number of
8378//   WebACL objects that you can create for an AWS account. For more information,
8379//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8380//   in the AWS WAF Developer Guide.
8381//
8382//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
8383//   The operation failed because the referenced object doesn't exist.
8384//
8385//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
8386//   The operation failed because you tried to add an object to or delete an object
8387//   from another object that doesn't exist. For example:
8388//
8389//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8390//      exist.
8391//
8392//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8393//      that doesn't exist.
8394//
8395//      * You tried to add an IP address to or delete an IP address from an IPSet
8396//      that doesn't exist.
8397//
8398//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8399//      a ByteMatchSet that doesn't exist.
8400//
8401//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
8402//   The operation failed because there was nothing to do. For example:
8403//
8404//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
8405//      specified WebACL.
8406//
8407//      * You tried to remove an IP address from an IPSet, but the IP address
8408//      isn't in the specified IPSet.
8409//
8410//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
8411//      isn't in the specified WebACL.
8412//
8413//      * You tried to add a Rule to a WebACL, but the Rule already exists in
8414//      the specified WebACL.
8415//
8416//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
8417//      already exists in the specified WebACL.
8418//
8419//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
8420//   The operation failed because you tried to create, update, or delete an object
8421//   by using an invalid account identifier.
8422//
8423// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRegexMatchSet
8424func (c *WAFRegional) UpdateRegexMatchSet(input *waf.UpdateRegexMatchSetInput) (*waf.UpdateRegexMatchSetOutput, error) {
8425	req, out := c.UpdateRegexMatchSetRequest(input)
8426	return out, req.Send()
8427}
8428
8429// UpdateRegexMatchSetWithContext is the same as UpdateRegexMatchSet with the addition of
8430// the ability to pass a context and additional request options.
8431//
8432// See UpdateRegexMatchSet for details on how to use this API operation.
8433//
8434// The context must be non-nil and will be used for request cancellation. If
8435// the context is nil a panic will occur. In the future the SDK may create
8436// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8437// for more information on using Contexts.
8438func (c *WAFRegional) UpdateRegexMatchSetWithContext(ctx aws.Context, input *waf.UpdateRegexMatchSetInput, opts ...request.Option) (*waf.UpdateRegexMatchSetOutput, error) {
8439	req, out := c.UpdateRegexMatchSetRequest(input)
8440	req.SetContext(ctx)
8441	req.ApplyOptions(opts...)
8442	return out, req.Send()
8443}
8444
8445const opUpdateRegexPatternSet = "UpdateRegexPatternSet"
8446
8447// UpdateRegexPatternSetRequest generates a "aws/request.Request" representing the
8448// client's request for the UpdateRegexPatternSet operation. The "output" return
8449// value will be populated with the request's response once the request completes
8450// successfully.
8451//
8452// Use "Send" method on the returned Request to send the API call to the service.
8453// the "output" return value is not valid until after Send returns without error.
8454//
8455// See UpdateRegexPatternSet for more information on using the UpdateRegexPatternSet
8456// API call, and error handling.
8457//
8458// This method is useful when you want to inject custom logic or configuration
8459// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8460//
8461//
8462//    // Example sending a request using the UpdateRegexPatternSetRequest method.
8463//    req, resp := client.UpdateRegexPatternSetRequest(params)
8464//
8465//    err := req.Send()
8466//    if err == nil { // resp is now filled
8467//        fmt.Println(resp)
8468//    }
8469//
8470// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRegexPatternSet
8471func (c *WAFRegional) UpdateRegexPatternSetRequest(input *waf.UpdateRegexPatternSetInput) (req *request.Request, output *waf.UpdateRegexPatternSetOutput) {
8472	op := &request.Operation{
8473		Name:       opUpdateRegexPatternSet,
8474		HTTPMethod: "POST",
8475		HTTPPath:   "/",
8476	}
8477
8478	if input == nil {
8479		input = &waf.UpdateRegexPatternSetInput{}
8480	}
8481
8482	output = &waf.UpdateRegexPatternSetOutput{}
8483	req = c.newRequest(op, input, output)
8484	return
8485}
8486
8487// UpdateRegexPatternSet API operation for AWS WAF Regional.
8488//
8489// Inserts or deletes RegexPatternString objects in a RegexPatternSet. For each
8490// RegexPatternString object, you specify the following values:
8491//
8492//    * Whether to insert or delete the RegexPatternString.
8493//
8494//    * The regular expression pattern that you want to insert or delete. For
8495//    more information, see RegexPatternSet.
8496//
8497// For example, you can create a RegexPatternString such as B[a@]dB[o0]t. AWS
8498// WAF will match this RegexPatternString to:
8499//
8500//    * BadBot
8501//
8502//    * BadB0t
8503//
8504//    * B@dBot
8505//
8506//    * B@dB0t
8507//
8508// To create and configure a RegexPatternSet, perform the following steps:
8509//
8510// Create a RegexPatternSet. For more information, see CreateRegexPatternSet.
8511//
8512// Use GetChangeToken to get the change token that you provide in the ChangeToken
8513// parameter of an UpdateRegexPatternSet request.
8514//
8515// Submit an UpdateRegexPatternSet request to specify the regular expression
8516// pattern that you want AWS WAF to watch for.
8517//
8518// For more information about how to use the AWS WAF API to allow or block HTTP
8519// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
8520//
8521// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8522// with awserr.Error's Code and Message methods to get detailed information about
8523// the error.
8524//
8525// See the AWS API reference guide for AWS WAF Regional's
8526// API operation UpdateRegexPatternSet for usage and error information.
8527//
8528// Returned Error Codes:
8529//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
8530//   The operation failed because you tried to create, update, or delete an object
8531//   by using a change token that has already been used.
8532//
8533//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
8534//   The operation failed because of a system problem, even though the request
8535//   was valid. Retry your request.
8536//
8537//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
8538//   The operation exceeds a resource limit, for example, the maximum number of
8539//   WebACL objects that you can create for an AWS account. For more information,
8540//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8541//   in the AWS WAF Developer Guide.
8542//
8543//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
8544//   The operation failed because the referenced object doesn't exist.
8545//
8546//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
8547//   The operation failed because you tried to add an object to or delete an object
8548//   from another object that doesn't exist. For example:
8549//
8550//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8551//      exist.
8552//
8553//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8554//      that doesn't exist.
8555//
8556//      * You tried to add an IP address to or delete an IP address from an IPSet
8557//      that doesn't exist.
8558//
8559//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8560//      a ByteMatchSet that doesn't exist.
8561//
8562//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
8563//   The operation failed because there was nothing to do. For example:
8564//
8565//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
8566//      specified WebACL.
8567//
8568//      * You tried to remove an IP address from an IPSet, but the IP address
8569//      isn't in the specified IPSet.
8570//
8571//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
8572//      isn't in the specified WebACL.
8573//
8574//      * You tried to add a Rule to a WebACL, but the Rule already exists in
8575//      the specified WebACL.
8576//
8577//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
8578//      already exists in the specified WebACL.
8579//
8580//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
8581//   The operation failed because you tried to create, update, or delete an object
8582//   by using an invalid account identifier.
8583//
8584//   * ErrCodeWAFInvalidRegexPatternException "WAFInvalidRegexPatternException"
8585//   The regular expression (regex) you specified in RegexPatternString is invalid.
8586//
8587// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRegexPatternSet
8588func (c *WAFRegional) UpdateRegexPatternSet(input *waf.UpdateRegexPatternSetInput) (*waf.UpdateRegexPatternSetOutput, error) {
8589	req, out := c.UpdateRegexPatternSetRequest(input)
8590	return out, req.Send()
8591}
8592
8593// UpdateRegexPatternSetWithContext is the same as UpdateRegexPatternSet with the addition of
8594// the ability to pass a context and additional request options.
8595//
8596// See UpdateRegexPatternSet for details on how to use this API operation.
8597//
8598// The context must be non-nil and will be used for request cancellation. If
8599// the context is nil a panic will occur. In the future the SDK may create
8600// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8601// for more information on using Contexts.
8602func (c *WAFRegional) UpdateRegexPatternSetWithContext(ctx aws.Context, input *waf.UpdateRegexPatternSetInput, opts ...request.Option) (*waf.UpdateRegexPatternSetOutput, error) {
8603	req, out := c.UpdateRegexPatternSetRequest(input)
8604	req.SetContext(ctx)
8605	req.ApplyOptions(opts...)
8606	return out, req.Send()
8607}
8608
8609const opUpdateRule = "UpdateRule"
8610
8611// UpdateRuleRequest generates a "aws/request.Request" representing the
8612// client's request for the UpdateRule operation. The "output" return
8613// value will be populated with the request's response once the request completes
8614// successfully.
8615//
8616// Use "Send" method on the returned Request to send the API call to the service.
8617// the "output" return value is not valid until after Send returns without error.
8618//
8619// See UpdateRule for more information on using the UpdateRule
8620// API call, and error handling.
8621//
8622// This method is useful when you want to inject custom logic or configuration
8623// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8624//
8625//
8626//    // Example sending a request using the UpdateRuleRequest method.
8627//    req, resp := client.UpdateRuleRequest(params)
8628//
8629//    err := req.Send()
8630//    if err == nil { // resp is now filled
8631//        fmt.Println(resp)
8632//    }
8633//
8634// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRule
8635func (c *WAFRegional) UpdateRuleRequest(input *waf.UpdateRuleInput) (req *request.Request, output *waf.UpdateRuleOutput) {
8636	op := &request.Operation{
8637		Name:       opUpdateRule,
8638		HTTPMethod: "POST",
8639		HTTPPath:   "/",
8640	}
8641
8642	if input == nil {
8643		input = &waf.UpdateRuleInput{}
8644	}
8645
8646	output = &waf.UpdateRuleOutput{}
8647	req = c.newRequest(op, input, output)
8648	return
8649}
8650
8651// UpdateRule API operation for AWS WAF Regional.
8652//
8653// Inserts or deletes Predicate objects in a Rule. Each Predicate object identifies
8654// a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests
8655// that you want to allow, block, or count. If you add more than one predicate
8656// to a Rule, a request must match all of the specifications to be allowed,
8657// blocked, or counted. For example, suppose that you add the following to a
8658// Rule:
8659//
8660//    * A ByteMatchSet that matches the value BadBot in the User-Agent header
8661//
8662//    * An IPSet that matches the IP address 192.0.2.44
8663//
8664// You then add the Rule to a WebACL and specify that you want to block requests
8665// that satisfy the Rule. For a request to be blocked, the User-Agent header
8666// in the request must contain the value BadBot and the request must originate
8667// from the IP address 192.0.2.44.
8668//
8669// To create and configure a Rule, perform the following steps:
8670//
8671// Create and update the predicates that you want to include in the Rule.
8672//
8673// Create the Rule. See CreateRule.
8674//
8675// Use GetChangeToken to get the change token that you provide in the ChangeToken
8676// parameter of an UpdateRule request.
8677//
8678// Submit an UpdateRule request to add predicates to the Rule.
8679//
8680// Create and update a WebACL that contains the Rule. See CreateWebACL.
8681//
8682// If you want to replace one ByteMatchSet or IPSet with another, you delete
8683// the existing one and add the new one.
8684//
8685// For more information about how to use the AWS WAF API to allow or block HTTP
8686// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
8687//
8688// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8689// with awserr.Error's Code and Message methods to get detailed information about
8690// the error.
8691//
8692// See the AWS API reference guide for AWS WAF Regional's
8693// API operation UpdateRule for usage and error information.
8694//
8695// Returned Error Codes:
8696//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
8697//   The operation failed because you tried to create, update, or delete an object
8698//   by using a change token that has already been used.
8699//
8700//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
8701//   The operation failed because of a system problem, even though the request
8702//   was valid. Retry your request.
8703//
8704//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
8705//   The operation failed because you tried to create, update, or delete an object
8706//   by using an invalid account identifier.
8707//
8708//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
8709//   The operation failed because there was nothing to do. For example:
8710//
8711//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
8712//      specified WebACL.
8713//
8714//      * You tried to remove an IP address from an IPSet, but the IP address
8715//      isn't in the specified IPSet.
8716//
8717//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
8718//      isn't in the specified WebACL.
8719//
8720//      * You tried to add a Rule to a WebACL, but the Rule already exists in
8721//      the specified WebACL.
8722//
8723//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
8724//      already exists in the specified WebACL.
8725//
8726//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
8727//   The operation failed because AWS WAF didn't recognize a parameter in the
8728//   request. For example:
8729//
8730//      * You specified an invalid parameter name.
8731//
8732//      * You specified an invalid value.
8733//
8734//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
8735//      using an action other than INSERT or DELETE.
8736//
8737//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8738//      BLOCK, or COUNT.
8739//
8740//      * You tried to create a RateBasedRule with a RateKey value other than
8741//      IP.
8742//
8743//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8744//      BLOCK, or COUNT.
8745//
8746//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8747//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8748//
8749//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8750//      for Data.
8751//
8752//      * Your request references an ARN that is malformed, or corresponds to
8753//      a resource with which a web ACL cannot be associated.
8754//
8755//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
8756//   The operation failed because you tried to add an object to or delete an object
8757//   from another object that doesn't exist. For example:
8758//
8759//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8760//      exist.
8761//
8762//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8763//      that doesn't exist.
8764//
8765//      * You tried to add an IP address to or delete an IP address from an IPSet
8766//      that doesn't exist.
8767//
8768//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8769//      a ByteMatchSet that doesn't exist.
8770//
8771//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
8772//   The operation failed because the referenced object doesn't exist.
8773//
8774//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
8775//   The operation failed because you tried to delete an object that is still
8776//   in use. For example:
8777//
8778//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
8779//
8780//      * You tried to delete a Rule that is still referenced by a WebACL.
8781//
8782//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
8783//   The operation exceeds a resource limit, for example, the maximum number of
8784//   WebACL objects that you can create for an AWS account. For more information,
8785//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8786//   in the AWS WAF Developer Guide.
8787//
8788// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRule
8789func (c *WAFRegional) UpdateRule(input *waf.UpdateRuleInput) (*waf.UpdateRuleOutput, error) {
8790	req, out := c.UpdateRuleRequest(input)
8791	return out, req.Send()
8792}
8793
8794// UpdateRuleWithContext is the same as UpdateRule with the addition of
8795// the ability to pass a context and additional request options.
8796//
8797// See UpdateRule for details on how to use this API operation.
8798//
8799// The context must be non-nil and will be used for request cancellation. If
8800// the context is nil a panic will occur. In the future the SDK may create
8801// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8802// for more information on using Contexts.
8803func (c *WAFRegional) UpdateRuleWithContext(ctx aws.Context, input *waf.UpdateRuleInput, opts ...request.Option) (*waf.UpdateRuleOutput, error) {
8804	req, out := c.UpdateRuleRequest(input)
8805	req.SetContext(ctx)
8806	req.ApplyOptions(opts...)
8807	return out, req.Send()
8808}
8809
8810const opUpdateRuleGroup = "UpdateRuleGroup"
8811
8812// UpdateRuleGroupRequest generates a "aws/request.Request" representing the
8813// client's request for the UpdateRuleGroup operation. The "output" return
8814// value will be populated with the request's response once the request completes
8815// successfully.
8816//
8817// Use "Send" method on the returned Request to send the API call to the service.
8818// the "output" return value is not valid until after Send returns without error.
8819//
8820// See UpdateRuleGroup for more information on using the UpdateRuleGroup
8821// API call, and error handling.
8822//
8823// This method is useful when you want to inject custom logic or configuration
8824// into the SDK's request lifecycle. Such as custom headers, or retry logic.
8825//
8826//
8827//    // Example sending a request using the UpdateRuleGroupRequest method.
8828//    req, resp := client.UpdateRuleGroupRequest(params)
8829//
8830//    err := req.Send()
8831//    if err == nil { // resp is now filled
8832//        fmt.Println(resp)
8833//    }
8834//
8835// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRuleGroup
8836func (c *WAFRegional) UpdateRuleGroupRequest(input *waf.UpdateRuleGroupInput) (req *request.Request, output *waf.UpdateRuleGroupOutput) {
8837	op := &request.Operation{
8838		Name:       opUpdateRuleGroup,
8839		HTTPMethod: "POST",
8840		HTTPPath:   "/",
8841	}
8842
8843	if input == nil {
8844		input = &waf.UpdateRuleGroupInput{}
8845	}
8846
8847	output = &waf.UpdateRuleGroupOutput{}
8848	req = c.newRequest(op, input, output)
8849	return
8850}
8851
8852// UpdateRuleGroup API operation for AWS WAF Regional.
8853//
8854// Inserts or deletes ActivatedRule objects in a RuleGroup.
8855//
8856// You can only insert REGULAR rules into a rule group.
8857//
8858// You can have a maximum of ten rules per rule group.
8859//
8860// To create and configure a RuleGroup, perform the following steps:
8861//
8862// Create and update the Rules that you want to include in the RuleGroup. See
8863// CreateRule.
8864//
8865// Use GetChangeToken to get the change token that you provide in the ChangeToken
8866// parameter of an UpdateRuleGroup request.
8867//
8868// Submit an UpdateRuleGroup request to add Rules to the RuleGroup.
8869//
8870// Create and update a WebACL that contains the RuleGroup. See CreateWebACL.
8871//
8872// If you want to replace one Rule with another, you delete the existing one
8873// and add the new one.
8874//
8875// For more information about how to use the AWS WAF API to allow or block HTTP
8876// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
8877//
8878// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
8879// with awserr.Error's Code and Message methods to get detailed information about
8880// the error.
8881//
8882// See the AWS API reference guide for AWS WAF Regional's
8883// API operation UpdateRuleGroup for usage and error information.
8884//
8885// Returned Error Codes:
8886//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
8887//   The operation failed because you tried to create, update, or delete an object
8888//   by using a change token that has already been used.
8889//
8890//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
8891//   The operation failed because of a system problem, even though the request
8892//   was valid. Retry your request.
8893//
8894//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
8895//   The operation failed because you tried to add an object to or delete an object
8896//   from another object that doesn't exist. For example:
8897//
8898//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
8899//      exist.
8900//
8901//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
8902//      that doesn't exist.
8903//
8904//      * You tried to add an IP address to or delete an IP address from an IPSet
8905//      that doesn't exist.
8906//
8907//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
8908//      a ByteMatchSet that doesn't exist.
8909//
8910//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
8911//   The operation failed because the referenced object doesn't exist.
8912//
8913//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
8914//   The operation failed because there was nothing to do. For example:
8915//
8916//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
8917//      specified WebACL.
8918//
8919//      * You tried to remove an IP address from an IPSet, but the IP address
8920//      isn't in the specified IPSet.
8921//
8922//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
8923//      isn't in the specified WebACL.
8924//
8925//      * You tried to add a Rule to a WebACL, but the Rule already exists in
8926//      the specified WebACL.
8927//
8928//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
8929//      already exists in the specified WebACL.
8930//
8931//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
8932//   The operation exceeds a resource limit, for example, the maximum number of
8933//   WebACL objects that you can create for an AWS account. For more information,
8934//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
8935//   in the AWS WAF Developer Guide.
8936//
8937//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
8938//   The operation failed because AWS WAF didn't recognize a parameter in the
8939//   request. For example:
8940//
8941//      * You specified an invalid parameter name.
8942//
8943//      * You specified an invalid value.
8944//
8945//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
8946//      using an action other than INSERT or DELETE.
8947//
8948//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
8949//      BLOCK, or COUNT.
8950//
8951//      * You tried to create a RateBasedRule with a RateKey value other than
8952//      IP.
8953//
8954//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
8955//      BLOCK, or COUNT.
8956//
8957//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
8958//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
8959//
8960//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
8961//      for Data.
8962//
8963//      * Your request references an ARN that is malformed, or corresponds to
8964//      a resource with which a web ACL cannot be associated.
8965//
8966// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateRuleGroup
8967func (c *WAFRegional) UpdateRuleGroup(input *waf.UpdateRuleGroupInput) (*waf.UpdateRuleGroupOutput, error) {
8968	req, out := c.UpdateRuleGroupRequest(input)
8969	return out, req.Send()
8970}
8971
8972// UpdateRuleGroupWithContext is the same as UpdateRuleGroup with the addition of
8973// the ability to pass a context and additional request options.
8974//
8975// See UpdateRuleGroup for details on how to use this API operation.
8976//
8977// The context must be non-nil and will be used for request cancellation. If
8978// the context is nil a panic will occur. In the future the SDK may create
8979// sub-contexts for http.Requests. See https://golang.org/pkg/context/
8980// for more information on using Contexts.
8981func (c *WAFRegional) UpdateRuleGroupWithContext(ctx aws.Context, input *waf.UpdateRuleGroupInput, opts ...request.Option) (*waf.UpdateRuleGroupOutput, error) {
8982	req, out := c.UpdateRuleGroupRequest(input)
8983	req.SetContext(ctx)
8984	req.ApplyOptions(opts...)
8985	return out, req.Send()
8986}
8987
8988const opUpdateSizeConstraintSet = "UpdateSizeConstraintSet"
8989
8990// UpdateSizeConstraintSetRequest generates a "aws/request.Request" representing the
8991// client's request for the UpdateSizeConstraintSet operation. The "output" return
8992// value will be populated with the request's response once the request completes
8993// successfully.
8994//
8995// Use "Send" method on the returned Request to send the API call to the service.
8996// the "output" return value is not valid until after Send returns without error.
8997//
8998// See UpdateSizeConstraintSet for more information on using the UpdateSizeConstraintSet
8999// API call, and error handling.
9000//
9001// This method is useful when you want to inject custom logic or configuration
9002// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9003//
9004//
9005//    // Example sending a request using the UpdateSizeConstraintSetRequest method.
9006//    req, resp := client.UpdateSizeConstraintSetRequest(params)
9007//
9008//    err := req.Send()
9009//    if err == nil { // resp is now filled
9010//        fmt.Println(resp)
9011//    }
9012//
9013// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSizeConstraintSet
9014func (c *WAFRegional) UpdateSizeConstraintSetRequest(input *waf.UpdateSizeConstraintSetInput) (req *request.Request, output *waf.UpdateSizeConstraintSetOutput) {
9015	op := &request.Operation{
9016		Name:       opUpdateSizeConstraintSet,
9017		HTTPMethod: "POST",
9018		HTTPPath:   "/",
9019	}
9020
9021	if input == nil {
9022		input = &waf.UpdateSizeConstraintSetInput{}
9023	}
9024
9025	output = &waf.UpdateSizeConstraintSetOutput{}
9026	req = c.newRequest(op, input, output)
9027	return
9028}
9029
9030// UpdateSizeConstraintSet API operation for AWS WAF Regional.
9031//
9032// Inserts or deletes SizeConstraint objects (filters) in a SizeConstraintSet.
9033// For each SizeConstraint object, you specify the following values:
9034//
9035//    * Whether to insert or delete the object from the array. If you want to
9036//    change a SizeConstraintSetUpdate object, you delete the existing object
9037//    and add a new one.
9038//
9039//    * The part of a web request that you want AWS WAF to evaluate, such as
9040//    the length of a query string or the length of the User-Agent header.
9041//
9042//    * Whether to perform any transformations on the request, such as converting
9043//    it to lowercase, before checking its length. Note that transformations
9044//    of the request body are not supported because the AWS resource forwards
9045//    only the first 8192 bytes of your request to AWS WAF. You can only specify
9046//    a single type of TextTransformation.
9047//
9048//    * A ComparisonOperator used for evaluating the selected part of the request
9049//    against the specified Size, such as equals, greater than, less than, and
9050//    so on.
9051//
9052//    * The length, in bytes, that you want AWS WAF to watch for in selected
9053//    part of the request. The length is computed after applying the transformation.
9054//
9055// For example, you can add a SizeConstraintSetUpdate object that matches web
9056// requests in which the length of the User-Agent header is greater than 100
9057// bytes. You can then configure AWS WAF to block those requests.
9058//
9059// To create and configure a SizeConstraintSet, perform the following steps:
9060//
9061// Create a SizeConstraintSet. For more information, see CreateSizeConstraintSet.
9062//
9063// Use GetChangeToken to get the change token that you provide in the ChangeToken
9064// parameter of an UpdateSizeConstraintSet request.
9065//
9066// Submit an UpdateSizeConstraintSet request to specify the part of the request
9067// that you want AWS WAF to inspect (for example, the header or the URI) and
9068// the value that you want AWS WAF to watch for.
9069//
9070// For more information about how to use the AWS WAF API to allow or block HTTP
9071// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
9072//
9073// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9074// with awserr.Error's Code and Message methods to get detailed information about
9075// the error.
9076//
9077// See the AWS API reference guide for AWS WAF Regional's
9078// API operation UpdateSizeConstraintSet for usage and error information.
9079//
9080// Returned Error Codes:
9081//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
9082//   The operation failed because you tried to create, update, or delete an object
9083//   by using a change token that has already been used.
9084//
9085//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
9086//   The operation failed because of a system problem, even though the request
9087//   was valid. Retry your request.
9088//
9089//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
9090//   The operation failed because you tried to create, update, or delete an object
9091//   by using an invalid account identifier.
9092//
9093//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
9094//   The operation failed because there was nothing to do. For example:
9095//
9096//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9097//      specified WebACL.
9098//
9099//      * You tried to remove an IP address from an IPSet, but the IP address
9100//      isn't in the specified IPSet.
9101//
9102//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9103//      isn't in the specified WebACL.
9104//
9105//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9106//      the specified WebACL.
9107//
9108//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9109//      already exists in the specified WebACL.
9110//
9111//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
9112//   The operation failed because AWS WAF didn't recognize a parameter in the
9113//   request. For example:
9114//
9115//      * You specified an invalid parameter name.
9116//
9117//      * You specified an invalid value.
9118//
9119//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
9120//      using an action other than INSERT or DELETE.
9121//
9122//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
9123//      BLOCK, or COUNT.
9124//
9125//      * You tried to create a RateBasedRule with a RateKey value other than
9126//      IP.
9127//
9128//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
9129//      BLOCK, or COUNT.
9130//
9131//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
9132//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
9133//
9134//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
9135//      for Data.
9136//
9137//      * Your request references an ARN that is malformed, or corresponds to
9138//      a resource with which a web ACL cannot be associated.
9139//
9140//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
9141//   The operation failed because you tried to add an object to or delete an object
9142//   from another object that doesn't exist. For example:
9143//
9144//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9145//      exist.
9146//
9147//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9148//      that doesn't exist.
9149//
9150//      * You tried to add an IP address to or delete an IP address from an IPSet
9151//      that doesn't exist.
9152//
9153//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9154//      a ByteMatchSet that doesn't exist.
9155//
9156//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
9157//   The operation failed because the referenced object doesn't exist.
9158//
9159//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
9160//   The operation failed because you tried to delete an object that is still
9161//   in use. For example:
9162//
9163//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
9164//
9165//      * You tried to delete a Rule that is still referenced by a WebACL.
9166//
9167//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
9168//   The operation exceeds a resource limit, for example, the maximum number of
9169//   WebACL objects that you can create for an AWS account. For more information,
9170//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9171//   in the AWS WAF Developer Guide.
9172//
9173// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSizeConstraintSet
9174func (c *WAFRegional) UpdateSizeConstraintSet(input *waf.UpdateSizeConstraintSetInput) (*waf.UpdateSizeConstraintSetOutput, error) {
9175	req, out := c.UpdateSizeConstraintSetRequest(input)
9176	return out, req.Send()
9177}
9178
9179// UpdateSizeConstraintSetWithContext is the same as UpdateSizeConstraintSet with the addition of
9180// the ability to pass a context and additional request options.
9181//
9182// See UpdateSizeConstraintSet for details on how to use this API operation.
9183//
9184// The context must be non-nil and will be used for request cancellation. If
9185// the context is nil a panic will occur. In the future the SDK may create
9186// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9187// for more information on using Contexts.
9188func (c *WAFRegional) UpdateSizeConstraintSetWithContext(ctx aws.Context, input *waf.UpdateSizeConstraintSetInput, opts ...request.Option) (*waf.UpdateSizeConstraintSetOutput, error) {
9189	req, out := c.UpdateSizeConstraintSetRequest(input)
9190	req.SetContext(ctx)
9191	req.ApplyOptions(opts...)
9192	return out, req.Send()
9193}
9194
9195const opUpdateSqlInjectionMatchSet = "UpdateSqlInjectionMatchSet"
9196
9197// UpdateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
9198// client's request for the UpdateSqlInjectionMatchSet operation. The "output" return
9199// value will be populated with the request's response once the request completes
9200// successfully.
9201//
9202// Use "Send" method on the returned Request to send the API call to the service.
9203// the "output" return value is not valid until after Send returns without error.
9204//
9205// See UpdateSqlInjectionMatchSet for more information on using the UpdateSqlInjectionMatchSet
9206// API call, and error handling.
9207//
9208// This method is useful when you want to inject custom logic or configuration
9209// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9210//
9211//
9212//    // Example sending a request using the UpdateSqlInjectionMatchSetRequest method.
9213//    req, resp := client.UpdateSqlInjectionMatchSetRequest(params)
9214//
9215//    err := req.Send()
9216//    if err == nil { // resp is now filled
9217//        fmt.Println(resp)
9218//    }
9219//
9220// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSqlInjectionMatchSet
9221func (c *WAFRegional) UpdateSqlInjectionMatchSetRequest(input *waf.UpdateSqlInjectionMatchSetInput) (req *request.Request, output *waf.UpdateSqlInjectionMatchSetOutput) {
9222	op := &request.Operation{
9223		Name:       opUpdateSqlInjectionMatchSet,
9224		HTTPMethod: "POST",
9225		HTTPPath:   "/",
9226	}
9227
9228	if input == nil {
9229		input = &waf.UpdateSqlInjectionMatchSetInput{}
9230	}
9231
9232	output = &waf.UpdateSqlInjectionMatchSetOutput{}
9233	req = c.newRequest(op, input, output)
9234	return
9235}
9236
9237// UpdateSqlInjectionMatchSet API operation for AWS WAF Regional.
9238//
9239// Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet.
9240// For each SqlInjectionMatchTuple object, you specify the following values:
9241//
9242//    * Action: Whether to insert the object into or delete the object from
9243//    the array. To change a SqlInjectionMatchTuple, you delete the existing
9244//    object and add a new one.
9245//
9246//    * FieldToMatch: The part of web requests that you want AWS WAF to inspect
9247//    and, if you want AWS WAF to inspect a header or custom query parameter,
9248//    the name of the header or parameter.
9249//
9250//    * TextTransformation: Which text transformation, if any, to perform on
9251//    the web request before inspecting the request for snippets of malicious
9252//    SQL code. You can only specify a single type of TextTransformation.
9253//
9254// You use SqlInjectionMatchSet objects to specify which CloudFront requests
9255// that you want to allow, block, or count. For example, if you're receiving
9256// requests that contain snippets of SQL code in the query string and you want
9257// to block the requests, you can create a SqlInjectionMatchSet with the applicable
9258// settings, and then configure AWS WAF to block the requests.
9259//
9260// To create and configure a SqlInjectionMatchSet, perform the following steps:
9261//
9262// Submit a CreateSqlInjectionMatchSet request.
9263//
9264// Use GetChangeToken to get the change token that you provide in the ChangeToken
9265// parameter of an UpdateIPSet request.
9266//
9267// Submit an UpdateSqlInjectionMatchSet request to specify the parts of web
9268// requests that you want AWS WAF to inspect for snippets of SQL code.
9269//
9270// For more information about how to use the AWS WAF API to allow or block HTTP
9271// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
9272//
9273// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9274// with awserr.Error's Code and Message methods to get detailed information about
9275// the error.
9276//
9277// See the AWS API reference guide for AWS WAF Regional's
9278// API operation UpdateSqlInjectionMatchSet for usage and error information.
9279//
9280// Returned Error Codes:
9281//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
9282//   The operation failed because of a system problem, even though the request
9283//   was valid. Retry your request.
9284//
9285//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
9286//   The operation failed because you tried to create, update, or delete an object
9287//   by using an invalid account identifier.
9288//
9289//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
9290//   The operation failed because there was nothing to do. For example:
9291//
9292//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9293//      specified WebACL.
9294//
9295//      * You tried to remove an IP address from an IPSet, but the IP address
9296//      isn't in the specified IPSet.
9297//
9298//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9299//      isn't in the specified WebACL.
9300//
9301//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9302//      the specified WebACL.
9303//
9304//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9305//      already exists in the specified WebACL.
9306//
9307//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
9308//   The operation failed because AWS WAF didn't recognize a parameter in the
9309//   request. For example:
9310//
9311//      * You specified an invalid parameter name.
9312//
9313//      * You specified an invalid value.
9314//
9315//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
9316//      using an action other than INSERT or DELETE.
9317//
9318//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
9319//      BLOCK, or COUNT.
9320//
9321//      * You tried to create a RateBasedRule with a RateKey value other than
9322//      IP.
9323//
9324//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
9325//      BLOCK, or COUNT.
9326//
9327//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
9328//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
9329//
9330//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
9331//      for Data.
9332//
9333//      * Your request references an ARN that is malformed, or corresponds to
9334//      a resource with which a web ACL cannot be associated.
9335//
9336//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
9337//   The operation failed because you tried to add an object to or delete an object
9338//   from another object that doesn't exist. For example:
9339//
9340//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9341//      exist.
9342//
9343//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9344//      that doesn't exist.
9345//
9346//      * You tried to add an IP address to or delete an IP address from an IPSet
9347//      that doesn't exist.
9348//
9349//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9350//      a ByteMatchSet that doesn't exist.
9351//
9352//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
9353//   The operation failed because the referenced object doesn't exist.
9354//
9355//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
9356//   The operation failed because you tried to create, update, or delete an object
9357//   by using a change token that has already been used.
9358//
9359//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
9360//   The operation exceeds a resource limit, for example, the maximum number of
9361//   WebACL objects that you can create for an AWS account. For more information,
9362//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9363//   in the AWS WAF Developer Guide.
9364//
9365// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateSqlInjectionMatchSet
9366func (c *WAFRegional) UpdateSqlInjectionMatchSet(input *waf.UpdateSqlInjectionMatchSetInput) (*waf.UpdateSqlInjectionMatchSetOutput, error) {
9367	req, out := c.UpdateSqlInjectionMatchSetRequest(input)
9368	return out, req.Send()
9369}
9370
9371// UpdateSqlInjectionMatchSetWithContext is the same as UpdateSqlInjectionMatchSet with the addition of
9372// the ability to pass a context and additional request options.
9373//
9374// See UpdateSqlInjectionMatchSet for details on how to use this API operation.
9375//
9376// The context must be non-nil and will be used for request cancellation. If
9377// the context is nil a panic will occur. In the future the SDK may create
9378// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9379// for more information on using Contexts.
9380func (c *WAFRegional) UpdateSqlInjectionMatchSetWithContext(ctx aws.Context, input *waf.UpdateSqlInjectionMatchSetInput, opts ...request.Option) (*waf.UpdateSqlInjectionMatchSetOutput, error) {
9381	req, out := c.UpdateSqlInjectionMatchSetRequest(input)
9382	req.SetContext(ctx)
9383	req.ApplyOptions(opts...)
9384	return out, req.Send()
9385}
9386
9387const opUpdateWebACL = "UpdateWebACL"
9388
9389// UpdateWebACLRequest generates a "aws/request.Request" representing the
9390// client's request for the UpdateWebACL operation. The "output" return
9391// value will be populated with the request's response once the request completes
9392// successfully.
9393//
9394// Use "Send" method on the returned Request to send the API call to the service.
9395// the "output" return value is not valid until after Send returns without error.
9396//
9397// See UpdateWebACL for more information on using the UpdateWebACL
9398// API call, and error handling.
9399//
9400// This method is useful when you want to inject custom logic or configuration
9401// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9402//
9403//
9404//    // Example sending a request using the UpdateWebACLRequest method.
9405//    req, resp := client.UpdateWebACLRequest(params)
9406//
9407//    err := req.Send()
9408//    if err == nil { // resp is now filled
9409//        fmt.Println(resp)
9410//    }
9411//
9412// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateWebACL
9413func (c *WAFRegional) UpdateWebACLRequest(input *waf.UpdateWebACLInput) (req *request.Request, output *waf.UpdateWebACLOutput) {
9414	op := &request.Operation{
9415		Name:       opUpdateWebACL,
9416		HTTPMethod: "POST",
9417		HTTPPath:   "/",
9418	}
9419
9420	if input == nil {
9421		input = &waf.UpdateWebACLInput{}
9422	}
9423
9424	output = &waf.UpdateWebACLOutput{}
9425	req = c.newRequest(op, input, output)
9426	return
9427}
9428
9429// UpdateWebACL API operation for AWS WAF Regional.
9430//
9431// Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies
9432// web requests that you want to allow, block, or count. When you update a WebACL,
9433// you specify the following values:
9434//
9435//    * A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs
9436//    the default action if a request doesn't match the criteria in any of the
9437//    Rules in a WebACL.
9438//
9439//    * The Rules that you want to add or delete. If you want to replace one
9440//    Rule with another, you delete the existing Rule and add the new one.
9441//
9442//    * For each Rule, whether you want AWS WAF to allow requests, block requests,
9443//    or count requests that match the conditions in the Rule.
9444//
9445//    * The order in which you want AWS WAF to evaluate the Rules in a WebACL.
9446//    If you add more than one Rule to a WebACL, AWS WAF evaluates each request
9447//    against the Rules in order based on the value of Priority. (The Rule that
9448//    has the lowest value for Priority is evaluated first.) When a web request
9449//    matches all the predicates (such as ByteMatchSets and IPSets) in a Rule,
9450//    AWS WAF immediately takes the corresponding action, allow or block, and
9451//    doesn't evaluate the request against the remaining Rules in the WebACL,
9452//    if any.
9453//
9454// To create and configure a WebACL, perform the following steps:
9455//
9456// Create and update the predicates that you want to include in Rules. For more
9457// information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet,
9458// CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.
9459//
9460// Create and update the Rules that you want to include in the WebACL. For more
9461// information, see CreateRule and UpdateRule.
9462//
9463// Create a WebACL. See CreateWebACL.
9464//
9465// Use GetChangeToken to get the change token that you provide in the ChangeToken
9466// parameter of an UpdateWebACL request.
9467//
9468// Submit an UpdateWebACL request to specify the Rules that you want to include
9469// in the WebACL, to specify the default action, and to associate the WebACL
9470// with a CloudFront distribution.
9471//
9472// The ActivatedRule can be a rule group. If you specify a rule group as your
9473// ActivatedRule, you can exclude specific rules from that rule group.
9474//
9475// If you already have a rule group associated with a web ACL and want to submit
9476// an UpdateWebACL request to exclude certain rules from that rule group, you
9477// must first remove the rule group from the web ACL, the re-insert it again,
9478// specifying the excluded rules. For details, see ActivatedRule$ExcludedRules.
9479//
9480// Be aware that if you try to add a RATE_BASED rule to a web ACL without setting
9481// the rule type when first creating the rule, the UpdateWebACL request will
9482// fail because the request tries to add a REGULAR rule (the default rule type)
9483// with the specified ID, which does not exist.
9484//
9485// For more information about how to use the AWS WAF API to allow or block HTTP
9486// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
9487//
9488// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9489// with awserr.Error's Code and Message methods to get detailed information about
9490// the error.
9491//
9492// See the AWS API reference guide for AWS WAF Regional's
9493// API operation UpdateWebACL for usage and error information.
9494//
9495// Returned Error Codes:
9496//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
9497//   The operation failed because you tried to create, update, or delete an object
9498//   by using a change token that has already been used.
9499//
9500//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
9501//   The operation failed because of a system problem, even though the request
9502//   was valid. Retry your request.
9503//
9504//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
9505//   The operation failed because you tried to create, update, or delete an object
9506//   by using an invalid account identifier.
9507//
9508//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
9509//   The operation failed because there was nothing to do. For example:
9510//
9511//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9512//      specified WebACL.
9513//
9514//      * You tried to remove an IP address from an IPSet, but the IP address
9515//      isn't in the specified IPSet.
9516//
9517//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9518//      isn't in the specified WebACL.
9519//
9520//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9521//      the specified WebACL.
9522//
9523//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9524//      already exists in the specified WebACL.
9525//
9526//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
9527//   The operation failed because AWS WAF didn't recognize a parameter in the
9528//   request. For example:
9529//
9530//      * You specified an invalid parameter name.
9531//
9532//      * You specified an invalid value.
9533//
9534//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
9535//      using an action other than INSERT or DELETE.
9536//
9537//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
9538//      BLOCK, or COUNT.
9539//
9540//      * You tried to create a RateBasedRule with a RateKey value other than
9541//      IP.
9542//
9543//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
9544//      BLOCK, or COUNT.
9545//
9546//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
9547//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
9548//
9549//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
9550//      for Data.
9551//
9552//      * Your request references an ARN that is malformed, or corresponds to
9553//      a resource with which a web ACL cannot be associated.
9554//
9555//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
9556//   The operation failed because you tried to add an object to or delete an object
9557//   from another object that doesn't exist. For example:
9558//
9559//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9560//      exist.
9561//
9562//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9563//      that doesn't exist.
9564//
9565//      * You tried to add an IP address to or delete an IP address from an IPSet
9566//      that doesn't exist.
9567//
9568//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9569//      a ByteMatchSet that doesn't exist.
9570//
9571//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
9572//   The operation failed because the referenced object doesn't exist.
9573//
9574//   * ErrCodeWAFReferencedItemException "WAFReferencedItemException"
9575//   The operation failed because you tried to delete an object that is still
9576//   in use. For example:
9577//
9578//      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
9579//
9580//      * You tried to delete a Rule that is still referenced by a WebACL.
9581//
9582//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
9583//   The operation exceeds a resource limit, for example, the maximum number of
9584//   WebACL objects that you can create for an AWS account. For more information,
9585//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9586//   in the AWS WAF Developer Guide.
9587//
9588//   * ErrCodeWAFSubscriptionNotFoundException "WAFSubscriptionNotFoundException"
9589//   The specified subscription does not exist.
9590//
9591// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateWebACL
9592func (c *WAFRegional) UpdateWebACL(input *waf.UpdateWebACLInput) (*waf.UpdateWebACLOutput, error) {
9593	req, out := c.UpdateWebACLRequest(input)
9594	return out, req.Send()
9595}
9596
9597// UpdateWebACLWithContext is the same as UpdateWebACL with the addition of
9598// the ability to pass a context and additional request options.
9599//
9600// See UpdateWebACL for details on how to use this API operation.
9601//
9602// The context must be non-nil and will be used for request cancellation. If
9603// the context is nil a panic will occur. In the future the SDK may create
9604// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9605// for more information on using Contexts.
9606func (c *WAFRegional) UpdateWebACLWithContext(ctx aws.Context, input *waf.UpdateWebACLInput, opts ...request.Option) (*waf.UpdateWebACLOutput, error) {
9607	req, out := c.UpdateWebACLRequest(input)
9608	req.SetContext(ctx)
9609	req.ApplyOptions(opts...)
9610	return out, req.Send()
9611}
9612
9613const opUpdateXssMatchSet = "UpdateXssMatchSet"
9614
9615// UpdateXssMatchSetRequest generates a "aws/request.Request" representing the
9616// client's request for the UpdateXssMatchSet operation. The "output" return
9617// value will be populated with the request's response once the request completes
9618// successfully.
9619//
9620// Use "Send" method on the returned Request to send the API call to the service.
9621// the "output" return value is not valid until after Send returns without error.
9622//
9623// See UpdateXssMatchSet for more information on using the UpdateXssMatchSet
9624// API call, and error handling.
9625//
9626// This method is useful when you want to inject custom logic or configuration
9627// into the SDK's request lifecycle. Such as custom headers, or retry logic.
9628//
9629//
9630//    // Example sending a request using the UpdateXssMatchSetRequest method.
9631//    req, resp := client.UpdateXssMatchSetRequest(params)
9632//
9633//    err := req.Send()
9634//    if err == nil { // resp is now filled
9635//        fmt.Println(resp)
9636//    }
9637//
9638// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateXssMatchSet
9639func (c *WAFRegional) UpdateXssMatchSetRequest(input *waf.UpdateXssMatchSetInput) (req *request.Request, output *waf.UpdateXssMatchSetOutput) {
9640	op := &request.Operation{
9641		Name:       opUpdateXssMatchSet,
9642		HTTPMethod: "POST",
9643		HTTPPath:   "/",
9644	}
9645
9646	if input == nil {
9647		input = &waf.UpdateXssMatchSetInput{}
9648	}
9649
9650	output = &waf.UpdateXssMatchSetOutput{}
9651	req = c.newRequest(op, input, output)
9652	return
9653}
9654
9655// UpdateXssMatchSet API operation for AWS WAF Regional.
9656//
9657// Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet. For
9658// each XssMatchTuple object, you specify the following values:
9659//
9660//    * Action: Whether to insert the object into or delete the object from
9661//    the array. To change an XssMatchTuple, you delete the existing object
9662//    and add a new one.
9663//
9664//    * FieldToMatch: The part of web requests that you want AWS WAF to inspect
9665//    and, if you want AWS WAF to inspect a header or custom query parameter,
9666//    the name of the header or parameter.
9667//
9668//    * TextTransformation: Which text transformation, if any, to perform on
9669//    the web request before inspecting the request for cross-site scripting
9670//    attacks. You can only specify a single type of TextTransformation.
9671//
9672// You use XssMatchSet objects to specify which CloudFront requests that you
9673// want to allow, block, or count. For example, if you're receiving requests
9674// that contain cross-site scripting attacks in the request body and you want
9675// to block the requests, you can create an XssMatchSet with the applicable
9676// settings, and then configure AWS WAF to block the requests.
9677//
9678// To create and configure an XssMatchSet, perform the following steps:
9679//
9680// Submit a CreateXssMatchSet request.
9681//
9682// Use GetChangeToken to get the change token that you provide in the ChangeToken
9683// parameter of an UpdateIPSet request.
9684//
9685// Submit an UpdateXssMatchSet request to specify the parts of web requests
9686// that you want AWS WAF to inspect for cross-site scripting attacks.
9687//
9688// For more information about how to use the AWS WAF API to allow or block HTTP
9689// requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
9690//
9691// Returns awserr.Error for service API and SDK errors. Use runtime type assertions
9692// with awserr.Error's Code and Message methods to get detailed information about
9693// the error.
9694//
9695// See the AWS API reference guide for AWS WAF Regional's
9696// API operation UpdateXssMatchSet for usage and error information.
9697//
9698// Returned Error Codes:
9699//   * ErrCodeWAFInternalErrorException "WAFInternalErrorException"
9700//   The operation failed because of a system problem, even though the request
9701//   was valid. Retry your request.
9702//
9703//   * ErrCodeWAFInvalidAccountException "WAFInvalidAccountException"
9704//   The operation failed because you tried to create, update, or delete an object
9705//   by using an invalid account identifier.
9706//
9707//   * ErrCodeWAFInvalidOperationException "WAFInvalidOperationException"
9708//   The operation failed because there was nothing to do. For example:
9709//
9710//      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
9711//      specified WebACL.
9712//
9713//      * You tried to remove an IP address from an IPSet, but the IP address
9714//      isn't in the specified IPSet.
9715//
9716//      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
9717//      isn't in the specified WebACL.
9718//
9719//      * You tried to add a Rule to a WebACL, but the Rule already exists in
9720//      the specified WebACL.
9721//
9722//      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
9723//      already exists in the specified WebACL.
9724//
9725//   * ErrCodeWAFInvalidParameterException "WAFInvalidParameterException"
9726//   The operation failed because AWS WAF didn't recognize a parameter in the
9727//   request. For example:
9728//
9729//      * You specified an invalid parameter name.
9730//
9731//      * You specified an invalid value.
9732//
9733//      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
9734//      using an action other than INSERT or DELETE.
9735//
9736//      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
9737//      BLOCK, or COUNT.
9738//
9739//      * You tried to create a RateBasedRule with a RateKey value other than
9740//      IP.
9741//
9742//      * You tried to update a WebACL with a WafAction Type other than ALLOW,
9743//      BLOCK, or COUNT.
9744//
9745//      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
9746//      HEADER, METHOD, QUERY_STRING, URI, or BODY.
9747//
9748//      * You tried to update a ByteMatchSet with a Field of HEADER but no value
9749//      for Data.
9750//
9751//      * Your request references an ARN that is malformed, or corresponds to
9752//      a resource with which a web ACL cannot be associated.
9753//
9754//   * ErrCodeWAFNonexistentContainerException "WAFNonexistentContainerException"
9755//   The operation failed because you tried to add an object to or delete an object
9756//   from another object that doesn't exist. For example:
9757//
9758//      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
9759//      exist.
9760//
9761//      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
9762//      that doesn't exist.
9763//
9764//      * You tried to add an IP address to or delete an IP address from an IPSet
9765//      that doesn't exist.
9766//
9767//      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
9768//      a ByteMatchSet that doesn't exist.
9769//
9770//   * ErrCodeWAFNonexistentItemException "WAFNonexistentItemException"
9771//   The operation failed because the referenced object doesn't exist.
9772//
9773//   * ErrCodeWAFStaleDataException "WAFStaleDataException"
9774//   The operation failed because you tried to create, update, or delete an object
9775//   by using a change token that has already been used.
9776//
9777//   * ErrCodeWAFLimitsExceededException "WAFLimitsExceededException"
9778//   The operation exceeds a resource limit, for example, the maximum number of
9779//   WebACL objects that you can create for an AWS account. For more information,
9780//   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
9781//   in the AWS WAF Developer Guide.
9782//
9783// See also, https://docs.aws.amazon.com/goto/WebAPI/waf-regional-2016-11-28/UpdateXssMatchSet
9784func (c *WAFRegional) UpdateXssMatchSet(input *waf.UpdateXssMatchSetInput) (*waf.UpdateXssMatchSetOutput, error) {
9785	req, out := c.UpdateXssMatchSetRequest(input)
9786	return out, req.Send()
9787}
9788
9789// UpdateXssMatchSetWithContext is the same as UpdateXssMatchSet with the addition of
9790// the ability to pass a context and additional request options.
9791//
9792// See UpdateXssMatchSet for details on how to use this API operation.
9793//
9794// The context must be non-nil and will be used for request cancellation. If
9795// the context is nil a panic will occur. In the future the SDK may create
9796// sub-contexts for http.Requests. See https://golang.org/pkg/context/
9797// for more information on using Contexts.
9798func (c *WAFRegional) UpdateXssMatchSetWithContext(ctx aws.Context, input *waf.UpdateXssMatchSetInput, opts ...request.Option) (*waf.UpdateXssMatchSetOutput, error) {
9799	req, out := c.UpdateXssMatchSetRequest(input)
9800	req.SetContext(ctx)
9801	req.ApplyOptions(opts...)
9802	return out, req.Send()
9803}
9804
9805type AssociateWebACLInput struct {
9806	_ struct{} `type:"structure"`
9807
9808	// The ARN (Amazon Resource Name) of the resource to be protected, either an
9809	// application load balancer or Amazon API Gateway stage.
9810	//
9811	// The ARN should be in one of the following formats:
9812	//
9813	//    * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
9814	//
9815	//    * For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
9816	//
9817	// ResourceArn is a required field
9818	ResourceArn *string `min:"1" type:"string" required:"true"`
9819
9820	// A unique identifier (ID) for the web ACL.
9821	//
9822	// WebACLId is a required field
9823	WebACLId *string `min:"1" type:"string" required:"true"`
9824}
9825
9826// String returns the string representation
9827func (s AssociateWebACLInput) String() string {
9828	return awsutil.Prettify(s)
9829}
9830
9831// GoString returns the string representation
9832func (s AssociateWebACLInput) GoString() string {
9833	return s.String()
9834}
9835
9836// Validate inspects the fields of the type to determine if they are valid.
9837func (s *AssociateWebACLInput) Validate() error {
9838	invalidParams := request.ErrInvalidParams{Context: "AssociateWebACLInput"}
9839	if s.ResourceArn == nil {
9840		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9841	}
9842	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9843		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9844	}
9845	if s.WebACLId == nil {
9846		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
9847	}
9848	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
9849		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
9850	}
9851
9852	if invalidParams.Len() > 0 {
9853		return invalidParams
9854	}
9855	return nil
9856}
9857
9858// SetResourceArn sets the ResourceArn field's value.
9859func (s *AssociateWebACLInput) SetResourceArn(v string) *AssociateWebACLInput {
9860	s.ResourceArn = &v
9861	return s
9862}
9863
9864// SetWebACLId sets the WebACLId field's value.
9865func (s *AssociateWebACLInput) SetWebACLId(v string) *AssociateWebACLInput {
9866	s.WebACLId = &v
9867	return s
9868}
9869
9870type AssociateWebACLOutput struct {
9871	_ struct{} `type:"structure"`
9872}
9873
9874// String returns the string representation
9875func (s AssociateWebACLOutput) String() string {
9876	return awsutil.Prettify(s)
9877}
9878
9879// GoString returns the string representation
9880func (s AssociateWebACLOutput) GoString() string {
9881	return s.String()
9882}
9883
9884type DisassociateWebACLInput struct {
9885	_ struct{} `type:"structure"`
9886
9887	// The ARN (Amazon Resource Name) of the resource from which the web ACL is
9888	// being removed, either an application load balancer or Amazon API Gateway
9889	// stage.
9890	//
9891	// The ARN should be in one of the following formats:
9892	//
9893	//    * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
9894	//
9895	//    * For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
9896	//
9897	// ResourceArn is a required field
9898	ResourceArn *string `min:"1" type:"string" required:"true"`
9899}
9900
9901// String returns the string representation
9902func (s DisassociateWebACLInput) String() string {
9903	return awsutil.Prettify(s)
9904}
9905
9906// GoString returns the string representation
9907func (s DisassociateWebACLInput) GoString() string {
9908	return s.String()
9909}
9910
9911// Validate inspects the fields of the type to determine if they are valid.
9912func (s *DisassociateWebACLInput) Validate() error {
9913	invalidParams := request.ErrInvalidParams{Context: "DisassociateWebACLInput"}
9914	if s.ResourceArn == nil {
9915		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9916	}
9917	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9918		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9919	}
9920
9921	if invalidParams.Len() > 0 {
9922		return invalidParams
9923	}
9924	return nil
9925}
9926
9927// SetResourceArn sets the ResourceArn field's value.
9928func (s *DisassociateWebACLInput) SetResourceArn(v string) *DisassociateWebACLInput {
9929	s.ResourceArn = &v
9930	return s
9931}
9932
9933type DisassociateWebACLOutput struct {
9934	_ struct{} `type:"structure"`
9935}
9936
9937// String returns the string representation
9938func (s DisassociateWebACLOutput) String() string {
9939	return awsutil.Prettify(s)
9940}
9941
9942// GoString returns the string representation
9943func (s DisassociateWebACLOutput) GoString() string {
9944	return s.String()
9945}
9946
9947type GetWebACLForResourceInput struct {
9948	_ struct{} `type:"structure"`
9949
9950	// The ARN (Amazon Resource Name) of the resource for which to get the web ACL,
9951	// either an application load balancer or Amazon API Gateway stage.
9952	//
9953	// The ARN should be in one of the following formats:
9954	//
9955	//    * For an Application Load Balancer: arn:aws:elasticloadbalancing:region:account-id:loadbalancer/app/load-balancer-name/load-balancer-id
9956	//
9957	//    * For an Amazon API Gateway stage: arn:aws:apigateway:region::/restapis/api-id/stages/stage-name
9958	//
9959	// ResourceArn is a required field
9960	ResourceArn *string `min:"1" type:"string" required:"true"`
9961}
9962
9963// String returns the string representation
9964func (s GetWebACLForResourceInput) String() string {
9965	return awsutil.Prettify(s)
9966}
9967
9968// GoString returns the string representation
9969func (s GetWebACLForResourceInput) GoString() string {
9970	return s.String()
9971}
9972
9973// Validate inspects the fields of the type to determine if they are valid.
9974func (s *GetWebACLForResourceInput) Validate() error {
9975	invalidParams := request.ErrInvalidParams{Context: "GetWebACLForResourceInput"}
9976	if s.ResourceArn == nil {
9977		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
9978	}
9979	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
9980		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
9981	}
9982
9983	if invalidParams.Len() > 0 {
9984		return invalidParams
9985	}
9986	return nil
9987}
9988
9989// SetResourceArn sets the ResourceArn field's value.
9990func (s *GetWebACLForResourceInput) SetResourceArn(v string) *GetWebACLForResourceInput {
9991	s.ResourceArn = &v
9992	return s
9993}
9994
9995type GetWebACLForResourceOutput struct {
9996	_ struct{} `type:"structure"`
9997
9998	// Information about the web ACL that you specified in the GetWebACLForResource
9999	// request. If there is no associated resource, a null WebACLSummary is returned.
10000	WebACLSummary *waf.WebACLSummary `type:"structure"`
10001}
10002
10003// String returns the string representation
10004func (s GetWebACLForResourceOutput) String() string {
10005	return awsutil.Prettify(s)
10006}
10007
10008// GoString returns the string representation
10009func (s GetWebACLForResourceOutput) GoString() string {
10010	return s.String()
10011}
10012
10013// SetWebACLSummary sets the WebACLSummary field's value.
10014func (s *GetWebACLForResourceOutput) SetWebACLSummary(v *waf.WebACLSummary) *GetWebACLForResourceOutput {
10015	s.WebACLSummary = v
10016	return s
10017}
10018
10019type ListResourcesForWebACLInput struct {
10020	_ struct{} `type:"structure"`
10021
10022	// The type of resource to list, either an application load balancer or Amazon
10023	// API Gateway.
10024	ResourceType *string `type:"string" enum:"ResourceType"`
10025
10026	// The unique identifier (ID) of the web ACL for which to list the associated
10027	// resources.
10028	//
10029	// WebACLId is a required field
10030	WebACLId *string `min:"1" type:"string" required:"true"`
10031}
10032
10033// String returns the string representation
10034func (s ListResourcesForWebACLInput) String() string {
10035	return awsutil.Prettify(s)
10036}
10037
10038// GoString returns the string representation
10039func (s ListResourcesForWebACLInput) GoString() string {
10040	return s.String()
10041}
10042
10043// Validate inspects the fields of the type to determine if they are valid.
10044func (s *ListResourcesForWebACLInput) Validate() error {
10045	invalidParams := request.ErrInvalidParams{Context: "ListResourcesForWebACLInput"}
10046	if s.WebACLId == nil {
10047		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
10048	}
10049	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
10050		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
10051	}
10052
10053	if invalidParams.Len() > 0 {
10054		return invalidParams
10055	}
10056	return nil
10057}
10058
10059// SetResourceType sets the ResourceType field's value.
10060func (s *ListResourcesForWebACLInput) SetResourceType(v string) *ListResourcesForWebACLInput {
10061	s.ResourceType = &v
10062	return s
10063}
10064
10065// SetWebACLId sets the WebACLId field's value.
10066func (s *ListResourcesForWebACLInput) SetWebACLId(v string) *ListResourcesForWebACLInput {
10067	s.WebACLId = &v
10068	return s
10069}
10070
10071type ListResourcesForWebACLOutput struct {
10072	_ struct{} `type:"structure"`
10073
10074	// An array of ARNs (Amazon Resource Names) of the resources associated with
10075	// the specified web ACL. An array with zero elements is returned if there are
10076	// no resources associated with the web ACL.
10077	ResourceArns []*string `type:"list"`
10078}
10079
10080// String returns the string representation
10081func (s ListResourcesForWebACLOutput) String() string {
10082	return awsutil.Prettify(s)
10083}
10084
10085// GoString returns the string representation
10086func (s ListResourcesForWebACLOutput) GoString() string {
10087	return s.String()
10088}
10089
10090// SetResourceArns sets the ResourceArns field's value.
10091func (s *ListResourcesForWebACLOutput) SetResourceArns(v []*string) *ListResourcesForWebACLOutput {
10092	s.ResourceArns = v
10093	return s
10094}
10095
10096const (
10097	// ChangeActionInsert is a ChangeAction enum value
10098	ChangeActionInsert = "INSERT"
10099
10100	// ChangeActionDelete is a ChangeAction enum value
10101	ChangeActionDelete = "DELETE"
10102)
10103
10104const (
10105	// ChangeTokenStatusProvisioned is a ChangeTokenStatus enum value
10106	ChangeTokenStatusProvisioned = "PROVISIONED"
10107
10108	// ChangeTokenStatusPending is a ChangeTokenStatus enum value
10109	ChangeTokenStatusPending = "PENDING"
10110
10111	// ChangeTokenStatusInsync is a ChangeTokenStatus enum value
10112	ChangeTokenStatusInsync = "INSYNC"
10113)
10114
10115const (
10116	// ComparisonOperatorEq is a ComparisonOperator enum value
10117	ComparisonOperatorEq = "EQ"
10118
10119	// ComparisonOperatorNe is a ComparisonOperator enum value
10120	ComparisonOperatorNe = "NE"
10121
10122	// ComparisonOperatorLe is a ComparisonOperator enum value
10123	ComparisonOperatorLe = "LE"
10124
10125	// ComparisonOperatorLt is a ComparisonOperator enum value
10126	ComparisonOperatorLt = "LT"
10127
10128	// ComparisonOperatorGe is a ComparisonOperator enum value
10129	ComparisonOperatorGe = "GE"
10130
10131	// ComparisonOperatorGt is a ComparisonOperator enum value
10132	ComparisonOperatorGt = "GT"
10133)
10134
10135const (
10136	// GeoMatchConstraintTypeCountry is a GeoMatchConstraintType enum value
10137	GeoMatchConstraintTypeCountry = "Country"
10138)
10139
10140const (
10141	// GeoMatchConstraintValueAf is a GeoMatchConstraintValue enum value
10142	GeoMatchConstraintValueAf = "AF"
10143
10144	// GeoMatchConstraintValueAx is a GeoMatchConstraintValue enum value
10145	GeoMatchConstraintValueAx = "AX"
10146
10147	// GeoMatchConstraintValueAl is a GeoMatchConstraintValue enum value
10148	GeoMatchConstraintValueAl = "AL"
10149
10150	// GeoMatchConstraintValueDz is a GeoMatchConstraintValue enum value
10151	GeoMatchConstraintValueDz = "DZ"
10152
10153	// GeoMatchConstraintValueAs is a GeoMatchConstraintValue enum value
10154	GeoMatchConstraintValueAs = "AS"
10155
10156	// GeoMatchConstraintValueAd is a GeoMatchConstraintValue enum value
10157	GeoMatchConstraintValueAd = "AD"
10158
10159	// GeoMatchConstraintValueAo is a GeoMatchConstraintValue enum value
10160	GeoMatchConstraintValueAo = "AO"
10161
10162	// GeoMatchConstraintValueAi is a GeoMatchConstraintValue enum value
10163	GeoMatchConstraintValueAi = "AI"
10164
10165	// GeoMatchConstraintValueAq is a GeoMatchConstraintValue enum value
10166	GeoMatchConstraintValueAq = "AQ"
10167
10168	// GeoMatchConstraintValueAg is a GeoMatchConstraintValue enum value
10169	GeoMatchConstraintValueAg = "AG"
10170
10171	// GeoMatchConstraintValueAr is a GeoMatchConstraintValue enum value
10172	GeoMatchConstraintValueAr = "AR"
10173
10174	// GeoMatchConstraintValueAm is a GeoMatchConstraintValue enum value
10175	GeoMatchConstraintValueAm = "AM"
10176
10177	// GeoMatchConstraintValueAw is a GeoMatchConstraintValue enum value
10178	GeoMatchConstraintValueAw = "AW"
10179
10180	// GeoMatchConstraintValueAu is a GeoMatchConstraintValue enum value
10181	GeoMatchConstraintValueAu = "AU"
10182
10183	// GeoMatchConstraintValueAt is a GeoMatchConstraintValue enum value
10184	GeoMatchConstraintValueAt = "AT"
10185
10186	// GeoMatchConstraintValueAz is a GeoMatchConstraintValue enum value
10187	GeoMatchConstraintValueAz = "AZ"
10188
10189	// GeoMatchConstraintValueBs is a GeoMatchConstraintValue enum value
10190	GeoMatchConstraintValueBs = "BS"
10191
10192	// GeoMatchConstraintValueBh is a GeoMatchConstraintValue enum value
10193	GeoMatchConstraintValueBh = "BH"
10194
10195	// GeoMatchConstraintValueBd is a GeoMatchConstraintValue enum value
10196	GeoMatchConstraintValueBd = "BD"
10197
10198	// GeoMatchConstraintValueBb is a GeoMatchConstraintValue enum value
10199	GeoMatchConstraintValueBb = "BB"
10200
10201	// GeoMatchConstraintValueBy is a GeoMatchConstraintValue enum value
10202	GeoMatchConstraintValueBy = "BY"
10203
10204	// GeoMatchConstraintValueBe is a GeoMatchConstraintValue enum value
10205	GeoMatchConstraintValueBe = "BE"
10206
10207	// GeoMatchConstraintValueBz is a GeoMatchConstraintValue enum value
10208	GeoMatchConstraintValueBz = "BZ"
10209
10210	// GeoMatchConstraintValueBj is a GeoMatchConstraintValue enum value
10211	GeoMatchConstraintValueBj = "BJ"
10212
10213	// GeoMatchConstraintValueBm is a GeoMatchConstraintValue enum value
10214	GeoMatchConstraintValueBm = "BM"
10215
10216	// GeoMatchConstraintValueBt is a GeoMatchConstraintValue enum value
10217	GeoMatchConstraintValueBt = "BT"
10218
10219	// GeoMatchConstraintValueBo is a GeoMatchConstraintValue enum value
10220	GeoMatchConstraintValueBo = "BO"
10221
10222	// GeoMatchConstraintValueBq is a GeoMatchConstraintValue enum value
10223	GeoMatchConstraintValueBq = "BQ"
10224
10225	// GeoMatchConstraintValueBa is a GeoMatchConstraintValue enum value
10226	GeoMatchConstraintValueBa = "BA"
10227
10228	// GeoMatchConstraintValueBw is a GeoMatchConstraintValue enum value
10229	GeoMatchConstraintValueBw = "BW"
10230
10231	// GeoMatchConstraintValueBv is a GeoMatchConstraintValue enum value
10232	GeoMatchConstraintValueBv = "BV"
10233
10234	// GeoMatchConstraintValueBr is a GeoMatchConstraintValue enum value
10235	GeoMatchConstraintValueBr = "BR"
10236
10237	// GeoMatchConstraintValueIo is a GeoMatchConstraintValue enum value
10238	GeoMatchConstraintValueIo = "IO"
10239
10240	// GeoMatchConstraintValueBn is a GeoMatchConstraintValue enum value
10241	GeoMatchConstraintValueBn = "BN"
10242
10243	// GeoMatchConstraintValueBg is a GeoMatchConstraintValue enum value
10244	GeoMatchConstraintValueBg = "BG"
10245
10246	// GeoMatchConstraintValueBf is a GeoMatchConstraintValue enum value
10247	GeoMatchConstraintValueBf = "BF"
10248
10249	// GeoMatchConstraintValueBi is a GeoMatchConstraintValue enum value
10250	GeoMatchConstraintValueBi = "BI"
10251
10252	// GeoMatchConstraintValueKh is a GeoMatchConstraintValue enum value
10253	GeoMatchConstraintValueKh = "KH"
10254
10255	// GeoMatchConstraintValueCm is a GeoMatchConstraintValue enum value
10256	GeoMatchConstraintValueCm = "CM"
10257
10258	// GeoMatchConstraintValueCa is a GeoMatchConstraintValue enum value
10259	GeoMatchConstraintValueCa = "CA"
10260
10261	// GeoMatchConstraintValueCv is a GeoMatchConstraintValue enum value
10262	GeoMatchConstraintValueCv = "CV"
10263
10264	// GeoMatchConstraintValueKy is a GeoMatchConstraintValue enum value
10265	GeoMatchConstraintValueKy = "KY"
10266
10267	// GeoMatchConstraintValueCf is a GeoMatchConstraintValue enum value
10268	GeoMatchConstraintValueCf = "CF"
10269
10270	// GeoMatchConstraintValueTd is a GeoMatchConstraintValue enum value
10271	GeoMatchConstraintValueTd = "TD"
10272
10273	// GeoMatchConstraintValueCl is a GeoMatchConstraintValue enum value
10274	GeoMatchConstraintValueCl = "CL"
10275
10276	// GeoMatchConstraintValueCn is a GeoMatchConstraintValue enum value
10277	GeoMatchConstraintValueCn = "CN"
10278
10279	// GeoMatchConstraintValueCx is a GeoMatchConstraintValue enum value
10280	GeoMatchConstraintValueCx = "CX"
10281
10282	// GeoMatchConstraintValueCc is a GeoMatchConstraintValue enum value
10283	GeoMatchConstraintValueCc = "CC"
10284
10285	// GeoMatchConstraintValueCo is a GeoMatchConstraintValue enum value
10286	GeoMatchConstraintValueCo = "CO"
10287
10288	// GeoMatchConstraintValueKm is a GeoMatchConstraintValue enum value
10289	GeoMatchConstraintValueKm = "KM"
10290
10291	// GeoMatchConstraintValueCg is a GeoMatchConstraintValue enum value
10292	GeoMatchConstraintValueCg = "CG"
10293
10294	// GeoMatchConstraintValueCd is a GeoMatchConstraintValue enum value
10295	GeoMatchConstraintValueCd = "CD"
10296
10297	// GeoMatchConstraintValueCk is a GeoMatchConstraintValue enum value
10298	GeoMatchConstraintValueCk = "CK"
10299
10300	// GeoMatchConstraintValueCr is a GeoMatchConstraintValue enum value
10301	GeoMatchConstraintValueCr = "CR"
10302
10303	// GeoMatchConstraintValueCi is a GeoMatchConstraintValue enum value
10304	GeoMatchConstraintValueCi = "CI"
10305
10306	// GeoMatchConstraintValueHr is a GeoMatchConstraintValue enum value
10307	GeoMatchConstraintValueHr = "HR"
10308
10309	// GeoMatchConstraintValueCu is a GeoMatchConstraintValue enum value
10310	GeoMatchConstraintValueCu = "CU"
10311
10312	// GeoMatchConstraintValueCw is a GeoMatchConstraintValue enum value
10313	GeoMatchConstraintValueCw = "CW"
10314
10315	// GeoMatchConstraintValueCy is a GeoMatchConstraintValue enum value
10316	GeoMatchConstraintValueCy = "CY"
10317
10318	// GeoMatchConstraintValueCz is a GeoMatchConstraintValue enum value
10319	GeoMatchConstraintValueCz = "CZ"
10320
10321	// GeoMatchConstraintValueDk is a GeoMatchConstraintValue enum value
10322	GeoMatchConstraintValueDk = "DK"
10323
10324	// GeoMatchConstraintValueDj is a GeoMatchConstraintValue enum value
10325	GeoMatchConstraintValueDj = "DJ"
10326
10327	// GeoMatchConstraintValueDm is a GeoMatchConstraintValue enum value
10328	GeoMatchConstraintValueDm = "DM"
10329
10330	// GeoMatchConstraintValueDo is a GeoMatchConstraintValue enum value
10331	GeoMatchConstraintValueDo = "DO"
10332
10333	// GeoMatchConstraintValueEc is a GeoMatchConstraintValue enum value
10334	GeoMatchConstraintValueEc = "EC"
10335
10336	// GeoMatchConstraintValueEg is a GeoMatchConstraintValue enum value
10337	GeoMatchConstraintValueEg = "EG"
10338
10339	// GeoMatchConstraintValueSv is a GeoMatchConstraintValue enum value
10340	GeoMatchConstraintValueSv = "SV"
10341
10342	// GeoMatchConstraintValueGq is a GeoMatchConstraintValue enum value
10343	GeoMatchConstraintValueGq = "GQ"
10344
10345	// GeoMatchConstraintValueEr is a GeoMatchConstraintValue enum value
10346	GeoMatchConstraintValueEr = "ER"
10347
10348	// GeoMatchConstraintValueEe is a GeoMatchConstraintValue enum value
10349	GeoMatchConstraintValueEe = "EE"
10350
10351	// GeoMatchConstraintValueEt is a GeoMatchConstraintValue enum value
10352	GeoMatchConstraintValueEt = "ET"
10353
10354	// GeoMatchConstraintValueFk is a GeoMatchConstraintValue enum value
10355	GeoMatchConstraintValueFk = "FK"
10356
10357	// GeoMatchConstraintValueFo is a GeoMatchConstraintValue enum value
10358	GeoMatchConstraintValueFo = "FO"
10359
10360	// GeoMatchConstraintValueFj is a GeoMatchConstraintValue enum value
10361	GeoMatchConstraintValueFj = "FJ"
10362
10363	// GeoMatchConstraintValueFi is a GeoMatchConstraintValue enum value
10364	GeoMatchConstraintValueFi = "FI"
10365
10366	// GeoMatchConstraintValueFr is a GeoMatchConstraintValue enum value
10367	GeoMatchConstraintValueFr = "FR"
10368
10369	// GeoMatchConstraintValueGf is a GeoMatchConstraintValue enum value
10370	GeoMatchConstraintValueGf = "GF"
10371
10372	// GeoMatchConstraintValuePf is a GeoMatchConstraintValue enum value
10373	GeoMatchConstraintValuePf = "PF"
10374
10375	// GeoMatchConstraintValueTf is a GeoMatchConstraintValue enum value
10376	GeoMatchConstraintValueTf = "TF"
10377
10378	// GeoMatchConstraintValueGa is a GeoMatchConstraintValue enum value
10379	GeoMatchConstraintValueGa = "GA"
10380
10381	// GeoMatchConstraintValueGm is a GeoMatchConstraintValue enum value
10382	GeoMatchConstraintValueGm = "GM"
10383
10384	// GeoMatchConstraintValueGe is a GeoMatchConstraintValue enum value
10385	GeoMatchConstraintValueGe = "GE"
10386
10387	// GeoMatchConstraintValueDe is a GeoMatchConstraintValue enum value
10388	GeoMatchConstraintValueDe = "DE"
10389
10390	// GeoMatchConstraintValueGh is a GeoMatchConstraintValue enum value
10391	GeoMatchConstraintValueGh = "GH"
10392
10393	// GeoMatchConstraintValueGi is a GeoMatchConstraintValue enum value
10394	GeoMatchConstraintValueGi = "GI"
10395
10396	// GeoMatchConstraintValueGr is a GeoMatchConstraintValue enum value
10397	GeoMatchConstraintValueGr = "GR"
10398
10399	// GeoMatchConstraintValueGl is a GeoMatchConstraintValue enum value
10400	GeoMatchConstraintValueGl = "GL"
10401
10402	// GeoMatchConstraintValueGd is a GeoMatchConstraintValue enum value
10403	GeoMatchConstraintValueGd = "GD"
10404
10405	// GeoMatchConstraintValueGp is a GeoMatchConstraintValue enum value
10406	GeoMatchConstraintValueGp = "GP"
10407
10408	// GeoMatchConstraintValueGu is a GeoMatchConstraintValue enum value
10409	GeoMatchConstraintValueGu = "GU"
10410
10411	// GeoMatchConstraintValueGt is a GeoMatchConstraintValue enum value
10412	GeoMatchConstraintValueGt = "GT"
10413
10414	// GeoMatchConstraintValueGg is a GeoMatchConstraintValue enum value
10415	GeoMatchConstraintValueGg = "GG"
10416
10417	// GeoMatchConstraintValueGn is a GeoMatchConstraintValue enum value
10418	GeoMatchConstraintValueGn = "GN"
10419
10420	// GeoMatchConstraintValueGw is a GeoMatchConstraintValue enum value
10421	GeoMatchConstraintValueGw = "GW"
10422
10423	// GeoMatchConstraintValueGy is a GeoMatchConstraintValue enum value
10424	GeoMatchConstraintValueGy = "GY"
10425
10426	// GeoMatchConstraintValueHt is a GeoMatchConstraintValue enum value
10427	GeoMatchConstraintValueHt = "HT"
10428
10429	// GeoMatchConstraintValueHm is a GeoMatchConstraintValue enum value
10430	GeoMatchConstraintValueHm = "HM"
10431
10432	// GeoMatchConstraintValueVa is a GeoMatchConstraintValue enum value
10433	GeoMatchConstraintValueVa = "VA"
10434
10435	// GeoMatchConstraintValueHn is a GeoMatchConstraintValue enum value
10436	GeoMatchConstraintValueHn = "HN"
10437
10438	// GeoMatchConstraintValueHk is a GeoMatchConstraintValue enum value
10439	GeoMatchConstraintValueHk = "HK"
10440
10441	// GeoMatchConstraintValueHu is a GeoMatchConstraintValue enum value
10442	GeoMatchConstraintValueHu = "HU"
10443
10444	// GeoMatchConstraintValueIs is a GeoMatchConstraintValue enum value
10445	GeoMatchConstraintValueIs = "IS"
10446
10447	// GeoMatchConstraintValueIn is a GeoMatchConstraintValue enum value
10448	GeoMatchConstraintValueIn = "IN"
10449
10450	// GeoMatchConstraintValueId is a GeoMatchConstraintValue enum value
10451	GeoMatchConstraintValueId = "ID"
10452
10453	// GeoMatchConstraintValueIr is a GeoMatchConstraintValue enum value
10454	GeoMatchConstraintValueIr = "IR"
10455
10456	// GeoMatchConstraintValueIq is a GeoMatchConstraintValue enum value
10457	GeoMatchConstraintValueIq = "IQ"
10458
10459	// GeoMatchConstraintValueIe is a GeoMatchConstraintValue enum value
10460	GeoMatchConstraintValueIe = "IE"
10461
10462	// GeoMatchConstraintValueIm is a GeoMatchConstraintValue enum value
10463	GeoMatchConstraintValueIm = "IM"
10464
10465	// GeoMatchConstraintValueIl is a GeoMatchConstraintValue enum value
10466	GeoMatchConstraintValueIl = "IL"
10467
10468	// GeoMatchConstraintValueIt is a GeoMatchConstraintValue enum value
10469	GeoMatchConstraintValueIt = "IT"
10470
10471	// GeoMatchConstraintValueJm is a GeoMatchConstraintValue enum value
10472	GeoMatchConstraintValueJm = "JM"
10473
10474	// GeoMatchConstraintValueJp is a GeoMatchConstraintValue enum value
10475	GeoMatchConstraintValueJp = "JP"
10476
10477	// GeoMatchConstraintValueJe is a GeoMatchConstraintValue enum value
10478	GeoMatchConstraintValueJe = "JE"
10479
10480	// GeoMatchConstraintValueJo is a GeoMatchConstraintValue enum value
10481	GeoMatchConstraintValueJo = "JO"
10482
10483	// GeoMatchConstraintValueKz is a GeoMatchConstraintValue enum value
10484	GeoMatchConstraintValueKz = "KZ"
10485
10486	// GeoMatchConstraintValueKe is a GeoMatchConstraintValue enum value
10487	GeoMatchConstraintValueKe = "KE"
10488
10489	// GeoMatchConstraintValueKi is a GeoMatchConstraintValue enum value
10490	GeoMatchConstraintValueKi = "KI"
10491
10492	// GeoMatchConstraintValueKp is a GeoMatchConstraintValue enum value
10493	GeoMatchConstraintValueKp = "KP"
10494
10495	// GeoMatchConstraintValueKr is a GeoMatchConstraintValue enum value
10496	GeoMatchConstraintValueKr = "KR"
10497
10498	// GeoMatchConstraintValueKw is a GeoMatchConstraintValue enum value
10499	GeoMatchConstraintValueKw = "KW"
10500
10501	// GeoMatchConstraintValueKg is a GeoMatchConstraintValue enum value
10502	GeoMatchConstraintValueKg = "KG"
10503
10504	// GeoMatchConstraintValueLa is a GeoMatchConstraintValue enum value
10505	GeoMatchConstraintValueLa = "LA"
10506
10507	// GeoMatchConstraintValueLv is a GeoMatchConstraintValue enum value
10508	GeoMatchConstraintValueLv = "LV"
10509
10510	// GeoMatchConstraintValueLb is a GeoMatchConstraintValue enum value
10511	GeoMatchConstraintValueLb = "LB"
10512
10513	// GeoMatchConstraintValueLs is a GeoMatchConstraintValue enum value
10514	GeoMatchConstraintValueLs = "LS"
10515
10516	// GeoMatchConstraintValueLr is a GeoMatchConstraintValue enum value
10517	GeoMatchConstraintValueLr = "LR"
10518
10519	// GeoMatchConstraintValueLy is a GeoMatchConstraintValue enum value
10520	GeoMatchConstraintValueLy = "LY"
10521
10522	// GeoMatchConstraintValueLi is a GeoMatchConstraintValue enum value
10523	GeoMatchConstraintValueLi = "LI"
10524
10525	// GeoMatchConstraintValueLt is a GeoMatchConstraintValue enum value
10526	GeoMatchConstraintValueLt = "LT"
10527
10528	// GeoMatchConstraintValueLu is a GeoMatchConstraintValue enum value
10529	GeoMatchConstraintValueLu = "LU"
10530
10531	// GeoMatchConstraintValueMo is a GeoMatchConstraintValue enum value
10532	GeoMatchConstraintValueMo = "MO"
10533
10534	// GeoMatchConstraintValueMk is a GeoMatchConstraintValue enum value
10535	GeoMatchConstraintValueMk = "MK"
10536
10537	// GeoMatchConstraintValueMg is a GeoMatchConstraintValue enum value
10538	GeoMatchConstraintValueMg = "MG"
10539
10540	// GeoMatchConstraintValueMw is a GeoMatchConstraintValue enum value
10541	GeoMatchConstraintValueMw = "MW"
10542
10543	// GeoMatchConstraintValueMy is a GeoMatchConstraintValue enum value
10544	GeoMatchConstraintValueMy = "MY"
10545
10546	// GeoMatchConstraintValueMv is a GeoMatchConstraintValue enum value
10547	GeoMatchConstraintValueMv = "MV"
10548
10549	// GeoMatchConstraintValueMl is a GeoMatchConstraintValue enum value
10550	GeoMatchConstraintValueMl = "ML"
10551
10552	// GeoMatchConstraintValueMt is a GeoMatchConstraintValue enum value
10553	GeoMatchConstraintValueMt = "MT"
10554
10555	// GeoMatchConstraintValueMh is a GeoMatchConstraintValue enum value
10556	GeoMatchConstraintValueMh = "MH"
10557
10558	// GeoMatchConstraintValueMq is a GeoMatchConstraintValue enum value
10559	GeoMatchConstraintValueMq = "MQ"
10560
10561	// GeoMatchConstraintValueMr is a GeoMatchConstraintValue enum value
10562	GeoMatchConstraintValueMr = "MR"
10563
10564	// GeoMatchConstraintValueMu is a GeoMatchConstraintValue enum value
10565	GeoMatchConstraintValueMu = "MU"
10566
10567	// GeoMatchConstraintValueYt is a GeoMatchConstraintValue enum value
10568	GeoMatchConstraintValueYt = "YT"
10569
10570	// GeoMatchConstraintValueMx is a GeoMatchConstraintValue enum value
10571	GeoMatchConstraintValueMx = "MX"
10572
10573	// GeoMatchConstraintValueFm is a GeoMatchConstraintValue enum value
10574	GeoMatchConstraintValueFm = "FM"
10575
10576	// GeoMatchConstraintValueMd is a GeoMatchConstraintValue enum value
10577	GeoMatchConstraintValueMd = "MD"
10578
10579	// GeoMatchConstraintValueMc is a GeoMatchConstraintValue enum value
10580	GeoMatchConstraintValueMc = "MC"
10581
10582	// GeoMatchConstraintValueMn is a GeoMatchConstraintValue enum value
10583	GeoMatchConstraintValueMn = "MN"
10584
10585	// GeoMatchConstraintValueMe is a GeoMatchConstraintValue enum value
10586	GeoMatchConstraintValueMe = "ME"
10587
10588	// GeoMatchConstraintValueMs is a GeoMatchConstraintValue enum value
10589	GeoMatchConstraintValueMs = "MS"
10590
10591	// GeoMatchConstraintValueMa is a GeoMatchConstraintValue enum value
10592	GeoMatchConstraintValueMa = "MA"
10593
10594	// GeoMatchConstraintValueMz is a GeoMatchConstraintValue enum value
10595	GeoMatchConstraintValueMz = "MZ"
10596
10597	// GeoMatchConstraintValueMm is a GeoMatchConstraintValue enum value
10598	GeoMatchConstraintValueMm = "MM"
10599
10600	// GeoMatchConstraintValueNa is a GeoMatchConstraintValue enum value
10601	GeoMatchConstraintValueNa = "NA"
10602
10603	// GeoMatchConstraintValueNr is a GeoMatchConstraintValue enum value
10604	GeoMatchConstraintValueNr = "NR"
10605
10606	// GeoMatchConstraintValueNp is a GeoMatchConstraintValue enum value
10607	GeoMatchConstraintValueNp = "NP"
10608
10609	// GeoMatchConstraintValueNl is a GeoMatchConstraintValue enum value
10610	GeoMatchConstraintValueNl = "NL"
10611
10612	// GeoMatchConstraintValueNc is a GeoMatchConstraintValue enum value
10613	GeoMatchConstraintValueNc = "NC"
10614
10615	// GeoMatchConstraintValueNz is a GeoMatchConstraintValue enum value
10616	GeoMatchConstraintValueNz = "NZ"
10617
10618	// GeoMatchConstraintValueNi is a GeoMatchConstraintValue enum value
10619	GeoMatchConstraintValueNi = "NI"
10620
10621	// GeoMatchConstraintValueNe is a GeoMatchConstraintValue enum value
10622	GeoMatchConstraintValueNe = "NE"
10623
10624	// GeoMatchConstraintValueNg is a GeoMatchConstraintValue enum value
10625	GeoMatchConstraintValueNg = "NG"
10626
10627	// GeoMatchConstraintValueNu is a GeoMatchConstraintValue enum value
10628	GeoMatchConstraintValueNu = "NU"
10629
10630	// GeoMatchConstraintValueNf is a GeoMatchConstraintValue enum value
10631	GeoMatchConstraintValueNf = "NF"
10632
10633	// GeoMatchConstraintValueMp is a GeoMatchConstraintValue enum value
10634	GeoMatchConstraintValueMp = "MP"
10635
10636	// GeoMatchConstraintValueNo is a GeoMatchConstraintValue enum value
10637	GeoMatchConstraintValueNo = "NO"
10638
10639	// GeoMatchConstraintValueOm is a GeoMatchConstraintValue enum value
10640	GeoMatchConstraintValueOm = "OM"
10641
10642	// GeoMatchConstraintValuePk is a GeoMatchConstraintValue enum value
10643	GeoMatchConstraintValuePk = "PK"
10644
10645	// GeoMatchConstraintValuePw is a GeoMatchConstraintValue enum value
10646	GeoMatchConstraintValuePw = "PW"
10647
10648	// GeoMatchConstraintValuePs is a GeoMatchConstraintValue enum value
10649	GeoMatchConstraintValuePs = "PS"
10650
10651	// GeoMatchConstraintValuePa is a GeoMatchConstraintValue enum value
10652	GeoMatchConstraintValuePa = "PA"
10653
10654	// GeoMatchConstraintValuePg is a GeoMatchConstraintValue enum value
10655	GeoMatchConstraintValuePg = "PG"
10656
10657	// GeoMatchConstraintValuePy is a GeoMatchConstraintValue enum value
10658	GeoMatchConstraintValuePy = "PY"
10659
10660	// GeoMatchConstraintValuePe is a GeoMatchConstraintValue enum value
10661	GeoMatchConstraintValuePe = "PE"
10662
10663	// GeoMatchConstraintValuePh is a GeoMatchConstraintValue enum value
10664	GeoMatchConstraintValuePh = "PH"
10665
10666	// GeoMatchConstraintValuePn is a GeoMatchConstraintValue enum value
10667	GeoMatchConstraintValuePn = "PN"
10668
10669	// GeoMatchConstraintValuePl is a GeoMatchConstraintValue enum value
10670	GeoMatchConstraintValuePl = "PL"
10671
10672	// GeoMatchConstraintValuePt is a GeoMatchConstraintValue enum value
10673	GeoMatchConstraintValuePt = "PT"
10674
10675	// GeoMatchConstraintValuePr is a GeoMatchConstraintValue enum value
10676	GeoMatchConstraintValuePr = "PR"
10677
10678	// GeoMatchConstraintValueQa is a GeoMatchConstraintValue enum value
10679	GeoMatchConstraintValueQa = "QA"
10680
10681	// GeoMatchConstraintValueRe is a GeoMatchConstraintValue enum value
10682	GeoMatchConstraintValueRe = "RE"
10683
10684	// GeoMatchConstraintValueRo is a GeoMatchConstraintValue enum value
10685	GeoMatchConstraintValueRo = "RO"
10686
10687	// GeoMatchConstraintValueRu is a GeoMatchConstraintValue enum value
10688	GeoMatchConstraintValueRu = "RU"
10689
10690	// GeoMatchConstraintValueRw is a GeoMatchConstraintValue enum value
10691	GeoMatchConstraintValueRw = "RW"
10692
10693	// GeoMatchConstraintValueBl is a GeoMatchConstraintValue enum value
10694	GeoMatchConstraintValueBl = "BL"
10695
10696	// GeoMatchConstraintValueSh is a GeoMatchConstraintValue enum value
10697	GeoMatchConstraintValueSh = "SH"
10698
10699	// GeoMatchConstraintValueKn is a GeoMatchConstraintValue enum value
10700	GeoMatchConstraintValueKn = "KN"
10701
10702	// GeoMatchConstraintValueLc is a GeoMatchConstraintValue enum value
10703	GeoMatchConstraintValueLc = "LC"
10704
10705	// GeoMatchConstraintValueMf is a GeoMatchConstraintValue enum value
10706	GeoMatchConstraintValueMf = "MF"
10707
10708	// GeoMatchConstraintValuePm is a GeoMatchConstraintValue enum value
10709	GeoMatchConstraintValuePm = "PM"
10710
10711	// GeoMatchConstraintValueVc is a GeoMatchConstraintValue enum value
10712	GeoMatchConstraintValueVc = "VC"
10713
10714	// GeoMatchConstraintValueWs is a GeoMatchConstraintValue enum value
10715	GeoMatchConstraintValueWs = "WS"
10716
10717	// GeoMatchConstraintValueSm is a GeoMatchConstraintValue enum value
10718	GeoMatchConstraintValueSm = "SM"
10719
10720	// GeoMatchConstraintValueSt is a GeoMatchConstraintValue enum value
10721	GeoMatchConstraintValueSt = "ST"
10722
10723	// GeoMatchConstraintValueSa is a GeoMatchConstraintValue enum value
10724	GeoMatchConstraintValueSa = "SA"
10725
10726	// GeoMatchConstraintValueSn is a GeoMatchConstraintValue enum value
10727	GeoMatchConstraintValueSn = "SN"
10728
10729	// GeoMatchConstraintValueRs is a GeoMatchConstraintValue enum value
10730	GeoMatchConstraintValueRs = "RS"
10731
10732	// GeoMatchConstraintValueSc is a GeoMatchConstraintValue enum value
10733	GeoMatchConstraintValueSc = "SC"
10734
10735	// GeoMatchConstraintValueSl is a GeoMatchConstraintValue enum value
10736	GeoMatchConstraintValueSl = "SL"
10737
10738	// GeoMatchConstraintValueSg is a GeoMatchConstraintValue enum value
10739	GeoMatchConstraintValueSg = "SG"
10740
10741	// GeoMatchConstraintValueSx is a GeoMatchConstraintValue enum value
10742	GeoMatchConstraintValueSx = "SX"
10743
10744	// GeoMatchConstraintValueSk is a GeoMatchConstraintValue enum value
10745	GeoMatchConstraintValueSk = "SK"
10746
10747	// GeoMatchConstraintValueSi is a GeoMatchConstraintValue enum value
10748	GeoMatchConstraintValueSi = "SI"
10749
10750	// GeoMatchConstraintValueSb is a GeoMatchConstraintValue enum value
10751	GeoMatchConstraintValueSb = "SB"
10752
10753	// GeoMatchConstraintValueSo is a GeoMatchConstraintValue enum value
10754	GeoMatchConstraintValueSo = "SO"
10755
10756	// GeoMatchConstraintValueZa is a GeoMatchConstraintValue enum value
10757	GeoMatchConstraintValueZa = "ZA"
10758
10759	// GeoMatchConstraintValueGs is a GeoMatchConstraintValue enum value
10760	GeoMatchConstraintValueGs = "GS"
10761
10762	// GeoMatchConstraintValueSs is a GeoMatchConstraintValue enum value
10763	GeoMatchConstraintValueSs = "SS"
10764
10765	// GeoMatchConstraintValueEs is a GeoMatchConstraintValue enum value
10766	GeoMatchConstraintValueEs = "ES"
10767
10768	// GeoMatchConstraintValueLk is a GeoMatchConstraintValue enum value
10769	GeoMatchConstraintValueLk = "LK"
10770
10771	// GeoMatchConstraintValueSd is a GeoMatchConstraintValue enum value
10772	GeoMatchConstraintValueSd = "SD"
10773
10774	// GeoMatchConstraintValueSr is a GeoMatchConstraintValue enum value
10775	GeoMatchConstraintValueSr = "SR"
10776
10777	// GeoMatchConstraintValueSj is a GeoMatchConstraintValue enum value
10778	GeoMatchConstraintValueSj = "SJ"
10779
10780	// GeoMatchConstraintValueSz is a GeoMatchConstraintValue enum value
10781	GeoMatchConstraintValueSz = "SZ"
10782
10783	// GeoMatchConstraintValueSe is a GeoMatchConstraintValue enum value
10784	GeoMatchConstraintValueSe = "SE"
10785
10786	// GeoMatchConstraintValueCh is a GeoMatchConstraintValue enum value
10787	GeoMatchConstraintValueCh = "CH"
10788
10789	// GeoMatchConstraintValueSy is a GeoMatchConstraintValue enum value
10790	GeoMatchConstraintValueSy = "SY"
10791
10792	// GeoMatchConstraintValueTw is a GeoMatchConstraintValue enum value
10793	GeoMatchConstraintValueTw = "TW"
10794
10795	// GeoMatchConstraintValueTj is a GeoMatchConstraintValue enum value
10796	GeoMatchConstraintValueTj = "TJ"
10797
10798	// GeoMatchConstraintValueTz is a GeoMatchConstraintValue enum value
10799	GeoMatchConstraintValueTz = "TZ"
10800
10801	// GeoMatchConstraintValueTh is a GeoMatchConstraintValue enum value
10802	GeoMatchConstraintValueTh = "TH"
10803
10804	// GeoMatchConstraintValueTl is a GeoMatchConstraintValue enum value
10805	GeoMatchConstraintValueTl = "TL"
10806
10807	// GeoMatchConstraintValueTg is a GeoMatchConstraintValue enum value
10808	GeoMatchConstraintValueTg = "TG"
10809
10810	// GeoMatchConstraintValueTk is a GeoMatchConstraintValue enum value
10811	GeoMatchConstraintValueTk = "TK"
10812
10813	// GeoMatchConstraintValueTo is a GeoMatchConstraintValue enum value
10814	GeoMatchConstraintValueTo = "TO"
10815
10816	// GeoMatchConstraintValueTt is a GeoMatchConstraintValue enum value
10817	GeoMatchConstraintValueTt = "TT"
10818
10819	// GeoMatchConstraintValueTn is a GeoMatchConstraintValue enum value
10820	GeoMatchConstraintValueTn = "TN"
10821
10822	// GeoMatchConstraintValueTr is a GeoMatchConstraintValue enum value
10823	GeoMatchConstraintValueTr = "TR"
10824
10825	// GeoMatchConstraintValueTm is a GeoMatchConstraintValue enum value
10826	GeoMatchConstraintValueTm = "TM"
10827
10828	// GeoMatchConstraintValueTc is a GeoMatchConstraintValue enum value
10829	GeoMatchConstraintValueTc = "TC"
10830
10831	// GeoMatchConstraintValueTv is a GeoMatchConstraintValue enum value
10832	GeoMatchConstraintValueTv = "TV"
10833
10834	// GeoMatchConstraintValueUg is a GeoMatchConstraintValue enum value
10835	GeoMatchConstraintValueUg = "UG"
10836
10837	// GeoMatchConstraintValueUa is a GeoMatchConstraintValue enum value
10838	GeoMatchConstraintValueUa = "UA"
10839
10840	// GeoMatchConstraintValueAe is a GeoMatchConstraintValue enum value
10841	GeoMatchConstraintValueAe = "AE"
10842
10843	// GeoMatchConstraintValueGb is a GeoMatchConstraintValue enum value
10844	GeoMatchConstraintValueGb = "GB"
10845
10846	// GeoMatchConstraintValueUs is a GeoMatchConstraintValue enum value
10847	GeoMatchConstraintValueUs = "US"
10848
10849	// GeoMatchConstraintValueUm is a GeoMatchConstraintValue enum value
10850	GeoMatchConstraintValueUm = "UM"
10851
10852	// GeoMatchConstraintValueUy is a GeoMatchConstraintValue enum value
10853	GeoMatchConstraintValueUy = "UY"
10854
10855	// GeoMatchConstraintValueUz is a GeoMatchConstraintValue enum value
10856	GeoMatchConstraintValueUz = "UZ"
10857
10858	// GeoMatchConstraintValueVu is a GeoMatchConstraintValue enum value
10859	GeoMatchConstraintValueVu = "VU"
10860
10861	// GeoMatchConstraintValueVe is a GeoMatchConstraintValue enum value
10862	GeoMatchConstraintValueVe = "VE"
10863
10864	// GeoMatchConstraintValueVn is a GeoMatchConstraintValue enum value
10865	GeoMatchConstraintValueVn = "VN"
10866
10867	// GeoMatchConstraintValueVg is a GeoMatchConstraintValue enum value
10868	GeoMatchConstraintValueVg = "VG"
10869
10870	// GeoMatchConstraintValueVi is a GeoMatchConstraintValue enum value
10871	GeoMatchConstraintValueVi = "VI"
10872
10873	// GeoMatchConstraintValueWf is a GeoMatchConstraintValue enum value
10874	GeoMatchConstraintValueWf = "WF"
10875
10876	// GeoMatchConstraintValueEh is a GeoMatchConstraintValue enum value
10877	GeoMatchConstraintValueEh = "EH"
10878
10879	// GeoMatchConstraintValueYe is a GeoMatchConstraintValue enum value
10880	GeoMatchConstraintValueYe = "YE"
10881
10882	// GeoMatchConstraintValueZm is a GeoMatchConstraintValue enum value
10883	GeoMatchConstraintValueZm = "ZM"
10884
10885	// GeoMatchConstraintValueZw is a GeoMatchConstraintValue enum value
10886	GeoMatchConstraintValueZw = "ZW"
10887)
10888
10889const (
10890	// IPSetDescriptorTypeIpv4 is a IPSetDescriptorType enum value
10891	IPSetDescriptorTypeIpv4 = "IPV4"
10892
10893	// IPSetDescriptorTypeIpv6 is a IPSetDescriptorType enum value
10894	IPSetDescriptorTypeIpv6 = "IPV6"
10895)
10896
10897const (
10898	// MatchFieldTypeUri is a MatchFieldType enum value
10899	MatchFieldTypeUri = "URI"
10900
10901	// MatchFieldTypeQueryString is a MatchFieldType enum value
10902	MatchFieldTypeQueryString = "QUERY_STRING"
10903
10904	// MatchFieldTypeHeader is a MatchFieldType enum value
10905	MatchFieldTypeHeader = "HEADER"
10906
10907	// MatchFieldTypeMethod is a MatchFieldType enum value
10908	MatchFieldTypeMethod = "METHOD"
10909
10910	// MatchFieldTypeBody is a MatchFieldType enum value
10911	MatchFieldTypeBody = "BODY"
10912
10913	// MatchFieldTypeSingleQueryArg is a MatchFieldType enum value
10914	MatchFieldTypeSingleQueryArg = "SINGLE_QUERY_ARG"
10915
10916	// MatchFieldTypeAllQueryArgs is a MatchFieldType enum value
10917	MatchFieldTypeAllQueryArgs = "ALL_QUERY_ARGS"
10918)
10919
10920const (
10921	// ParameterExceptionFieldChangeAction is a ParameterExceptionField enum value
10922	ParameterExceptionFieldChangeAction = "CHANGE_ACTION"
10923
10924	// ParameterExceptionFieldWafAction is a ParameterExceptionField enum value
10925	ParameterExceptionFieldWafAction = "WAF_ACTION"
10926
10927	// ParameterExceptionFieldWafOverrideAction is a ParameterExceptionField enum value
10928	ParameterExceptionFieldWafOverrideAction = "WAF_OVERRIDE_ACTION"
10929
10930	// ParameterExceptionFieldPredicateType is a ParameterExceptionField enum value
10931	ParameterExceptionFieldPredicateType = "PREDICATE_TYPE"
10932
10933	// ParameterExceptionFieldIpsetType is a ParameterExceptionField enum value
10934	ParameterExceptionFieldIpsetType = "IPSET_TYPE"
10935
10936	// ParameterExceptionFieldByteMatchFieldType is a ParameterExceptionField enum value
10937	ParameterExceptionFieldByteMatchFieldType = "BYTE_MATCH_FIELD_TYPE"
10938
10939	// ParameterExceptionFieldSqlInjectionMatchFieldType is a ParameterExceptionField enum value
10940	ParameterExceptionFieldSqlInjectionMatchFieldType = "SQL_INJECTION_MATCH_FIELD_TYPE"
10941
10942	// ParameterExceptionFieldByteMatchTextTransformation is a ParameterExceptionField enum value
10943	ParameterExceptionFieldByteMatchTextTransformation = "BYTE_MATCH_TEXT_TRANSFORMATION"
10944
10945	// ParameterExceptionFieldByteMatchPositionalConstraint is a ParameterExceptionField enum value
10946	ParameterExceptionFieldByteMatchPositionalConstraint = "BYTE_MATCH_POSITIONAL_CONSTRAINT"
10947
10948	// ParameterExceptionFieldSizeConstraintComparisonOperator is a ParameterExceptionField enum value
10949	ParameterExceptionFieldSizeConstraintComparisonOperator = "SIZE_CONSTRAINT_COMPARISON_OPERATOR"
10950
10951	// ParameterExceptionFieldGeoMatchLocationType is a ParameterExceptionField enum value
10952	ParameterExceptionFieldGeoMatchLocationType = "GEO_MATCH_LOCATION_TYPE"
10953
10954	// ParameterExceptionFieldGeoMatchLocationValue is a ParameterExceptionField enum value
10955	ParameterExceptionFieldGeoMatchLocationValue = "GEO_MATCH_LOCATION_VALUE"
10956
10957	// ParameterExceptionFieldRateKey is a ParameterExceptionField enum value
10958	ParameterExceptionFieldRateKey = "RATE_KEY"
10959
10960	// ParameterExceptionFieldRuleType is a ParameterExceptionField enum value
10961	ParameterExceptionFieldRuleType = "RULE_TYPE"
10962
10963	// ParameterExceptionFieldNextMarker is a ParameterExceptionField enum value
10964	ParameterExceptionFieldNextMarker = "NEXT_MARKER"
10965
10966	// ParameterExceptionFieldResourceArn is a ParameterExceptionField enum value
10967	ParameterExceptionFieldResourceArn = "RESOURCE_ARN"
10968
10969	// ParameterExceptionFieldTags is a ParameterExceptionField enum value
10970	ParameterExceptionFieldTags = "TAGS"
10971
10972	// ParameterExceptionFieldTagKeys is a ParameterExceptionField enum value
10973	ParameterExceptionFieldTagKeys = "TAG_KEYS"
10974)
10975
10976const (
10977	// ParameterExceptionReasonInvalidOption is a ParameterExceptionReason enum value
10978	ParameterExceptionReasonInvalidOption = "INVALID_OPTION"
10979
10980	// ParameterExceptionReasonIllegalCombination is a ParameterExceptionReason enum value
10981	ParameterExceptionReasonIllegalCombination = "ILLEGAL_COMBINATION"
10982
10983	// ParameterExceptionReasonIllegalArgument is a ParameterExceptionReason enum value
10984	ParameterExceptionReasonIllegalArgument = "ILLEGAL_ARGUMENT"
10985
10986	// ParameterExceptionReasonInvalidTagKey is a ParameterExceptionReason enum value
10987	ParameterExceptionReasonInvalidTagKey = "INVALID_TAG_KEY"
10988)
10989
10990const (
10991	// PositionalConstraintExactly is a PositionalConstraint enum value
10992	PositionalConstraintExactly = "EXACTLY"
10993
10994	// PositionalConstraintStartsWith is a PositionalConstraint enum value
10995	PositionalConstraintStartsWith = "STARTS_WITH"
10996
10997	// PositionalConstraintEndsWith is a PositionalConstraint enum value
10998	PositionalConstraintEndsWith = "ENDS_WITH"
10999
11000	// PositionalConstraintContains is a PositionalConstraint enum value
11001	PositionalConstraintContains = "CONTAINS"
11002
11003	// PositionalConstraintContainsWord is a PositionalConstraint enum value
11004	PositionalConstraintContainsWord = "CONTAINS_WORD"
11005)
11006
11007const (
11008	// PredicateTypeIpmatch is a PredicateType enum value
11009	PredicateTypeIpmatch = "IPMatch"
11010
11011	// PredicateTypeByteMatch is a PredicateType enum value
11012	PredicateTypeByteMatch = "ByteMatch"
11013
11014	// PredicateTypeSqlInjectionMatch is a PredicateType enum value
11015	PredicateTypeSqlInjectionMatch = "SqlInjectionMatch"
11016
11017	// PredicateTypeGeoMatch is a PredicateType enum value
11018	PredicateTypeGeoMatch = "GeoMatch"
11019
11020	// PredicateTypeSizeConstraint is a PredicateType enum value
11021	PredicateTypeSizeConstraint = "SizeConstraint"
11022
11023	// PredicateTypeXssMatch is a PredicateType enum value
11024	PredicateTypeXssMatch = "XssMatch"
11025
11026	// PredicateTypeRegexMatch is a PredicateType enum value
11027	PredicateTypeRegexMatch = "RegexMatch"
11028)
11029
11030const (
11031	// RateKeyIp is a RateKey enum value
11032	RateKeyIp = "IP"
11033)
11034
11035const (
11036	// ResourceTypeApplicationLoadBalancer is a ResourceType enum value
11037	ResourceTypeApplicationLoadBalancer = "APPLICATION_LOAD_BALANCER"
11038
11039	// ResourceTypeApiGateway is a ResourceType enum value
11040	ResourceTypeApiGateway = "API_GATEWAY"
11041)
11042
11043const (
11044	// TextTransformationNone is a TextTransformation enum value
11045	TextTransformationNone = "NONE"
11046
11047	// TextTransformationCompressWhiteSpace is a TextTransformation enum value
11048	TextTransformationCompressWhiteSpace = "COMPRESS_WHITE_SPACE"
11049
11050	// TextTransformationHtmlEntityDecode is a TextTransformation enum value
11051	TextTransformationHtmlEntityDecode = "HTML_ENTITY_DECODE"
11052
11053	// TextTransformationLowercase is a TextTransformation enum value
11054	TextTransformationLowercase = "LOWERCASE"
11055
11056	// TextTransformationCmdLine is a TextTransformation enum value
11057	TextTransformationCmdLine = "CMD_LINE"
11058
11059	// TextTransformationUrlDecode is a TextTransformation enum value
11060	TextTransformationUrlDecode = "URL_DECODE"
11061)
11062
11063const (
11064	// WafActionTypeBlock is a WafActionType enum value
11065	WafActionTypeBlock = "BLOCK"
11066
11067	// WafActionTypeAllow is a WafActionType enum value
11068	WafActionTypeAllow = "ALLOW"
11069
11070	// WafActionTypeCount is a WafActionType enum value
11071	WafActionTypeCount = "COUNT"
11072)
11073
11074const (
11075	// WafOverrideActionTypeNone is a WafOverrideActionType enum value
11076	WafOverrideActionTypeNone = "NONE"
11077
11078	// WafOverrideActionTypeCount is a WafOverrideActionType enum value
11079	WafOverrideActionTypeCount = "COUNT"
11080)
11081
11082const (
11083	// WafRuleTypeRegular is a WafRuleType enum value
11084	WafRuleTypeRegular = "REGULAR"
11085
11086	// WafRuleTypeRateBased is a WafRuleType enum value
11087	WafRuleTypeRateBased = "RATE_BASED"
11088
11089	// WafRuleTypeGroup is a WafRuleType enum value
11090	WafRuleTypeGroup = "GROUP"
11091)
11092