github.com/aavshr/aws-sdk-go@v1.41.3/service/waf/api.go (about)

     1  // Code generated by private/model/cli/gen-api/main.go. DO NOT EDIT.
     2  
     3  package waf
     4  
     5  import (
     6  	"fmt"
     7  	"time"
     8  
     9  	"github.com/aavshr/aws-sdk-go/aws"
    10  	"github.com/aavshr/aws-sdk-go/aws/awsutil"
    11  	"github.com/aavshr/aws-sdk-go/aws/request"
    12  	"github.com/aavshr/aws-sdk-go/private/protocol"
    13  	"github.com/aavshr/aws-sdk-go/private/protocol/jsonrpc"
    14  )
    15  
    16  const opCreateByteMatchSet = "CreateByteMatchSet"
    17  
    18  // CreateByteMatchSetRequest generates a "aws/request.Request" representing the
    19  // client's request for the CreateByteMatchSet operation. The "output" return
    20  // value will be populated with the request's response once the request completes
    21  // successfully.
    22  //
    23  // Use "Send" method on the returned Request to send the API call to the service.
    24  // the "output" return value is not valid until after Send returns without error.
    25  //
    26  // See CreateByteMatchSet for more information on using the CreateByteMatchSet
    27  // API call, and error handling.
    28  //
    29  // This method is useful when you want to inject custom logic or configuration
    30  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
    31  //
    32  //
    33  //    // Example sending a request using the CreateByteMatchSetRequest method.
    34  //    req, resp := client.CreateByteMatchSetRequest(params)
    35  //
    36  //    err := req.Send()
    37  //    if err == nil { // resp is now filled
    38  //        fmt.Println(resp)
    39  //    }
    40  //
    41  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSet
    42  func (c *WAF) CreateByteMatchSetRequest(input *CreateByteMatchSetInput) (req *request.Request, output *CreateByteMatchSetOutput) {
    43  	op := &request.Operation{
    44  		Name:       opCreateByteMatchSet,
    45  		HTTPMethod: "POST",
    46  		HTTPPath:   "/",
    47  	}
    48  
    49  	if input == nil {
    50  		input = &CreateByteMatchSetInput{}
    51  	}
    52  
    53  	output = &CreateByteMatchSetOutput{}
    54  	req = c.newRequest(op, input, output)
    55  	return
    56  }
    57  
    58  // CreateByteMatchSet API operation for AWS WAF.
    59  //
    60  //
    61  // This is AWS WAF Classic documentation. For more information, see AWS WAF
    62  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
    63  // in the developer guide.
    64  //
    65  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
    66  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
    67  // With the latest version, AWS WAF has a single set of endpoints for regional
    68  // and global use.
    69  //
    70  // Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part
    71  // of a web request that you want AWS WAF to inspect, such as the values of
    72  // the User-Agent header or the query string. For example, you can create a
    73  // ByteMatchSet that matches any requests with User-Agent headers that contain
    74  // the string BadBot. You can then configure AWS WAF to reject those requests.
    75  //
    76  // To create and configure a ByteMatchSet, perform the following steps:
    77  //
    78  // Use GetChangeToken to get the change token that you provide in the ChangeToken
    79  // parameter of a CreateByteMatchSet request.
    80  //
    81  // Submit a CreateByteMatchSet request.
    82  //
    83  // Use GetChangeToken to get the change token that you provide in the ChangeToken
    84  // parameter of an UpdateByteMatchSet request.
    85  //
    86  // Submit an UpdateByteMatchSet request to specify the part of the request that
    87  // you want AWS WAF to inspect (for example, the header or the URI) and the
    88  // value that you want AWS WAF to watch for.
    89  //
    90  // For more information about how to use the AWS WAF API to allow or block HTTP
    91  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
    92  //
    93  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
    94  // with awserr.Error's Code and Message methods to get detailed information about
    95  // the error.
    96  //
    97  // See the AWS API reference guide for AWS WAF's
    98  // API operation CreateByteMatchSet for usage and error information.
    99  //
   100  // Returned Error Types:
   101  //   * DisallowedNameException
   102  //   The name specified is invalid.
   103  //
   104  //   * InternalErrorException
   105  //   The operation failed because of a system problem, even though the request
   106  //   was valid. Retry your request.
   107  //
   108  //   * InvalidAccountException
   109  //   The operation failed because you tried to create, update, or delete an object
   110  //   by using an invalid account identifier.
   111  //
   112  //   * InvalidParameterException
   113  //   The operation failed because AWS WAF didn't recognize a parameter in the
   114  //   request. For example:
   115  //
   116  //      * You specified an invalid parameter name.
   117  //
   118  //      * You specified an invalid value.
   119  //
   120  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
   121  //      using an action other than INSERT or DELETE.
   122  //
   123  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
   124  //      BLOCK, or COUNT.
   125  //
   126  //      * You tried to create a RateBasedRule with a RateKey value other than
   127  //      IP.
   128  //
   129  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
   130  //      BLOCK, or COUNT.
   131  //
   132  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
   133  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
   134  //
   135  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
   136  //      for Data.
   137  //
   138  //      * Your request references an ARN that is malformed, or corresponds to
   139  //      a resource with which a web ACL cannot be associated.
   140  //
   141  //   * StaleDataException
   142  //   The operation failed because you tried to create, update, or delete an object
   143  //   by using a change token that has already been used.
   144  //
   145  //   * LimitsExceededException
   146  //   The operation exceeds a resource limit, for example, the maximum number of
   147  //   WebACL objects that you can create for an AWS account. For more information,
   148  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
   149  //   in the AWS WAF Developer Guide.
   150  //
   151  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateByteMatchSet
   152  func (c *WAF) CreateByteMatchSet(input *CreateByteMatchSetInput) (*CreateByteMatchSetOutput, error) {
   153  	req, out := c.CreateByteMatchSetRequest(input)
   154  	return out, req.Send()
   155  }
   156  
   157  // CreateByteMatchSetWithContext is the same as CreateByteMatchSet with the addition of
   158  // the ability to pass a context and additional request options.
   159  //
   160  // See CreateByteMatchSet for details on how to use this API operation.
   161  //
   162  // The context must be non-nil and will be used for request cancellation. If
   163  // the context is nil a panic will occur. In the future the SDK may create
   164  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   165  // for more information on using Contexts.
   166  func (c *WAF) CreateByteMatchSetWithContext(ctx aws.Context, input *CreateByteMatchSetInput, opts ...request.Option) (*CreateByteMatchSetOutput, error) {
   167  	req, out := c.CreateByteMatchSetRequest(input)
   168  	req.SetContext(ctx)
   169  	req.ApplyOptions(opts...)
   170  	return out, req.Send()
   171  }
   172  
   173  const opCreateGeoMatchSet = "CreateGeoMatchSet"
   174  
   175  // CreateGeoMatchSetRequest generates a "aws/request.Request" representing the
   176  // client's request for the CreateGeoMatchSet operation. The "output" return
   177  // value will be populated with the request's response once the request completes
   178  // successfully.
   179  //
   180  // Use "Send" method on the returned Request to send the API call to the service.
   181  // the "output" return value is not valid until after Send returns without error.
   182  //
   183  // See CreateGeoMatchSet for more information on using the CreateGeoMatchSet
   184  // API call, and error handling.
   185  //
   186  // This method is useful when you want to inject custom logic or configuration
   187  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   188  //
   189  //
   190  //    // Example sending a request using the CreateGeoMatchSetRequest method.
   191  //    req, resp := client.CreateGeoMatchSetRequest(params)
   192  //
   193  //    err := req.Send()
   194  //    if err == nil { // resp is now filled
   195  //        fmt.Println(resp)
   196  //    }
   197  //
   198  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateGeoMatchSet
   199  func (c *WAF) CreateGeoMatchSetRequest(input *CreateGeoMatchSetInput) (req *request.Request, output *CreateGeoMatchSetOutput) {
   200  	op := &request.Operation{
   201  		Name:       opCreateGeoMatchSet,
   202  		HTTPMethod: "POST",
   203  		HTTPPath:   "/",
   204  	}
   205  
   206  	if input == nil {
   207  		input = &CreateGeoMatchSetInput{}
   208  	}
   209  
   210  	output = &CreateGeoMatchSetOutput{}
   211  	req = c.newRequest(op, input, output)
   212  	return
   213  }
   214  
   215  // CreateGeoMatchSet API operation for AWS WAF.
   216  //
   217  //
   218  // This is AWS WAF Classic documentation. For more information, see AWS WAF
   219  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
   220  // in the developer guide.
   221  //
   222  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
   223  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
   224  // With the latest version, AWS WAF has a single set of endpoints for regional
   225  // and global use.
   226  //
   227  // Creates an GeoMatchSet, which you use to specify which web requests you want
   228  // to allow or block based on the country that the requests originate from.
   229  // For example, if you're receiving a lot of requests from one or more countries
   230  // and you want to block the requests, you can create an GeoMatchSet that contains
   231  // those countries and then configure AWS WAF to block the requests.
   232  //
   233  // To create and configure a GeoMatchSet, perform the following steps:
   234  //
   235  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   236  // parameter of a CreateGeoMatchSet request.
   237  //
   238  // Submit a CreateGeoMatchSet request.
   239  //
   240  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   241  // parameter of an UpdateGeoMatchSet request.
   242  //
   243  // Submit an UpdateGeoMatchSetSet request to specify the countries that you
   244  // want AWS WAF to watch for.
   245  //
   246  // For more information about how to use the AWS WAF API to allow or block HTTP
   247  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
   248  //
   249  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   250  // with awserr.Error's Code and Message methods to get detailed information about
   251  // the error.
   252  //
   253  // See the AWS API reference guide for AWS WAF's
   254  // API operation CreateGeoMatchSet for usage and error information.
   255  //
   256  // Returned Error Types:
   257  //   * StaleDataException
   258  //   The operation failed because you tried to create, update, or delete an object
   259  //   by using a change token that has already been used.
   260  //
   261  //   * InternalErrorException
   262  //   The operation failed because of a system problem, even though the request
   263  //   was valid. Retry your request.
   264  //
   265  //   * InvalidAccountException
   266  //   The operation failed because you tried to create, update, or delete an object
   267  //   by using an invalid account identifier.
   268  //
   269  //   * DisallowedNameException
   270  //   The name specified is invalid.
   271  //
   272  //   * InvalidParameterException
   273  //   The operation failed because AWS WAF didn't recognize a parameter in the
   274  //   request. For example:
   275  //
   276  //      * You specified an invalid parameter name.
   277  //
   278  //      * You specified an invalid value.
   279  //
   280  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
   281  //      using an action other than INSERT or DELETE.
   282  //
   283  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
   284  //      BLOCK, or COUNT.
   285  //
   286  //      * You tried to create a RateBasedRule with a RateKey value other than
   287  //      IP.
   288  //
   289  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
   290  //      BLOCK, or COUNT.
   291  //
   292  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
   293  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
   294  //
   295  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
   296  //      for Data.
   297  //
   298  //      * Your request references an ARN that is malformed, or corresponds to
   299  //      a resource with which a web ACL cannot be associated.
   300  //
   301  //   * LimitsExceededException
   302  //   The operation exceeds a resource limit, for example, the maximum number of
   303  //   WebACL objects that you can create for an AWS account. For more information,
   304  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
   305  //   in the AWS WAF Developer Guide.
   306  //
   307  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateGeoMatchSet
   308  func (c *WAF) CreateGeoMatchSet(input *CreateGeoMatchSetInput) (*CreateGeoMatchSetOutput, error) {
   309  	req, out := c.CreateGeoMatchSetRequest(input)
   310  	return out, req.Send()
   311  }
   312  
   313  // CreateGeoMatchSetWithContext is the same as CreateGeoMatchSet with the addition of
   314  // the ability to pass a context and additional request options.
   315  //
   316  // See CreateGeoMatchSet for details on how to use this API operation.
   317  //
   318  // The context must be non-nil and will be used for request cancellation. If
   319  // the context is nil a panic will occur. In the future the SDK may create
   320  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   321  // for more information on using Contexts.
   322  func (c *WAF) CreateGeoMatchSetWithContext(ctx aws.Context, input *CreateGeoMatchSetInput, opts ...request.Option) (*CreateGeoMatchSetOutput, error) {
   323  	req, out := c.CreateGeoMatchSetRequest(input)
   324  	req.SetContext(ctx)
   325  	req.ApplyOptions(opts...)
   326  	return out, req.Send()
   327  }
   328  
   329  const opCreateIPSet = "CreateIPSet"
   330  
   331  // CreateIPSetRequest generates a "aws/request.Request" representing the
   332  // client's request for the CreateIPSet operation. The "output" return
   333  // value will be populated with the request's response once the request completes
   334  // successfully.
   335  //
   336  // Use "Send" method on the returned Request to send the API call to the service.
   337  // the "output" return value is not valid until after Send returns without error.
   338  //
   339  // See CreateIPSet for more information on using the CreateIPSet
   340  // API call, and error handling.
   341  //
   342  // This method is useful when you want to inject custom logic or configuration
   343  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   344  //
   345  //
   346  //    // Example sending a request using the CreateIPSetRequest method.
   347  //    req, resp := client.CreateIPSetRequest(params)
   348  //
   349  //    err := req.Send()
   350  //    if err == nil { // resp is now filled
   351  //        fmt.Println(resp)
   352  //    }
   353  //
   354  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSet
   355  func (c *WAF) CreateIPSetRequest(input *CreateIPSetInput) (req *request.Request, output *CreateIPSetOutput) {
   356  	op := &request.Operation{
   357  		Name:       opCreateIPSet,
   358  		HTTPMethod: "POST",
   359  		HTTPPath:   "/",
   360  	}
   361  
   362  	if input == nil {
   363  		input = &CreateIPSetInput{}
   364  	}
   365  
   366  	output = &CreateIPSetOutput{}
   367  	req = c.newRequest(op, input, output)
   368  	return
   369  }
   370  
   371  // CreateIPSet API operation for AWS WAF.
   372  //
   373  //
   374  // This is AWS WAF Classic documentation. For more information, see AWS WAF
   375  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
   376  // in the developer guide.
   377  //
   378  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
   379  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
   380  // With the latest version, AWS WAF has a single set of endpoints for regional
   381  // and global use.
   382  //
   383  // Creates an IPSet, which you use to specify which web requests that you want
   384  // to allow or block based on the IP addresses that the requests originate from.
   385  // For example, if you're receiving a lot of requests from one or more individual
   386  // IP addresses or one or more ranges of IP addresses and you want to block
   387  // the requests, you can create an IPSet that contains those IP addresses and
   388  // then configure AWS WAF to block the requests.
   389  //
   390  // To create and configure an IPSet, perform the following steps:
   391  //
   392  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   393  // parameter of a CreateIPSet request.
   394  //
   395  // Submit a CreateIPSet request.
   396  //
   397  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   398  // parameter of an UpdateIPSet request.
   399  //
   400  // Submit an UpdateIPSet request to specify the IP addresses that you want AWS
   401  // WAF to watch for.
   402  //
   403  // For more information about how to use the AWS WAF API to allow or block HTTP
   404  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
   405  //
   406  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   407  // with awserr.Error's Code and Message methods to get detailed information about
   408  // the error.
   409  //
   410  // See the AWS API reference guide for AWS WAF's
   411  // API operation CreateIPSet for usage and error information.
   412  //
   413  // Returned Error Types:
   414  //   * StaleDataException
   415  //   The operation failed because you tried to create, update, or delete an object
   416  //   by using a change token that has already been used.
   417  //
   418  //   * InternalErrorException
   419  //   The operation failed because of a system problem, even though the request
   420  //   was valid. Retry your request.
   421  //
   422  //   * InvalidAccountException
   423  //   The operation failed because you tried to create, update, or delete an object
   424  //   by using an invalid account identifier.
   425  //
   426  //   * DisallowedNameException
   427  //   The name specified is invalid.
   428  //
   429  //   * InvalidParameterException
   430  //   The operation failed because AWS WAF didn't recognize a parameter in the
   431  //   request. For example:
   432  //
   433  //      * You specified an invalid parameter name.
   434  //
   435  //      * You specified an invalid value.
   436  //
   437  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
   438  //      using an action other than INSERT or DELETE.
   439  //
   440  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
   441  //      BLOCK, or COUNT.
   442  //
   443  //      * You tried to create a RateBasedRule with a RateKey value other than
   444  //      IP.
   445  //
   446  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
   447  //      BLOCK, or COUNT.
   448  //
   449  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
   450  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
   451  //
   452  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
   453  //      for Data.
   454  //
   455  //      * Your request references an ARN that is malformed, or corresponds to
   456  //      a resource with which a web ACL cannot be associated.
   457  //
   458  //   * LimitsExceededException
   459  //   The operation exceeds a resource limit, for example, the maximum number of
   460  //   WebACL objects that you can create for an AWS account. For more information,
   461  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
   462  //   in the AWS WAF Developer Guide.
   463  //
   464  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateIPSet
   465  func (c *WAF) CreateIPSet(input *CreateIPSetInput) (*CreateIPSetOutput, error) {
   466  	req, out := c.CreateIPSetRequest(input)
   467  	return out, req.Send()
   468  }
   469  
   470  // CreateIPSetWithContext is the same as CreateIPSet with the addition of
   471  // the ability to pass a context and additional request options.
   472  //
   473  // See CreateIPSet for details on how to use this API operation.
   474  //
   475  // The context must be non-nil and will be used for request cancellation. If
   476  // the context is nil a panic will occur. In the future the SDK may create
   477  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   478  // for more information on using Contexts.
   479  func (c *WAF) CreateIPSetWithContext(ctx aws.Context, input *CreateIPSetInput, opts ...request.Option) (*CreateIPSetOutput, error) {
   480  	req, out := c.CreateIPSetRequest(input)
   481  	req.SetContext(ctx)
   482  	req.ApplyOptions(opts...)
   483  	return out, req.Send()
   484  }
   485  
   486  const opCreateRateBasedRule = "CreateRateBasedRule"
   487  
   488  // CreateRateBasedRuleRequest generates a "aws/request.Request" representing the
   489  // client's request for the CreateRateBasedRule operation. The "output" return
   490  // value will be populated with the request's response once the request completes
   491  // successfully.
   492  //
   493  // Use "Send" method on the returned Request to send the API call to the service.
   494  // the "output" return value is not valid until after Send returns without error.
   495  //
   496  // See CreateRateBasedRule for more information on using the CreateRateBasedRule
   497  // API call, and error handling.
   498  //
   499  // This method is useful when you want to inject custom logic or configuration
   500  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   501  //
   502  //
   503  //    // Example sending a request using the CreateRateBasedRuleRequest method.
   504  //    req, resp := client.CreateRateBasedRuleRequest(params)
   505  //
   506  //    err := req.Send()
   507  //    if err == nil { // resp is now filled
   508  //        fmt.Println(resp)
   509  //    }
   510  //
   511  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRule
   512  func (c *WAF) CreateRateBasedRuleRequest(input *CreateRateBasedRuleInput) (req *request.Request, output *CreateRateBasedRuleOutput) {
   513  	op := &request.Operation{
   514  		Name:       opCreateRateBasedRule,
   515  		HTTPMethod: "POST",
   516  		HTTPPath:   "/",
   517  	}
   518  
   519  	if input == nil {
   520  		input = &CreateRateBasedRuleInput{}
   521  	}
   522  
   523  	output = &CreateRateBasedRuleOutput{}
   524  	req = c.newRequest(op, input, output)
   525  	return
   526  }
   527  
   528  // CreateRateBasedRule API operation for AWS WAF.
   529  //
   530  //
   531  // This is AWS WAF Classic documentation. For more information, see AWS WAF
   532  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
   533  // in the developer guide.
   534  //
   535  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
   536  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
   537  // With the latest version, AWS WAF has a single set of endpoints for regional
   538  // and global use.
   539  //
   540  // Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies
   541  // the maximum number of requests that AWS WAF allows from a specified IP address
   542  // in a five-minute period. The RateBasedRule also contains the IPSet objects,
   543  // ByteMatchSet objects, and other predicates that identify the requests that
   544  // you want to count or block if these requests exceed the RateLimit.
   545  //
   546  // If you add more than one predicate to a RateBasedRule, a request not only
   547  // must exceed the RateLimit, but it also must match all the conditions to be
   548  // counted or blocked. For example, suppose you add the following to a RateBasedRule:
   549  //
   550  //    * An IPSet that matches the IP address 192.0.2.44/32
   551  //
   552  //    * A ByteMatchSet that matches BadBot in the User-Agent header
   553  //
   554  // Further, you specify a RateLimit of 1,000.
   555  //
   556  // You then add the RateBasedRule to a WebACL and specify that you want to block
   557  // requests that meet the conditions in the rule. For a request to be blocked,
   558  // it must come from the IP address 192.0.2.44 and the User-Agent header in
   559  // the request must contain the value BadBot. Further, requests that match these
   560  // two conditions must be received at a rate of more than 1,000 requests every
   561  // five minutes. If both conditions are met and the rate is exceeded, AWS WAF
   562  // blocks the requests. If the rate drops below 1,000 for a five-minute period,
   563  // AWS WAF no longer blocks the requests.
   564  //
   565  // As a second example, suppose you want to limit requests to a particular page
   566  // on your site. To do this, you could add the following to a RateBasedRule:
   567  //
   568  //    * A ByteMatchSet with FieldToMatch of URI
   569  //
   570  //    * A PositionalConstraint of STARTS_WITH
   571  //
   572  //    * A TargetString of login
   573  //
   574  // Further, you specify a RateLimit of 1,000.
   575  //
   576  // By adding this RateBasedRule to a WebACL, you could limit requests to your
   577  // login page without affecting the rest of your site.
   578  //
   579  // To create and configure a RateBasedRule, perform the following steps:
   580  //
   581  // Create and update the predicates that you want to include in the rule. For
   582  // more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.
   583  //
   584  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   585  // parameter of a CreateRule request.
   586  //
   587  // Submit a CreateRateBasedRule request.
   588  //
   589  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   590  // parameter of an UpdateRule request.
   591  //
   592  // Submit an UpdateRateBasedRule request to specify the predicates that you
   593  // want to include in the rule.
   594  //
   595  // Create and update a WebACL that contains the RateBasedRule. For more information,
   596  // see CreateWebACL.
   597  //
   598  // For more information about how to use the AWS WAF API to allow or block HTTP
   599  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
   600  //
   601  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   602  // with awserr.Error's Code and Message methods to get detailed information about
   603  // the error.
   604  //
   605  // See the AWS API reference guide for AWS WAF's
   606  // API operation CreateRateBasedRule for usage and error information.
   607  //
   608  // Returned Error Types:
   609  //   * StaleDataException
   610  //   The operation failed because you tried to create, update, or delete an object
   611  //   by using a change token that has already been used.
   612  //
   613  //   * InternalErrorException
   614  //   The operation failed because of a system problem, even though the request
   615  //   was valid. Retry your request.
   616  //
   617  //   * DisallowedNameException
   618  //   The name specified is invalid.
   619  //
   620  //   * InvalidParameterException
   621  //   The operation failed because AWS WAF didn't recognize a parameter in the
   622  //   request. For example:
   623  //
   624  //      * You specified an invalid parameter name.
   625  //
   626  //      * You specified an invalid value.
   627  //
   628  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
   629  //      using an action other than INSERT or DELETE.
   630  //
   631  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
   632  //      BLOCK, or COUNT.
   633  //
   634  //      * You tried to create a RateBasedRule with a RateKey value other than
   635  //      IP.
   636  //
   637  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
   638  //      BLOCK, or COUNT.
   639  //
   640  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
   641  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
   642  //
   643  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
   644  //      for Data.
   645  //
   646  //      * Your request references an ARN that is malformed, or corresponds to
   647  //      a resource with which a web ACL cannot be associated.
   648  //
   649  //   * LimitsExceededException
   650  //   The operation exceeds a resource limit, for example, the maximum number of
   651  //   WebACL objects that you can create for an AWS account. For more information,
   652  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
   653  //   in the AWS WAF Developer Guide.
   654  //
   655  //   * TagOperationException
   656  //
   657  //   * TagOperationInternalErrorException
   658  //
   659  //   * BadRequestException
   660  //
   661  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRateBasedRule
   662  func (c *WAF) CreateRateBasedRule(input *CreateRateBasedRuleInput) (*CreateRateBasedRuleOutput, error) {
   663  	req, out := c.CreateRateBasedRuleRequest(input)
   664  	return out, req.Send()
   665  }
   666  
   667  // CreateRateBasedRuleWithContext is the same as CreateRateBasedRule with the addition of
   668  // the ability to pass a context and additional request options.
   669  //
   670  // See CreateRateBasedRule for details on how to use this API operation.
   671  //
   672  // The context must be non-nil and will be used for request cancellation. If
   673  // the context is nil a panic will occur. In the future the SDK may create
   674  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   675  // for more information on using Contexts.
   676  func (c *WAF) CreateRateBasedRuleWithContext(ctx aws.Context, input *CreateRateBasedRuleInput, opts ...request.Option) (*CreateRateBasedRuleOutput, error) {
   677  	req, out := c.CreateRateBasedRuleRequest(input)
   678  	req.SetContext(ctx)
   679  	req.ApplyOptions(opts...)
   680  	return out, req.Send()
   681  }
   682  
   683  const opCreateRegexMatchSet = "CreateRegexMatchSet"
   684  
   685  // CreateRegexMatchSetRequest generates a "aws/request.Request" representing the
   686  // client's request for the CreateRegexMatchSet operation. The "output" return
   687  // value will be populated with the request's response once the request completes
   688  // successfully.
   689  //
   690  // Use "Send" method on the returned Request to send the API call to the service.
   691  // the "output" return value is not valid until after Send returns without error.
   692  //
   693  // See CreateRegexMatchSet for more information on using the CreateRegexMatchSet
   694  // API call, and error handling.
   695  //
   696  // This method is useful when you want to inject custom logic or configuration
   697  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   698  //
   699  //
   700  //    // Example sending a request using the CreateRegexMatchSetRequest method.
   701  //    req, resp := client.CreateRegexMatchSetRequest(params)
   702  //
   703  //    err := req.Send()
   704  //    if err == nil { // resp is now filled
   705  //        fmt.Println(resp)
   706  //    }
   707  //
   708  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexMatchSet
   709  func (c *WAF) CreateRegexMatchSetRequest(input *CreateRegexMatchSetInput) (req *request.Request, output *CreateRegexMatchSetOutput) {
   710  	op := &request.Operation{
   711  		Name:       opCreateRegexMatchSet,
   712  		HTTPMethod: "POST",
   713  		HTTPPath:   "/",
   714  	}
   715  
   716  	if input == nil {
   717  		input = &CreateRegexMatchSetInput{}
   718  	}
   719  
   720  	output = &CreateRegexMatchSetOutput{}
   721  	req = c.newRequest(op, input, output)
   722  	return
   723  }
   724  
   725  // CreateRegexMatchSet API operation for AWS WAF.
   726  //
   727  //
   728  // This is AWS WAF Classic documentation. For more information, see AWS WAF
   729  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
   730  // in the developer guide.
   731  //
   732  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
   733  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
   734  // With the latest version, AWS WAF has a single set of endpoints for regional
   735  // and global use.
   736  //
   737  // Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the
   738  // part of a web request that you want AWS WAF to inspect, such as the values
   739  // of the User-Agent header or the query string. For example, you can create
   740  // a RegexMatchSet that contains a RegexMatchTuple that looks for any requests
   741  // with User-Agent headers that match a RegexPatternSet with pattern B[a@]dB[o0]t.
   742  // You can then configure AWS WAF to reject those requests.
   743  //
   744  // To create and configure a RegexMatchSet, perform the following steps:
   745  //
   746  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   747  // parameter of a CreateRegexMatchSet request.
   748  //
   749  // Submit a CreateRegexMatchSet request.
   750  //
   751  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   752  // parameter of an UpdateRegexMatchSet request.
   753  //
   754  // Submit an UpdateRegexMatchSet request to specify the part of the request
   755  // that you want AWS WAF to inspect (for example, the header or the URI) and
   756  // the value, using a RegexPatternSet, that you want AWS WAF to watch for.
   757  //
   758  // For more information about how to use the AWS WAF API to allow or block HTTP
   759  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
   760  //
   761  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   762  // with awserr.Error's Code and Message methods to get detailed information about
   763  // the error.
   764  //
   765  // See the AWS API reference guide for AWS WAF's
   766  // API operation CreateRegexMatchSet for usage and error information.
   767  //
   768  // Returned Error Types:
   769  //   * StaleDataException
   770  //   The operation failed because you tried to create, update, or delete an object
   771  //   by using a change token that has already been used.
   772  //
   773  //   * InternalErrorException
   774  //   The operation failed because of a system problem, even though the request
   775  //   was valid. Retry your request.
   776  //
   777  //   * DisallowedNameException
   778  //   The name specified is invalid.
   779  //
   780  //   * LimitsExceededException
   781  //   The operation exceeds a resource limit, for example, the maximum number of
   782  //   WebACL objects that you can create for an AWS account. For more information,
   783  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
   784  //   in the AWS WAF Developer Guide.
   785  //
   786  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexMatchSet
   787  func (c *WAF) CreateRegexMatchSet(input *CreateRegexMatchSetInput) (*CreateRegexMatchSetOutput, error) {
   788  	req, out := c.CreateRegexMatchSetRequest(input)
   789  	return out, req.Send()
   790  }
   791  
   792  // CreateRegexMatchSetWithContext is the same as CreateRegexMatchSet with the addition of
   793  // the ability to pass a context and additional request options.
   794  //
   795  // See CreateRegexMatchSet for details on how to use this API operation.
   796  //
   797  // The context must be non-nil and will be used for request cancellation. If
   798  // the context is nil a panic will occur. In the future the SDK may create
   799  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   800  // for more information on using Contexts.
   801  func (c *WAF) CreateRegexMatchSetWithContext(ctx aws.Context, input *CreateRegexMatchSetInput, opts ...request.Option) (*CreateRegexMatchSetOutput, error) {
   802  	req, out := c.CreateRegexMatchSetRequest(input)
   803  	req.SetContext(ctx)
   804  	req.ApplyOptions(opts...)
   805  	return out, req.Send()
   806  }
   807  
   808  const opCreateRegexPatternSet = "CreateRegexPatternSet"
   809  
   810  // CreateRegexPatternSetRequest generates a "aws/request.Request" representing the
   811  // client's request for the CreateRegexPatternSet operation. The "output" return
   812  // value will be populated with the request's response once the request completes
   813  // successfully.
   814  //
   815  // Use "Send" method on the returned Request to send the API call to the service.
   816  // the "output" return value is not valid until after Send returns without error.
   817  //
   818  // See CreateRegexPatternSet for more information on using the CreateRegexPatternSet
   819  // API call, and error handling.
   820  //
   821  // This method is useful when you want to inject custom logic or configuration
   822  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   823  //
   824  //
   825  //    // Example sending a request using the CreateRegexPatternSetRequest method.
   826  //    req, resp := client.CreateRegexPatternSetRequest(params)
   827  //
   828  //    err := req.Send()
   829  //    if err == nil { // resp is now filled
   830  //        fmt.Println(resp)
   831  //    }
   832  //
   833  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexPatternSet
   834  func (c *WAF) CreateRegexPatternSetRequest(input *CreateRegexPatternSetInput) (req *request.Request, output *CreateRegexPatternSetOutput) {
   835  	op := &request.Operation{
   836  		Name:       opCreateRegexPatternSet,
   837  		HTTPMethod: "POST",
   838  		HTTPPath:   "/",
   839  	}
   840  
   841  	if input == nil {
   842  		input = &CreateRegexPatternSetInput{}
   843  	}
   844  
   845  	output = &CreateRegexPatternSetOutput{}
   846  	req = c.newRequest(op, input, output)
   847  	return
   848  }
   849  
   850  // CreateRegexPatternSet API operation for AWS WAF.
   851  //
   852  //
   853  // This is AWS WAF Classic documentation. For more information, see AWS WAF
   854  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
   855  // in the developer guide.
   856  //
   857  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
   858  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
   859  // With the latest version, AWS WAF has a single set of endpoints for regional
   860  // and global use.
   861  //
   862  // Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify
   863  // the regular expression (regex) pattern that you want AWS WAF to search for,
   864  // such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.
   865  //
   866  // To create and configure a RegexPatternSet, perform the following steps:
   867  //
   868  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   869  // parameter of a CreateRegexPatternSet request.
   870  //
   871  // Submit a CreateRegexPatternSet request.
   872  //
   873  // Use GetChangeToken to get the change token that you provide in the ChangeToken
   874  // parameter of an UpdateRegexPatternSet request.
   875  //
   876  // Submit an UpdateRegexPatternSet request to specify the string that you want
   877  // AWS WAF to watch for.
   878  //
   879  // For more information about how to use the AWS WAF API to allow or block HTTP
   880  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
   881  //
   882  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
   883  // with awserr.Error's Code and Message methods to get detailed information about
   884  // the error.
   885  //
   886  // See the AWS API reference guide for AWS WAF's
   887  // API operation CreateRegexPatternSet for usage and error information.
   888  //
   889  // Returned Error Types:
   890  //   * StaleDataException
   891  //   The operation failed because you tried to create, update, or delete an object
   892  //   by using a change token that has already been used.
   893  //
   894  //   * InternalErrorException
   895  //   The operation failed because of a system problem, even though the request
   896  //   was valid. Retry your request.
   897  //
   898  //   * DisallowedNameException
   899  //   The name specified is invalid.
   900  //
   901  //   * LimitsExceededException
   902  //   The operation exceeds a resource limit, for example, the maximum number of
   903  //   WebACL objects that you can create for an AWS account. For more information,
   904  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
   905  //   in the AWS WAF Developer Guide.
   906  //
   907  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRegexPatternSet
   908  func (c *WAF) CreateRegexPatternSet(input *CreateRegexPatternSetInput) (*CreateRegexPatternSetOutput, error) {
   909  	req, out := c.CreateRegexPatternSetRequest(input)
   910  	return out, req.Send()
   911  }
   912  
   913  // CreateRegexPatternSetWithContext is the same as CreateRegexPatternSet with the addition of
   914  // the ability to pass a context and additional request options.
   915  //
   916  // See CreateRegexPatternSet for details on how to use this API operation.
   917  //
   918  // The context must be non-nil and will be used for request cancellation. If
   919  // the context is nil a panic will occur. In the future the SDK may create
   920  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
   921  // for more information on using Contexts.
   922  func (c *WAF) CreateRegexPatternSetWithContext(ctx aws.Context, input *CreateRegexPatternSetInput, opts ...request.Option) (*CreateRegexPatternSetOutput, error) {
   923  	req, out := c.CreateRegexPatternSetRequest(input)
   924  	req.SetContext(ctx)
   925  	req.ApplyOptions(opts...)
   926  	return out, req.Send()
   927  }
   928  
   929  const opCreateRule = "CreateRule"
   930  
   931  // CreateRuleRequest generates a "aws/request.Request" representing the
   932  // client's request for the CreateRule operation. The "output" return
   933  // value will be populated with the request's response once the request completes
   934  // successfully.
   935  //
   936  // Use "Send" method on the returned Request to send the API call to the service.
   937  // the "output" return value is not valid until after Send returns without error.
   938  //
   939  // See CreateRule for more information on using the CreateRule
   940  // API call, and error handling.
   941  //
   942  // This method is useful when you want to inject custom logic or configuration
   943  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
   944  //
   945  //
   946  //    // Example sending a request using the CreateRuleRequest method.
   947  //    req, resp := client.CreateRuleRequest(params)
   948  //
   949  //    err := req.Send()
   950  //    if err == nil { // resp is now filled
   951  //        fmt.Println(resp)
   952  //    }
   953  //
   954  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRule
   955  func (c *WAF) CreateRuleRequest(input *CreateRuleInput) (req *request.Request, output *CreateRuleOutput) {
   956  	op := &request.Operation{
   957  		Name:       opCreateRule,
   958  		HTTPMethod: "POST",
   959  		HTTPPath:   "/",
   960  	}
   961  
   962  	if input == nil {
   963  		input = &CreateRuleInput{}
   964  	}
   965  
   966  	output = &CreateRuleOutput{}
   967  	req = c.newRequest(op, input, output)
   968  	return
   969  }
   970  
   971  // CreateRule API operation for AWS WAF.
   972  //
   973  //
   974  // This is AWS WAF Classic documentation. For more information, see AWS WAF
   975  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
   976  // in the developer guide.
   977  //
   978  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
   979  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
   980  // With the latest version, AWS WAF has a single set of endpoints for regional
   981  // and global use.
   982  //
   983  // Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and
   984  // other predicates that identify the requests that you want to block. If you
   985  // add more than one predicate to a Rule, a request must match all of the specifications
   986  // to be allowed or blocked. For example, suppose that you add the following
   987  // to a Rule:
   988  //
   989  //    * An IPSet that matches the IP address 192.0.2.44/32
   990  //
   991  //    * A ByteMatchSet that matches BadBot in the User-Agent header
   992  //
   993  // You then add the Rule to a WebACL and specify that you want to blocks requests
   994  // that satisfy the Rule. For a request to be blocked, it must come from the
   995  // IP address 192.0.2.44 and the User-Agent header in the request must contain
   996  // the value BadBot.
   997  //
   998  // To create and configure a Rule, perform the following steps:
   999  //
  1000  // Create and update the predicates that you want to include in the Rule. For
  1001  // more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.
  1002  //
  1003  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1004  // parameter of a CreateRule request.
  1005  //
  1006  // Submit a CreateRule request.
  1007  //
  1008  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1009  // parameter of an UpdateRule request.
  1010  //
  1011  // Submit an UpdateRule request to specify the predicates that you want to include
  1012  // in the Rule.
  1013  //
  1014  // Create and update a WebACL that contains the Rule. For more information,
  1015  // see CreateWebACL.
  1016  //
  1017  // For more information about how to use the AWS WAF API to allow or block HTTP
  1018  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  1019  //
  1020  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1021  // with awserr.Error's Code and Message methods to get detailed information about
  1022  // the error.
  1023  //
  1024  // See the AWS API reference guide for AWS WAF's
  1025  // API operation CreateRule for usage and error information.
  1026  //
  1027  // Returned Error Types:
  1028  //   * StaleDataException
  1029  //   The operation failed because you tried to create, update, or delete an object
  1030  //   by using a change token that has already been used.
  1031  //
  1032  //   * InternalErrorException
  1033  //   The operation failed because of a system problem, even though the request
  1034  //   was valid. Retry your request.
  1035  //
  1036  //   * DisallowedNameException
  1037  //   The name specified is invalid.
  1038  //
  1039  //   * InvalidParameterException
  1040  //   The operation failed because AWS WAF didn't recognize a parameter in the
  1041  //   request. For example:
  1042  //
  1043  //      * You specified an invalid parameter name.
  1044  //
  1045  //      * You specified an invalid value.
  1046  //
  1047  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  1048  //      using an action other than INSERT or DELETE.
  1049  //
  1050  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  1051  //      BLOCK, or COUNT.
  1052  //
  1053  //      * You tried to create a RateBasedRule with a RateKey value other than
  1054  //      IP.
  1055  //
  1056  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  1057  //      BLOCK, or COUNT.
  1058  //
  1059  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  1060  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  1061  //
  1062  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  1063  //      for Data.
  1064  //
  1065  //      * Your request references an ARN that is malformed, or corresponds to
  1066  //      a resource with which a web ACL cannot be associated.
  1067  //
  1068  //   * LimitsExceededException
  1069  //   The operation exceeds a resource limit, for example, the maximum number of
  1070  //   WebACL objects that you can create for an AWS account. For more information,
  1071  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  1072  //   in the AWS WAF Developer Guide.
  1073  //
  1074  //   * TagOperationException
  1075  //
  1076  //   * TagOperationInternalErrorException
  1077  //
  1078  //   * BadRequestException
  1079  //
  1080  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRule
  1081  func (c *WAF) CreateRule(input *CreateRuleInput) (*CreateRuleOutput, error) {
  1082  	req, out := c.CreateRuleRequest(input)
  1083  	return out, req.Send()
  1084  }
  1085  
  1086  // CreateRuleWithContext is the same as CreateRule with the addition of
  1087  // the ability to pass a context and additional request options.
  1088  //
  1089  // See CreateRule for details on how to use this API operation.
  1090  //
  1091  // The context must be non-nil and will be used for request cancellation. If
  1092  // the context is nil a panic will occur. In the future the SDK may create
  1093  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1094  // for more information on using Contexts.
  1095  func (c *WAF) CreateRuleWithContext(ctx aws.Context, input *CreateRuleInput, opts ...request.Option) (*CreateRuleOutput, error) {
  1096  	req, out := c.CreateRuleRequest(input)
  1097  	req.SetContext(ctx)
  1098  	req.ApplyOptions(opts...)
  1099  	return out, req.Send()
  1100  }
  1101  
  1102  const opCreateRuleGroup = "CreateRuleGroup"
  1103  
  1104  // CreateRuleGroupRequest generates a "aws/request.Request" representing the
  1105  // client's request for the CreateRuleGroup operation. The "output" return
  1106  // value will be populated with the request's response once the request completes
  1107  // successfully.
  1108  //
  1109  // Use "Send" method on the returned Request to send the API call to the service.
  1110  // the "output" return value is not valid until after Send returns without error.
  1111  //
  1112  // See CreateRuleGroup for more information on using the CreateRuleGroup
  1113  // API call, and error handling.
  1114  //
  1115  // This method is useful when you want to inject custom logic or configuration
  1116  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1117  //
  1118  //
  1119  //    // Example sending a request using the CreateRuleGroupRequest method.
  1120  //    req, resp := client.CreateRuleGroupRequest(params)
  1121  //
  1122  //    err := req.Send()
  1123  //    if err == nil { // resp is now filled
  1124  //        fmt.Println(resp)
  1125  //    }
  1126  //
  1127  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleGroup
  1128  func (c *WAF) CreateRuleGroupRequest(input *CreateRuleGroupInput) (req *request.Request, output *CreateRuleGroupOutput) {
  1129  	op := &request.Operation{
  1130  		Name:       opCreateRuleGroup,
  1131  		HTTPMethod: "POST",
  1132  		HTTPPath:   "/",
  1133  	}
  1134  
  1135  	if input == nil {
  1136  		input = &CreateRuleGroupInput{}
  1137  	}
  1138  
  1139  	output = &CreateRuleGroupOutput{}
  1140  	req = c.newRequest(op, input, output)
  1141  	return
  1142  }
  1143  
  1144  // CreateRuleGroup API operation for AWS WAF.
  1145  //
  1146  //
  1147  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  1148  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  1149  // in the developer guide.
  1150  //
  1151  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  1152  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  1153  // With the latest version, AWS WAF has a single set of endpoints for regional
  1154  // and global use.
  1155  //
  1156  // Creates a RuleGroup. A rule group is a collection of predefined rules that
  1157  // you add to a web ACL. You use UpdateRuleGroup to add rules to the rule group.
  1158  //
  1159  // Rule groups are subject to the following limits:
  1160  //
  1161  //    * Three rule groups per account. You can request an increase to this limit
  1162  //    by contacting customer support.
  1163  //
  1164  //    * One rule group per web ACL.
  1165  //
  1166  //    * Ten rules per rule group.
  1167  //
  1168  // For more information about how to use the AWS WAF API to allow or block HTTP
  1169  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  1170  //
  1171  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1172  // with awserr.Error's Code and Message methods to get detailed information about
  1173  // the error.
  1174  //
  1175  // See the AWS API reference guide for AWS WAF's
  1176  // API operation CreateRuleGroup for usage and error information.
  1177  //
  1178  // Returned Error Types:
  1179  //   * StaleDataException
  1180  //   The operation failed because you tried to create, update, or delete an object
  1181  //   by using a change token that has already been used.
  1182  //
  1183  //   * InternalErrorException
  1184  //   The operation failed because of a system problem, even though the request
  1185  //   was valid. Retry your request.
  1186  //
  1187  //   * DisallowedNameException
  1188  //   The name specified is invalid.
  1189  //
  1190  //   * LimitsExceededException
  1191  //   The operation exceeds a resource limit, for example, the maximum number of
  1192  //   WebACL objects that you can create for an AWS account. For more information,
  1193  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  1194  //   in the AWS WAF Developer Guide.
  1195  //
  1196  //   * TagOperationException
  1197  //
  1198  //   * TagOperationInternalErrorException
  1199  //
  1200  //   * BadRequestException
  1201  //
  1202  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateRuleGroup
  1203  func (c *WAF) CreateRuleGroup(input *CreateRuleGroupInput) (*CreateRuleGroupOutput, error) {
  1204  	req, out := c.CreateRuleGroupRequest(input)
  1205  	return out, req.Send()
  1206  }
  1207  
  1208  // CreateRuleGroupWithContext is the same as CreateRuleGroup with the addition of
  1209  // the ability to pass a context and additional request options.
  1210  //
  1211  // See CreateRuleGroup for details on how to use this API operation.
  1212  //
  1213  // The context must be non-nil and will be used for request cancellation. If
  1214  // the context is nil a panic will occur. In the future the SDK may create
  1215  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1216  // for more information on using Contexts.
  1217  func (c *WAF) CreateRuleGroupWithContext(ctx aws.Context, input *CreateRuleGroupInput, opts ...request.Option) (*CreateRuleGroupOutput, error) {
  1218  	req, out := c.CreateRuleGroupRequest(input)
  1219  	req.SetContext(ctx)
  1220  	req.ApplyOptions(opts...)
  1221  	return out, req.Send()
  1222  }
  1223  
  1224  const opCreateSizeConstraintSet = "CreateSizeConstraintSet"
  1225  
  1226  // CreateSizeConstraintSetRequest generates a "aws/request.Request" representing the
  1227  // client's request for the CreateSizeConstraintSet operation. The "output" return
  1228  // value will be populated with the request's response once the request completes
  1229  // successfully.
  1230  //
  1231  // Use "Send" method on the returned Request to send the API call to the service.
  1232  // the "output" return value is not valid until after Send returns without error.
  1233  //
  1234  // See CreateSizeConstraintSet for more information on using the CreateSizeConstraintSet
  1235  // API call, and error handling.
  1236  //
  1237  // This method is useful when you want to inject custom logic or configuration
  1238  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1239  //
  1240  //
  1241  //    // Example sending a request using the CreateSizeConstraintSetRequest method.
  1242  //    req, resp := client.CreateSizeConstraintSetRequest(params)
  1243  //
  1244  //    err := req.Send()
  1245  //    if err == nil { // resp is now filled
  1246  //        fmt.Println(resp)
  1247  //    }
  1248  //
  1249  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSet
  1250  func (c *WAF) CreateSizeConstraintSetRequest(input *CreateSizeConstraintSetInput) (req *request.Request, output *CreateSizeConstraintSetOutput) {
  1251  	op := &request.Operation{
  1252  		Name:       opCreateSizeConstraintSet,
  1253  		HTTPMethod: "POST",
  1254  		HTTPPath:   "/",
  1255  	}
  1256  
  1257  	if input == nil {
  1258  		input = &CreateSizeConstraintSetInput{}
  1259  	}
  1260  
  1261  	output = &CreateSizeConstraintSetOutput{}
  1262  	req = c.newRequest(op, input, output)
  1263  	return
  1264  }
  1265  
  1266  // CreateSizeConstraintSet API operation for AWS WAF.
  1267  //
  1268  //
  1269  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  1270  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  1271  // in the developer guide.
  1272  //
  1273  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  1274  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  1275  // With the latest version, AWS WAF has a single set of endpoints for regional
  1276  // and global use.
  1277  //
  1278  // Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify
  1279  // the part of a web request that you want AWS WAF to check for length, such
  1280  // as the length of the User-Agent header or the length of the query string.
  1281  // For example, you can create a SizeConstraintSet that matches any requests
  1282  // that have a query string that is longer than 100 bytes. You can then configure
  1283  // AWS WAF to reject those requests.
  1284  //
  1285  // To create and configure a SizeConstraintSet, perform the following steps:
  1286  //
  1287  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1288  // parameter of a CreateSizeConstraintSet request.
  1289  //
  1290  // Submit a CreateSizeConstraintSet request.
  1291  //
  1292  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1293  // parameter of an UpdateSizeConstraintSet request.
  1294  //
  1295  // Submit an UpdateSizeConstraintSet request to specify the part of the request
  1296  // that you want AWS WAF to inspect (for example, the header or the URI) and
  1297  // the value that you want AWS WAF to watch for.
  1298  //
  1299  // For more information about how to use the AWS WAF API to allow or block HTTP
  1300  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  1301  //
  1302  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1303  // with awserr.Error's Code and Message methods to get detailed information about
  1304  // the error.
  1305  //
  1306  // See the AWS API reference guide for AWS WAF's
  1307  // API operation CreateSizeConstraintSet for usage and error information.
  1308  //
  1309  // Returned Error Types:
  1310  //   * StaleDataException
  1311  //   The operation failed because you tried to create, update, or delete an object
  1312  //   by using a change token that has already been used.
  1313  //
  1314  //   * InternalErrorException
  1315  //   The operation failed because of a system problem, even though the request
  1316  //   was valid. Retry your request.
  1317  //
  1318  //   * InvalidAccountException
  1319  //   The operation failed because you tried to create, update, or delete an object
  1320  //   by using an invalid account identifier.
  1321  //
  1322  //   * DisallowedNameException
  1323  //   The name specified is invalid.
  1324  //
  1325  //   * InvalidParameterException
  1326  //   The operation failed because AWS WAF didn't recognize a parameter in the
  1327  //   request. For example:
  1328  //
  1329  //      * You specified an invalid parameter name.
  1330  //
  1331  //      * You specified an invalid value.
  1332  //
  1333  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  1334  //      using an action other than INSERT or DELETE.
  1335  //
  1336  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  1337  //      BLOCK, or COUNT.
  1338  //
  1339  //      * You tried to create a RateBasedRule with a RateKey value other than
  1340  //      IP.
  1341  //
  1342  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  1343  //      BLOCK, or COUNT.
  1344  //
  1345  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  1346  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  1347  //
  1348  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  1349  //      for Data.
  1350  //
  1351  //      * Your request references an ARN that is malformed, or corresponds to
  1352  //      a resource with which a web ACL cannot be associated.
  1353  //
  1354  //   * LimitsExceededException
  1355  //   The operation exceeds a resource limit, for example, the maximum number of
  1356  //   WebACL objects that you can create for an AWS account. For more information,
  1357  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  1358  //   in the AWS WAF Developer Guide.
  1359  //
  1360  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSizeConstraintSet
  1361  func (c *WAF) CreateSizeConstraintSet(input *CreateSizeConstraintSetInput) (*CreateSizeConstraintSetOutput, error) {
  1362  	req, out := c.CreateSizeConstraintSetRequest(input)
  1363  	return out, req.Send()
  1364  }
  1365  
  1366  // CreateSizeConstraintSetWithContext is the same as CreateSizeConstraintSet with the addition of
  1367  // the ability to pass a context and additional request options.
  1368  //
  1369  // See CreateSizeConstraintSet for details on how to use this API operation.
  1370  //
  1371  // The context must be non-nil and will be used for request cancellation. If
  1372  // the context is nil a panic will occur. In the future the SDK may create
  1373  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1374  // for more information on using Contexts.
  1375  func (c *WAF) CreateSizeConstraintSetWithContext(ctx aws.Context, input *CreateSizeConstraintSetInput, opts ...request.Option) (*CreateSizeConstraintSetOutput, error) {
  1376  	req, out := c.CreateSizeConstraintSetRequest(input)
  1377  	req.SetContext(ctx)
  1378  	req.ApplyOptions(opts...)
  1379  	return out, req.Send()
  1380  }
  1381  
  1382  const opCreateSqlInjectionMatchSet = "CreateSqlInjectionMatchSet"
  1383  
  1384  // CreateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
  1385  // client's request for the CreateSqlInjectionMatchSet operation. The "output" return
  1386  // value will be populated with the request's response once the request completes
  1387  // successfully.
  1388  //
  1389  // Use "Send" method on the returned Request to send the API call to the service.
  1390  // the "output" return value is not valid until after Send returns without error.
  1391  //
  1392  // See CreateSqlInjectionMatchSet for more information on using the CreateSqlInjectionMatchSet
  1393  // API call, and error handling.
  1394  //
  1395  // This method is useful when you want to inject custom logic or configuration
  1396  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1397  //
  1398  //
  1399  //    // Example sending a request using the CreateSqlInjectionMatchSetRequest method.
  1400  //    req, resp := client.CreateSqlInjectionMatchSetRequest(params)
  1401  //
  1402  //    err := req.Send()
  1403  //    if err == nil { // resp is now filled
  1404  //        fmt.Println(resp)
  1405  //    }
  1406  //
  1407  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSet
  1408  func (c *WAF) CreateSqlInjectionMatchSetRequest(input *CreateSqlInjectionMatchSetInput) (req *request.Request, output *CreateSqlInjectionMatchSetOutput) {
  1409  	op := &request.Operation{
  1410  		Name:       opCreateSqlInjectionMatchSet,
  1411  		HTTPMethod: "POST",
  1412  		HTTPPath:   "/",
  1413  	}
  1414  
  1415  	if input == nil {
  1416  		input = &CreateSqlInjectionMatchSetInput{}
  1417  	}
  1418  
  1419  	output = &CreateSqlInjectionMatchSetOutput{}
  1420  	req = c.newRequest(op, input, output)
  1421  	return
  1422  }
  1423  
  1424  // CreateSqlInjectionMatchSet API operation for AWS WAF.
  1425  //
  1426  //
  1427  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  1428  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  1429  // in the developer guide.
  1430  //
  1431  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  1432  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  1433  // With the latest version, AWS WAF has a single set of endpoints for regional
  1434  // and global use.
  1435  //
  1436  // Creates a SqlInjectionMatchSet, which you use to allow, block, or count requests
  1437  // that contain snippets of SQL code in a specified part of web requests. AWS
  1438  // WAF searches for character sequences that are likely to be malicious strings.
  1439  //
  1440  // To create and configure a SqlInjectionMatchSet, perform the following steps:
  1441  //
  1442  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1443  // parameter of a CreateSqlInjectionMatchSet request.
  1444  //
  1445  // Submit a CreateSqlInjectionMatchSet request.
  1446  //
  1447  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1448  // parameter of an UpdateSqlInjectionMatchSet request.
  1449  //
  1450  // Submit an UpdateSqlInjectionMatchSet request to specify the parts of web
  1451  // requests in which you want to allow, block, or count malicious SQL code.
  1452  //
  1453  // For more information about how to use the AWS WAF API to allow or block HTTP
  1454  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  1455  //
  1456  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1457  // with awserr.Error's Code and Message methods to get detailed information about
  1458  // the error.
  1459  //
  1460  // See the AWS API reference guide for AWS WAF's
  1461  // API operation CreateSqlInjectionMatchSet for usage and error information.
  1462  //
  1463  // Returned Error Types:
  1464  //   * DisallowedNameException
  1465  //   The name specified is invalid.
  1466  //
  1467  //   * InternalErrorException
  1468  //   The operation failed because of a system problem, even though the request
  1469  //   was valid. Retry your request.
  1470  //
  1471  //   * InvalidAccountException
  1472  //   The operation failed because you tried to create, update, or delete an object
  1473  //   by using an invalid account identifier.
  1474  //
  1475  //   * InvalidParameterException
  1476  //   The operation failed because AWS WAF didn't recognize a parameter in the
  1477  //   request. For example:
  1478  //
  1479  //      * You specified an invalid parameter name.
  1480  //
  1481  //      * You specified an invalid value.
  1482  //
  1483  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  1484  //      using an action other than INSERT or DELETE.
  1485  //
  1486  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  1487  //      BLOCK, or COUNT.
  1488  //
  1489  //      * You tried to create a RateBasedRule with a RateKey value other than
  1490  //      IP.
  1491  //
  1492  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  1493  //      BLOCK, or COUNT.
  1494  //
  1495  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  1496  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  1497  //
  1498  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  1499  //      for Data.
  1500  //
  1501  //      * Your request references an ARN that is malformed, or corresponds to
  1502  //      a resource with which a web ACL cannot be associated.
  1503  //
  1504  //   * StaleDataException
  1505  //   The operation failed because you tried to create, update, or delete an object
  1506  //   by using a change token that has already been used.
  1507  //
  1508  //   * LimitsExceededException
  1509  //   The operation exceeds a resource limit, for example, the maximum number of
  1510  //   WebACL objects that you can create for an AWS account. For more information,
  1511  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  1512  //   in the AWS WAF Developer Guide.
  1513  //
  1514  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateSqlInjectionMatchSet
  1515  func (c *WAF) CreateSqlInjectionMatchSet(input *CreateSqlInjectionMatchSetInput) (*CreateSqlInjectionMatchSetOutput, error) {
  1516  	req, out := c.CreateSqlInjectionMatchSetRequest(input)
  1517  	return out, req.Send()
  1518  }
  1519  
  1520  // CreateSqlInjectionMatchSetWithContext is the same as CreateSqlInjectionMatchSet with the addition of
  1521  // the ability to pass a context and additional request options.
  1522  //
  1523  // See CreateSqlInjectionMatchSet for details on how to use this API operation.
  1524  //
  1525  // The context must be non-nil and will be used for request cancellation. If
  1526  // the context is nil a panic will occur. In the future the SDK may create
  1527  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1528  // for more information on using Contexts.
  1529  func (c *WAF) CreateSqlInjectionMatchSetWithContext(ctx aws.Context, input *CreateSqlInjectionMatchSetInput, opts ...request.Option) (*CreateSqlInjectionMatchSetOutput, error) {
  1530  	req, out := c.CreateSqlInjectionMatchSetRequest(input)
  1531  	req.SetContext(ctx)
  1532  	req.ApplyOptions(opts...)
  1533  	return out, req.Send()
  1534  }
  1535  
  1536  const opCreateWebACL = "CreateWebACL"
  1537  
  1538  // CreateWebACLRequest generates a "aws/request.Request" representing the
  1539  // client's request for the CreateWebACL operation. The "output" return
  1540  // value will be populated with the request's response once the request completes
  1541  // successfully.
  1542  //
  1543  // Use "Send" method on the returned Request to send the API call to the service.
  1544  // the "output" return value is not valid until after Send returns without error.
  1545  //
  1546  // See CreateWebACL for more information on using the CreateWebACL
  1547  // API call, and error handling.
  1548  //
  1549  // This method is useful when you want to inject custom logic or configuration
  1550  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1551  //
  1552  //
  1553  //    // Example sending a request using the CreateWebACLRequest method.
  1554  //    req, resp := client.CreateWebACLRequest(params)
  1555  //
  1556  //    err := req.Send()
  1557  //    if err == nil { // resp is now filled
  1558  //        fmt.Println(resp)
  1559  //    }
  1560  //
  1561  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACL
  1562  func (c *WAF) CreateWebACLRequest(input *CreateWebACLInput) (req *request.Request, output *CreateWebACLOutput) {
  1563  	op := &request.Operation{
  1564  		Name:       opCreateWebACL,
  1565  		HTTPMethod: "POST",
  1566  		HTTPPath:   "/",
  1567  	}
  1568  
  1569  	if input == nil {
  1570  		input = &CreateWebACLInput{}
  1571  	}
  1572  
  1573  	output = &CreateWebACLOutput{}
  1574  	req = c.newRequest(op, input, output)
  1575  	return
  1576  }
  1577  
  1578  // CreateWebACL API operation for AWS WAF.
  1579  //
  1580  //
  1581  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  1582  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  1583  // in the developer guide.
  1584  //
  1585  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  1586  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  1587  // With the latest version, AWS WAF has a single set of endpoints for regional
  1588  // and global use.
  1589  //
  1590  // Creates a WebACL, which contains the Rules that identify the CloudFront web
  1591  // requests that you want to allow, block, or count. AWS WAF evaluates Rules
  1592  // in order based on the value of Priority for each Rule.
  1593  //
  1594  // You also specify a default action, either ALLOW or BLOCK. If a web request
  1595  // doesn't match any of the Rules in a WebACL, AWS WAF responds to the request
  1596  // with the default action.
  1597  //
  1598  // To create and configure a WebACL, perform the following steps:
  1599  //
  1600  // Create and update the ByteMatchSet objects and other predicates that you
  1601  // want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet,
  1602  // CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.
  1603  //
  1604  // Create and update the Rules that you want to include in the WebACL. For more
  1605  // information, see CreateRule and UpdateRule.
  1606  //
  1607  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1608  // parameter of a CreateWebACL request.
  1609  //
  1610  // Submit a CreateWebACL request.
  1611  //
  1612  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1613  // parameter of an UpdateWebACL request.
  1614  //
  1615  // Submit an UpdateWebACL request to specify the Rules that you want to include
  1616  // in the WebACL, to specify the default action, and to associate the WebACL
  1617  // with a CloudFront distribution.
  1618  //
  1619  // For more information about how to use the AWS WAF API, see the AWS WAF Developer
  1620  // Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  1621  //
  1622  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1623  // with awserr.Error's Code and Message methods to get detailed information about
  1624  // the error.
  1625  //
  1626  // See the AWS API reference guide for AWS WAF's
  1627  // API operation CreateWebACL for usage and error information.
  1628  //
  1629  // Returned Error Types:
  1630  //   * StaleDataException
  1631  //   The operation failed because you tried to create, update, or delete an object
  1632  //   by using a change token that has already been used.
  1633  //
  1634  //   * InternalErrorException
  1635  //   The operation failed because of a system problem, even though the request
  1636  //   was valid. Retry your request.
  1637  //
  1638  //   * InvalidAccountException
  1639  //   The operation failed because you tried to create, update, or delete an object
  1640  //   by using an invalid account identifier.
  1641  //
  1642  //   * DisallowedNameException
  1643  //   The name specified is invalid.
  1644  //
  1645  //   * InvalidParameterException
  1646  //   The operation failed because AWS WAF didn't recognize a parameter in the
  1647  //   request. For example:
  1648  //
  1649  //      * You specified an invalid parameter name.
  1650  //
  1651  //      * You specified an invalid value.
  1652  //
  1653  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  1654  //      using an action other than INSERT or DELETE.
  1655  //
  1656  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  1657  //      BLOCK, or COUNT.
  1658  //
  1659  //      * You tried to create a RateBasedRule with a RateKey value other than
  1660  //      IP.
  1661  //
  1662  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  1663  //      BLOCK, or COUNT.
  1664  //
  1665  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  1666  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  1667  //
  1668  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  1669  //      for Data.
  1670  //
  1671  //      * Your request references an ARN that is malformed, or corresponds to
  1672  //      a resource with which a web ACL cannot be associated.
  1673  //
  1674  //   * LimitsExceededException
  1675  //   The operation exceeds a resource limit, for example, the maximum number of
  1676  //   WebACL objects that you can create for an AWS account. For more information,
  1677  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  1678  //   in the AWS WAF Developer Guide.
  1679  //
  1680  //   * TagOperationException
  1681  //
  1682  //   * TagOperationInternalErrorException
  1683  //
  1684  //   * BadRequestException
  1685  //
  1686  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACL
  1687  func (c *WAF) CreateWebACL(input *CreateWebACLInput) (*CreateWebACLOutput, error) {
  1688  	req, out := c.CreateWebACLRequest(input)
  1689  	return out, req.Send()
  1690  }
  1691  
  1692  // CreateWebACLWithContext is the same as CreateWebACL with the addition of
  1693  // the ability to pass a context and additional request options.
  1694  //
  1695  // See CreateWebACL for details on how to use this API operation.
  1696  //
  1697  // The context must be non-nil and will be used for request cancellation. If
  1698  // the context is nil a panic will occur. In the future the SDK may create
  1699  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1700  // for more information on using Contexts.
  1701  func (c *WAF) CreateWebACLWithContext(ctx aws.Context, input *CreateWebACLInput, opts ...request.Option) (*CreateWebACLOutput, error) {
  1702  	req, out := c.CreateWebACLRequest(input)
  1703  	req.SetContext(ctx)
  1704  	req.ApplyOptions(opts...)
  1705  	return out, req.Send()
  1706  }
  1707  
  1708  const opCreateWebACLMigrationStack = "CreateWebACLMigrationStack"
  1709  
  1710  // CreateWebACLMigrationStackRequest generates a "aws/request.Request" representing the
  1711  // client's request for the CreateWebACLMigrationStack operation. The "output" return
  1712  // value will be populated with the request's response once the request completes
  1713  // successfully.
  1714  //
  1715  // Use "Send" method on the returned Request to send the API call to the service.
  1716  // the "output" return value is not valid until after Send returns without error.
  1717  //
  1718  // See CreateWebACLMigrationStack for more information on using the CreateWebACLMigrationStack
  1719  // API call, and error handling.
  1720  //
  1721  // This method is useful when you want to inject custom logic or configuration
  1722  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1723  //
  1724  //
  1725  //    // Example sending a request using the CreateWebACLMigrationStackRequest method.
  1726  //    req, resp := client.CreateWebACLMigrationStackRequest(params)
  1727  //
  1728  //    err := req.Send()
  1729  //    if err == nil { // resp is now filled
  1730  //        fmt.Println(resp)
  1731  //    }
  1732  //
  1733  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACLMigrationStack
  1734  func (c *WAF) CreateWebACLMigrationStackRequest(input *CreateWebACLMigrationStackInput) (req *request.Request, output *CreateWebACLMigrationStackOutput) {
  1735  	op := &request.Operation{
  1736  		Name:       opCreateWebACLMigrationStack,
  1737  		HTTPMethod: "POST",
  1738  		HTTPPath:   "/",
  1739  	}
  1740  
  1741  	if input == nil {
  1742  		input = &CreateWebACLMigrationStackInput{}
  1743  	}
  1744  
  1745  	output = &CreateWebACLMigrationStackOutput{}
  1746  	req = c.newRequest(op, input, output)
  1747  	return
  1748  }
  1749  
  1750  // CreateWebACLMigrationStack API operation for AWS WAF.
  1751  //
  1752  // Creates an AWS CloudFormation WAFV2 template for the specified web ACL in
  1753  // the specified Amazon S3 bucket. Then, in CloudFormation, you create a stack
  1754  // from the template, to create the web ACL and its resources in AWS WAFV2.
  1755  // Use this to migrate your AWS WAF Classic web ACL to the latest version of
  1756  // AWS WAF.
  1757  //
  1758  // This is part of a larger migration procedure for web ACLs from AWS WAF Classic
  1759  // to the latest version of AWS WAF. For the full procedure, including caveats
  1760  // and manual steps to complete the migration and switch over to the new web
  1761  // ACL, see Migrating your AWS WAF Classic resources to AWS WAF (https://docs.aws.amazon.com/waf/latest/developerguide/waf-migrating-from-classic.html)
  1762  // in the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  1763  //
  1764  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1765  // with awserr.Error's Code and Message methods to get detailed information about
  1766  // the error.
  1767  //
  1768  // See the AWS API reference guide for AWS WAF's
  1769  // API operation CreateWebACLMigrationStack for usage and error information.
  1770  //
  1771  // Returned Error Types:
  1772  //   * InternalErrorException
  1773  //   The operation failed because of a system problem, even though the request
  1774  //   was valid. Retry your request.
  1775  //
  1776  //   * InvalidParameterException
  1777  //   The operation failed because AWS WAF didn't recognize a parameter in the
  1778  //   request. For example:
  1779  //
  1780  //      * You specified an invalid parameter name.
  1781  //
  1782  //      * You specified an invalid value.
  1783  //
  1784  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  1785  //      using an action other than INSERT or DELETE.
  1786  //
  1787  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  1788  //      BLOCK, or COUNT.
  1789  //
  1790  //      * You tried to create a RateBasedRule with a RateKey value other than
  1791  //      IP.
  1792  //
  1793  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  1794  //      BLOCK, or COUNT.
  1795  //
  1796  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  1797  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  1798  //
  1799  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  1800  //      for Data.
  1801  //
  1802  //      * Your request references an ARN that is malformed, or corresponds to
  1803  //      a resource with which a web ACL cannot be associated.
  1804  //
  1805  //   * InvalidOperationException
  1806  //   The operation failed because there was nothing to do. For example:
  1807  //
  1808  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  1809  //      specified WebACL.
  1810  //
  1811  //      * You tried to remove an IP address from an IPSet, but the IP address
  1812  //      isn't in the specified IPSet.
  1813  //
  1814  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  1815  //      isn't in the specified WebACL.
  1816  //
  1817  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  1818  //      the specified WebACL.
  1819  //
  1820  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  1821  //      already exists in the specified WebACL.
  1822  //
  1823  //   * NonexistentItemException
  1824  //   The operation failed because the referenced object doesn't exist.
  1825  //
  1826  //   * WAFEntityMigrationException
  1827  //   The operation failed due to a problem with the migration. The failure cause
  1828  //   is provided in the exception, in the MigrationErrorType:
  1829  //
  1830  //      * ENTITY_NOT_SUPPORTED - The web ACL has an unsupported entity but the
  1831  //      IgnoreUnsupportedType is not set to true.
  1832  //
  1833  //      * ENTITY_NOT_FOUND - The web ACL doesn't exist.
  1834  //
  1835  //      * S3_BUCKET_NO_PERMISSION - You don't have permission to perform the PutObject
  1836  //      action to the specified Amazon S3 bucket.
  1837  //
  1838  //      * S3_BUCKET_NOT_ACCESSIBLE - The bucket policy doesn't allow AWS WAF to
  1839  //      perform the PutObject action in the bucket.
  1840  //
  1841  //      * S3_BUCKET_NOT_FOUND - The S3 bucket doesn't exist.
  1842  //
  1843  //      * S3_BUCKET_INVALID_REGION - The S3 bucket is not in the same Region as
  1844  //      the web ACL.
  1845  //
  1846  //      * S3_INTERNAL_ERROR - AWS WAF failed to create the template in the S3
  1847  //      bucket for another reason.
  1848  //
  1849  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateWebACLMigrationStack
  1850  func (c *WAF) CreateWebACLMigrationStack(input *CreateWebACLMigrationStackInput) (*CreateWebACLMigrationStackOutput, error) {
  1851  	req, out := c.CreateWebACLMigrationStackRequest(input)
  1852  	return out, req.Send()
  1853  }
  1854  
  1855  // CreateWebACLMigrationStackWithContext is the same as CreateWebACLMigrationStack with the addition of
  1856  // the ability to pass a context and additional request options.
  1857  //
  1858  // See CreateWebACLMigrationStack for details on how to use this API operation.
  1859  //
  1860  // The context must be non-nil and will be used for request cancellation. If
  1861  // the context is nil a panic will occur. In the future the SDK may create
  1862  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  1863  // for more information on using Contexts.
  1864  func (c *WAF) CreateWebACLMigrationStackWithContext(ctx aws.Context, input *CreateWebACLMigrationStackInput, opts ...request.Option) (*CreateWebACLMigrationStackOutput, error) {
  1865  	req, out := c.CreateWebACLMigrationStackRequest(input)
  1866  	req.SetContext(ctx)
  1867  	req.ApplyOptions(opts...)
  1868  	return out, req.Send()
  1869  }
  1870  
  1871  const opCreateXssMatchSet = "CreateXssMatchSet"
  1872  
  1873  // CreateXssMatchSetRequest generates a "aws/request.Request" representing the
  1874  // client's request for the CreateXssMatchSet operation. The "output" return
  1875  // value will be populated with the request's response once the request completes
  1876  // successfully.
  1877  //
  1878  // Use "Send" method on the returned Request to send the API call to the service.
  1879  // the "output" return value is not valid until after Send returns without error.
  1880  //
  1881  // See CreateXssMatchSet for more information on using the CreateXssMatchSet
  1882  // API call, and error handling.
  1883  //
  1884  // This method is useful when you want to inject custom logic or configuration
  1885  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  1886  //
  1887  //
  1888  //    // Example sending a request using the CreateXssMatchSetRequest method.
  1889  //    req, resp := client.CreateXssMatchSetRequest(params)
  1890  //
  1891  //    err := req.Send()
  1892  //    if err == nil { // resp is now filled
  1893  //        fmt.Println(resp)
  1894  //    }
  1895  //
  1896  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSet
  1897  func (c *WAF) CreateXssMatchSetRequest(input *CreateXssMatchSetInput) (req *request.Request, output *CreateXssMatchSetOutput) {
  1898  	op := &request.Operation{
  1899  		Name:       opCreateXssMatchSet,
  1900  		HTTPMethod: "POST",
  1901  		HTTPPath:   "/",
  1902  	}
  1903  
  1904  	if input == nil {
  1905  		input = &CreateXssMatchSetInput{}
  1906  	}
  1907  
  1908  	output = &CreateXssMatchSetOutput{}
  1909  	req = c.newRequest(op, input, output)
  1910  	return
  1911  }
  1912  
  1913  // CreateXssMatchSet API operation for AWS WAF.
  1914  //
  1915  //
  1916  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  1917  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  1918  // in the developer guide.
  1919  //
  1920  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  1921  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  1922  // With the latest version, AWS WAF has a single set of endpoints for regional
  1923  // and global use.
  1924  //
  1925  // Creates an XssMatchSet, which you use to allow, block, or count requests
  1926  // that contain cross-site scripting attacks in the specified part of web requests.
  1927  // AWS WAF searches for character sequences that are likely to be malicious
  1928  // strings.
  1929  //
  1930  // To create and configure an XssMatchSet, perform the following steps:
  1931  //
  1932  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1933  // parameter of a CreateXssMatchSet request.
  1934  //
  1935  // Submit a CreateXssMatchSet request.
  1936  //
  1937  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  1938  // parameter of an UpdateXssMatchSet request.
  1939  //
  1940  // Submit an UpdateXssMatchSet request to specify the parts of web requests
  1941  // in which you want to allow, block, or count cross-site scripting attacks.
  1942  //
  1943  // For more information about how to use the AWS WAF API to allow or block HTTP
  1944  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  1945  //
  1946  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  1947  // with awserr.Error's Code and Message methods to get detailed information about
  1948  // the error.
  1949  //
  1950  // See the AWS API reference guide for AWS WAF's
  1951  // API operation CreateXssMatchSet for usage and error information.
  1952  //
  1953  // Returned Error Types:
  1954  //   * DisallowedNameException
  1955  //   The name specified is invalid.
  1956  //
  1957  //   * InternalErrorException
  1958  //   The operation failed because of a system problem, even though the request
  1959  //   was valid. Retry your request.
  1960  //
  1961  //   * InvalidAccountException
  1962  //   The operation failed because you tried to create, update, or delete an object
  1963  //   by using an invalid account identifier.
  1964  //
  1965  //   * InvalidParameterException
  1966  //   The operation failed because AWS WAF didn't recognize a parameter in the
  1967  //   request. For example:
  1968  //
  1969  //      * You specified an invalid parameter name.
  1970  //
  1971  //      * You specified an invalid value.
  1972  //
  1973  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  1974  //      using an action other than INSERT or DELETE.
  1975  //
  1976  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  1977  //      BLOCK, or COUNT.
  1978  //
  1979  //      * You tried to create a RateBasedRule with a RateKey value other than
  1980  //      IP.
  1981  //
  1982  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  1983  //      BLOCK, or COUNT.
  1984  //
  1985  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  1986  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  1987  //
  1988  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  1989  //      for Data.
  1990  //
  1991  //      * Your request references an ARN that is malformed, or corresponds to
  1992  //      a resource with which a web ACL cannot be associated.
  1993  //
  1994  //   * StaleDataException
  1995  //   The operation failed because you tried to create, update, or delete an object
  1996  //   by using a change token that has already been used.
  1997  //
  1998  //   * LimitsExceededException
  1999  //   The operation exceeds a resource limit, for example, the maximum number of
  2000  //   WebACL objects that you can create for an AWS account. For more information,
  2001  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  2002  //   in the AWS WAF Developer Guide.
  2003  //
  2004  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/CreateXssMatchSet
  2005  func (c *WAF) CreateXssMatchSet(input *CreateXssMatchSetInput) (*CreateXssMatchSetOutput, error) {
  2006  	req, out := c.CreateXssMatchSetRequest(input)
  2007  	return out, req.Send()
  2008  }
  2009  
  2010  // CreateXssMatchSetWithContext is the same as CreateXssMatchSet with the addition of
  2011  // the ability to pass a context and additional request options.
  2012  //
  2013  // See CreateXssMatchSet for details on how to use this API operation.
  2014  //
  2015  // The context must be non-nil and will be used for request cancellation. If
  2016  // the context is nil a panic will occur. In the future the SDK may create
  2017  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2018  // for more information on using Contexts.
  2019  func (c *WAF) CreateXssMatchSetWithContext(ctx aws.Context, input *CreateXssMatchSetInput, opts ...request.Option) (*CreateXssMatchSetOutput, error) {
  2020  	req, out := c.CreateXssMatchSetRequest(input)
  2021  	req.SetContext(ctx)
  2022  	req.ApplyOptions(opts...)
  2023  	return out, req.Send()
  2024  }
  2025  
  2026  const opDeleteByteMatchSet = "DeleteByteMatchSet"
  2027  
  2028  // DeleteByteMatchSetRequest generates a "aws/request.Request" representing the
  2029  // client's request for the DeleteByteMatchSet operation. The "output" return
  2030  // value will be populated with the request's response once the request completes
  2031  // successfully.
  2032  //
  2033  // Use "Send" method on the returned Request to send the API call to the service.
  2034  // the "output" return value is not valid until after Send returns without error.
  2035  //
  2036  // See DeleteByteMatchSet for more information on using the DeleteByteMatchSet
  2037  // API call, and error handling.
  2038  //
  2039  // This method is useful when you want to inject custom logic or configuration
  2040  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2041  //
  2042  //
  2043  //    // Example sending a request using the DeleteByteMatchSetRequest method.
  2044  //    req, resp := client.DeleteByteMatchSetRequest(params)
  2045  //
  2046  //    err := req.Send()
  2047  //    if err == nil { // resp is now filled
  2048  //        fmt.Println(resp)
  2049  //    }
  2050  //
  2051  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteByteMatchSet
  2052  func (c *WAF) DeleteByteMatchSetRequest(input *DeleteByteMatchSetInput) (req *request.Request, output *DeleteByteMatchSetOutput) {
  2053  	op := &request.Operation{
  2054  		Name:       opDeleteByteMatchSet,
  2055  		HTTPMethod: "POST",
  2056  		HTTPPath:   "/",
  2057  	}
  2058  
  2059  	if input == nil {
  2060  		input = &DeleteByteMatchSetInput{}
  2061  	}
  2062  
  2063  	output = &DeleteByteMatchSetOutput{}
  2064  	req = c.newRequest(op, input, output)
  2065  	return
  2066  }
  2067  
  2068  // DeleteByteMatchSet API operation for AWS WAF.
  2069  //
  2070  //
  2071  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  2072  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  2073  // in the developer guide.
  2074  //
  2075  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  2076  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  2077  // With the latest version, AWS WAF has a single set of endpoints for regional
  2078  // and global use.
  2079  //
  2080  // Permanently deletes a ByteMatchSet. You can't delete a ByteMatchSet if it's
  2081  // still used in any Rules or if it still includes any ByteMatchTuple objects
  2082  // (any filters).
  2083  //
  2084  // If you just want to remove a ByteMatchSet from a Rule, use UpdateRule.
  2085  //
  2086  // To permanently delete a ByteMatchSet, perform the following steps:
  2087  //
  2088  // Update the ByteMatchSet to remove filters, if any. For more information,
  2089  // see UpdateByteMatchSet.
  2090  //
  2091  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  2092  // parameter of a DeleteByteMatchSet request.
  2093  //
  2094  // Submit a DeleteByteMatchSet request.
  2095  //
  2096  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2097  // with awserr.Error's Code and Message methods to get detailed information about
  2098  // the error.
  2099  //
  2100  // See the AWS API reference guide for AWS WAF's
  2101  // API operation DeleteByteMatchSet for usage and error information.
  2102  //
  2103  // Returned Error Types:
  2104  //   * InternalErrorException
  2105  //   The operation failed because of a system problem, even though the request
  2106  //   was valid. Retry your request.
  2107  //
  2108  //   * InvalidAccountException
  2109  //   The operation failed because you tried to create, update, or delete an object
  2110  //   by using an invalid account identifier.
  2111  //
  2112  //   * NonexistentItemException
  2113  //   The operation failed because the referenced object doesn't exist.
  2114  //
  2115  //   * ReferencedItemException
  2116  //   The operation failed because you tried to delete an object that is still
  2117  //   in use. For example:
  2118  //
  2119  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  2120  //
  2121  //      * You tried to delete a Rule that is still referenced by a WebACL.
  2122  //
  2123  //   * StaleDataException
  2124  //   The operation failed because you tried to create, update, or delete an object
  2125  //   by using a change token that has already been used.
  2126  //
  2127  //   * NonEmptyEntityException
  2128  //   The operation failed because you tried to delete an object that isn't empty.
  2129  //   For example:
  2130  //
  2131  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  2132  //
  2133  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  2134  //      objects or other predicates.
  2135  //
  2136  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  2137  //      objects.
  2138  //
  2139  //      * You tried to delete an IPSet that references one or more IP addresses.
  2140  //
  2141  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteByteMatchSet
  2142  func (c *WAF) DeleteByteMatchSet(input *DeleteByteMatchSetInput) (*DeleteByteMatchSetOutput, error) {
  2143  	req, out := c.DeleteByteMatchSetRequest(input)
  2144  	return out, req.Send()
  2145  }
  2146  
  2147  // DeleteByteMatchSetWithContext is the same as DeleteByteMatchSet with the addition of
  2148  // the ability to pass a context and additional request options.
  2149  //
  2150  // See DeleteByteMatchSet for details on how to use this API operation.
  2151  //
  2152  // The context must be non-nil and will be used for request cancellation. If
  2153  // the context is nil a panic will occur. In the future the SDK may create
  2154  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2155  // for more information on using Contexts.
  2156  func (c *WAF) DeleteByteMatchSetWithContext(ctx aws.Context, input *DeleteByteMatchSetInput, opts ...request.Option) (*DeleteByteMatchSetOutput, error) {
  2157  	req, out := c.DeleteByteMatchSetRequest(input)
  2158  	req.SetContext(ctx)
  2159  	req.ApplyOptions(opts...)
  2160  	return out, req.Send()
  2161  }
  2162  
  2163  const opDeleteGeoMatchSet = "DeleteGeoMatchSet"
  2164  
  2165  // DeleteGeoMatchSetRequest generates a "aws/request.Request" representing the
  2166  // client's request for the DeleteGeoMatchSet operation. The "output" return
  2167  // value will be populated with the request's response once the request completes
  2168  // successfully.
  2169  //
  2170  // Use "Send" method on the returned Request to send the API call to the service.
  2171  // the "output" return value is not valid until after Send returns without error.
  2172  //
  2173  // See DeleteGeoMatchSet for more information on using the DeleteGeoMatchSet
  2174  // API call, and error handling.
  2175  //
  2176  // This method is useful when you want to inject custom logic or configuration
  2177  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2178  //
  2179  //
  2180  //    // Example sending a request using the DeleteGeoMatchSetRequest method.
  2181  //    req, resp := client.DeleteGeoMatchSetRequest(params)
  2182  //
  2183  //    err := req.Send()
  2184  //    if err == nil { // resp is now filled
  2185  //        fmt.Println(resp)
  2186  //    }
  2187  //
  2188  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteGeoMatchSet
  2189  func (c *WAF) DeleteGeoMatchSetRequest(input *DeleteGeoMatchSetInput) (req *request.Request, output *DeleteGeoMatchSetOutput) {
  2190  	op := &request.Operation{
  2191  		Name:       opDeleteGeoMatchSet,
  2192  		HTTPMethod: "POST",
  2193  		HTTPPath:   "/",
  2194  	}
  2195  
  2196  	if input == nil {
  2197  		input = &DeleteGeoMatchSetInput{}
  2198  	}
  2199  
  2200  	output = &DeleteGeoMatchSetOutput{}
  2201  	req = c.newRequest(op, input, output)
  2202  	return
  2203  }
  2204  
  2205  // DeleteGeoMatchSet API operation for AWS WAF.
  2206  //
  2207  //
  2208  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  2209  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  2210  // in the developer guide.
  2211  //
  2212  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  2213  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  2214  // With the latest version, AWS WAF has a single set of endpoints for regional
  2215  // and global use.
  2216  //
  2217  // Permanently deletes a GeoMatchSet. You can't delete a GeoMatchSet if it's
  2218  // still used in any Rules or if it still includes any countries.
  2219  //
  2220  // If you just want to remove a GeoMatchSet from a Rule, use UpdateRule.
  2221  //
  2222  // To permanently delete a GeoMatchSet from AWS WAF, perform the following steps:
  2223  //
  2224  // Update the GeoMatchSet to remove any countries. For more information, see
  2225  // UpdateGeoMatchSet.
  2226  //
  2227  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  2228  // parameter of a DeleteGeoMatchSet request.
  2229  //
  2230  // Submit a DeleteGeoMatchSet request.
  2231  //
  2232  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2233  // with awserr.Error's Code and Message methods to get detailed information about
  2234  // the error.
  2235  //
  2236  // See the AWS API reference guide for AWS WAF's
  2237  // API operation DeleteGeoMatchSet for usage and error information.
  2238  //
  2239  // Returned Error Types:
  2240  //   * StaleDataException
  2241  //   The operation failed because you tried to create, update, or delete an object
  2242  //   by using a change token that has already been used.
  2243  //
  2244  //   * InternalErrorException
  2245  //   The operation failed because of a system problem, even though the request
  2246  //   was valid. Retry your request.
  2247  //
  2248  //   * InvalidAccountException
  2249  //   The operation failed because you tried to create, update, or delete an object
  2250  //   by using an invalid account identifier.
  2251  //
  2252  //   * NonexistentItemException
  2253  //   The operation failed because the referenced object doesn't exist.
  2254  //
  2255  //   * ReferencedItemException
  2256  //   The operation failed because you tried to delete an object that is still
  2257  //   in use. For example:
  2258  //
  2259  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  2260  //
  2261  //      * You tried to delete a Rule that is still referenced by a WebACL.
  2262  //
  2263  //   * NonEmptyEntityException
  2264  //   The operation failed because you tried to delete an object that isn't empty.
  2265  //   For example:
  2266  //
  2267  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  2268  //
  2269  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  2270  //      objects or other predicates.
  2271  //
  2272  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  2273  //      objects.
  2274  //
  2275  //      * You tried to delete an IPSet that references one or more IP addresses.
  2276  //
  2277  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteGeoMatchSet
  2278  func (c *WAF) DeleteGeoMatchSet(input *DeleteGeoMatchSetInput) (*DeleteGeoMatchSetOutput, error) {
  2279  	req, out := c.DeleteGeoMatchSetRequest(input)
  2280  	return out, req.Send()
  2281  }
  2282  
  2283  // DeleteGeoMatchSetWithContext is the same as DeleteGeoMatchSet with the addition of
  2284  // the ability to pass a context and additional request options.
  2285  //
  2286  // See DeleteGeoMatchSet for details on how to use this API operation.
  2287  //
  2288  // The context must be non-nil and will be used for request cancellation. If
  2289  // the context is nil a panic will occur. In the future the SDK may create
  2290  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2291  // for more information on using Contexts.
  2292  func (c *WAF) DeleteGeoMatchSetWithContext(ctx aws.Context, input *DeleteGeoMatchSetInput, opts ...request.Option) (*DeleteGeoMatchSetOutput, error) {
  2293  	req, out := c.DeleteGeoMatchSetRequest(input)
  2294  	req.SetContext(ctx)
  2295  	req.ApplyOptions(opts...)
  2296  	return out, req.Send()
  2297  }
  2298  
  2299  const opDeleteIPSet = "DeleteIPSet"
  2300  
  2301  // DeleteIPSetRequest generates a "aws/request.Request" representing the
  2302  // client's request for the DeleteIPSet operation. The "output" return
  2303  // value will be populated with the request's response once the request completes
  2304  // successfully.
  2305  //
  2306  // Use "Send" method on the returned Request to send the API call to the service.
  2307  // the "output" return value is not valid until after Send returns without error.
  2308  //
  2309  // See DeleteIPSet for more information on using the DeleteIPSet
  2310  // API call, and error handling.
  2311  //
  2312  // This method is useful when you want to inject custom logic or configuration
  2313  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2314  //
  2315  //
  2316  //    // Example sending a request using the DeleteIPSetRequest method.
  2317  //    req, resp := client.DeleteIPSetRequest(params)
  2318  //
  2319  //    err := req.Send()
  2320  //    if err == nil { // resp is now filled
  2321  //        fmt.Println(resp)
  2322  //    }
  2323  //
  2324  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteIPSet
  2325  func (c *WAF) DeleteIPSetRequest(input *DeleteIPSetInput) (req *request.Request, output *DeleteIPSetOutput) {
  2326  	op := &request.Operation{
  2327  		Name:       opDeleteIPSet,
  2328  		HTTPMethod: "POST",
  2329  		HTTPPath:   "/",
  2330  	}
  2331  
  2332  	if input == nil {
  2333  		input = &DeleteIPSetInput{}
  2334  	}
  2335  
  2336  	output = &DeleteIPSetOutput{}
  2337  	req = c.newRequest(op, input, output)
  2338  	return
  2339  }
  2340  
  2341  // DeleteIPSet API operation for AWS WAF.
  2342  //
  2343  //
  2344  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  2345  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  2346  // in the developer guide.
  2347  //
  2348  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  2349  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  2350  // With the latest version, AWS WAF has a single set of endpoints for regional
  2351  // and global use.
  2352  //
  2353  // Permanently deletes an IPSet. You can't delete an IPSet if it's still used
  2354  // in any Rules or if it still includes any IP addresses.
  2355  //
  2356  // If you just want to remove an IPSet from a Rule, use UpdateRule.
  2357  //
  2358  // To permanently delete an IPSet from AWS WAF, perform the following steps:
  2359  //
  2360  // Update the IPSet to remove IP address ranges, if any. For more information,
  2361  // see UpdateIPSet.
  2362  //
  2363  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  2364  // parameter of a DeleteIPSet request.
  2365  //
  2366  // Submit a DeleteIPSet request.
  2367  //
  2368  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2369  // with awserr.Error's Code and Message methods to get detailed information about
  2370  // the error.
  2371  //
  2372  // See the AWS API reference guide for AWS WAF's
  2373  // API operation DeleteIPSet for usage and error information.
  2374  //
  2375  // Returned Error Types:
  2376  //   * StaleDataException
  2377  //   The operation failed because you tried to create, update, or delete an object
  2378  //   by using a change token that has already been used.
  2379  //
  2380  //   * InternalErrorException
  2381  //   The operation failed because of a system problem, even though the request
  2382  //   was valid. Retry your request.
  2383  //
  2384  //   * InvalidAccountException
  2385  //   The operation failed because you tried to create, update, or delete an object
  2386  //   by using an invalid account identifier.
  2387  //
  2388  //   * NonexistentItemException
  2389  //   The operation failed because the referenced object doesn't exist.
  2390  //
  2391  //   * ReferencedItemException
  2392  //   The operation failed because you tried to delete an object that is still
  2393  //   in use. For example:
  2394  //
  2395  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  2396  //
  2397  //      * You tried to delete a Rule that is still referenced by a WebACL.
  2398  //
  2399  //   * NonEmptyEntityException
  2400  //   The operation failed because you tried to delete an object that isn't empty.
  2401  //   For example:
  2402  //
  2403  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  2404  //
  2405  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  2406  //      objects or other predicates.
  2407  //
  2408  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  2409  //      objects.
  2410  //
  2411  //      * You tried to delete an IPSet that references one or more IP addresses.
  2412  //
  2413  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteIPSet
  2414  func (c *WAF) DeleteIPSet(input *DeleteIPSetInput) (*DeleteIPSetOutput, error) {
  2415  	req, out := c.DeleteIPSetRequest(input)
  2416  	return out, req.Send()
  2417  }
  2418  
  2419  // DeleteIPSetWithContext is the same as DeleteIPSet with the addition of
  2420  // the ability to pass a context and additional request options.
  2421  //
  2422  // See DeleteIPSet for details on how to use this API operation.
  2423  //
  2424  // The context must be non-nil and will be used for request cancellation. If
  2425  // the context is nil a panic will occur. In the future the SDK may create
  2426  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2427  // for more information on using Contexts.
  2428  func (c *WAF) DeleteIPSetWithContext(ctx aws.Context, input *DeleteIPSetInput, opts ...request.Option) (*DeleteIPSetOutput, error) {
  2429  	req, out := c.DeleteIPSetRequest(input)
  2430  	req.SetContext(ctx)
  2431  	req.ApplyOptions(opts...)
  2432  	return out, req.Send()
  2433  }
  2434  
  2435  const opDeleteLoggingConfiguration = "DeleteLoggingConfiguration"
  2436  
  2437  // DeleteLoggingConfigurationRequest generates a "aws/request.Request" representing the
  2438  // client's request for the DeleteLoggingConfiguration operation. The "output" return
  2439  // value will be populated with the request's response once the request completes
  2440  // successfully.
  2441  //
  2442  // Use "Send" method on the returned Request to send the API call to the service.
  2443  // the "output" return value is not valid until after Send returns without error.
  2444  //
  2445  // See DeleteLoggingConfiguration for more information on using the DeleteLoggingConfiguration
  2446  // API call, and error handling.
  2447  //
  2448  // This method is useful when you want to inject custom logic or configuration
  2449  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2450  //
  2451  //
  2452  //    // Example sending a request using the DeleteLoggingConfigurationRequest method.
  2453  //    req, resp := client.DeleteLoggingConfigurationRequest(params)
  2454  //
  2455  //    err := req.Send()
  2456  //    if err == nil { // resp is now filled
  2457  //        fmt.Println(resp)
  2458  //    }
  2459  //
  2460  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteLoggingConfiguration
  2461  func (c *WAF) DeleteLoggingConfigurationRequest(input *DeleteLoggingConfigurationInput) (req *request.Request, output *DeleteLoggingConfigurationOutput) {
  2462  	op := &request.Operation{
  2463  		Name:       opDeleteLoggingConfiguration,
  2464  		HTTPMethod: "POST",
  2465  		HTTPPath:   "/",
  2466  	}
  2467  
  2468  	if input == nil {
  2469  		input = &DeleteLoggingConfigurationInput{}
  2470  	}
  2471  
  2472  	output = &DeleteLoggingConfigurationOutput{}
  2473  	req = c.newRequest(op, input, output)
  2474  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2475  	return
  2476  }
  2477  
  2478  // DeleteLoggingConfiguration API operation for AWS WAF.
  2479  //
  2480  //
  2481  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  2482  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  2483  // in the developer guide.
  2484  //
  2485  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  2486  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  2487  // With the latest version, AWS WAF has a single set of endpoints for regional
  2488  // and global use.
  2489  //
  2490  // Permanently deletes the LoggingConfiguration from the specified web ACL.
  2491  //
  2492  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2493  // with awserr.Error's Code and Message methods to get detailed information about
  2494  // the error.
  2495  //
  2496  // See the AWS API reference guide for AWS WAF's
  2497  // API operation DeleteLoggingConfiguration for usage and error information.
  2498  //
  2499  // Returned Error Types:
  2500  //   * InternalErrorException
  2501  //   The operation failed because of a system problem, even though the request
  2502  //   was valid. Retry your request.
  2503  //
  2504  //   * NonexistentItemException
  2505  //   The operation failed because the referenced object doesn't exist.
  2506  //
  2507  //   * StaleDataException
  2508  //   The operation failed because you tried to create, update, or delete an object
  2509  //   by using a change token that has already been used.
  2510  //
  2511  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteLoggingConfiguration
  2512  func (c *WAF) DeleteLoggingConfiguration(input *DeleteLoggingConfigurationInput) (*DeleteLoggingConfigurationOutput, error) {
  2513  	req, out := c.DeleteLoggingConfigurationRequest(input)
  2514  	return out, req.Send()
  2515  }
  2516  
  2517  // DeleteLoggingConfigurationWithContext is the same as DeleteLoggingConfiguration with the addition of
  2518  // the ability to pass a context and additional request options.
  2519  //
  2520  // See DeleteLoggingConfiguration for details on how to use this API operation.
  2521  //
  2522  // The context must be non-nil and will be used for request cancellation. If
  2523  // the context is nil a panic will occur. In the future the SDK may create
  2524  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2525  // for more information on using Contexts.
  2526  func (c *WAF) DeleteLoggingConfigurationWithContext(ctx aws.Context, input *DeleteLoggingConfigurationInput, opts ...request.Option) (*DeleteLoggingConfigurationOutput, error) {
  2527  	req, out := c.DeleteLoggingConfigurationRequest(input)
  2528  	req.SetContext(ctx)
  2529  	req.ApplyOptions(opts...)
  2530  	return out, req.Send()
  2531  }
  2532  
  2533  const opDeletePermissionPolicy = "DeletePermissionPolicy"
  2534  
  2535  // DeletePermissionPolicyRequest generates a "aws/request.Request" representing the
  2536  // client's request for the DeletePermissionPolicy operation. The "output" return
  2537  // value will be populated with the request's response once the request completes
  2538  // successfully.
  2539  //
  2540  // Use "Send" method on the returned Request to send the API call to the service.
  2541  // the "output" return value is not valid until after Send returns without error.
  2542  //
  2543  // See DeletePermissionPolicy for more information on using the DeletePermissionPolicy
  2544  // API call, and error handling.
  2545  //
  2546  // This method is useful when you want to inject custom logic or configuration
  2547  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2548  //
  2549  //
  2550  //    // Example sending a request using the DeletePermissionPolicyRequest method.
  2551  //    req, resp := client.DeletePermissionPolicyRequest(params)
  2552  //
  2553  //    err := req.Send()
  2554  //    if err == nil { // resp is now filled
  2555  //        fmt.Println(resp)
  2556  //    }
  2557  //
  2558  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeletePermissionPolicy
  2559  func (c *WAF) DeletePermissionPolicyRequest(input *DeletePermissionPolicyInput) (req *request.Request, output *DeletePermissionPolicyOutput) {
  2560  	op := &request.Operation{
  2561  		Name:       opDeletePermissionPolicy,
  2562  		HTTPMethod: "POST",
  2563  		HTTPPath:   "/",
  2564  	}
  2565  
  2566  	if input == nil {
  2567  		input = &DeletePermissionPolicyInput{}
  2568  	}
  2569  
  2570  	output = &DeletePermissionPolicyOutput{}
  2571  	req = c.newRequest(op, input, output)
  2572  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  2573  	return
  2574  }
  2575  
  2576  // DeletePermissionPolicy API operation for AWS WAF.
  2577  //
  2578  //
  2579  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  2580  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  2581  // in the developer guide.
  2582  //
  2583  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  2584  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  2585  // With the latest version, AWS WAF has a single set of endpoints for regional
  2586  // and global use.
  2587  //
  2588  // Permanently deletes an IAM policy from the specified RuleGroup.
  2589  //
  2590  // The user making the request must be the owner of the RuleGroup.
  2591  //
  2592  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2593  // with awserr.Error's Code and Message methods to get detailed information about
  2594  // the error.
  2595  //
  2596  // See the AWS API reference guide for AWS WAF's
  2597  // API operation DeletePermissionPolicy for usage and error information.
  2598  //
  2599  // Returned Error Types:
  2600  //   * InternalErrorException
  2601  //   The operation failed because of a system problem, even though the request
  2602  //   was valid. Retry your request.
  2603  //
  2604  //   * StaleDataException
  2605  //   The operation failed because you tried to create, update, or delete an object
  2606  //   by using a change token that has already been used.
  2607  //
  2608  //   * NonexistentItemException
  2609  //   The operation failed because the referenced object doesn't exist.
  2610  //
  2611  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeletePermissionPolicy
  2612  func (c *WAF) DeletePermissionPolicy(input *DeletePermissionPolicyInput) (*DeletePermissionPolicyOutput, error) {
  2613  	req, out := c.DeletePermissionPolicyRequest(input)
  2614  	return out, req.Send()
  2615  }
  2616  
  2617  // DeletePermissionPolicyWithContext is the same as DeletePermissionPolicy with the addition of
  2618  // the ability to pass a context and additional request options.
  2619  //
  2620  // See DeletePermissionPolicy for details on how to use this API operation.
  2621  //
  2622  // The context must be non-nil and will be used for request cancellation. If
  2623  // the context is nil a panic will occur. In the future the SDK may create
  2624  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2625  // for more information on using Contexts.
  2626  func (c *WAF) DeletePermissionPolicyWithContext(ctx aws.Context, input *DeletePermissionPolicyInput, opts ...request.Option) (*DeletePermissionPolicyOutput, error) {
  2627  	req, out := c.DeletePermissionPolicyRequest(input)
  2628  	req.SetContext(ctx)
  2629  	req.ApplyOptions(opts...)
  2630  	return out, req.Send()
  2631  }
  2632  
  2633  const opDeleteRateBasedRule = "DeleteRateBasedRule"
  2634  
  2635  // DeleteRateBasedRuleRequest generates a "aws/request.Request" representing the
  2636  // client's request for the DeleteRateBasedRule operation. The "output" return
  2637  // value will be populated with the request's response once the request completes
  2638  // successfully.
  2639  //
  2640  // Use "Send" method on the returned Request to send the API call to the service.
  2641  // the "output" return value is not valid until after Send returns without error.
  2642  //
  2643  // See DeleteRateBasedRule for more information on using the DeleteRateBasedRule
  2644  // API call, and error handling.
  2645  //
  2646  // This method is useful when you want to inject custom logic or configuration
  2647  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2648  //
  2649  //
  2650  //    // Example sending a request using the DeleteRateBasedRuleRequest method.
  2651  //    req, resp := client.DeleteRateBasedRuleRequest(params)
  2652  //
  2653  //    err := req.Send()
  2654  //    if err == nil { // resp is now filled
  2655  //        fmt.Println(resp)
  2656  //    }
  2657  //
  2658  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRule
  2659  func (c *WAF) DeleteRateBasedRuleRequest(input *DeleteRateBasedRuleInput) (req *request.Request, output *DeleteRateBasedRuleOutput) {
  2660  	op := &request.Operation{
  2661  		Name:       opDeleteRateBasedRule,
  2662  		HTTPMethod: "POST",
  2663  		HTTPPath:   "/",
  2664  	}
  2665  
  2666  	if input == nil {
  2667  		input = &DeleteRateBasedRuleInput{}
  2668  	}
  2669  
  2670  	output = &DeleteRateBasedRuleOutput{}
  2671  	req = c.newRequest(op, input, output)
  2672  	return
  2673  }
  2674  
  2675  // DeleteRateBasedRule API operation for AWS WAF.
  2676  //
  2677  //
  2678  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  2679  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  2680  // in the developer guide.
  2681  //
  2682  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  2683  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  2684  // With the latest version, AWS WAF has a single set of endpoints for regional
  2685  // and global use.
  2686  //
  2687  // Permanently deletes a RateBasedRule. You can't delete a rule if it's still
  2688  // used in any WebACL objects or if it still includes any predicates, such as
  2689  // ByteMatchSet objects.
  2690  //
  2691  // If you just want to remove a rule from a WebACL, use UpdateWebACL.
  2692  //
  2693  // To permanently delete a RateBasedRule from AWS WAF, perform the following
  2694  // steps:
  2695  //
  2696  // Update the RateBasedRule to remove predicates, if any. For more information,
  2697  // see UpdateRateBasedRule.
  2698  //
  2699  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  2700  // parameter of a DeleteRateBasedRule request.
  2701  //
  2702  // Submit a DeleteRateBasedRule request.
  2703  //
  2704  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2705  // with awserr.Error's Code and Message methods to get detailed information about
  2706  // the error.
  2707  //
  2708  // See the AWS API reference guide for AWS WAF's
  2709  // API operation DeleteRateBasedRule for usage and error information.
  2710  //
  2711  // Returned Error Types:
  2712  //   * StaleDataException
  2713  //   The operation failed because you tried to create, update, or delete an object
  2714  //   by using a change token that has already been used.
  2715  //
  2716  //   * InternalErrorException
  2717  //   The operation failed because of a system problem, even though the request
  2718  //   was valid. Retry your request.
  2719  //
  2720  //   * InvalidAccountException
  2721  //   The operation failed because you tried to create, update, or delete an object
  2722  //   by using an invalid account identifier.
  2723  //
  2724  //   * NonexistentItemException
  2725  //   The operation failed because the referenced object doesn't exist.
  2726  //
  2727  //   * ReferencedItemException
  2728  //   The operation failed because you tried to delete an object that is still
  2729  //   in use. For example:
  2730  //
  2731  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  2732  //
  2733  //      * You tried to delete a Rule that is still referenced by a WebACL.
  2734  //
  2735  //   * NonEmptyEntityException
  2736  //   The operation failed because you tried to delete an object that isn't empty.
  2737  //   For example:
  2738  //
  2739  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  2740  //
  2741  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  2742  //      objects or other predicates.
  2743  //
  2744  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  2745  //      objects.
  2746  //
  2747  //      * You tried to delete an IPSet that references one or more IP addresses.
  2748  //
  2749  //   * TagOperationException
  2750  //
  2751  //   * TagOperationInternalErrorException
  2752  //
  2753  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRateBasedRule
  2754  func (c *WAF) DeleteRateBasedRule(input *DeleteRateBasedRuleInput) (*DeleteRateBasedRuleOutput, error) {
  2755  	req, out := c.DeleteRateBasedRuleRequest(input)
  2756  	return out, req.Send()
  2757  }
  2758  
  2759  // DeleteRateBasedRuleWithContext is the same as DeleteRateBasedRule with the addition of
  2760  // the ability to pass a context and additional request options.
  2761  //
  2762  // See DeleteRateBasedRule for details on how to use this API operation.
  2763  //
  2764  // The context must be non-nil and will be used for request cancellation. If
  2765  // the context is nil a panic will occur. In the future the SDK may create
  2766  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2767  // for more information on using Contexts.
  2768  func (c *WAF) DeleteRateBasedRuleWithContext(ctx aws.Context, input *DeleteRateBasedRuleInput, opts ...request.Option) (*DeleteRateBasedRuleOutput, error) {
  2769  	req, out := c.DeleteRateBasedRuleRequest(input)
  2770  	req.SetContext(ctx)
  2771  	req.ApplyOptions(opts...)
  2772  	return out, req.Send()
  2773  }
  2774  
  2775  const opDeleteRegexMatchSet = "DeleteRegexMatchSet"
  2776  
  2777  // DeleteRegexMatchSetRequest generates a "aws/request.Request" representing the
  2778  // client's request for the DeleteRegexMatchSet operation. The "output" return
  2779  // value will be populated with the request's response once the request completes
  2780  // successfully.
  2781  //
  2782  // Use "Send" method on the returned Request to send the API call to the service.
  2783  // the "output" return value is not valid until after Send returns without error.
  2784  //
  2785  // See DeleteRegexMatchSet for more information on using the DeleteRegexMatchSet
  2786  // API call, and error handling.
  2787  //
  2788  // This method is useful when you want to inject custom logic or configuration
  2789  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2790  //
  2791  //
  2792  //    // Example sending a request using the DeleteRegexMatchSetRequest method.
  2793  //    req, resp := client.DeleteRegexMatchSetRequest(params)
  2794  //
  2795  //    err := req.Send()
  2796  //    if err == nil { // resp is now filled
  2797  //        fmt.Println(resp)
  2798  //    }
  2799  //
  2800  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRegexMatchSet
  2801  func (c *WAF) DeleteRegexMatchSetRequest(input *DeleteRegexMatchSetInput) (req *request.Request, output *DeleteRegexMatchSetOutput) {
  2802  	op := &request.Operation{
  2803  		Name:       opDeleteRegexMatchSet,
  2804  		HTTPMethod: "POST",
  2805  		HTTPPath:   "/",
  2806  	}
  2807  
  2808  	if input == nil {
  2809  		input = &DeleteRegexMatchSetInput{}
  2810  	}
  2811  
  2812  	output = &DeleteRegexMatchSetOutput{}
  2813  	req = c.newRequest(op, input, output)
  2814  	return
  2815  }
  2816  
  2817  // DeleteRegexMatchSet API operation for AWS WAF.
  2818  //
  2819  //
  2820  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  2821  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  2822  // in the developer guide.
  2823  //
  2824  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  2825  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  2826  // With the latest version, AWS WAF has a single set of endpoints for regional
  2827  // and global use.
  2828  //
  2829  // Permanently deletes a RegexMatchSet. You can't delete a RegexMatchSet if
  2830  // it's still used in any Rules or if it still includes any RegexMatchTuples
  2831  // objects (any filters).
  2832  //
  2833  // If you just want to remove a RegexMatchSet from a Rule, use UpdateRule.
  2834  //
  2835  // To permanently delete a RegexMatchSet, perform the following steps:
  2836  //
  2837  // Update the RegexMatchSet to remove filters, if any. For more information,
  2838  // see UpdateRegexMatchSet.
  2839  //
  2840  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  2841  // parameter of a DeleteRegexMatchSet request.
  2842  //
  2843  // Submit a DeleteRegexMatchSet request.
  2844  //
  2845  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2846  // with awserr.Error's Code and Message methods to get detailed information about
  2847  // the error.
  2848  //
  2849  // See the AWS API reference guide for AWS WAF's
  2850  // API operation DeleteRegexMatchSet for usage and error information.
  2851  //
  2852  // Returned Error Types:
  2853  //   * InternalErrorException
  2854  //   The operation failed because of a system problem, even though the request
  2855  //   was valid. Retry your request.
  2856  //
  2857  //   * InvalidAccountException
  2858  //   The operation failed because you tried to create, update, or delete an object
  2859  //   by using an invalid account identifier.
  2860  //
  2861  //   * NonexistentItemException
  2862  //   The operation failed because the referenced object doesn't exist.
  2863  //
  2864  //   * ReferencedItemException
  2865  //   The operation failed because you tried to delete an object that is still
  2866  //   in use. For example:
  2867  //
  2868  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  2869  //
  2870  //      * You tried to delete a Rule that is still referenced by a WebACL.
  2871  //
  2872  //   * StaleDataException
  2873  //   The operation failed because you tried to create, update, or delete an object
  2874  //   by using a change token that has already been used.
  2875  //
  2876  //   * NonEmptyEntityException
  2877  //   The operation failed because you tried to delete an object that isn't empty.
  2878  //   For example:
  2879  //
  2880  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  2881  //
  2882  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  2883  //      objects or other predicates.
  2884  //
  2885  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  2886  //      objects.
  2887  //
  2888  //      * You tried to delete an IPSet that references one or more IP addresses.
  2889  //
  2890  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRegexMatchSet
  2891  func (c *WAF) DeleteRegexMatchSet(input *DeleteRegexMatchSetInput) (*DeleteRegexMatchSetOutput, error) {
  2892  	req, out := c.DeleteRegexMatchSetRequest(input)
  2893  	return out, req.Send()
  2894  }
  2895  
  2896  // DeleteRegexMatchSetWithContext is the same as DeleteRegexMatchSet with the addition of
  2897  // the ability to pass a context and additional request options.
  2898  //
  2899  // See DeleteRegexMatchSet for details on how to use this API operation.
  2900  //
  2901  // The context must be non-nil and will be used for request cancellation. If
  2902  // the context is nil a panic will occur. In the future the SDK may create
  2903  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  2904  // for more information on using Contexts.
  2905  func (c *WAF) DeleteRegexMatchSetWithContext(ctx aws.Context, input *DeleteRegexMatchSetInput, opts ...request.Option) (*DeleteRegexMatchSetOutput, error) {
  2906  	req, out := c.DeleteRegexMatchSetRequest(input)
  2907  	req.SetContext(ctx)
  2908  	req.ApplyOptions(opts...)
  2909  	return out, req.Send()
  2910  }
  2911  
  2912  const opDeleteRegexPatternSet = "DeleteRegexPatternSet"
  2913  
  2914  // DeleteRegexPatternSetRequest generates a "aws/request.Request" representing the
  2915  // client's request for the DeleteRegexPatternSet operation. The "output" return
  2916  // value will be populated with the request's response once the request completes
  2917  // successfully.
  2918  //
  2919  // Use "Send" method on the returned Request to send the API call to the service.
  2920  // the "output" return value is not valid until after Send returns without error.
  2921  //
  2922  // See DeleteRegexPatternSet for more information on using the DeleteRegexPatternSet
  2923  // API call, and error handling.
  2924  //
  2925  // This method is useful when you want to inject custom logic or configuration
  2926  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  2927  //
  2928  //
  2929  //    // Example sending a request using the DeleteRegexPatternSetRequest method.
  2930  //    req, resp := client.DeleteRegexPatternSetRequest(params)
  2931  //
  2932  //    err := req.Send()
  2933  //    if err == nil { // resp is now filled
  2934  //        fmt.Println(resp)
  2935  //    }
  2936  //
  2937  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRegexPatternSet
  2938  func (c *WAF) DeleteRegexPatternSetRequest(input *DeleteRegexPatternSetInput) (req *request.Request, output *DeleteRegexPatternSetOutput) {
  2939  	op := &request.Operation{
  2940  		Name:       opDeleteRegexPatternSet,
  2941  		HTTPMethod: "POST",
  2942  		HTTPPath:   "/",
  2943  	}
  2944  
  2945  	if input == nil {
  2946  		input = &DeleteRegexPatternSetInput{}
  2947  	}
  2948  
  2949  	output = &DeleteRegexPatternSetOutput{}
  2950  	req = c.newRequest(op, input, output)
  2951  	return
  2952  }
  2953  
  2954  // DeleteRegexPatternSet API operation for AWS WAF.
  2955  //
  2956  //
  2957  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  2958  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  2959  // in the developer guide.
  2960  //
  2961  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  2962  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  2963  // With the latest version, AWS WAF has a single set of endpoints for regional
  2964  // and global use.
  2965  //
  2966  // Permanently deletes a RegexPatternSet. You can't delete a RegexPatternSet
  2967  // if it's still used in any RegexMatchSet or if the RegexPatternSet is not
  2968  // empty.
  2969  //
  2970  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  2971  // with awserr.Error's Code and Message methods to get detailed information about
  2972  // the error.
  2973  //
  2974  // See the AWS API reference guide for AWS WAF's
  2975  // API operation DeleteRegexPatternSet for usage and error information.
  2976  //
  2977  // Returned Error Types:
  2978  //   * InternalErrorException
  2979  //   The operation failed because of a system problem, even though the request
  2980  //   was valid. Retry your request.
  2981  //
  2982  //   * InvalidAccountException
  2983  //   The operation failed because you tried to create, update, or delete an object
  2984  //   by using an invalid account identifier.
  2985  //
  2986  //   * NonexistentItemException
  2987  //   The operation failed because the referenced object doesn't exist.
  2988  //
  2989  //   * ReferencedItemException
  2990  //   The operation failed because you tried to delete an object that is still
  2991  //   in use. For example:
  2992  //
  2993  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  2994  //
  2995  //      * You tried to delete a Rule that is still referenced by a WebACL.
  2996  //
  2997  //   * StaleDataException
  2998  //   The operation failed because you tried to create, update, or delete an object
  2999  //   by using a change token that has already been used.
  3000  //
  3001  //   * NonEmptyEntityException
  3002  //   The operation failed because you tried to delete an object that isn't empty.
  3003  //   For example:
  3004  //
  3005  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  3006  //
  3007  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  3008  //      objects or other predicates.
  3009  //
  3010  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  3011  //      objects.
  3012  //
  3013  //      * You tried to delete an IPSet that references one or more IP addresses.
  3014  //
  3015  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRegexPatternSet
  3016  func (c *WAF) DeleteRegexPatternSet(input *DeleteRegexPatternSetInput) (*DeleteRegexPatternSetOutput, error) {
  3017  	req, out := c.DeleteRegexPatternSetRequest(input)
  3018  	return out, req.Send()
  3019  }
  3020  
  3021  // DeleteRegexPatternSetWithContext is the same as DeleteRegexPatternSet with the addition of
  3022  // the ability to pass a context and additional request options.
  3023  //
  3024  // See DeleteRegexPatternSet for details on how to use this API operation.
  3025  //
  3026  // The context must be non-nil and will be used for request cancellation. If
  3027  // the context is nil a panic will occur. In the future the SDK may create
  3028  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3029  // for more information on using Contexts.
  3030  func (c *WAF) DeleteRegexPatternSetWithContext(ctx aws.Context, input *DeleteRegexPatternSetInput, opts ...request.Option) (*DeleteRegexPatternSetOutput, error) {
  3031  	req, out := c.DeleteRegexPatternSetRequest(input)
  3032  	req.SetContext(ctx)
  3033  	req.ApplyOptions(opts...)
  3034  	return out, req.Send()
  3035  }
  3036  
  3037  const opDeleteRule = "DeleteRule"
  3038  
  3039  // DeleteRuleRequest generates a "aws/request.Request" representing the
  3040  // client's request for the DeleteRule operation. The "output" return
  3041  // value will be populated with the request's response once the request completes
  3042  // successfully.
  3043  //
  3044  // Use "Send" method on the returned Request to send the API call to the service.
  3045  // the "output" return value is not valid until after Send returns without error.
  3046  //
  3047  // See DeleteRule for more information on using the DeleteRule
  3048  // API call, and error handling.
  3049  //
  3050  // This method is useful when you want to inject custom logic or configuration
  3051  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3052  //
  3053  //
  3054  //    // Example sending a request using the DeleteRuleRequest method.
  3055  //    req, resp := client.DeleteRuleRequest(params)
  3056  //
  3057  //    err := req.Send()
  3058  //    if err == nil { // resp is now filled
  3059  //        fmt.Println(resp)
  3060  //    }
  3061  //
  3062  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRule
  3063  func (c *WAF) DeleteRuleRequest(input *DeleteRuleInput) (req *request.Request, output *DeleteRuleOutput) {
  3064  	op := &request.Operation{
  3065  		Name:       opDeleteRule,
  3066  		HTTPMethod: "POST",
  3067  		HTTPPath:   "/",
  3068  	}
  3069  
  3070  	if input == nil {
  3071  		input = &DeleteRuleInput{}
  3072  	}
  3073  
  3074  	output = &DeleteRuleOutput{}
  3075  	req = c.newRequest(op, input, output)
  3076  	return
  3077  }
  3078  
  3079  // DeleteRule API operation for AWS WAF.
  3080  //
  3081  //
  3082  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  3083  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  3084  // in the developer guide.
  3085  //
  3086  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  3087  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  3088  // With the latest version, AWS WAF has a single set of endpoints for regional
  3089  // and global use.
  3090  //
  3091  // Permanently deletes a Rule. You can't delete a Rule if it's still used in
  3092  // any WebACL objects or if it still includes any predicates, such as ByteMatchSet
  3093  // objects.
  3094  //
  3095  // If you just want to remove a Rule from a WebACL, use UpdateWebACL.
  3096  //
  3097  // To permanently delete a Rule from AWS WAF, perform the following steps:
  3098  //
  3099  // Update the Rule to remove predicates, if any. For more information, see UpdateRule.
  3100  //
  3101  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  3102  // parameter of a DeleteRule request.
  3103  //
  3104  // Submit a DeleteRule request.
  3105  //
  3106  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3107  // with awserr.Error's Code and Message methods to get detailed information about
  3108  // the error.
  3109  //
  3110  // See the AWS API reference guide for AWS WAF's
  3111  // API operation DeleteRule for usage and error information.
  3112  //
  3113  // Returned Error Types:
  3114  //   * StaleDataException
  3115  //   The operation failed because you tried to create, update, or delete an object
  3116  //   by using a change token that has already been used.
  3117  //
  3118  //   * InternalErrorException
  3119  //   The operation failed because of a system problem, even though the request
  3120  //   was valid. Retry your request.
  3121  //
  3122  //   * InvalidAccountException
  3123  //   The operation failed because you tried to create, update, or delete an object
  3124  //   by using an invalid account identifier.
  3125  //
  3126  //   * NonexistentItemException
  3127  //   The operation failed because the referenced object doesn't exist.
  3128  //
  3129  //   * ReferencedItemException
  3130  //   The operation failed because you tried to delete an object that is still
  3131  //   in use. For example:
  3132  //
  3133  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  3134  //
  3135  //      * You tried to delete a Rule that is still referenced by a WebACL.
  3136  //
  3137  //   * NonEmptyEntityException
  3138  //   The operation failed because you tried to delete an object that isn't empty.
  3139  //   For example:
  3140  //
  3141  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  3142  //
  3143  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  3144  //      objects or other predicates.
  3145  //
  3146  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  3147  //      objects.
  3148  //
  3149  //      * You tried to delete an IPSet that references one or more IP addresses.
  3150  //
  3151  //   * TagOperationException
  3152  //
  3153  //   * TagOperationInternalErrorException
  3154  //
  3155  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRule
  3156  func (c *WAF) DeleteRule(input *DeleteRuleInput) (*DeleteRuleOutput, error) {
  3157  	req, out := c.DeleteRuleRequest(input)
  3158  	return out, req.Send()
  3159  }
  3160  
  3161  // DeleteRuleWithContext is the same as DeleteRule with the addition of
  3162  // the ability to pass a context and additional request options.
  3163  //
  3164  // See DeleteRule for details on how to use this API operation.
  3165  //
  3166  // The context must be non-nil and will be used for request cancellation. If
  3167  // the context is nil a panic will occur. In the future the SDK may create
  3168  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3169  // for more information on using Contexts.
  3170  func (c *WAF) DeleteRuleWithContext(ctx aws.Context, input *DeleteRuleInput, opts ...request.Option) (*DeleteRuleOutput, error) {
  3171  	req, out := c.DeleteRuleRequest(input)
  3172  	req.SetContext(ctx)
  3173  	req.ApplyOptions(opts...)
  3174  	return out, req.Send()
  3175  }
  3176  
  3177  const opDeleteRuleGroup = "DeleteRuleGroup"
  3178  
  3179  // DeleteRuleGroupRequest generates a "aws/request.Request" representing the
  3180  // client's request for the DeleteRuleGroup operation. The "output" return
  3181  // value will be populated with the request's response once the request completes
  3182  // successfully.
  3183  //
  3184  // Use "Send" method on the returned Request to send the API call to the service.
  3185  // the "output" return value is not valid until after Send returns without error.
  3186  //
  3187  // See DeleteRuleGroup for more information on using the DeleteRuleGroup
  3188  // API call, and error handling.
  3189  //
  3190  // This method is useful when you want to inject custom logic or configuration
  3191  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3192  //
  3193  //
  3194  //    // Example sending a request using the DeleteRuleGroupRequest method.
  3195  //    req, resp := client.DeleteRuleGroupRequest(params)
  3196  //
  3197  //    err := req.Send()
  3198  //    if err == nil { // resp is now filled
  3199  //        fmt.Println(resp)
  3200  //    }
  3201  //
  3202  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleGroup
  3203  func (c *WAF) DeleteRuleGroupRequest(input *DeleteRuleGroupInput) (req *request.Request, output *DeleteRuleGroupOutput) {
  3204  	op := &request.Operation{
  3205  		Name:       opDeleteRuleGroup,
  3206  		HTTPMethod: "POST",
  3207  		HTTPPath:   "/",
  3208  	}
  3209  
  3210  	if input == nil {
  3211  		input = &DeleteRuleGroupInput{}
  3212  	}
  3213  
  3214  	output = &DeleteRuleGroupOutput{}
  3215  	req = c.newRequest(op, input, output)
  3216  	return
  3217  }
  3218  
  3219  // DeleteRuleGroup API operation for AWS WAF.
  3220  //
  3221  //
  3222  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  3223  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  3224  // in the developer guide.
  3225  //
  3226  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  3227  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  3228  // With the latest version, AWS WAF has a single set of endpoints for regional
  3229  // and global use.
  3230  //
  3231  // Permanently deletes a RuleGroup. You can't delete a RuleGroup if it's still
  3232  // used in any WebACL objects or if it still includes any rules.
  3233  //
  3234  // If you just want to remove a RuleGroup from a WebACL, use UpdateWebACL.
  3235  //
  3236  // To permanently delete a RuleGroup from AWS WAF, perform the following steps:
  3237  //
  3238  // Update the RuleGroup to remove rules, if any. For more information, see UpdateRuleGroup.
  3239  //
  3240  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  3241  // parameter of a DeleteRuleGroup request.
  3242  //
  3243  // Submit a DeleteRuleGroup request.
  3244  //
  3245  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3246  // with awserr.Error's Code and Message methods to get detailed information about
  3247  // the error.
  3248  //
  3249  // See the AWS API reference guide for AWS WAF's
  3250  // API operation DeleteRuleGroup for usage and error information.
  3251  //
  3252  // Returned Error Types:
  3253  //   * StaleDataException
  3254  //   The operation failed because you tried to create, update, or delete an object
  3255  //   by using a change token that has already been used.
  3256  //
  3257  //   * InternalErrorException
  3258  //   The operation failed because of a system problem, even though the request
  3259  //   was valid. Retry your request.
  3260  //
  3261  //   * NonexistentItemException
  3262  //   The operation failed because the referenced object doesn't exist.
  3263  //
  3264  //   * ReferencedItemException
  3265  //   The operation failed because you tried to delete an object that is still
  3266  //   in use. For example:
  3267  //
  3268  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  3269  //
  3270  //      * You tried to delete a Rule that is still referenced by a WebACL.
  3271  //
  3272  //   * NonEmptyEntityException
  3273  //   The operation failed because you tried to delete an object that isn't empty.
  3274  //   For example:
  3275  //
  3276  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  3277  //
  3278  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  3279  //      objects or other predicates.
  3280  //
  3281  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  3282  //      objects.
  3283  //
  3284  //      * You tried to delete an IPSet that references one or more IP addresses.
  3285  //
  3286  //   * InvalidOperationException
  3287  //   The operation failed because there was nothing to do. For example:
  3288  //
  3289  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  3290  //      specified WebACL.
  3291  //
  3292  //      * You tried to remove an IP address from an IPSet, but the IP address
  3293  //      isn't in the specified IPSet.
  3294  //
  3295  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  3296  //      isn't in the specified WebACL.
  3297  //
  3298  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  3299  //      the specified WebACL.
  3300  //
  3301  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  3302  //      already exists in the specified WebACL.
  3303  //
  3304  //   * TagOperationException
  3305  //
  3306  //   * TagOperationInternalErrorException
  3307  //
  3308  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteRuleGroup
  3309  func (c *WAF) DeleteRuleGroup(input *DeleteRuleGroupInput) (*DeleteRuleGroupOutput, error) {
  3310  	req, out := c.DeleteRuleGroupRequest(input)
  3311  	return out, req.Send()
  3312  }
  3313  
  3314  // DeleteRuleGroupWithContext is the same as DeleteRuleGroup with the addition of
  3315  // the ability to pass a context and additional request options.
  3316  //
  3317  // See DeleteRuleGroup for details on how to use this API operation.
  3318  //
  3319  // The context must be non-nil and will be used for request cancellation. If
  3320  // the context is nil a panic will occur. In the future the SDK may create
  3321  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3322  // for more information on using Contexts.
  3323  func (c *WAF) DeleteRuleGroupWithContext(ctx aws.Context, input *DeleteRuleGroupInput, opts ...request.Option) (*DeleteRuleGroupOutput, error) {
  3324  	req, out := c.DeleteRuleGroupRequest(input)
  3325  	req.SetContext(ctx)
  3326  	req.ApplyOptions(opts...)
  3327  	return out, req.Send()
  3328  }
  3329  
  3330  const opDeleteSizeConstraintSet = "DeleteSizeConstraintSet"
  3331  
  3332  // DeleteSizeConstraintSetRequest generates a "aws/request.Request" representing the
  3333  // client's request for the DeleteSizeConstraintSet operation. The "output" return
  3334  // value will be populated with the request's response once the request completes
  3335  // successfully.
  3336  //
  3337  // Use "Send" method on the returned Request to send the API call to the service.
  3338  // the "output" return value is not valid until after Send returns without error.
  3339  //
  3340  // See DeleteSizeConstraintSet for more information on using the DeleteSizeConstraintSet
  3341  // API call, and error handling.
  3342  //
  3343  // This method is useful when you want to inject custom logic or configuration
  3344  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3345  //
  3346  //
  3347  //    // Example sending a request using the DeleteSizeConstraintSetRequest method.
  3348  //    req, resp := client.DeleteSizeConstraintSetRequest(params)
  3349  //
  3350  //    err := req.Send()
  3351  //    if err == nil { // resp is now filled
  3352  //        fmt.Println(resp)
  3353  //    }
  3354  //
  3355  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSizeConstraintSet
  3356  func (c *WAF) DeleteSizeConstraintSetRequest(input *DeleteSizeConstraintSetInput) (req *request.Request, output *DeleteSizeConstraintSetOutput) {
  3357  	op := &request.Operation{
  3358  		Name:       opDeleteSizeConstraintSet,
  3359  		HTTPMethod: "POST",
  3360  		HTTPPath:   "/",
  3361  	}
  3362  
  3363  	if input == nil {
  3364  		input = &DeleteSizeConstraintSetInput{}
  3365  	}
  3366  
  3367  	output = &DeleteSizeConstraintSetOutput{}
  3368  	req = c.newRequest(op, input, output)
  3369  	return
  3370  }
  3371  
  3372  // DeleteSizeConstraintSet API operation for AWS WAF.
  3373  //
  3374  //
  3375  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  3376  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  3377  // in the developer guide.
  3378  //
  3379  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  3380  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  3381  // With the latest version, AWS WAF has a single set of endpoints for regional
  3382  // and global use.
  3383  //
  3384  // Permanently deletes a SizeConstraintSet. You can't delete a SizeConstraintSet
  3385  // if it's still used in any Rules or if it still includes any SizeConstraint
  3386  // objects (any filters).
  3387  //
  3388  // If you just want to remove a SizeConstraintSet from a Rule, use UpdateRule.
  3389  //
  3390  // To permanently delete a SizeConstraintSet, perform the following steps:
  3391  //
  3392  // Update the SizeConstraintSet to remove filters, if any. For more information,
  3393  // see UpdateSizeConstraintSet.
  3394  //
  3395  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  3396  // parameter of a DeleteSizeConstraintSet request.
  3397  //
  3398  // Submit a DeleteSizeConstraintSet request.
  3399  //
  3400  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3401  // with awserr.Error's Code and Message methods to get detailed information about
  3402  // the error.
  3403  //
  3404  // See the AWS API reference guide for AWS WAF's
  3405  // API operation DeleteSizeConstraintSet for usage and error information.
  3406  //
  3407  // Returned Error Types:
  3408  //   * StaleDataException
  3409  //   The operation failed because you tried to create, update, or delete an object
  3410  //   by using a change token that has already been used.
  3411  //
  3412  //   * InternalErrorException
  3413  //   The operation failed because of a system problem, even though the request
  3414  //   was valid. Retry your request.
  3415  //
  3416  //   * InvalidAccountException
  3417  //   The operation failed because you tried to create, update, or delete an object
  3418  //   by using an invalid account identifier.
  3419  //
  3420  //   * NonexistentItemException
  3421  //   The operation failed because the referenced object doesn't exist.
  3422  //
  3423  //   * ReferencedItemException
  3424  //   The operation failed because you tried to delete an object that is still
  3425  //   in use. For example:
  3426  //
  3427  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  3428  //
  3429  //      * You tried to delete a Rule that is still referenced by a WebACL.
  3430  //
  3431  //   * NonEmptyEntityException
  3432  //   The operation failed because you tried to delete an object that isn't empty.
  3433  //   For example:
  3434  //
  3435  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  3436  //
  3437  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  3438  //      objects or other predicates.
  3439  //
  3440  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  3441  //      objects.
  3442  //
  3443  //      * You tried to delete an IPSet that references one or more IP addresses.
  3444  //
  3445  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSizeConstraintSet
  3446  func (c *WAF) DeleteSizeConstraintSet(input *DeleteSizeConstraintSetInput) (*DeleteSizeConstraintSetOutput, error) {
  3447  	req, out := c.DeleteSizeConstraintSetRequest(input)
  3448  	return out, req.Send()
  3449  }
  3450  
  3451  // DeleteSizeConstraintSetWithContext is the same as DeleteSizeConstraintSet with the addition of
  3452  // the ability to pass a context and additional request options.
  3453  //
  3454  // See DeleteSizeConstraintSet for details on how to use this API operation.
  3455  //
  3456  // The context must be non-nil and will be used for request cancellation. If
  3457  // the context is nil a panic will occur. In the future the SDK may create
  3458  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3459  // for more information on using Contexts.
  3460  func (c *WAF) DeleteSizeConstraintSetWithContext(ctx aws.Context, input *DeleteSizeConstraintSetInput, opts ...request.Option) (*DeleteSizeConstraintSetOutput, error) {
  3461  	req, out := c.DeleteSizeConstraintSetRequest(input)
  3462  	req.SetContext(ctx)
  3463  	req.ApplyOptions(opts...)
  3464  	return out, req.Send()
  3465  }
  3466  
  3467  const opDeleteSqlInjectionMatchSet = "DeleteSqlInjectionMatchSet"
  3468  
  3469  // DeleteSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
  3470  // client's request for the DeleteSqlInjectionMatchSet operation. The "output" return
  3471  // value will be populated with the request's response once the request completes
  3472  // successfully.
  3473  //
  3474  // Use "Send" method on the returned Request to send the API call to the service.
  3475  // the "output" return value is not valid until after Send returns without error.
  3476  //
  3477  // See DeleteSqlInjectionMatchSet for more information on using the DeleteSqlInjectionMatchSet
  3478  // API call, and error handling.
  3479  //
  3480  // This method is useful when you want to inject custom logic or configuration
  3481  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3482  //
  3483  //
  3484  //    // Example sending a request using the DeleteSqlInjectionMatchSetRequest method.
  3485  //    req, resp := client.DeleteSqlInjectionMatchSetRequest(params)
  3486  //
  3487  //    err := req.Send()
  3488  //    if err == nil { // resp is now filled
  3489  //        fmt.Println(resp)
  3490  //    }
  3491  //
  3492  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSqlInjectionMatchSet
  3493  func (c *WAF) DeleteSqlInjectionMatchSetRequest(input *DeleteSqlInjectionMatchSetInput) (req *request.Request, output *DeleteSqlInjectionMatchSetOutput) {
  3494  	op := &request.Operation{
  3495  		Name:       opDeleteSqlInjectionMatchSet,
  3496  		HTTPMethod: "POST",
  3497  		HTTPPath:   "/",
  3498  	}
  3499  
  3500  	if input == nil {
  3501  		input = &DeleteSqlInjectionMatchSetInput{}
  3502  	}
  3503  
  3504  	output = &DeleteSqlInjectionMatchSetOutput{}
  3505  	req = c.newRequest(op, input, output)
  3506  	return
  3507  }
  3508  
  3509  // DeleteSqlInjectionMatchSet API operation for AWS WAF.
  3510  //
  3511  //
  3512  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  3513  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  3514  // in the developer guide.
  3515  //
  3516  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  3517  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  3518  // With the latest version, AWS WAF has a single set of endpoints for regional
  3519  // and global use.
  3520  //
  3521  // Permanently deletes a SqlInjectionMatchSet. You can't delete a SqlInjectionMatchSet
  3522  // if it's still used in any Rules or if it still contains any SqlInjectionMatchTuple
  3523  // objects.
  3524  //
  3525  // If you just want to remove a SqlInjectionMatchSet from a Rule, use UpdateRule.
  3526  //
  3527  // To permanently delete a SqlInjectionMatchSet from AWS WAF, perform the following
  3528  // steps:
  3529  //
  3530  // Update the SqlInjectionMatchSet to remove filters, if any. For more information,
  3531  // see UpdateSqlInjectionMatchSet.
  3532  //
  3533  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  3534  // parameter of a DeleteSqlInjectionMatchSet request.
  3535  //
  3536  // Submit a DeleteSqlInjectionMatchSet request.
  3537  //
  3538  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3539  // with awserr.Error's Code and Message methods to get detailed information about
  3540  // the error.
  3541  //
  3542  // See the AWS API reference guide for AWS WAF's
  3543  // API operation DeleteSqlInjectionMatchSet for usage and error information.
  3544  //
  3545  // Returned Error Types:
  3546  //   * InternalErrorException
  3547  //   The operation failed because of a system problem, even though the request
  3548  //   was valid. Retry your request.
  3549  //
  3550  //   * InvalidAccountException
  3551  //   The operation failed because you tried to create, update, or delete an object
  3552  //   by using an invalid account identifier.
  3553  //
  3554  //   * NonexistentItemException
  3555  //   The operation failed because the referenced object doesn't exist.
  3556  //
  3557  //   * ReferencedItemException
  3558  //   The operation failed because you tried to delete an object that is still
  3559  //   in use. For example:
  3560  //
  3561  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  3562  //
  3563  //      * You tried to delete a Rule that is still referenced by a WebACL.
  3564  //
  3565  //   * StaleDataException
  3566  //   The operation failed because you tried to create, update, or delete an object
  3567  //   by using a change token that has already been used.
  3568  //
  3569  //   * NonEmptyEntityException
  3570  //   The operation failed because you tried to delete an object that isn't empty.
  3571  //   For example:
  3572  //
  3573  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  3574  //
  3575  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  3576  //      objects or other predicates.
  3577  //
  3578  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  3579  //      objects.
  3580  //
  3581  //      * You tried to delete an IPSet that references one or more IP addresses.
  3582  //
  3583  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteSqlInjectionMatchSet
  3584  func (c *WAF) DeleteSqlInjectionMatchSet(input *DeleteSqlInjectionMatchSetInput) (*DeleteSqlInjectionMatchSetOutput, error) {
  3585  	req, out := c.DeleteSqlInjectionMatchSetRequest(input)
  3586  	return out, req.Send()
  3587  }
  3588  
  3589  // DeleteSqlInjectionMatchSetWithContext is the same as DeleteSqlInjectionMatchSet with the addition of
  3590  // the ability to pass a context and additional request options.
  3591  //
  3592  // See DeleteSqlInjectionMatchSet for details on how to use this API operation.
  3593  //
  3594  // The context must be non-nil and will be used for request cancellation. If
  3595  // the context is nil a panic will occur. In the future the SDK may create
  3596  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3597  // for more information on using Contexts.
  3598  func (c *WAF) DeleteSqlInjectionMatchSetWithContext(ctx aws.Context, input *DeleteSqlInjectionMatchSetInput, opts ...request.Option) (*DeleteSqlInjectionMatchSetOutput, error) {
  3599  	req, out := c.DeleteSqlInjectionMatchSetRequest(input)
  3600  	req.SetContext(ctx)
  3601  	req.ApplyOptions(opts...)
  3602  	return out, req.Send()
  3603  }
  3604  
  3605  const opDeleteWebACL = "DeleteWebACL"
  3606  
  3607  // DeleteWebACLRequest generates a "aws/request.Request" representing the
  3608  // client's request for the DeleteWebACL operation. The "output" return
  3609  // value will be populated with the request's response once the request completes
  3610  // successfully.
  3611  //
  3612  // Use "Send" method on the returned Request to send the API call to the service.
  3613  // the "output" return value is not valid until after Send returns without error.
  3614  //
  3615  // See DeleteWebACL for more information on using the DeleteWebACL
  3616  // API call, and error handling.
  3617  //
  3618  // This method is useful when you want to inject custom logic or configuration
  3619  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3620  //
  3621  //
  3622  //    // Example sending a request using the DeleteWebACLRequest method.
  3623  //    req, resp := client.DeleteWebACLRequest(params)
  3624  //
  3625  //    err := req.Send()
  3626  //    if err == nil { // resp is now filled
  3627  //        fmt.Println(resp)
  3628  //    }
  3629  //
  3630  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteWebACL
  3631  func (c *WAF) DeleteWebACLRequest(input *DeleteWebACLInput) (req *request.Request, output *DeleteWebACLOutput) {
  3632  	op := &request.Operation{
  3633  		Name:       opDeleteWebACL,
  3634  		HTTPMethod: "POST",
  3635  		HTTPPath:   "/",
  3636  	}
  3637  
  3638  	if input == nil {
  3639  		input = &DeleteWebACLInput{}
  3640  	}
  3641  
  3642  	output = &DeleteWebACLOutput{}
  3643  	req = c.newRequest(op, input, output)
  3644  	return
  3645  }
  3646  
  3647  // DeleteWebACL API operation for AWS WAF.
  3648  //
  3649  //
  3650  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  3651  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  3652  // in the developer guide.
  3653  //
  3654  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  3655  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  3656  // With the latest version, AWS WAF has a single set of endpoints for regional
  3657  // and global use.
  3658  //
  3659  // Permanently deletes a WebACL. You can't delete a WebACL if it still contains
  3660  // any Rules.
  3661  //
  3662  // To delete a WebACL, perform the following steps:
  3663  //
  3664  // Update the WebACL to remove Rules, if any. For more information, see UpdateWebACL.
  3665  //
  3666  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  3667  // parameter of a DeleteWebACL request.
  3668  //
  3669  // Submit a DeleteWebACL request.
  3670  //
  3671  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3672  // with awserr.Error's Code and Message methods to get detailed information about
  3673  // the error.
  3674  //
  3675  // See the AWS API reference guide for AWS WAF's
  3676  // API operation DeleteWebACL for usage and error information.
  3677  //
  3678  // Returned Error Types:
  3679  //   * StaleDataException
  3680  //   The operation failed because you tried to create, update, or delete an object
  3681  //   by using a change token that has already been used.
  3682  //
  3683  //   * InternalErrorException
  3684  //   The operation failed because of a system problem, even though the request
  3685  //   was valid. Retry your request.
  3686  //
  3687  //   * InvalidAccountException
  3688  //   The operation failed because you tried to create, update, or delete an object
  3689  //   by using an invalid account identifier.
  3690  //
  3691  //   * NonexistentItemException
  3692  //   The operation failed because the referenced object doesn't exist.
  3693  //
  3694  //   * ReferencedItemException
  3695  //   The operation failed because you tried to delete an object that is still
  3696  //   in use. For example:
  3697  //
  3698  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  3699  //
  3700  //      * You tried to delete a Rule that is still referenced by a WebACL.
  3701  //
  3702  //   * NonEmptyEntityException
  3703  //   The operation failed because you tried to delete an object that isn't empty.
  3704  //   For example:
  3705  //
  3706  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  3707  //
  3708  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  3709  //      objects or other predicates.
  3710  //
  3711  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  3712  //      objects.
  3713  //
  3714  //      * You tried to delete an IPSet that references one or more IP addresses.
  3715  //
  3716  //   * TagOperationException
  3717  //
  3718  //   * TagOperationInternalErrorException
  3719  //
  3720  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteWebACL
  3721  func (c *WAF) DeleteWebACL(input *DeleteWebACLInput) (*DeleteWebACLOutput, error) {
  3722  	req, out := c.DeleteWebACLRequest(input)
  3723  	return out, req.Send()
  3724  }
  3725  
  3726  // DeleteWebACLWithContext is the same as DeleteWebACL with the addition of
  3727  // the ability to pass a context and additional request options.
  3728  //
  3729  // See DeleteWebACL for details on how to use this API operation.
  3730  //
  3731  // The context must be non-nil and will be used for request cancellation. If
  3732  // the context is nil a panic will occur. In the future the SDK may create
  3733  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3734  // for more information on using Contexts.
  3735  func (c *WAF) DeleteWebACLWithContext(ctx aws.Context, input *DeleteWebACLInput, opts ...request.Option) (*DeleteWebACLOutput, error) {
  3736  	req, out := c.DeleteWebACLRequest(input)
  3737  	req.SetContext(ctx)
  3738  	req.ApplyOptions(opts...)
  3739  	return out, req.Send()
  3740  }
  3741  
  3742  const opDeleteXssMatchSet = "DeleteXssMatchSet"
  3743  
  3744  // DeleteXssMatchSetRequest generates a "aws/request.Request" representing the
  3745  // client's request for the DeleteXssMatchSet operation. The "output" return
  3746  // value will be populated with the request's response once the request completes
  3747  // successfully.
  3748  //
  3749  // Use "Send" method on the returned Request to send the API call to the service.
  3750  // the "output" return value is not valid until after Send returns without error.
  3751  //
  3752  // See DeleteXssMatchSet for more information on using the DeleteXssMatchSet
  3753  // API call, and error handling.
  3754  //
  3755  // This method is useful when you want to inject custom logic or configuration
  3756  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3757  //
  3758  //
  3759  //    // Example sending a request using the DeleteXssMatchSetRequest method.
  3760  //    req, resp := client.DeleteXssMatchSetRequest(params)
  3761  //
  3762  //    err := req.Send()
  3763  //    if err == nil { // resp is now filled
  3764  //        fmt.Println(resp)
  3765  //    }
  3766  //
  3767  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteXssMatchSet
  3768  func (c *WAF) DeleteXssMatchSetRequest(input *DeleteXssMatchSetInput) (req *request.Request, output *DeleteXssMatchSetOutput) {
  3769  	op := &request.Operation{
  3770  		Name:       opDeleteXssMatchSet,
  3771  		HTTPMethod: "POST",
  3772  		HTTPPath:   "/",
  3773  	}
  3774  
  3775  	if input == nil {
  3776  		input = &DeleteXssMatchSetInput{}
  3777  	}
  3778  
  3779  	output = &DeleteXssMatchSetOutput{}
  3780  	req = c.newRequest(op, input, output)
  3781  	return
  3782  }
  3783  
  3784  // DeleteXssMatchSet API operation for AWS WAF.
  3785  //
  3786  //
  3787  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  3788  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  3789  // in the developer guide.
  3790  //
  3791  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  3792  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  3793  // With the latest version, AWS WAF has a single set of endpoints for regional
  3794  // and global use.
  3795  //
  3796  // Permanently deletes an XssMatchSet. You can't delete an XssMatchSet if it's
  3797  // still used in any Rules or if it still contains any XssMatchTuple objects.
  3798  //
  3799  // If you just want to remove an XssMatchSet from a Rule, use UpdateRule.
  3800  //
  3801  // To permanently delete an XssMatchSet from AWS WAF, perform the following
  3802  // steps:
  3803  //
  3804  // Update the XssMatchSet to remove filters, if any. For more information, see
  3805  // UpdateXssMatchSet.
  3806  //
  3807  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  3808  // parameter of a DeleteXssMatchSet request.
  3809  //
  3810  // Submit a DeleteXssMatchSet request.
  3811  //
  3812  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3813  // with awserr.Error's Code and Message methods to get detailed information about
  3814  // the error.
  3815  //
  3816  // See the AWS API reference guide for AWS WAF's
  3817  // API operation DeleteXssMatchSet for usage and error information.
  3818  //
  3819  // Returned Error Types:
  3820  //   * InternalErrorException
  3821  //   The operation failed because of a system problem, even though the request
  3822  //   was valid. Retry your request.
  3823  //
  3824  //   * InvalidAccountException
  3825  //   The operation failed because you tried to create, update, or delete an object
  3826  //   by using an invalid account identifier.
  3827  //
  3828  //   * NonexistentItemException
  3829  //   The operation failed because the referenced object doesn't exist.
  3830  //
  3831  //   * ReferencedItemException
  3832  //   The operation failed because you tried to delete an object that is still
  3833  //   in use. For example:
  3834  //
  3835  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  3836  //
  3837  //      * You tried to delete a Rule that is still referenced by a WebACL.
  3838  //
  3839  //   * StaleDataException
  3840  //   The operation failed because you tried to create, update, or delete an object
  3841  //   by using a change token that has already been used.
  3842  //
  3843  //   * NonEmptyEntityException
  3844  //   The operation failed because you tried to delete an object that isn't empty.
  3845  //   For example:
  3846  //
  3847  //      * You tried to delete a WebACL that still contains one or more Rule objects.
  3848  //
  3849  //      * You tried to delete a Rule that still contains one or more ByteMatchSet
  3850  //      objects or other predicates.
  3851  //
  3852  //      * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
  3853  //      objects.
  3854  //
  3855  //      * You tried to delete an IPSet that references one or more IP addresses.
  3856  //
  3857  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/DeleteXssMatchSet
  3858  func (c *WAF) DeleteXssMatchSet(input *DeleteXssMatchSetInput) (*DeleteXssMatchSetOutput, error) {
  3859  	req, out := c.DeleteXssMatchSetRequest(input)
  3860  	return out, req.Send()
  3861  }
  3862  
  3863  // DeleteXssMatchSetWithContext is the same as DeleteXssMatchSet with the addition of
  3864  // the ability to pass a context and additional request options.
  3865  //
  3866  // See DeleteXssMatchSet for details on how to use this API operation.
  3867  //
  3868  // The context must be non-nil and will be used for request cancellation. If
  3869  // the context is nil a panic will occur. In the future the SDK may create
  3870  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3871  // for more information on using Contexts.
  3872  func (c *WAF) DeleteXssMatchSetWithContext(ctx aws.Context, input *DeleteXssMatchSetInput, opts ...request.Option) (*DeleteXssMatchSetOutput, error) {
  3873  	req, out := c.DeleteXssMatchSetRequest(input)
  3874  	req.SetContext(ctx)
  3875  	req.ApplyOptions(opts...)
  3876  	return out, req.Send()
  3877  }
  3878  
  3879  const opGetByteMatchSet = "GetByteMatchSet"
  3880  
  3881  // GetByteMatchSetRequest generates a "aws/request.Request" representing the
  3882  // client's request for the GetByteMatchSet operation. The "output" return
  3883  // value will be populated with the request's response once the request completes
  3884  // successfully.
  3885  //
  3886  // Use "Send" method on the returned Request to send the API call to the service.
  3887  // the "output" return value is not valid until after Send returns without error.
  3888  //
  3889  // See GetByteMatchSet for more information on using the GetByteMatchSet
  3890  // API call, and error handling.
  3891  //
  3892  // This method is useful when you want to inject custom logic or configuration
  3893  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3894  //
  3895  //
  3896  //    // Example sending a request using the GetByteMatchSetRequest method.
  3897  //    req, resp := client.GetByteMatchSetRequest(params)
  3898  //
  3899  //    err := req.Send()
  3900  //    if err == nil { // resp is now filled
  3901  //        fmt.Println(resp)
  3902  //    }
  3903  //
  3904  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetByteMatchSet
  3905  func (c *WAF) GetByteMatchSetRequest(input *GetByteMatchSetInput) (req *request.Request, output *GetByteMatchSetOutput) {
  3906  	op := &request.Operation{
  3907  		Name:       opGetByteMatchSet,
  3908  		HTTPMethod: "POST",
  3909  		HTTPPath:   "/",
  3910  	}
  3911  
  3912  	if input == nil {
  3913  		input = &GetByteMatchSetInput{}
  3914  	}
  3915  
  3916  	output = &GetByteMatchSetOutput{}
  3917  	req = c.newRequest(op, input, output)
  3918  	return
  3919  }
  3920  
  3921  // GetByteMatchSet API operation for AWS WAF.
  3922  //
  3923  //
  3924  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  3925  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  3926  // in the developer guide.
  3927  //
  3928  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  3929  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  3930  // With the latest version, AWS WAF has a single set of endpoints for regional
  3931  // and global use.
  3932  //
  3933  // Returns the ByteMatchSet specified by ByteMatchSetId.
  3934  //
  3935  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  3936  // with awserr.Error's Code and Message methods to get detailed information about
  3937  // the error.
  3938  //
  3939  // See the AWS API reference guide for AWS WAF's
  3940  // API operation GetByteMatchSet for usage and error information.
  3941  //
  3942  // Returned Error Types:
  3943  //   * InternalErrorException
  3944  //   The operation failed because of a system problem, even though the request
  3945  //   was valid. Retry your request.
  3946  //
  3947  //   * InvalidAccountException
  3948  //   The operation failed because you tried to create, update, or delete an object
  3949  //   by using an invalid account identifier.
  3950  //
  3951  //   * NonexistentItemException
  3952  //   The operation failed because the referenced object doesn't exist.
  3953  //
  3954  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetByteMatchSet
  3955  func (c *WAF) GetByteMatchSet(input *GetByteMatchSetInput) (*GetByteMatchSetOutput, error) {
  3956  	req, out := c.GetByteMatchSetRequest(input)
  3957  	return out, req.Send()
  3958  }
  3959  
  3960  // GetByteMatchSetWithContext is the same as GetByteMatchSet with the addition of
  3961  // the ability to pass a context and additional request options.
  3962  //
  3963  // See GetByteMatchSet for details on how to use this API operation.
  3964  //
  3965  // The context must be non-nil and will be used for request cancellation. If
  3966  // the context is nil a panic will occur. In the future the SDK may create
  3967  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  3968  // for more information on using Contexts.
  3969  func (c *WAF) GetByteMatchSetWithContext(ctx aws.Context, input *GetByteMatchSetInput, opts ...request.Option) (*GetByteMatchSetOutput, error) {
  3970  	req, out := c.GetByteMatchSetRequest(input)
  3971  	req.SetContext(ctx)
  3972  	req.ApplyOptions(opts...)
  3973  	return out, req.Send()
  3974  }
  3975  
  3976  const opGetChangeToken = "GetChangeToken"
  3977  
  3978  // GetChangeTokenRequest generates a "aws/request.Request" representing the
  3979  // client's request for the GetChangeToken operation. The "output" return
  3980  // value will be populated with the request's response once the request completes
  3981  // successfully.
  3982  //
  3983  // Use "Send" method on the returned Request to send the API call to the service.
  3984  // the "output" return value is not valid until after Send returns without error.
  3985  //
  3986  // See GetChangeToken for more information on using the GetChangeToken
  3987  // API call, and error handling.
  3988  //
  3989  // This method is useful when you want to inject custom logic or configuration
  3990  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  3991  //
  3992  //
  3993  //    // Example sending a request using the GetChangeTokenRequest method.
  3994  //    req, resp := client.GetChangeTokenRequest(params)
  3995  //
  3996  //    err := req.Send()
  3997  //    if err == nil { // resp is now filled
  3998  //        fmt.Println(resp)
  3999  //    }
  4000  //
  4001  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeToken
  4002  func (c *WAF) GetChangeTokenRequest(input *GetChangeTokenInput) (req *request.Request, output *GetChangeTokenOutput) {
  4003  	op := &request.Operation{
  4004  		Name:       opGetChangeToken,
  4005  		HTTPMethod: "POST",
  4006  		HTTPPath:   "/",
  4007  	}
  4008  
  4009  	if input == nil {
  4010  		input = &GetChangeTokenInput{}
  4011  	}
  4012  
  4013  	output = &GetChangeTokenOutput{}
  4014  	req = c.newRequest(op, input, output)
  4015  	return
  4016  }
  4017  
  4018  // GetChangeToken API operation for AWS WAF.
  4019  //
  4020  //
  4021  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4022  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4023  // in the developer guide.
  4024  //
  4025  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4026  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4027  // With the latest version, AWS WAF has a single set of endpoints for regional
  4028  // and global use.
  4029  //
  4030  // When you want to create, update, or delete AWS WAF objects, get a change
  4031  // token and include the change token in the create, update, or delete request.
  4032  // Change tokens ensure that your application doesn't submit conflicting requests
  4033  // to AWS WAF.
  4034  //
  4035  // Each create, update, or delete request must use a unique change token. If
  4036  // your application submits a GetChangeToken request and then submits a second
  4037  // GetChangeToken request before submitting a create, update, or delete request,
  4038  // the second GetChangeToken request returns the same value as the first GetChangeToken
  4039  // request.
  4040  //
  4041  // When you use a change token in a create, update, or delete request, the status
  4042  // of the change token changes to PENDING, which indicates that AWS WAF is propagating
  4043  // the change to all AWS WAF servers. Use GetChangeTokenStatus to determine
  4044  // the status of your change token.
  4045  //
  4046  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4047  // with awserr.Error's Code and Message methods to get detailed information about
  4048  // the error.
  4049  //
  4050  // See the AWS API reference guide for AWS WAF's
  4051  // API operation GetChangeToken for usage and error information.
  4052  //
  4053  // Returned Error Types:
  4054  //   * InternalErrorException
  4055  //   The operation failed because of a system problem, even though the request
  4056  //   was valid. Retry your request.
  4057  //
  4058  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeToken
  4059  func (c *WAF) GetChangeToken(input *GetChangeTokenInput) (*GetChangeTokenOutput, error) {
  4060  	req, out := c.GetChangeTokenRequest(input)
  4061  	return out, req.Send()
  4062  }
  4063  
  4064  // GetChangeTokenWithContext is the same as GetChangeToken with the addition of
  4065  // the ability to pass a context and additional request options.
  4066  //
  4067  // See GetChangeToken for details on how to use this API operation.
  4068  //
  4069  // The context must be non-nil and will be used for request cancellation. If
  4070  // the context is nil a panic will occur. In the future the SDK may create
  4071  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4072  // for more information on using Contexts.
  4073  func (c *WAF) GetChangeTokenWithContext(ctx aws.Context, input *GetChangeTokenInput, opts ...request.Option) (*GetChangeTokenOutput, error) {
  4074  	req, out := c.GetChangeTokenRequest(input)
  4075  	req.SetContext(ctx)
  4076  	req.ApplyOptions(opts...)
  4077  	return out, req.Send()
  4078  }
  4079  
  4080  const opGetChangeTokenStatus = "GetChangeTokenStatus"
  4081  
  4082  // GetChangeTokenStatusRequest generates a "aws/request.Request" representing the
  4083  // client's request for the GetChangeTokenStatus operation. The "output" return
  4084  // value will be populated with the request's response once the request completes
  4085  // successfully.
  4086  //
  4087  // Use "Send" method on the returned Request to send the API call to the service.
  4088  // the "output" return value is not valid until after Send returns without error.
  4089  //
  4090  // See GetChangeTokenStatus for more information on using the GetChangeTokenStatus
  4091  // API call, and error handling.
  4092  //
  4093  // This method is useful when you want to inject custom logic or configuration
  4094  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4095  //
  4096  //
  4097  //    // Example sending a request using the GetChangeTokenStatusRequest method.
  4098  //    req, resp := client.GetChangeTokenStatusRequest(params)
  4099  //
  4100  //    err := req.Send()
  4101  //    if err == nil { // resp is now filled
  4102  //        fmt.Println(resp)
  4103  //    }
  4104  //
  4105  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenStatus
  4106  func (c *WAF) GetChangeTokenStatusRequest(input *GetChangeTokenStatusInput) (req *request.Request, output *GetChangeTokenStatusOutput) {
  4107  	op := &request.Operation{
  4108  		Name:       opGetChangeTokenStatus,
  4109  		HTTPMethod: "POST",
  4110  		HTTPPath:   "/",
  4111  	}
  4112  
  4113  	if input == nil {
  4114  		input = &GetChangeTokenStatusInput{}
  4115  	}
  4116  
  4117  	output = &GetChangeTokenStatusOutput{}
  4118  	req = c.newRequest(op, input, output)
  4119  	return
  4120  }
  4121  
  4122  // GetChangeTokenStatus API operation for AWS WAF.
  4123  //
  4124  //
  4125  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4126  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4127  // in the developer guide.
  4128  //
  4129  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4130  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4131  // With the latest version, AWS WAF has a single set of endpoints for regional
  4132  // and global use.
  4133  //
  4134  // Returns the status of a ChangeToken that you got by calling GetChangeToken.
  4135  // ChangeTokenStatus is one of the following values:
  4136  //
  4137  //    * PROVISIONED: You requested the change token by calling GetChangeToken,
  4138  //    but you haven't used it yet in a call to create, update, or delete an
  4139  //    AWS WAF object.
  4140  //
  4141  //    * PENDING: AWS WAF is propagating the create, update, or delete request
  4142  //    to all AWS WAF servers.
  4143  //
  4144  //    * INSYNC: Propagation is complete.
  4145  //
  4146  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4147  // with awserr.Error's Code and Message methods to get detailed information about
  4148  // the error.
  4149  //
  4150  // See the AWS API reference guide for AWS WAF's
  4151  // API operation GetChangeTokenStatus for usage and error information.
  4152  //
  4153  // Returned Error Types:
  4154  //   * NonexistentItemException
  4155  //   The operation failed because the referenced object doesn't exist.
  4156  //
  4157  //   * InternalErrorException
  4158  //   The operation failed because of a system problem, even though the request
  4159  //   was valid. Retry your request.
  4160  //
  4161  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetChangeTokenStatus
  4162  func (c *WAF) GetChangeTokenStatus(input *GetChangeTokenStatusInput) (*GetChangeTokenStatusOutput, error) {
  4163  	req, out := c.GetChangeTokenStatusRequest(input)
  4164  	return out, req.Send()
  4165  }
  4166  
  4167  // GetChangeTokenStatusWithContext is the same as GetChangeTokenStatus with the addition of
  4168  // the ability to pass a context and additional request options.
  4169  //
  4170  // See GetChangeTokenStatus for details on how to use this API operation.
  4171  //
  4172  // The context must be non-nil and will be used for request cancellation. If
  4173  // the context is nil a panic will occur. In the future the SDK may create
  4174  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4175  // for more information on using Contexts.
  4176  func (c *WAF) GetChangeTokenStatusWithContext(ctx aws.Context, input *GetChangeTokenStatusInput, opts ...request.Option) (*GetChangeTokenStatusOutput, error) {
  4177  	req, out := c.GetChangeTokenStatusRequest(input)
  4178  	req.SetContext(ctx)
  4179  	req.ApplyOptions(opts...)
  4180  	return out, req.Send()
  4181  }
  4182  
  4183  const opGetGeoMatchSet = "GetGeoMatchSet"
  4184  
  4185  // GetGeoMatchSetRequest generates a "aws/request.Request" representing the
  4186  // client's request for the GetGeoMatchSet operation. The "output" return
  4187  // value will be populated with the request's response once the request completes
  4188  // successfully.
  4189  //
  4190  // Use "Send" method on the returned Request to send the API call to the service.
  4191  // the "output" return value is not valid until after Send returns without error.
  4192  //
  4193  // See GetGeoMatchSet for more information on using the GetGeoMatchSet
  4194  // API call, and error handling.
  4195  //
  4196  // This method is useful when you want to inject custom logic or configuration
  4197  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4198  //
  4199  //
  4200  //    // Example sending a request using the GetGeoMatchSetRequest method.
  4201  //    req, resp := client.GetGeoMatchSetRequest(params)
  4202  //
  4203  //    err := req.Send()
  4204  //    if err == nil { // resp is now filled
  4205  //        fmt.Println(resp)
  4206  //    }
  4207  //
  4208  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetGeoMatchSet
  4209  func (c *WAF) GetGeoMatchSetRequest(input *GetGeoMatchSetInput) (req *request.Request, output *GetGeoMatchSetOutput) {
  4210  	op := &request.Operation{
  4211  		Name:       opGetGeoMatchSet,
  4212  		HTTPMethod: "POST",
  4213  		HTTPPath:   "/",
  4214  	}
  4215  
  4216  	if input == nil {
  4217  		input = &GetGeoMatchSetInput{}
  4218  	}
  4219  
  4220  	output = &GetGeoMatchSetOutput{}
  4221  	req = c.newRequest(op, input, output)
  4222  	return
  4223  }
  4224  
  4225  // GetGeoMatchSet API operation for AWS WAF.
  4226  //
  4227  //
  4228  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4229  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4230  // in the developer guide.
  4231  //
  4232  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4233  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4234  // With the latest version, AWS WAF has a single set of endpoints for regional
  4235  // and global use.
  4236  //
  4237  // Returns the GeoMatchSet that is specified by GeoMatchSetId.
  4238  //
  4239  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4240  // with awserr.Error's Code and Message methods to get detailed information about
  4241  // the error.
  4242  //
  4243  // See the AWS API reference guide for AWS WAF's
  4244  // API operation GetGeoMatchSet for usage and error information.
  4245  //
  4246  // Returned Error Types:
  4247  //   * InternalErrorException
  4248  //   The operation failed because of a system problem, even though the request
  4249  //   was valid. Retry your request.
  4250  //
  4251  //   * InvalidAccountException
  4252  //   The operation failed because you tried to create, update, or delete an object
  4253  //   by using an invalid account identifier.
  4254  //
  4255  //   * NonexistentItemException
  4256  //   The operation failed because the referenced object doesn't exist.
  4257  //
  4258  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetGeoMatchSet
  4259  func (c *WAF) GetGeoMatchSet(input *GetGeoMatchSetInput) (*GetGeoMatchSetOutput, error) {
  4260  	req, out := c.GetGeoMatchSetRequest(input)
  4261  	return out, req.Send()
  4262  }
  4263  
  4264  // GetGeoMatchSetWithContext is the same as GetGeoMatchSet with the addition of
  4265  // the ability to pass a context and additional request options.
  4266  //
  4267  // See GetGeoMatchSet for details on how to use this API operation.
  4268  //
  4269  // The context must be non-nil and will be used for request cancellation. If
  4270  // the context is nil a panic will occur. In the future the SDK may create
  4271  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4272  // for more information on using Contexts.
  4273  func (c *WAF) GetGeoMatchSetWithContext(ctx aws.Context, input *GetGeoMatchSetInput, opts ...request.Option) (*GetGeoMatchSetOutput, error) {
  4274  	req, out := c.GetGeoMatchSetRequest(input)
  4275  	req.SetContext(ctx)
  4276  	req.ApplyOptions(opts...)
  4277  	return out, req.Send()
  4278  }
  4279  
  4280  const opGetIPSet = "GetIPSet"
  4281  
  4282  // GetIPSetRequest generates a "aws/request.Request" representing the
  4283  // client's request for the GetIPSet operation. The "output" return
  4284  // value will be populated with the request's response once the request completes
  4285  // successfully.
  4286  //
  4287  // Use "Send" method on the returned Request to send the API call to the service.
  4288  // the "output" return value is not valid until after Send returns without error.
  4289  //
  4290  // See GetIPSet for more information on using the GetIPSet
  4291  // API call, and error handling.
  4292  //
  4293  // This method is useful when you want to inject custom logic or configuration
  4294  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4295  //
  4296  //
  4297  //    // Example sending a request using the GetIPSetRequest method.
  4298  //    req, resp := client.GetIPSetRequest(params)
  4299  //
  4300  //    err := req.Send()
  4301  //    if err == nil { // resp is now filled
  4302  //        fmt.Println(resp)
  4303  //    }
  4304  //
  4305  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetIPSet
  4306  func (c *WAF) GetIPSetRequest(input *GetIPSetInput) (req *request.Request, output *GetIPSetOutput) {
  4307  	op := &request.Operation{
  4308  		Name:       opGetIPSet,
  4309  		HTTPMethod: "POST",
  4310  		HTTPPath:   "/",
  4311  	}
  4312  
  4313  	if input == nil {
  4314  		input = &GetIPSetInput{}
  4315  	}
  4316  
  4317  	output = &GetIPSetOutput{}
  4318  	req = c.newRequest(op, input, output)
  4319  	return
  4320  }
  4321  
  4322  // GetIPSet API operation for AWS WAF.
  4323  //
  4324  //
  4325  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4326  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4327  // in the developer guide.
  4328  //
  4329  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4330  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4331  // With the latest version, AWS WAF has a single set of endpoints for regional
  4332  // and global use.
  4333  //
  4334  // Returns the IPSet that is specified by IPSetId.
  4335  //
  4336  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4337  // with awserr.Error's Code and Message methods to get detailed information about
  4338  // the error.
  4339  //
  4340  // See the AWS API reference guide for AWS WAF's
  4341  // API operation GetIPSet for usage and error information.
  4342  //
  4343  // Returned Error Types:
  4344  //   * InternalErrorException
  4345  //   The operation failed because of a system problem, even though the request
  4346  //   was valid. Retry your request.
  4347  //
  4348  //   * InvalidAccountException
  4349  //   The operation failed because you tried to create, update, or delete an object
  4350  //   by using an invalid account identifier.
  4351  //
  4352  //   * NonexistentItemException
  4353  //   The operation failed because the referenced object doesn't exist.
  4354  //
  4355  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetIPSet
  4356  func (c *WAF) GetIPSet(input *GetIPSetInput) (*GetIPSetOutput, error) {
  4357  	req, out := c.GetIPSetRequest(input)
  4358  	return out, req.Send()
  4359  }
  4360  
  4361  // GetIPSetWithContext is the same as GetIPSet with the addition of
  4362  // the ability to pass a context and additional request options.
  4363  //
  4364  // See GetIPSet for details on how to use this API operation.
  4365  //
  4366  // The context must be non-nil and will be used for request cancellation. If
  4367  // the context is nil a panic will occur. In the future the SDK may create
  4368  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4369  // for more information on using Contexts.
  4370  func (c *WAF) GetIPSetWithContext(ctx aws.Context, input *GetIPSetInput, opts ...request.Option) (*GetIPSetOutput, error) {
  4371  	req, out := c.GetIPSetRequest(input)
  4372  	req.SetContext(ctx)
  4373  	req.ApplyOptions(opts...)
  4374  	return out, req.Send()
  4375  }
  4376  
  4377  const opGetLoggingConfiguration = "GetLoggingConfiguration"
  4378  
  4379  // GetLoggingConfigurationRequest generates a "aws/request.Request" representing the
  4380  // client's request for the GetLoggingConfiguration operation. The "output" return
  4381  // value will be populated with the request's response once the request completes
  4382  // successfully.
  4383  //
  4384  // Use "Send" method on the returned Request to send the API call to the service.
  4385  // the "output" return value is not valid until after Send returns without error.
  4386  //
  4387  // See GetLoggingConfiguration for more information on using the GetLoggingConfiguration
  4388  // API call, and error handling.
  4389  //
  4390  // This method is useful when you want to inject custom logic or configuration
  4391  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4392  //
  4393  //
  4394  //    // Example sending a request using the GetLoggingConfigurationRequest method.
  4395  //    req, resp := client.GetLoggingConfigurationRequest(params)
  4396  //
  4397  //    err := req.Send()
  4398  //    if err == nil { // resp is now filled
  4399  //        fmt.Println(resp)
  4400  //    }
  4401  //
  4402  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetLoggingConfiguration
  4403  func (c *WAF) GetLoggingConfigurationRequest(input *GetLoggingConfigurationInput) (req *request.Request, output *GetLoggingConfigurationOutput) {
  4404  	op := &request.Operation{
  4405  		Name:       opGetLoggingConfiguration,
  4406  		HTTPMethod: "POST",
  4407  		HTTPPath:   "/",
  4408  	}
  4409  
  4410  	if input == nil {
  4411  		input = &GetLoggingConfigurationInput{}
  4412  	}
  4413  
  4414  	output = &GetLoggingConfigurationOutput{}
  4415  	req = c.newRequest(op, input, output)
  4416  	return
  4417  }
  4418  
  4419  // GetLoggingConfiguration API operation for AWS WAF.
  4420  //
  4421  //
  4422  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4423  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4424  // in the developer guide.
  4425  //
  4426  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4427  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4428  // With the latest version, AWS WAF has a single set of endpoints for regional
  4429  // and global use.
  4430  //
  4431  // Returns the LoggingConfiguration for the specified web ACL.
  4432  //
  4433  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4434  // with awserr.Error's Code and Message methods to get detailed information about
  4435  // the error.
  4436  //
  4437  // See the AWS API reference guide for AWS WAF's
  4438  // API operation GetLoggingConfiguration for usage and error information.
  4439  //
  4440  // Returned Error Types:
  4441  //   * InternalErrorException
  4442  //   The operation failed because of a system problem, even though the request
  4443  //   was valid. Retry your request.
  4444  //
  4445  //   * NonexistentItemException
  4446  //   The operation failed because the referenced object doesn't exist.
  4447  //
  4448  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetLoggingConfiguration
  4449  func (c *WAF) GetLoggingConfiguration(input *GetLoggingConfigurationInput) (*GetLoggingConfigurationOutput, error) {
  4450  	req, out := c.GetLoggingConfigurationRequest(input)
  4451  	return out, req.Send()
  4452  }
  4453  
  4454  // GetLoggingConfigurationWithContext is the same as GetLoggingConfiguration with the addition of
  4455  // the ability to pass a context and additional request options.
  4456  //
  4457  // See GetLoggingConfiguration for details on how to use this API operation.
  4458  //
  4459  // The context must be non-nil and will be used for request cancellation. If
  4460  // the context is nil a panic will occur. In the future the SDK may create
  4461  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4462  // for more information on using Contexts.
  4463  func (c *WAF) GetLoggingConfigurationWithContext(ctx aws.Context, input *GetLoggingConfigurationInput, opts ...request.Option) (*GetLoggingConfigurationOutput, error) {
  4464  	req, out := c.GetLoggingConfigurationRequest(input)
  4465  	req.SetContext(ctx)
  4466  	req.ApplyOptions(opts...)
  4467  	return out, req.Send()
  4468  }
  4469  
  4470  const opGetPermissionPolicy = "GetPermissionPolicy"
  4471  
  4472  // GetPermissionPolicyRequest generates a "aws/request.Request" representing the
  4473  // client's request for the GetPermissionPolicy operation. The "output" return
  4474  // value will be populated with the request's response once the request completes
  4475  // successfully.
  4476  //
  4477  // Use "Send" method on the returned Request to send the API call to the service.
  4478  // the "output" return value is not valid until after Send returns without error.
  4479  //
  4480  // See GetPermissionPolicy for more information on using the GetPermissionPolicy
  4481  // API call, and error handling.
  4482  //
  4483  // This method is useful when you want to inject custom logic or configuration
  4484  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4485  //
  4486  //
  4487  //    // Example sending a request using the GetPermissionPolicyRequest method.
  4488  //    req, resp := client.GetPermissionPolicyRequest(params)
  4489  //
  4490  //    err := req.Send()
  4491  //    if err == nil { // resp is now filled
  4492  //        fmt.Println(resp)
  4493  //    }
  4494  //
  4495  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetPermissionPolicy
  4496  func (c *WAF) GetPermissionPolicyRequest(input *GetPermissionPolicyInput) (req *request.Request, output *GetPermissionPolicyOutput) {
  4497  	op := &request.Operation{
  4498  		Name:       opGetPermissionPolicy,
  4499  		HTTPMethod: "POST",
  4500  		HTTPPath:   "/",
  4501  	}
  4502  
  4503  	if input == nil {
  4504  		input = &GetPermissionPolicyInput{}
  4505  	}
  4506  
  4507  	output = &GetPermissionPolicyOutput{}
  4508  	req = c.newRequest(op, input, output)
  4509  	return
  4510  }
  4511  
  4512  // GetPermissionPolicy API operation for AWS WAF.
  4513  //
  4514  //
  4515  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4516  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4517  // in the developer guide.
  4518  //
  4519  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4520  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4521  // With the latest version, AWS WAF has a single set of endpoints for regional
  4522  // and global use.
  4523  //
  4524  // Returns the IAM policy attached to the RuleGroup.
  4525  //
  4526  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4527  // with awserr.Error's Code and Message methods to get detailed information about
  4528  // the error.
  4529  //
  4530  // See the AWS API reference guide for AWS WAF's
  4531  // API operation GetPermissionPolicy for usage and error information.
  4532  //
  4533  // Returned Error Types:
  4534  //   * InternalErrorException
  4535  //   The operation failed because of a system problem, even though the request
  4536  //   was valid. Retry your request.
  4537  //
  4538  //   * NonexistentItemException
  4539  //   The operation failed because the referenced object doesn't exist.
  4540  //
  4541  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetPermissionPolicy
  4542  func (c *WAF) GetPermissionPolicy(input *GetPermissionPolicyInput) (*GetPermissionPolicyOutput, error) {
  4543  	req, out := c.GetPermissionPolicyRequest(input)
  4544  	return out, req.Send()
  4545  }
  4546  
  4547  // GetPermissionPolicyWithContext is the same as GetPermissionPolicy with the addition of
  4548  // the ability to pass a context and additional request options.
  4549  //
  4550  // See GetPermissionPolicy for details on how to use this API operation.
  4551  //
  4552  // The context must be non-nil and will be used for request cancellation. If
  4553  // the context is nil a panic will occur. In the future the SDK may create
  4554  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4555  // for more information on using Contexts.
  4556  func (c *WAF) GetPermissionPolicyWithContext(ctx aws.Context, input *GetPermissionPolicyInput, opts ...request.Option) (*GetPermissionPolicyOutput, error) {
  4557  	req, out := c.GetPermissionPolicyRequest(input)
  4558  	req.SetContext(ctx)
  4559  	req.ApplyOptions(opts...)
  4560  	return out, req.Send()
  4561  }
  4562  
  4563  const opGetRateBasedRule = "GetRateBasedRule"
  4564  
  4565  // GetRateBasedRuleRequest generates a "aws/request.Request" representing the
  4566  // client's request for the GetRateBasedRule operation. The "output" return
  4567  // value will be populated with the request's response once the request completes
  4568  // successfully.
  4569  //
  4570  // Use "Send" method on the returned Request to send the API call to the service.
  4571  // the "output" return value is not valid until after Send returns without error.
  4572  //
  4573  // See GetRateBasedRule for more information on using the GetRateBasedRule
  4574  // API call, and error handling.
  4575  //
  4576  // This method is useful when you want to inject custom logic or configuration
  4577  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4578  //
  4579  //
  4580  //    // Example sending a request using the GetRateBasedRuleRequest method.
  4581  //    req, resp := client.GetRateBasedRuleRequest(params)
  4582  //
  4583  //    err := req.Send()
  4584  //    if err == nil { // resp is now filled
  4585  //        fmt.Println(resp)
  4586  //    }
  4587  //
  4588  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRule
  4589  func (c *WAF) GetRateBasedRuleRequest(input *GetRateBasedRuleInput) (req *request.Request, output *GetRateBasedRuleOutput) {
  4590  	op := &request.Operation{
  4591  		Name:       opGetRateBasedRule,
  4592  		HTTPMethod: "POST",
  4593  		HTTPPath:   "/",
  4594  	}
  4595  
  4596  	if input == nil {
  4597  		input = &GetRateBasedRuleInput{}
  4598  	}
  4599  
  4600  	output = &GetRateBasedRuleOutput{}
  4601  	req = c.newRequest(op, input, output)
  4602  	return
  4603  }
  4604  
  4605  // GetRateBasedRule API operation for AWS WAF.
  4606  //
  4607  //
  4608  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4609  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4610  // in the developer guide.
  4611  //
  4612  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4613  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4614  // With the latest version, AWS WAF has a single set of endpoints for regional
  4615  // and global use.
  4616  //
  4617  // Returns the RateBasedRule that is specified by the RuleId that you included
  4618  // in the GetRateBasedRule request.
  4619  //
  4620  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4621  // with awserr.Error's Code and Message methods to get detailed information about
  4622  // the error.
  4623  //
  4624  // See the AWS API reference guide for AWS WAF's
  4625  // API operation GetRateBasedRule for usage and error information.
  4626  //
  4627  // Returned Error Types:
  4628  //   * InternalErrorException
  4629  //   The operation failed because of a system problem, even though the request
  4630  //   was valid. Retry your request.
  4631  //
  4632  //   * InvalidAccountException
  4633  //   The operation failed because you tried to create, update, or delete an object
  4634  //   by using an invalid account identifier.
  4635  //
  4636  //   * NonexistentItemException
  4637  //   The operation failed because the referenced object doesn't exist.
  4638  //
  4639  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRule
  4640  func (c *WAF) GetRateBasedRule(input *GetRateBasedRuleInput) (*GetRateBasedRuleOutput, error) {
  4641  	req, out := c.GetRateBasedRuleRequest(input)
  4642  	return out, req.Send()
  4643  }
  4644  
  4645  // GetRateBasedRuleWithContext is the same as GetRateBasedRule with the addition of
  4646  // the ability to pass a context and additional request options.
  4647  //
  4648  // See GetRateBasedRule for details on how to use this API operation.
  4649  //
  4650  // The context must be non-nil and will be used for request cancellation. If
  4651  // the context is nil a panic will occur. In the future the SDK may create
  4652  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4653  // for more information on using Contexts.
  4654  func (c *WAF) GetRateBasedRuleWithContext(ctx aws.Context, input *GetRateBasedRuleInput, opts ...request.Option) (*GetRateBasedRuleOutput, error) {
  4655  	req, out := c.GetRateBasedRuleRequest(input)
  4656  	req.SetContext(ctx)
  4657  	req.ApplyOptions(opts...)
  4658  	return out, req.Send()
  4659  }
  4660  
  4661  const opGetRateBasedRuleManagedKeys = "GetRateBasedRuleManagedKeys"
  4662  
  4663  // GetRateBasedRuleManagedKeysRequest generates a "aws/request.Request" representing the
  4664  // client's request for the GetRateBasedRuleManagedKeys operation. The "output" return
  4665  // value will be populated with the request's response once the request completes
  4666  // successfully.
  4667  //
  4668  // Use "Send" method on the returned Request to send the API call to the service.
  4669  // the "output" return value is not valid until after Send returns without error.
  4670  //
  4671  // See GetRateBasedRuleManagedKeys for more information on using the GetRateBasedRuleManagedKeys
  4672  // API call, and error handling.
  4673  //
  4674  // This method is useful when you want to inject custom logic or configuration
  4675  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4676  //
  4677  //
  4678  //    // Example sending a request using the GetRateBasedRuleManagedKeysRequest method.
  4679  //    req, resp := client.GetRateBasedRuleManagedKeysRequest(params)
  4680  //
  4681  //    err := req.Send()
  4682  //    if err == nil { // resp is now filled
  4683  //        fmt.Println(resp)
  4684  //    }
  4685  //
  4686  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeys
  4687  func (c *WAF) GetRateBasedRuleManagedKeysRequest(input *GetRateBasedRuleManagedKeysInput) (req *request.Request, output *GetRateBasedRuleManagedKeysOutput) {
  4688  	op := &request.Operation{
  4689  		Name:       opGetRateBasedRuleManagedKeys,
  4690  		HTTPMethod: "POST",
  4691  		HTTPPath:   "/",
  4692  	}
  4693  
  4694  	if input == nil {
  4695  		input = &GetRateBasedRuleManagedKeysInput{}
  4696  	}
  4697  
  4698  	output = &GetRateBasedRuleManagedKeysOutput{}
  4699  	req = c.newRequest(op, input, output)
  4700  	return
  4701  }
  4702  
  4703  // GetRateBasedRuleManagedKeys API operation for AWS WAF.
  4704  //
  4705  //
  4706  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4707  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4708  // in the developer guide.
  4709  //
  4710  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4711  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4712  // With the latest version, AWS WAF has a single set of endpoints for regional
  4713  // and global use.
  4714  //
  4715  // Returns an array of IP addresses currently being blocked by the RateBasedRule
  4716  // that is specified by the RuleId. The maximum number of managed keys that
  4717  // will be blocked is 10,000. If more than 10,000 addresses exceed the rate
  4718  // limit, the 10,000 addresses with the highest rates will be blocked.
  4719  //
  4720  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4721  // with awserr.Error's Code and Message methods to get detailed information about
  4722  // the error.
  4723  //
  4724  // See the AWS API reference guide for AWS WAF's
  4725  // API operation GetRateBasedRuleManagedKeys for usage and error information.
  4726  //
  4727  // Returned Error Types:
  4728  //   * InternalErrorException
  4729  //   The operation failed because of a system problem, even though the request
  4730  //   was valid. Retry your request.
  4731  //
  4732  //   * InvalidAccountException
  4733  //   The operation failed because you tried to create, update, or delete an object
  4734  //   by using an invalid account identifier.
  4735  //
  4736  //   * NonexistentItemException
  4737  //   The operation failed because the referenced object doesn't exist.
  4738  //
  4739  //   * InvalidParameterException
  4740  //   The operation failed because AWS WAF didn't recognize a parameter in the
  4741  //   request. For example:
  4742  //
  4743  //      * You specified an invalid parameter name.
  4744  //
  4745  //      * You specified an invalid value.
  4746  //
  4747  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  4748  //      using an action other than INSERT or DELETE.
  4749  //
  4750  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  4751  //      BLOCK, or COUNT.
  4752  //
  4753  //      * You tried to create a RateBasedRule with a RateKey value other than
  4754  //      IP.
  4755  //
  4756  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  4757  //      BLOCK, or COUNT.
  4758  //
  4759  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  4760  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  4761  //
  4762  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  4763  //      for Data.
  4764  //
  4765  //      * Your request references an ARN that is malformed, or corresponds to
  4766  //      a resource with which a web ACL cannot be associated.
  4767  //
  4768  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRateBasedRuleManagedKeys
  4769  func (c *WAF) GetRateBasedRuleManagedKeys(input *GetRateBasedRuleManagedKeysInput) (*GetRateBasedRuleManagedKeysOutput, error) {
  4770  	req, out := c.GetRateBasedRuleManagedKeysRequest(input)
  4771  	return out, req.Send()
  4772  }
  4773  
  4774  // GetRateBasedRuleManagedKeysWithContext is the same as GetRateBasedRuleManagedKeys with the addition of
  4775  // the ability to pass a context and additional request options.
  4776  //
  4777  // See GetRateBasedRuleManagedKeys for details on how to use this API operation.
  4778  //
  4779  // The context must be non-nil and will be used for request cancellation. If
  4780  // the context is nil a panic will occur. In the future the SDK may create
  4781  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4782  // for more information on using Contexts.
  4783  func (c *WAF) GetRateBasedRuleManagedKeysWithContext(ctx aws.Context, input *GetRateBasedRuleManagedKeysInput, opts ...request.Option) (*GetRateBasedRuleManagedKeysOutput, error) {
  4784  	req, out := c.GetRateBasedRuleManagedKeysRequest(input)
  4785  	req.SetContext(ctx)
  4786  	req.ApplyOptions(opts...)
  4787  	return out, req.Send()
  4788  }
  4789  
  4790  const opGetRegexMatchSet = "GetRegexMatchSet"
  4791  
  4792  // GetRegexMatchSetRequest generates a "aws/request.Request" representing the
  4793  // client's request for the GetRegexMatchSet operation. The "output" return
  4794  // value will be populated with the request's response once the request completes
  4795  // successfully.
  4796  //
  4797  // Use "Send" method on the returned Request to send the API call to the service.
  4798  // the "output" return value is not valid until after Send returns without error.
  4799  //
  4800  // See GetRegexMatchSet for more information on using the GetRegexMatchSet
  4801  // API call, and error handling.
  4802  //
  4803  // This method is useful when you want to inject custom logic or configuration
  4804  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4805  //
  4806  //
  4807  //    // Example sending a request using the GetRegexMatchSetRequest method.
  4808  //    req, resp := client.GetRegexMatchSetRequest(params)
  4809  //
  4810  //    err := req.Send()
  4811  //    if err == nil { // resp is now filled
  4812  //        fmt.Println(resp)
  4813  //    }
  4814  //
  4815  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRegexMatchSet
  4816  func (c *WAF) GetRegexMatchSetRequest(input *GetRegexMatchSetInput) (req *request.Request, output *GetRegexMatchSetOutput) {
  4817  	op := &request.Operation{
  4818  		Name:       opGetRegexMatchSet,
  4819  		HTTPMethod: "POST",
  4820  		HTTPPath:   "/",
  4821  	}
  4822  
  4823  	if input == nil {
  4824  		input = &GetRegexMatchSetInput{}
  4825  	}
  4826  
  4827  	output = &GetRegexMatchSetOutput{}
  4828  	req = c.newRequest(op, input, output)
  4829  	return
  4830  }
  4831  
  4832  // GetRegexMatchSet API operation for AWS WAF.
  4833  //
  4834  //
  4835  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4836  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4837  // in the developer guide.
  4838  //
  4839  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4840  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4841  // With the latest version, AWS WAF has a single set of endpoints for regional
  4842  // and global use.
  4843  //
  4844  // Returns the RegexMatchSet specified by RegexMatchSetId.
  4845  //
  4846  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4847  // with awserr.Error's Code and Message methods to get detailed information about
  4848  // the error.
  4849  //
  4850  // See the AWS API reference guide for AWS WAF's
  4851  // API operation GetRegexMatchSet for usage and error information.
  4852  //
  4853  // Returned Error Types:
  4854  //   * InternalErrorException
  4855  //   The operation failed because of a system problem, even though the request
  4856  //   was valid. Retry your request.
  4857  //
  4858  //   * InvalidAccountException
  4859  //   The operation failed because you tried to create, update, or delete an object
  4860  //   by using an invalid account identifier.
  4861  //
  4862  //   * NonexistentItemException
  4863  //   The operation failed because the referenced object doesn't exist.
  4864  //
  4865  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRegexMatchSet
  4866  func (c *WAF) GetRegexMatchSet(input *GetRegexMatchSetInput) (*GetRegexMatchSetOutput, error) {
  4867  	req, out := c.GetRegexMatchSetRequest(input)
  4868  	return out, req.Send()
  4869  }
  4870  
  4871  // GetRegexMatchSetWithContext is the same as GetRegexMatchSet with the addition of
  4872  // the ability to pass a context and additional request options.
  4873  //
  4874  // See GetRegexMatchSet for details on how to use this API operation.
  4875  //
  4876  // The context must be non-nil and will be used for request cancellation. If
  4877  // the context is nil a panic will occur. In the future the SDK may create
  4878  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4879  // for more information on using Contexts.
  4880  func (c *WAF) GetRegexMatchSetWithContext(ctx aws.Context, input *GetRegexMatchSetInput, opts ...request.Option) (*GetRegexMatchSetOutput, error) {
  4881  	req, out := c.GetRegexMatchSetRequest(input)
  4882  	req.SetContext(ctx)
  4883  	req.ApplyOptions(opts...)
  4884  	return out, req.Send()
  4885  }
  4886  
  4887  const opGetRegexPatternSet = "GetRegexPatternSet"
  4888  
  4889  // GetRegexPatternSetRequest generates a "aws/request.Request" representing the
  4890  // client's request for the GetRegexPatternSet operation. The "output" return
  4891  // value will be populated with the request's response once the request completes
  4892  // successfully.
  4893  //
  4894  // Use "Send" method on the returned Request to send the API call to the service.
  4895  // the "output" return value is not valid until after Send returns without error.
  4896  //
  4897  // See GetRegexPatternSet for more information on using the GetRegexPatternSet
  4898  // API call, and error handling.
  4899  //
  4900  // This method is useful when you want to inject custom logic or configuration
  4901  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4902  //
  4903  //
  4904  //    // Example sending a request using the GetRegexPatternSetRequest method.
  4905  //    req, resp := client.GetRegexPatternSetRequest(params)
  4906  //
  4907  //    err := req.Send()
  4908  //    if err == nil { // resp is now filled
  4909  //        fmt.Println(resp)
  4910  //    }
  4911  //
  4912  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRegexPatternSet
  4913  func (c *WAF) GetRegexPatternSetRequest(input *GetRegexPatternSetInput) (req *request.Request, output *GetRegexPatternSetOutput) {
  4914  	op := &request.Operation{
  4915  		Name:       opGetRegexPatternSet,
  4916  		HTTPMethod: "POST",
  4917  		HTTPPath:   "/",
  4918  	}
  4919  
  4920  	if input == nil {
  4921  		input = &GetRegexPatternSetInput{}
  4922  	}
  4923  
  4924  	output = &GetRegexPatternSetOutput{}
  4925  	req = c.newRequest(op, input, output)
  4926  	return
  4927  }
  4928  
  4929  // GetRegexPatternSet API operation for AWS WAF.
  4930  //
  4931  //
  4932  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  4933  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  4934  // in the developer guide.
  4935  //
  4936  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  4937  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  4938  // With the latest version, AWS WAF has a single set of endpoints for regional
  4939  // and global use.
  4940  //
  4941  // Returns the RegexPatternSet specified by RegexPatternSetId.
  4942  //
  4943  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  4944  // with awserr.Error's Code and Message methods to get detailed information about
  4945  // the error.
  4946  //
  4947  // See the AWS API reference guide for AWS WAF's
  4948  // API operation GetRegexPatternSet for usage and error information.
  4949  //
  4950  // Returned Error Types:
  4951  //   * InternalErrorException
  4952  //   The operation failed because of a system problem, even though the request
  4953  //   was valid. Retry your request.
  4954  //
  4955  //   * InvalidAccountException
  4956  //   The operation failed because you tried to create, update, or delete an object
  4957  //   by using an invalid account identifier.
  4958  //
  4959  //   * NonexistentItemException
  4960  //   The operation failed because the referenced object doesn't exist.
  4961  //
  4962  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRegexPatternSet
  4963  func (c *WAF) GetRegexPatternSet(input *GetRegexPatternSetInput) (*GetRegexPatternSetOutput, error) {
  4964  	req, out := c.GetRegexPatternSetRequest(input)
  4965  	return out, req.Send()
  4966  }
  4967  
  4968  // GetRegexPatternSetWithContext is the same as GetRegexPatternSet with the addition of
  4969  // the ability to pass a context and additional request options.
  4970  //
  4971  // See GetRegexPatternSet for details on how to use this API operation.
  4972  //
  4973  // The context must be non-nil and will be used for request cancellation. If
  4974  // the context is nil a panic will occur. In the future the SDK may create
  4975  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  4976  // for more information on using Contexts.
  4977  func (c *WAF) GetRegexPatternSetWithContext(ctx aws.Context, input *GetRegexPatternSetInput, opts ...request.Option) (*GetRegexPatternSetOutput, error) {
  4978  	req, out := c.GetRegexPatternSetRequest(input)
  4979  	req.SetContext(ctx)
  4980  	req.ApplyOptions(opts...)
  4981  	return out, req.Send()
  4982  }
  4983  
  4984  const opGetRule = "GetRule"
  4985  
  4986  // GetRuleRequest generates a "aws/request.Request" representing the
  4987  // client's request for the GetRule operation. The "output" return
  4988  // value will be populated with the request's response once the request completes
  4989  // successfully.
  4990  //
  4991  // Use "Send" method on the returned Request to send the API call to the service.
  4992  // the "output" return value is not valid until after Send returns without error.
  4993  //
  4994  // See GetRule for more information on using the GetRule
  4995  // API call, and error handling.
  4996  //
  4997  // This method is useful when you want to inject custom logic or configuration
  4998  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  4999  //
  5000  //
  5001  //    // Example sending a request using the GetRuleRequest method.
  5002  //    req, resp := client.GetRuleRequest(params)
  5003  //
  5004  //    err := req.Send()
  5005  //    if err == nil { // resp is now filled
  5006  //        fmt.Println(resp)
  5007  //    }
  5008  //
  5009  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRule
  5010  func (c *WAF) GetRuleRequest(input *GetRuleInput) (req *request.Request, output *GetRuleOutput) {
  5011  	op := &request.Operation{
  5012  		Name:       opGetRule,
  5013  		HTTPMethod: "POST",
  5014  		HTTPPath:   "/",
  5015  	}
  5016  
  5017  	if input == nil {
  5018  		input = &GetRuleInput{}
  5019  	}
  5020  
  5021  	output = &GetRuleOutput{}
  5022  	req = c.newRequest(op, input, output)
  5023  	return
  5024  }
  5025  
  5026  // GetRule API operation for AWS WAF.
  5027  //
  5028  //
  5029  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5030  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5031  // in the developer guide.
  5032  //
  5033  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5034  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5035  // With the latest version, AWS WAF has a single set of endpoints for regional
  5036  // and global use.
  5037  //
  5038  // Returns the Rule that is specified by the RuleId that you included in the
  5039  // GetRule request.
  5040  //
  5041  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5042  // with awserr.Error's Code and Message methods to get detailed information about
  5043  // the error.
  5044  //
  5045  // See the AWS API reference guide for AWS WAF's
  5046  // API operation GetRule for usage and error information.
  5047  //
  5048  // Returned Error Types:
  5049  //   * InternalErrorException
  5050  //   The operation failed because of a system problem, even though the request
  5051  //   was valid. Retry your request.
  5052  //
  5053  //   * InvalidAccountException
  5054  //   The operation failed because you tried to create, update, or delete an object
  5055  //   by using an invalid account identifier.
  5056  //
  5057  //   * NonexistentItemException
  5058  //   The operation failed because the referenced object doesn't exist.
  5059  //
  5060  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRule
  5061  func (c *WAF) GetRule(input *GetRuleInput) (*GetRuleOutput, error) {
  5062  	req, out := c.GetRuleRequest(input)
  5063  	return out, req.Send()
  5064  }
  5065  
  5066  // GetRuleWithContext is the same as GetRule with the addition of
  5067  // the ability to pass a context and additional request options.
  5068  //
  5069  // See GetRule for details on how to use this API operation.
  5070  //
  5071  // The context must be non-nil and will be used for request cancellation. If
  5072  // the context is nil a panic will occur. In the future the SDK may create
  5073  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5074  // for more information on using Contexts.
  5075  func (c *WAF) GetRuleWithContext(ctx aws.Context, input *GetRuleInput, opts ...request.Option) (*GetRuleOutput, error) {
  5076  	req, out := c.GetRuleRequest(input)
  5077  	req.SetContext(ctx)
  5078  	req.ApplyOptions(opts...)
  5079  	return out, req.Send()
  5080  }
  5081  
  5082  const opGetRuleGroup = "GetRuleGroup"
  5083  
  5084  // GetRuleGroupRequest generates a "aws/request.Request" representing the
  5085  // client's request for the GetRuleGroup operation. The "output" return
  5086  // value will be populated with the request's response once the request completes
  5087  // successfully.
  5088  //
  5089  // Use "Send" method on the returned Request to send the API call to the service.
  5090  // the "output" return value is not valid until after Send returns without error.
  5091  //
  5092  // See GetRuleGroup for more information on using the GetRuleGroup
  5093  // API call, and error handling.
  5094  //
  5095  // This method is useful when you want to inject custom logic or configuration
  5096  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5097  //
  5098  //
  5099  //    // Example sending a request using the GetRuleGroupRequest method.
  5100  //    req, resp := client.GetRuleGroupRequest(params)
  5101  //
  5102  //    err := req.Send()
  5103  //    if err == nil { // resp is now filled
  5104  //        fmt.Println(resp)
  5105  //    }
  5106  //
  5107  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleGroup
  5108  func (c *WAF) GetRuleGroupRequest(input *GetRuleGroupInput) (req *request.Request, output *GetRuleGroupOutput) {
  5109  	op := &request.Operation{
  5110  		Name:       opGetRuleGroup,
  5111  		HTTPMethod: "POST",
  5112  		HTTPPath:   "/",
  5113  	}
  5114  
  5115  	if input == nil {
  5116  		input = &GetRuleGroupInput{}
  5117  	}
  5118  
  5119  	output = &GetRuleGroupOutput{}
  5120  	req = c.newRequest(op, input, output)
  5121  	return
  5122  }
  5123  
  5124  // GetRuleGroup API operation for AWS WAF.
  5125  //
  5126  //
  5127  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5128  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5129  // in the developer guide.
  5130  //
  5131  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5132  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5133  // With the latest version, AWS WAF has a single set of endpoints for regional
  5134  // and global use.
  5135  //
  5136  // Returns the RuleGroup that is specified by the RuleGroupId that you included
  5137  // in the GetRuleGroup request.
  5138  //
  5139  // To view the rules in a rule group, use ListActivatedRulesInRuleGroup.
  5140  //
  5141  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5142  // with awserr.Error's Code and Message methods to get detailed information about
  5143  // the error.
  5144  //
  5145  // See the AWS API reference guide for AWS WAF's
  5146  // API operation GetRuleGroup for usage and error information.
  5147  //
  5148  // Returned Error Types:
  5149  //   * InternalErrorException
  5150  //   The operation failed because of a system problem, even though the request
  5151  //   was valid. Retry your request.
  5152  //
  5153  //   * NonexistentItemException
  5154  //   The operation failed because the referenced object doesn't exist.
  5155  //
  5156  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetRuleGroup
  5157  func (c *WAF) GetRuleGroup(input *GetRuleGroupInput) (*GetRuleGroupOutput, error) {
  5158  	req, out := c.GetRuleGroupRequest(input)
  5159  	return out, req.Send()
  5160  }
  5161  
  5162  // GetRuleGroupWithContext is the same as GetRuleGroup with the addition of
  5163  // the ability to pass a context and additional request options.
  5164  //
  5165  // See GetRuleGroup for details on how to use this API operation.
  5166  //
  5167  // The context must be non-nil and will be used for request cancellation. If
  5168  // the context is nil a panic will occur. In the future the SDK may create
  5169  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5170  // for more information on using Contexts.
  5171  func (c *WAF) GetRuleGroupWithContext(ctx aws.Context, input *GetRuleGroupInput, opts ...request.Option) (*GetRuleGroupOutput, error) {
  5172  	req, out := c.GetRuleGroupRequest(input)
  5173  	req.SetContext(ctx)
  5174  	req.ApplyOptions(opts...)
  5175  	return out, req.Send()
  5176  }
  5177  
  5178  const opGetSampledRequests = "GetSampledRequests"
  5179  
  5180  // GetSampledRequestsRequest generates a "aws/request.Request" representing the
  5181  // client's request for the GetSampledRequests operation. The "output" return
  5182  // value will be populated with the request's response once the request completes
  5183  // successfully.
  5184  //
  5185  // Use "Send" method on the returned Request to send the API call to the service.
  5186  // the "output" return value is not valid until after Send returns without error.
  5187  //
  5188  // See GetSampledRequests for more information on using the GetSampledRequests
  5189  // API call, and error handling.
  5190  //
  5191  // This method is useful when you want to inject custom logic or configuration
  5192  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5193  //
  5194  //
  5195  //    // Example sending a request using the GetSampledRequestsRequest method.
  5196  //    req, resp := client.GetSampledRequestsRequest(params)
  5197  //
  5198  //    err := req.Send()
  5199  //    if err == nil { // resp is now filled
  5200  //        fmt.Println(resp)
  5201  //    }
  5202  //
  5203  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSampledRequests
  5204  func (c *WAF) GetSampledRequestsRequest(input *GetSampledRequestsInput) (req *request.Request, output *GetSampledRequestsOutput) {
  5205  	op := &request.Operation{
  5206  		Name:       opGetSampledRequests,
  5207  		HTTPMethod: "POST",
  5208  		HTTPPath:   "/",
  5209  	}
  5210  
  5211  	if input == nil {
  5212  		input = &GetSampledRequestsInput{}
  5213  	}
  5214  
  5215  	output = &GetSampledRequestsOutput{}
  5216  	req = c.newRequest(op, input, output)
  5217  	return
  5218  }
  5219  
  5220  // GetSampledRequests API operation for AWS WAF.
  5221  //
  5222  //
  5223  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5224  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5225  // in the developer guide.
  5226  //
  5227  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5228  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5229  // With the latest version, AWS WAF has a single set of endpoints for regional
  5230  // and global use.
  5231  //
  5232  // Gets detailed information about a specified number of requests--a sample--that
  5233  // AWS WAF randomly selects from among the first 5,000 requests that your AWS
  5234  // resource received during a time range that you choose. You can specify a
  5235  // sample size of up to 500 requests, and you can specify any time range in
  5236  // the previous three hours.
  5237  //
  5238  // GetSampledRequests returns a time range, which is usually the time range
  5239  // that you specified. However, if your resource (such as a CloudFront distribution)
  5240  // received 5,000 requests before the specified time range elapsed, GetSampledRequests
  5241  // returns an updated time range. This new time range indicates the actual period
  5242  // during which AWS WAF selected the requests in the sample.
  5243  //
  5244  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5245  // with awserr.Error's Code and Message methods to get detailed information about
  5246  // the error.
  5247  //
  5248  // See the AWS API reference guide for AWS WAF's
  5249  // API operation GetSampledRequests for usage and error information.
  5250  //
  5251  // Returned Error Types:
  5252  //   * NonexistentItemException
  5253  //   The operation failed because the referenced object doesn't exist.
  5254  //
  5255  //   * InternalErrorException
  5256  //   The operation failed because of a system problem, even though the request
  5257  //   was valid. Retry your request.
  5258  //
  5259  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSampledRequests
  5260  func (c *WAF) GetSampledRequests(input *GetSampledRequestsInput) (*GetSampledRequestsOutput, error) {
  5261  	req, out := c.GetSampledRequestsRequest(input)
  5262  	return out, req.Send()
  5263  }
  5264  
  5265  // GetSampledRequestsWithContext is the same as GetSampledRequests with the addition of
  5266  // the ability to pass a context and additional request options.
  5267  //
  5268  // See GetSampledRequests for details on how to use this API operation.
  5269  //
  5270  // The context must be non-nil and will be used for request cancellation. If
  5271  // the context is nil a panic will occur. In the future the SDK may create
  5272  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5273  // for more information on using Contexts.
  5274  func (c *WAF) GetSampledRequestsWithContext(ctx aws.Context, input *GetSampledRequestsInput, opts ...request.Option) (*GetSampledRequestsOutput, error) {
  5275  	req, out := c.GetSampledRequestsRequest(input)
  5276  	req.SetContext(ctx)
  5277  	req.ApplyOptions(opts...)
  5278  	return out, req.Send()
  5279  }
  5280  
  5281  const opGetSizeConstraintSet = "GetSizeConstraintSet"
  5282  
  5283  // GetSizeConstraintSetRequest generates a "aws/request.Request" representing the
  5284  // client's request for the GetSizeConstraintSet operation. The "output" return
  5285  // value will be populated with the request's response once the request completes
  5286  // successfully.
  5287  //
  5288  // Use "Send" method on the returned Request to send the API call to the service.
  5289  // the "output" return value is not valid until after Send returns without error.
  5290  //
  5291  // See GetSizeConstraintSet for more information on using the GetSizeConstraintSet
  5292  // API call, and error handling.
  5293  //
  5294  // This method is useful when you want to inject custom logic or configuration
  5295  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5296  //
  5297  //
  5298  //    // Example sending a request using the GetSizeConstraintSetRequest method.
  5299  //    req, resp := client.GetSizeConstraintSetRequest(params)
  5300  //
  5301  //    err := req.Send()
  5302  //    if err == nil { // resp is now filled
  5303  //        fmt.Println(resp)
  5304  //    }
  5305  //
  5306  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSizeConstraintSet
  5307  func (c *WAF) GetSizeConstraintSetRequest(input *GetSizeConstraintSetInput) (req *request.Request, output *GetSizeConstraintSetOutput) {
  5308  	op := &request.Operation{
  5309  		Name:       opGetSizeConstraintSet,
  5310  		HTTPMethod: "POST",
  5311  		HTTPPath:   "/",
  5312  	}
  5313  
  5314  	if input == nil {
  5315  		input = &GetSizeConstraintSetInput{}
  5316  	}
  5317  
  5318  	output = &GetSizeConstraintSetOutput{}
  5319  	req = c.newRequest(op, input, output)
  5320  	return
  5321  }
  5322  
  5323  // GetSizeConstraintSet API operation for AWS WAF.
  5324  //
  5325  //
  5326  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5327  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5328  // in the developer guide.
  5329  //
  5330  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5331  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5332  // With the latest version, AWS WAF has a single set of endpoints for regional
  5333  // and global use.
  5334  //
  5335  // Returns the SizeConstraintSet specified by SizeConstraintSetId.
  5336  //
  5337  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5338  // with awserr.Error's Code and Message methods to get detailed information about
  5339  // the error.
  5340  //
  5341  // See the AWS API reference guide for AWS WAF's
  5342  // API operation GetSizeConstraintSet for usage and error information.
  5343  //
  5344  // Returned Error Types:
  5345  //   * InternalErrorException
  5346  //   The operation failed because of a system problem, even though the request
  5347  //   was valid. Retry your request.
  5348  //
  5349  //   * InvalidAccountException
  5350  //   The operation failed because you tried to create, update, or delete an object
  5351  //   by using an invalid account identifier.
  5352  //
  5353  //   * NonexistentItemException
  5354  //   The operation failed because the referenced object doesn't exist.
  5355  //
  5356  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSizeConstraintSet
  5357  func (c *WAF) GetSizeConstraintSet(input *GetSizeConstraintSetInput) (*GetSizeConstraintSetOutput, error) {
  5358  	req, out := c.GetSizeConstraintSetRequest(input)
  5359  	return out, req.Send()
  5360  }
  5361  
  5362  // GetSizeConstraintSetWithContext is the same as GetSizeConstraintSet with the addition of
  5363  // the ability to pass a context and additional request options.
  5364  //
  5365  // See GetSizeConstraintSet for details on how to use this API operation.
  5366  //
  5367  // The context must be non-nil and will be used for request cancellation. If
  5368  // the context is nil a panic will occur. In the future the SDK may create
  5369  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5370  // for more information on using Contexts.
  5371  func (c *WAF) GetSizeConstraintSetWithContext(ctx aws.Context, input *GetSizeConstraintSetInput, opts ...request.Option) (*GetSizeConstraintSetOutput, error) {
  5372  	req, out := c.GetSizeConstraintSetRequest(input)
  5373  	req.SetContext(ctx)
  5374  	req.ApplyOptions(opts...)
  5375  	return out, req.Send()
  5376  }
  5377  
  5378  const opGetSqlInjectionMatchSet = "GetSqlInjectionMatchSet"
  5379  
  5380  // GetSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
  5381  // client's request for the GetSqlInjectionMatchSet operation. The "output" return
  5382  // value will be populated with the request's response once the request completes
  5383  // successfully.
  5384  //
  5385  // Use "Send" method on the returned Request to send the API call to the service.
  5386  // the "output" return value is not valid until after Send returns without error.
  5387  //
  5388  // See GetSqlInjectionMatchSet for more information on using the GetSqlInjectionMatchSet
  5389  // API call, and error handling.
  5390  //
  5391  // This method is useful when you want to inject custom logic or configuration
  5392  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5393  //
  5394  //
  5395  //    // Example sending a request using the GetSqlInjectionMatchSetRequest method.
  5396  //    req, resp := client.GetSqlInjectionMatchSetRequest(params)
  5397  //
  5398  //    err := req.Send()
  5399  //    if err == nil { // resp is now filled
  5400  //        fmt.Println(resp)
  5401  //    }
  5402  //
  5403  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSqlInjectionMatchSet
  5404  func (c *WAF) GetSqlInjectionMatchSetRequest(input *GetSqlInjectionMatchSetInput) (req *request.Request, output *GetSqlInjectionMatchSetOutput) {
  5405  	op := &request.Operation{
  5406  		Name:       opGetSqlInjectionMatchSet,
  5407  		HTTPMethod: "POST",
  5408  		HTTPPath:   "/",
  5409  	}
  5410  
  5411  	if input == nil {
  5412  		input = &GetSqlInjectionMatchSetInput{}
  5413  	}
  5414  
  5415  	output = &GetSqlInjectionMatchSetOutput{}
  5416  	req = c.newRequest(op, input, output)
  5417  	return
  5418  }
  5419  
  5420  // GetSqlInjectionMatchSet API operation for AWS WAF.
  5421  //
  5422  //
  5423  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5424  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5425  // in the developer guide.
  5426  //
  5427  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5428  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5429  // With the latest version, AWS WAF has a single set of endpoints for regional
  5430  // and global use.
  5431  //
  5432  // Returns the SqlInjectionMatchSet that is specified by SqlInjectionMatchSetId.
  5433  //
  5434  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5435  // with awserr.Error's Code and Message methods to get detailed information about
  5436  // the error.
  5437  //
  5438  // See the AWS API reference guide for AWS WAF's
  5439  // API operation GetSqlInjectionMatchSet for usage and error information.
  5440  //
  5441  // Returned Error Types:
  5442  //   * InternalErrorException
  5443  //   The operation failed because of a system problem, even though the request
  5444  //   was valid. Retry your request.
  5445  //
  5446  //   * InvalidAccountException
  5447  //   The operation failed because you tried to create, update, or delete an object
  5448  //   by using an invalid account identifier.
  5449  //
  5450  //   * NonexistentItemException
  5451  //   The operation failed because the referenced object doesn't exist.
  5452  //
  5453  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetSqlInjectionMatchSet
  5454  func (c *WAF) GetSqlInjectionMatchSet(input *GetSqlInjectionMatchSetInput) (*GetSqlInjectionMatchSetOutput, error) {
  5455  	req, out := c.GetSqlInjectionMatchSetRequest(input)
  5456  	return out, req.Send()
  5457  }
  5458  
  5459  // GetSqlInjectionMatchSetWithContext is the same as GetSqlInjectionMatchSet with the addition of
  5460  // the ability to pass a context and additional request options.
  5461  //
  5462  // See GetSqlInjectionMatchSet for details on how to use this API operation.
  5463  //
  5464  // The context must be non-nil and will be used for request cancellation. If
  5465  // the context is nil a panic will occur. In the future the SDK may create
  5466  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5467  // for more information on using Contexts.
  5468  func (c *WAF) GetSqlInjectionMatchSetWithContext(ctx aws.Context, input *GetSqlInjectionMatchSetInput, opts ...request.Option) (*GetSqlInjectionMatchSetOutput, error) {
  5469  	req, out := c.GetSqlInjectionMatchSetRequest(input)
  5470  	req.SetContext(ctx)
  5471  	req.ApplyOptions(opts...)
  5472  	return out, req.Send()
  5473  }
  5474  
  5475  const opGetWebACL = "GetWebACL"
  5476  
  5477  // GetWebACLRequest generates a "aws/request.Request" representing the
  5478  // client's request for the GetWebACL operation. The "output" return
  5479  // value will be populated with the request's response once the request completes
  5480  // successfully.
  5481  //
  5482  // Use "Send" method on the returned Request to send the API call to the service.
  5483  // the "output" return value is not valid until after Send returns without error.
  5484  //
  5485  // See GetWebACL for more information on using the GetWebACL
  5486  // API call, and error handling.
  5487  //
  5488  // This method is useful when you want to inject custom logic or configuration
  5489  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5490  //
  5491  //
  5492  //    // Example sending a request using the GetWebACLRequest method.
  5493  //    req, resp := client.GetWebACLRequest(params)
  5494  //
  5495  //    err := req.Send()
  5496  //    if err == nil { // resp is now filled
  5497  //        fmt.Println(resp)
  5498  //    }
  5499  //
  5500  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACL
  5501  func (c *WAF) GetWebACLRequest(input *GetWebACLInput) (req *request.Request, output *GetWebACLOutput) {
  5502  	op := &request.Operation{
  5503  		Name:       opGetWebACL,
  5504  		HTTPMethod: "POST",
  5505  		HTTPPath:   "/",
  5506  	}
  5507  
  5508  	if input == nil {
  5509  		input = &GetWebACLInput{}
  5510  	}
  5511  
  5512  	output = &GetWebACLOutput{}
  5513  	req = c.newRequest(op, input, output)
  5514  	return
  5515  }
  5516  
  5517  // GetWebACL API operation for AWS WAF.
  5518  //
  5519  //
  5520  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5521  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5522  // in the developer guide.
  5523  //
  5524  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5525  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5526  // With the latest version, AWS WAF has a single set of endpoints for regional
  5527  // and global use.
  5528  //
  5529  // Returns the WebACL that is specified by WebACLId.
  5530  //
  5531  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5532  // with awserr.Error's Code and Message methods to get detailed information about
  5533  // the error.
  5534  //
  5535  // See the AWS API reference guide for AWS WAF's
  5536  // API operation GetWebACL for usage and error information.
  5537  //
  5538  // Returned Error Types:
  5539  //   * InternalErrorException
  5540  //   The operation failed because of a system problem, even though the request
  5541  //   was valid. Retry your request.
  5542  //
  5543  //   * InvalidAccountException
  5544  //   The operation failed because you tried to create, update, or delete an object
  5545  //   by using an invalid account identifier.
  5546  //
  5547  //   * NonexistentItemException
  5548  //   The operation failed because the referenced object doesn't exist.
  5549  //
  5550  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetWebACL
  5551  func (c *WAF) GetWebACL(input *GetWebACLInput) (*GetWebACLOutput, error) {
  5552  	req, out := c.GetWebACLRequest(input)
  5553  	return out, req.Send()
  5554  }
  5555  
  5556  // GetWebACLWithContext is the same as GetWebACL with the addition of
  5557  // the ability to pass a context and additional request options.
  5558  //
  5559  // See GetWebACL for details on how to use this API operation.
  5560  //
  5561  // The context must be non-nil and will be used for request cancellation. If
  5562  // the context is nil a panic will occur. In the future the SDK may create
  5563  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5564  // for more information on using Contexts.
  5565  func (c *WAF) GetWebACLWithContext(ctx aws.Context, input *GetWebACLInput, opts ...request.Option) (*GetWebACLOutput, error) {
  5566  	req, out := c.GetWebACLRequest(input)
  5567  	req.SetContext(ctx)
  5568  	req.ApplyOptions(opts...)
  5569  	return out, req.Send()
  5570  }
  5571  
  5572  const opGetXssMatchSet = "GetXssMatchSet"
  5573  
  5574  // GetXssMatchSetRequest generates a "aws/request.Request" representing the
  5575  // client's request for the GetXssMatchSet operation. The "output" return
  5576  // value will be populated with the request's response once the request completes
  5577  // successfully.
  5578  //
  5579  // Use "Send" method on the returned Request to send the API call to the service.
  5580  // the "output" return value is not valid until after Send returns without error.
  5581  //
  5582  // See GetXssMatchSet for more information on using the GetXssMatchSet
  5583  // API call, and error handling.
  5584  //
  5585  // This method is useful when you want to inject custom logic or configuration
  5586  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5587  //
  5588  //
  5589  //    // Example sending a request using the GetXssMatchSetRequest method.
  5590  //    req, resp := client.GetXssMatchSetRequest(params)
  5591  //
  5592  //    err := req.Send()
  5593  //    if err == nil { // resp is now filled
  5594  //        fmt.Println(resp)
  5595  //    }
  5596  //
  5597  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetXssMatchSet
  5598  func (c *WAF) GetXssMatchSetRequest(input *GetXssMatchSetInput) (req *request.Request, output *GetXssMatchSetOutput) {
  5599  	op := &request.Operation{
  5600  		Name:       opGetXssMatchSet,
  5601  		HTTPMethod: "POST",
  5602  		HTTPPath:   "/",
  5603  	}
  5604  
  5605  	if input == nil {
  5606  		input = &GetXssMatchSetInput{}
  5607  	}
  5608  
  5609  	output = &GetXssMatchSetOutput{}
  5610  	req = c.newRequest(op, input, output)
  5611  	return
  5612  }
  5613  
  5614  // GetXssMatchSet API operation for AWS WAF.
  5615  //
  5616  //
  5617  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5618  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5619  // in the developer guide.
  5620  //
  5621  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5622  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5623  // With the latest version, AWS WAF has a single set of endpoints for regional
  5624  // and global use.
  5625  //
  5626  // Returns the XssMatchSet that is specified by XssMatchSetId.
  5627  //
  5628  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5629  // with awserr.Error's Code and Message methods to get detailed information about
  5630  // the error.
  5631  //
  5632  // See the AWS API reference guide for AWS WAF's
  5633  // API operation GetXssMatchSet for usage and error information.
  5634  //
  5635  // Returned Error Types:
  5636  //   * InternalErrorException
  5637  //   The operation failed because of a system problem, even though the request
  5638  //   was valid. Retry your request.
  5639  //
  5640  //   * InvalidAccountException
  5641  //   The operation failed because you tried to create, update, or delete an object
  5642  //   by using an invalid account identifier.
  5643  //
  5644  //   * NonexistentItemException
  5645  //   The operation failed because the referenced object doesn't exist.
  5646  //
  5647  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/GetXssMatchSet
  5648  func (c *WAF) GetXssMatchSet(input *GetXssMatchSetInput) (*GetXssMatchSetOutput, error) {
  5649  	req, out := c.GetXssMatchSetRequest(input)
  5650  	return out, req.Send()
  5651  }
  5652  
  5653  // GetXssMatchSetWithContext is the same as GetXssMatchSet with the addition of
  5654  // the ability to pass a context and additional request options.
  5655  //
  5656  // See GetXssMatchSet for details on how to use this API operation.
  5657  //
  5658  // The context must be non-nil and will be used for request cancellation. If
  5659  // the context is nil a panic will occur. In the future the SDK may create
  5660  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5661  // for more information on using Contexts.
  5662  func (c *WAF) GetXssMatchSetWithContext(ctx aws.Context, input *GetXssMatchSetInput, opts ...request.Option) (*GetXssMatchSetOutput, error) {
  5663  	req, out := c.GetXssMatchSetRequest(input)
  5664  	req.SetContext(ctx)
  5665  	req.ApplyOptions(opts...)
  5666  	return out, req.Send()
  5667  }
  5668  
  5669  const opListActivatedRulesInRuleGroup = "ListActivatedRulesInRuleGroup"
  5670  
  5671  // ListActivatedRulesInRuleGroupRequest generates a "aws/request.Request" representing the
  5672  // client's request for the ListActivatedRulesInRuleGroup operation. The "output" return
  5673  // value will be populated with the request's response once the request completes
  5674  // successfully.
  5675  //
  5676  // Use "Send" method on the returned Request to send the API call to the service.
  5677  // the "output" return value is not valid until after Send returns without error.
  5678  //
  5679  // See ListActivatedRulesInRuleGroup for more information on using the ListActivatedRulesInRuleGroup
  5680  // API call, and error handling.
  5681  //
  5682  // This method is useful when you want to inject custom logic or configuration
  5683  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5684  //
  5685  //
  5686  //    // Example sending a request using the ListActivatedRulesInRuleGroupRequest method.
  5687  //    req, resp := client.ListActivatedRulesInRuleGroupRequest(params)
  5688  //
  5689  //    err := req.Send()
  5690  //    if err == nil { // resp is now filled
  5691  //        fmt.Println(resp)
  5692  //    }
  5693  //
  5694  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListActivatedRulesInRuleGroup
  5695  func (c *WAF) ListActivatedRulesInRuleGroupRequest(input *ListActivatedRulesInRuleGroupInput) (req *request.Request, output *ListActivatedRulesInRuleGroupOutput) {
  5696  	op := &request.Operation{
  5697  		Name:       opListActivatedRulesInRuleGroup,
  5698  		HTTPMethod: "POST",
  5699  		HTTPPath:   "/",
  5700  	}
  5701  
  5702  	if input == nil {
  5703  		input = &ListActivatedRulesInRuleGroupInput{}
  5704  	}
  5705  
  5706  	output = &ListActivatedRulesInRuleGroupOutput{}
  5707  	req = c.newRequest(op, input, output)
  5708  	return
  5709  }
  5710  
  5711  // ListActivatedRulesInRuleGroup API operation for AWS WAF.
  5712  //
  5713  //
  5714  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5715  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5716  // in the developer guide.
  5717  //
  5718  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5719  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5720  // With the latest version, AWS WAF has a single set of endpoints for regional
  5721  // and global use.
  5722  //
  5723  // Returns an array of ActivatedRule objects.
  5724  //
  5725  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5726  // with awserr.Error's Code and Message methods to get detailed information about
  5727  // the error.
  5728  //
  5729  // See the AWS API reference guide for AWS WAF's
  5730  // API operation ListActivatedRulesInRuleGroup for usage and error information.
  5731  //
  5732  // Returned Error Types:
  5733  //   * InternalErrorException
  5734  //   The operation failed because of a system problem, even though the request
  5735  //   was valid. Retry your request.
  5736  //
  5737  //   * NonexistentItemException
  5738  //   The operation failed because the referenced object doesn't exist.
  5739  //
  5740  //   * InvalidParameterException
  5741  //   The operation failed because AWS WAF didn't recognize a parameter in the
  5742  //   request. For example:
  5743  //
  5744  //      * You specified an invalid parameter name.
  5745  //
  5746  //      * You specified an invalid value.
  5747  //
  5748  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  5749  //      using an action other than INSERT or DELETE.
  5750  //
  5751  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  5752  //      BLOCK, or COUNT.
  5753  //
  5754  //      * You tried to create a RateBasedRule with a RateKey value other than
  5755  //      IP.
  5756  //
  5757  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  5758  //      BLOCK, or COUNT.
  5759  //
  5760  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  5761  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  5762  //
  5763  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  5764  //      for Data.
  5765  //
  5766  //      * Your request references an ARN that is malformed, or corresponds to
  5767  //      a resource with which a web ACL cannot be associated.
  5768  //
  5769  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListActivatedRulesInRuleGroup
  5770  func (c *WAF) ListActivatedRulesInRuleGroup(input *ListActivatedRulesInRuleGroupInput) (*ListActivatedRulesInRuleGroupOutput, error) {
  5771  	req, out := c.ListActivatedRulesInRuleGroupRequest(input)
  5772  	return out, req.Send()
  5773  }
  5774  
  5775  // ListActivatedRulesInRuleGroupWithContext is the same as ListActivatedRulesInRuleGroup with the addition of
  5776  // the ability to pass a context and additional request options.
  5777  //
  5778  // See ListActivatedRulesInRuleGroup for details on how to use this API operation.
  5779  //
  5780  // The context must be non-nil and will be used for request cancellation. If
  5781  // the context is nil a panic will occur. In the future the SDK may create
  5782  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5783  // for more information on using Contexts.
  5784  func (c *WAF) ListActivatedRulesInRuleGroupWithContext(ctx aws.Context, input *ListActivatedRulesInRuleGroupInput, opts ...request.Option) (*ListActivatedRulesInRuleGroupOutput, error) {
  5785  	req, out := c.ListActivatedRulesInRuleGroupRequest(input)
  5786  	req.SetContext(ctx)
  5787  	req.ApplyOptions(opts...)
  5788  	return out, req.Send()
  5789  }
  5790  
  5791  const opListByteMatchSets = "ListByteMatchSets"
  5792  
  5793  // ListByteMatchSetsRequest generates a "aws/request.Request" representing the
  5794  // client's request for the ListByteMatchSets operation. The "output" return
  5795  // value will be populated with the request's response once the request completes
  5796  // successfully.
  5797  //
  5798  // Use "Send" method on the returned Request to send the API call to the service.
  5799  // the "output" return value is not valid until after Send returns without error.
  5800  //
  5801  // See ListByteMatchSets for more information on using the ListByteMatchSets
  5802  // API call, and error handling.
  5803  //
  5804  // This method is useful when you want to inject custom logic or configuration
  5805  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5806  //
  5807  //
  5808  //    // Example sending a request using the ListByteMatchSetsRequest method.
  5809  //    req, resp := client.ListByteMatchSetsRequest(params)
  5810  //
  5811  //    err := req.Send()
  5812  //    if err == nil { // resp is now filled
  5813  //        fmt.Println(resp)
  5814  //    }
  5815  //
  5816  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListByteMatchSets
  5817  func (c *WAF) ListByteMatchSetsRequest(input *ListByteMatchSetsInput) (req *request.Request, output *ListByteMatchSetsOutput) {
  5818  	op := &request.Operation{
  5819  		Name:       opListByteMatchSets,
  5820  		HTTPMethod: "POST",
  5821  		HTTPPath:   "/",
  5822  	}
  5823  
  5824  	if input == nil {
  5825  		input = &ListByteMatchSetsInput{}
  5826  	}
  5827  
  5828  	output = &ListByteMatchSetsOutput{}
  5829  	req = c.newRequest(op, input, output)
  5830  	return
  5831  }
  5832  
  5833  // ListByteMatchSets API operation for AWS WAF.
  5834  //
  5835  //
  5836  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5837  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5838  // in the developer guide.
  5839  //
  5840  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5841  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5842  // With the latest version, AWS WAF has a single set of endpoints for regional
  5843  // and global use.
  5844  //
  5845  // Returns an array of ByteMatchSetSummary objects.
  5846  //
  5847  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5848  // with awserr.Error's Code and Message methods to get detailed information about
  5849  // the error.
  5850  //
  5851  // See the AWS API reference guide for AWS WAF's
  5852  // API operation ListByteMatchSets for usage and error information.
  5853  //
  5854  // Returned Error Types:
  5855  //   * InternalErrorException
  5856  //   The operation failed because of a system problem, even though the request
  5857  //   was valid. Retry your request.
  5858  //
  5859  //   * InvalidAccountException
  5860  //   The operation failed because you tried to create, update, or delete an object
  5861  //   by using an invalid account identifier.
  5862  //
  5863  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListByteMatchSets
  5864  func (c *WAF) ListByteMatchSets(input *ListByteMatchSetsInput) (*ListByteMatchSetsOutput, error) {
  5865  	req, out := c.ListByteMatchSetsRequest(input)
  5866  	return out, req.Send()
  5867  }
  5868  
  5869  // ListByteMatchSetsWithContext is the same as ListByteMatchSets with the addition of
  5870  // the ability to pass a context and additional request options.
  5871  //
  5872  // See ListByteMatchSets for details on how to use this API operation.
  5873  //
  5874  // The context must be non-nil and will be used for request cancellation. If
  5875  // the context is nil a panic will occur. In the future the SDK may create
  5876  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5877  // for more information on using Contexts.
  5878  func (c *WAF) ListByteMatchSetsWithContext(ctx aws.Context, input *ListByteMatchSetsInput, opts ...request.Option) (*ListByteMatchSetsOutput, error) {
  5879  	req, out := c.ListByteMatchSetsRequest(input)
  5880  	req.SetContext(ctx)
  5881  	req.ApplyOptions(opts...)
  5882  	return out, req.Send()
  5883  }
  5884  
  5885  const opListGeoMatchSets = "ListGeoMatchSets"
  5886  
  5887  // ListGeoMatchSetsRequest generates a "aws/request.Request" representing the
  5888  // client's request for the ListGeoMatchSets operation. The "output" return
  5889  // value will be populated with the request's response once the request completes
  5890  // successfully.
  5891  //
  5892  // Use "Send" method on the returned Request to send the API call to the service.
  5893  // the "output" return value is not valid until after Send returns without error.
  5894  //
  5895  // See ListGeoMatchSets for more information on using the ListGeoMatchSets
  5896  // API call, and error handling.
  5897  //
  5898  // This method is useful when you want to inject custom logic or configuration
  5899  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5900  //
  5901  //
  5902  //    // Example sending a request using the ListGeoMatchSetsRequest method.
  5903  //    req, resp := client.ListGeoMatchSetsRequest(params)
  5904  //
  5905  //    err := req.Send()
  5906  //    if err == nil { // resp is now filled
  5907  //        fmt.Println(resp)
  5908  //    }
  5909  //
  5910  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListGeoMatchSets
  5911  func (c *WAF) ListGeoMatchSetsRequest(input *ListGeoMatchSetsInput) (req *request.Request, output *ListGeoMatchSetsOutput) {
  5912  	op := &request.Operation{
  5913  		Name:       opListGeoMatchSets,
  5914  		HTTPMethod: "POST",
  5915  		HTTPPath:   "/",
  5916  	}
  5917  
  5918  	if input == nil {
  5919  		input = &ListGeoMatchSetsInput{}
  5920  	}
  5921  
  5922  	output = &ListGeoMatchSetsOutput{}
  5923  	req = c.newRequest(op, input, output)
  5924  	return
  5925  }
  5926  
  5927  // ListGeoMatchSets API operation for AWS WAF.
  5928  //
  5929  //
  5930  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  5931  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  5932  // in the developer guide.
  5933  //
  5934  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  5935  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  5936  // With the latest version, AWS WAF has a single set of endpoints for regional
  5937  // and global use.
  5938  //
  5939  // Returns an array of GeoMatchSetSummary objects in the response.
  5940  //
  5941  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  5942  // with awserr.Error's Code and Message methods to get detailed information about
  5943  // the error.
  5944  //
  5945  // See the AWS API reference guide for AWS WAF's
  5946  // API operation ListGeoMatchSets for usage and error information.
  5947  //
  5948  // Returned Error Types:
  5949  //   * InternalErrorException
  5950  //   The operation failed because of a system problem, even though the request
  5951  //   was valid. Retry your request.
  5952  //
  5953  //   * InvalidAccountException
  5954  //   The operation failed because you tried to create, update, or delete an object
  5955  //   by using an invalid account identifier.
  5956  //
  5957  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListGeoMatchSets
  5958  func (c *WAF) ListGeoMatchSets(input *ListGeoMatchSetsInput) (*ListGeoMatchSetsOutput, error) {
  5959  	req, out := c.ListGeoMatchSetsRequest(input)
  5960  	return out, req.Send()
  5961  }
  5962  
  5963  // ListGeoMatchSetsWithContext is the same as ListGeoMatchSets with the addition of
  5964  // the ability to pass a context and additional request options.
  5965  //
  5966  // See ListGeoMatchSets for details on how to use this API operation.
  5967  //
  5968  // The context must be non-nil and will be used for request cancellation. If
  5969  // the context is nil a panic will occur. In the future the SDK may create
  5970  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  5971  // for more information on using Contexts.
  5972  func (c *WAF) ListGeoMatchSetsWithContext(ctx aws.Context, input *ListGeoMatchSetsInput, opts ...request.Option) (*ListGeoMatchSetsOutput, error) {
  5973  	req, out := c.ListGeoMatchSetsRequest(input)
  5974  	req.SetContext(ctx)
  5975  	req.ApplyOptions(opts...)
  5976  	return out, req.Send()
  5977  }
  5978  
  5979  const opListIPSets = "ListIPSets"
  5980  
  5981  // ListIPSetsRequest generates a "aws/request.Request" representing the
  5982  // client's request for the ListIPSets operation. The "output" return
  5983  // value will be populated with the request's response once the request completes
  5984  // successfully.
  5985  //
  5986  // Use "Send" method on the returned Request to send the API call to the service.
  5987  // the "output" return value is not valid until after Send returns without error.
  5988  //
  5989  // See ListIPSets for more information on using the ListIPSets
  5990  // API call, and error handling.
  5991  //
  5992  // This method is useful when you want to inject custom logic or configuration
  5993  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  5994  //
  5995  //
  5996  //    // Example sending a request using the ListIPSetsRequest method.
  5997  //    req, resp := client.ListIPSetsRequest(params)
  5998  //
  5999  //    err := req.Send()
  6000  //    if err == nil { // resp is now filled
  6001  //        fmt.Println(resp)
  6002  //    }
  6003  //
  6004  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListIPSets
  6005  func (c *WAF) ListIPSetsRequest(input *ListIPSetsInput) (req *request.Request, output *ListIPSetsOutput) {
  6006  	op := &request.Operation{
  6007  		Name:       opListIPSets,
  6008  		HTTPMethod: "POST",
  6009  		HTTPPath:   "/",
  6010  	}
  6011  
  6012  	if input == nil {
  6013  		input = &ListIPSetsInput{}
  6014  	}
  6015  
  6016  	output = &ListIPSetsOutput{}
  6017  	req = c.newRequest(op, input, output)
  6018  	return
  6019  }
  6020  
  6021  // ListIPSets API operation for AWS WAF.
  6022  //
  6023  //
  6024  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6025  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6026  // in the developer guide.
  6027  //
  6028  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6029  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6030  // With the latest version, AWS WAF has a single set of endpoints for regional
  6031  // and global use.
  6032  //
  6033  // Returns an array of IPSetSummary objects in the response.
  6034  //
  6035  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6036  // with awserr.Error's Code and Message methods to get detailed information about
  6037  // the error.
  6038  //
  6039  // See the AWS API reference guide for AWS WAF's
  6040  // API operation ListIPSets for usage and error information.
  6041  //
  6042  // Returned Error Types:
  6043  //   * InternalErrorException
  6044  //   The operation failed because of a system problem, even though the request
  6045  //   was valid. Retry your request.
  6046  //
  6047  //   * InvalidAccountException
  6048  //   The operation failed because you tried to create, update, or delete an object
  6049  //   by using an invalid account identifier.
  6050  //
  6051  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListIPSets
  6052  func (c *WAF) ListIPSets(input *ListIPSetsInput) (*ListIPSetsOutput, error) {
  6053  	req, out := c.ListIPSetsRequest(input)
  6054  	return out, req.Send()
  6055  }
  6056  
  6057  // ListIPSetsWithContext is the same as ListIPSets with the addition of
  6058  // the ability to pass a context and additional request options.
  6059  //
  6060  // See ListIPSets for details on how to use this API operation.
  6061  //
  6062  // The context must be non-nil and will be used for request cancellation. If
  6063  // the context is nil a panic will occur. In the future the SDK may create
  6064  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6065  // for more information on using Contexts.
  6066  func (c *WAF) ListIPSetsWithContext(ctx aws.Context, input *ListIPSetsInput, opts ...request.Option) (*ListIPSetsOutput, error) {
  6067  	req, out := c.ListIPSetsRequest(input)
  6068  	req.SetContext(ctx)
  6069  	req.ApplyOptions(opts...)
  6070  	return out, req.Send()
  6071  }
  6072  
  6073  const opListLoggingConfigurations = "ListLoggingConfigurations"
  6074  
  6075  // ListLoggingConfigurationsRequest generates a "aws/request.Request" representing the
  6076  // client's request for the ListLoggingConfigurations operation. The "output" return
  6077  // value will be populated with the request's response once the request completes
  6078  // successfully.
  6079  //
  6080  // Use "Send" method on the returned Request to send the API call to the service.
  6081  // the "output" return value is not valid until after Send returns without error.
  6082  //
  6083  // See ListLoggingConfigurations for more information on using the ListLoggingConfigurations
  6084  // API call, and error handling.
  6085  //
  6086  // This method is useful when you want to inject custom logic or configuration
  6087  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6088  //
  6089  //
  6090  //    // Example sending a request using the ListLoggingConfigurationsRequest method.
  6091  //    req, resp := client.ListLoggingConfigurationsRequest(params)
  6092  //
  6093  //    err := req.Send()
  6094  //    if err == nil { // resp is now filled
  6095  //        fmt.Println(resp)
  6096  //    }
  6097  //
  6098  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListLoggingConfigurations
  6099  func (c *WAF) ListLoggingConfigurationsRequest(input *ListLoggingConfigurationsInput) (req *request.Request, output *ListLoggingConfigurationsOutput) {
  6100  	op := &request.Operation{
  6101  		Name:       opListLoggingConfigurations,
  6102  		HTTPMethod: "POST",
  6103  		HTTPPath:   "/",
  6104  	}
  6105  
  6106  	if input == nil {
  6107  		input = &ListLoggingConfigurationsInput{}
  6108  	}
  6109  
  6110  	output = &ListLoggingConfigurationsOutput{}
  6111  	req = c.newRequest(op, input, output)
  6112  	return
  6113  }
  6114  
  6115  // ListLoggingConfigurations API operation for AWS WAF.
  6116  //
  6117  //
  6118  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6119  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6120  // in the developer guide.
  6121  //
  6122  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6123  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6124  // With the latest version, AWS WAF has a single set of endpoints for regional
  6125  // and global use.
  6126  //
  6127  // Returns an array of LoggingConfiguration objects.
  6128  //
  6129  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6130  // with awserr.Error's Code and Message methods to get detailed information about
  6131  // the error.
  6132  //
  6133  // See the AWS API reference guide for AWS WAF's
  6134  // API operation ListLoggingConfigurations for usage and error information.
  6135  //
  6136  // Returned Error Types:
  6137  //   * InternalErrorException
  6138  //   The operation failed because of a system problem, even though the request
  6139  //   was valid. Retry your request.
  6140  //
  6141  //   * NonexistentItemException
  6142  //   The operation failed because the referenced object doesn't exist.
  6143  //
  6144  //   * InvalidParameterException
  6145  //   The operation failed because AWS WAF didn't recognize a parameter in the
  6146  //   request. For example:
  6147  //
  6148  //      * You specified an invalid parameter name.
  6149  //
  6150  //      * You specified an invalid value.
  6151  //
  6152  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  6153  //      using an action other than INSERT or DELETE.
  6154  //
  6155  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  6156  //      BLOCK, or COUNT.
  6157  //
  6158  //      * You tried to create a RateBasedRule with a RateKey value other than
  6159  //      IP.
  6160  //
  6161  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  6162  //      BLOCK, or COUNT.
  6163  //
  6164  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  6165  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  6166  //
  6167  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  6168  //      for Data.
  6169  //
  6170  //      * Your request references an ARN that is malformed, or corresponds to
  6171  //      a resource with which a web ACL cannot be associated.
  6172  //
  6173  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListLoggingConfigurations
  6174  func (c *WAF) ListLoggingConfigurations(input *ListLoggingConfigurationsInput) (*ListLoggingConfigurationsOutput, error) {
  6175  	req, out := c.ListLoggingConfigurationsRequest(input)
  6176  	return out, req.Send()
  6177  }
  6178  
  6179  // ListLoggingConfigurationsWithContext is the same as ListLoggingConfigurations with the addition of
  6180  // the ability to pass a context and additional request options.
  6181  //
  6182  // See ListLoggingConfigurations for details on how to use this API operation.
  6183  //
  6184  // The context must be non-nil and will be used for request cancellation. If
  6185  // the context is nil a panic will occur. In the future the SDK may create
  6186  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6187  // for more information on using Contexts.
  6188  func (c *WAF) ListLoggingConfigurationsWithContext(ctx aws.Context, input *ListLoggingConfigurationsInput, opts ...request.Option) (*ListLoggingConfigurationsOutput, error) {
  6189  	req, out := c.ListLoggingConfigurationsRequest(input)
  6190  	req.SetContext(ctx)
  6191  	req.ApplyOptions(opts...)
  6192  	return out, req.Send()
  6193  }
  6194  
  6195  const opListRateBasedRules = "ListRateBasedRules"
  6196  
  6197  // ListRateBasedRulesRequest generates a "aws/request.Request" representing the
  6198  // client's request for the ListRateBasedRules operation. The "output" return
  6199  // value will be populated with the request's response once the request completes
  6200  // successfully.
  6201  //
  6202  // Use "Send" method on the returned Request to send the API call to the service.
  6203  // the "output" return value is not valid until after Send returns without error.
  6204  //
  6205  // See ListRateBasedRules for more information on using the ListRateBasedRules
  6206  // API call, and error handling.
  6207  //
  6208  // This method is useful when you want to inject custom logic or configuration
  6209  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6210  //
  6211  //
  6212  //    // Example sending a request using the ListRateBasedRulesRequest method.
  6213  //    req, resp := client.ListRateBasedRulesRequest(params)
  6214  //
  6215  //    err := req.Send()
  6216  //    if err == nil { // resp is now filled
  6217  //        fmt.Println(resp)
  6218  //    }
  6219  //
  6220  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRules
  6221  func (c *WAF) ListRateBasedRulesRequest(input *ListRateBasedRulesInput) (req *request.Request, output *ListRateBasedRulesOutput) {
  6222  	op := &request.Operation{
  6223  		Name:       opListRateBasedRules,
  6224  		HTTPMethod: "POST",
  6225  		HTTPPath:   "/",
  6226  	}
  6227  
  6228  	if input == nil {
  6229  		input = &ListRateBasedRulesInput{}
  6230  	}
  6231  
  6232  	output = &ListRateBasedRulesOutput{}
  6233  	req = c.newRequest(op, input, output)
  6234  	return
  6235  }
  6236  
  6237  // ListRateBasedRules API operation for AWS WAF.
  6238  //
  6239  //
  6240  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6241  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6242  // in the developer guide.
  6243  //
  6244  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6245  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6246  // With the latest version, AWS WAF has a single set of endpoints for regional
  6247  // and global use.
  6248  //
  6249  // Returns an array of RuleSummary objects.
  6250  //
  6251  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6252  // with awserr.Error's Code and Message methods to get detailed information about
  6253  // the error.
  6254  //
  6255  // See the AWS API reference guide for AWS WAF's
  6256  // API operation ListRateBasedRules for usage and error information.
  6257  //
  6258  // Returned Error Types:
  6259  //   * InternalErrorException
  6260  //   The operation failed because of a system problem, even though the request
  6261  //   was valid. Retry your request.
  6262  //
  6263  //   * InvalidAccountException
  6264  //   The operation failed because you tried to create, update, or delete an object
  6265  //   by using an invalid account identifier.
  6266  //
  6267  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRateBasedRules
  6268  func (c *WAF) ListRateBasedRules(input *ListRateBasedRulesInput) (*ListRateBasedRulesOutput, error) {
  6269  	req, out := c.ListRateBasedRulesRequest(input)
  6270  	return out, req.Send()
  6271  }
  6272  
  6273  // ListRateBasedRulesWithContext is the same as ListRateBasedRules with the addition of
  6274  // the ability to pass a context and additional request options.
  6275  //
  6276  // See ListRateBasedRules for details on how to use this API operation.
  6277  //
  6278  // The context must be non-nil and will be used for request cancellation. If
  6279  // the context is nil a panic will occur. In the future the SDK may create
  6280  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6281  // for more information on using Contexts.
  6282  func (c *WAF) ListRateBasedRulesWithContext(ctx aws.Context, input *ListRateBasedRulesInput, opts ...request.Option) (*ListRateBasedRulesOutput, error) {
  6283  	req, out := c.ListRateBasedRulesRequest(input)
  6284  	req.SetContext(ctx)
  6285  	req.ApplyOptions(opts...)
  6286  	return out, req.Send()
  6287  }
  6288  
  6289  const opListRegexMatchSets = "ListRegexMatchSets"
  6290  
  6291  // ListRegexMatchSetsRequest generates a "aws/request.Request" representing the
  6292  // client's request for the ListRegexMatchSets operation. The "output" return
  6293  // value will be populated with the request's response once the request completes
  6294  // successfully.
  6295  //
  6296  // Use "Send" method on the returned Request to send the API call to the service.
  6297  // the "output" return value is not valid until after Send returns without error.
  6298  //
  6299  // See ListRegexMatchSets for more information on using the ListRegexMatchSets
  6300  // API call, and error handling.
  6301  //
  6302  // This method is useful when you want to inject custom logic or configuration
  6303  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6304  //
  6305  //
  6306  //    // Example sending a request using the ListRegexMatchSetsRequest method.
  6307  //    req, resp := client.ListRegexMatchSetsRequest(params)
  6308  //
  6309  //    err := req.Send()
  6310  //    if err == nil { // resp is now filled
  6311  //        fmt.Println(resp)
  6312  //    }
  6313  //
  6314  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRegexMatchSets
  6315  func (c *WAF) ListRegexMatchSetsRequest(input *ListRegexMatchSetsInput) (req *request.Request, output *ListRegexMatchSetsOutput) {
  6316  	op := &request.Operation{
  6317  		Name:       opListRegexMatchSets,
  6318  		HTTPMethod: "POST",
  6319  		HTTPPath:   "/",
  6320  	}
  6321  
  6322  	if input == nil {
  6323  		input = &ListRegexMatchSetsInput{}
  6324  	}
  6325  
  6326  	output = &ListRegexMatchSetsOutput{}
  6327  	req = c.newRequest(op, input, output)
  6328  	return
  6329  }
  6330  
  6331  // ListRegexMatchSets API operation for AWS WAF.
  6332  //
  6333  //
  6334  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6335  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6336  // in the developer guide.
  6337  //
  6338  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6339  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6340  // With the latest version, AWS WAF has a single set of endpoints for regional
  6341  // and global use.
  6342  //
  6343  // Returns an array of RegexMatchSetSummary objects.
  6344  //
  6345  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6346  // with awserr.Error's Code and Message methods to get detailed information about
  6347  // the error.
  6348  //
  6349  // See the AWS API reference guide for AWS WAF's
  6350  // API operation ListRegexMatchSets for usage and error information.
  6351  //
  6352  // Returned Error Types:
  6353  //   * InternalErrorException
  6354  //   The operation failed because of a system problem, even though the request
  6355  //   was valid. Retry your request.
  6356  //
  6357  //   * InvalidAccountException
  6358  //   The operation failed because you tried to create, update, or delete an object
  6359  //   by using an invalid account identifier.
  6360  //
  6361  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRegexMatchSets
  6362  func (c *WAF) ListRegexMatchSets(input *ListRegexMatchSetsInput) (*ListRegexMatchSetsOutput, error) {
  6363  	req, out := c.ListRegexMatchSetsRequest(input)
  6364  	return out, req.Send()
  6365  }
  6366  
  6367  // ListRegexMatchSetsWithContext is the same as ListRegexMatchSets with the addition of
  6368  // the ability to pass a context and additional request options.
  6369  //
  6370  // See ListRegexMatchSets for details on how to use this API operation.
  6371  //
  6372  // The context must be non-nil and will be used for request cancellation. If
  6373  // the context is nil a panic will occur. In the future the SDK may create
  6374  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6375  // for more information on using Contexts.
  6376  func (c *WAF) ListRegexMatchSetsWithContext(ctx aws.Context, input *ListRegexMatchSetsInput, opts ...request.Option) (*ListRegexMatchSetsOutput, error) {
  6377  	req, out := c.ListRegexMatchSetsRequest(input)
  6378  	req.SetContext(ctx)
  6379  	req.ApplyOptions(opts...)
  6380  	return out, req.Send()
  6381  }
  6382  
  6383  const opListRegexPatternSets = "ListRegexPatternSets"
  6384  
  6385  // ListRegexPatternSetsRequest generates a "aws/request.Request" representing the
  6386  // client's request for the ListRegexPatternSets operation. The "output" return
  6387  // value will be populated with the request's response once the request completes
  6388  // successfully.
  6389  //
  6390  // Use "Send" method on the returned Request to send the API call to the service.
  6391  // the "output" return value is not valid until after Send returns without error.
  6392  //
  6393  // See ListRegexPatternSets for more information on using the ListRegexPatternSets
  6394  // API call, and error handling.
  6395  //
  6396  // This method is useful when you want to inject custom logic or configuration
  6397  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6398  //
  6399  //
  6400  //    // Example sending a request using the ListRegexPatternSetsRequest method.
  6401  //    req, resp := client.ListRegexPatternSetsRequest(params)
  6402  //
  6403  //    err := req.Send()
  6404  //    if err == nil { // resp is now filled
  6405  //        fmt.Println(resp)
  6406  //    }
  6407  //
  6408  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRegexPatternSets
  6409  func (c *WAF) ListRegexPatternSetsRequest(input *ListRegexPatternSetsInput) (req *request.Request, output *ListRegexPatternSetsOutput) {
  6410  	op := &request.Operation{
  6411  		Name:       opListRegexPatternSets,
  6412  		HTTPMethod: "POST",
  6413  		HTTPPath:   "/",
  6414  	}
  6415  
  6416  	if input == nil {
  6417  		input = &ListRegexPatternSetsInput{}
  6418  	}
  6419  
  6420  	output = &ListRegexPatternSetsOutput{}
  6421  	req = c.newRequest(op, input, output)
  6422  	return
  6423  }
  6424  
  6425  // ListRegexPatternSets API operation for AWS WAF.
  6426  //
  6427  //
  6428  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6429  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6430  // in the developer guide.
  6431  //
  6432  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6433  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6434  // With the latest version, AWS WAF has a single set of endpoints for regional
  6435  // and global use.
  6436  //
  6437  // Returns an array of RegexPatternSetSummary objects.
  6438  //
  6439  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6440  // with awserr.Error's Code and Message methods to get detailed information about
  6441  // the error.
  6442  //
  6443  // See the AWS API reference guide for AWS WAF's
  6444  // API operation ListRegexPatternSets for usage and error information.
  6445  //
  6446  // Returned Error Types:
  6447  //   * InternalErrorException
  6448  //   The operation failed because of a system problem, even though the request
  6449  //   was valid. Retry your request.
  6450  //
  6451  //   * InvalidAccountException
  6452  //   The operation failed because you tried to create, update, or delete an object
  6453  //   by using an invalid account identifier.
  6454  //
  6455  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRegexPatternSets
  6456  func (c *WAF) ListRegexPatternSets(input *ListRegexPatternSetsInput) (*ListRegexPatternSetsOutput, error) {
  6457  	req, out := c.ListRegexPatternSetsRequest(input)
  6458  	return out, req.Send()
  6459  }
  6460  
  6461  // ListRegexPatternSetsWithContext is the same as ListRegexPatternSets with the addition of
  6462  // the ability to pass a context and additional request options.
  6463  //
  6464  // See ListRegexPatternSets for details on how to use this API operation.
  6465  //
  6466  // The context must be non-nil and will be used for request cancellation. If
  6467  // the context is nil a panic will occur. In the future the SDK may create
  6468  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6469  // for more information on using Contexts.
  6470  func (c *WAF) ListRegexPatternSetsWithContext(ctx aws.Context, input *ListRegexPatternSetsInput, opts ...request.Option) (*ListRegexPatternSetsOutput, error) {
  6471  	req, out := c.ListRegexPatternSetsRequest(input)
  6472  	req.SetContext(ctx)
  6473  	req.ApplyOptions(opts...)
  6474  	return out, req.Send()
  6475  }
  6476  
  6477  const opListRuleGroups = "ListRuleGroups"
  6478  
  6479  // ListRuleGroupsRequest generates a "aws/request.Request" representing the
  6480  // client's request for the ListRuleGroups operation. The "output" return
  6481  // value will be populated with the request's response once the request completes
  6482  // successfully.
  6483  //
  6484  // Use "Send" method on the returned Request to send the API call to the service.
  6485  // the "output" return value is not valid until after Send returns without error.
  6486  //
  6487  // See ListRuleGroups for more information on using the ListRuleGroups
  6488  // API call, and error handling.
  6489  //
  6490  // This method is useful when you want to inject custom logic or configuration
  6491  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6492  //
  6493  //
  6494  //    // Example sending a request using the ListRuleGroupsRequest method.
  6495  //    req, resp := client.ListRuleGroupsRequest(params)
  6496  //
  6497  //    err := req.Send()
  6498  //    if err == nil { // resp is now filled
  6499  //        fmt.Println(resp)
  6500  //    }
  6501  //
  6502  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRuleGroups
  6503  func (c *WAF) ListRuleGroupsRequest(input *ListRuleGroupsInput) (req *request.Request, output *ListRuleGroupsOutput) {
  6504  	op := &request.Operation{
  6505  		Name:       opListRuleGroups,
  6506  		HTTPMethod: "POST",
  6507  		HTTPPath:   "/",
  6508  	}
  6509  
  6510  	if input == nil {
  6511  		input = &ListRuleGroupsInput{}
  6512  	}
  6513  
  6514  	output = &ListRuleGroupsOutput{}
  6515  	req = c.newRequest(op, input, output)
  6516  	return
  6517  }
  6518  
  6519  // ListRuleGroups API operation for AWS WAF.
  6520  //
  6521  //
  6522  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6523  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6524  // in the developer guide.
  6525  //
  6526  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6527  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6528  // With the latest version, AWS WAF has a single set of endpoints for regional
  6529  // and global use.
  6530  //
  6531  // Returns an array of RuleGroup objects.
  6532  //
  6533  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6534  // with awserr.Error's Code and Message methods to get detailed information about
  6535  // the error.
  6536  //
  6537  // See the AWS API reference guide for AWS WAF's
  6538  // API operation ListRuleGroups for usage and error information.
  6539  //
  6540  // Returned Error Types:
  6541  //   * InternalErrorException
  6542  //   The operation failed because of a system problem, even though the request
  6543  //   was valid. Retry your request.
  6544  //
  6545  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRuleGroups
  6546  func (c *WAF) ListRuleGroups(input *ListRuleGroupsInput) (*ListRuleGroupsOutput, error) {
  6547  	req, out := c.ListRuleGroupsRequest(input)
  6548  	return out, req.Send()
  6549  }
  6550  
  6551  // ListRuleGroupsWithContext is the same as ListRuleGroups with the addition of
  6552  // the ability to pass a context and additional request options.
  6553  //
  6554  // See ListRuleGroups for details on how to use this API operation.
  6555  //
  6556  // The context must be non-nil and will be used for request cancellation. If
  6557  // the context is nil a panic will occur. In the future the SDK may create
  6558  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6559  // for more information on using Contexts.
  6560  func (c *WAF) ListRuleGroupsWithContext(ctx aws.Context, input *ListRuleGroupsInput, opts ...request.Option) (*ListRuleGroupsOutput, error) {
  6561  	req, out := c.ListRuleGroupsRequest(input)
  6562  	req.SetContext(ctx)
  6563  	req.ApplyOptions(opts...)
  6564  	return out, req.Send()
  6565  }
  6566  
  6567  const opListRules = "ListRules"
  6568  
  6569  // ListRulesRequest generates a "aws/request.Request" representing the
  6570  // client's request for the ListRules operation. The "output" return
  6571  // value will be populated with the request's response once the request completes
  6572  // successfully.
  6573  //
  6574  // Use "Send" method on the returned Request to send the API call to the service.
  6575  // the "output" return value is not valid until after Send returns without error.
  6576  //
  6577  // See ListRules for more information on using the ListRules
  6578  // API call, and error handling.
  6579  //
  6580  // This method is useful when you want to inject custom logic or configuration
  6581  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6582  //
  6583  //
  6584  //    // Example sending a request using the ListRulesRequest method.
  6585  //    req, resp := client.ListRulesRequest(params)
  6586  //
  6587  //    err := req.Send()
  6588  //    if err == nil { // resp is now filled
  6589  //        fmt.Println(resp)
  6590  //    }
  6591  //
  6592  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRules
  6593  func (c *WAF) ListRulesRequest(input *ListRulesInput) (req *request.Request, output *ListRulesOutput) {
  6594  	op := &request.Operation{
  6595  		Name:       opListRules,
  6596  		HTTPMethod: "POST",
  6597  		HTTPPath:   "/",
  6598  	}
  6599  
  6600  	if input == nil {
  6601  		input = &ListRulesInput{}
  6602  	}
  6603  
  6604  	output = &ListRulesOutput{}
  6605  	req = c.newRequest(op, input, output)
  6606  	return
  6607  }
  6608  
  6609  // ListRules API operation for AWS WAF.
  6610  //
  6611  //
  6612  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6613  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6614  // in the developer guide.
  6615  //
  6616  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6617  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6618  // With the latest version, AWS WAF has a single set of endpoints for regional
  6619  // and global use.
  6620  //
  6621  // Returns an array of RuleSummary objects.
  6622  //
  6623  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6624  // with awserr.Error's Code and Message methods to get detailed information about
  6625  // the error.
  6626  //
  6627  // See the AWS API reference guide for AWS WAF's
  6628  // API operation ListRules for usage and error information.
  6629  //
  6630  // Returned Error Types:
  6631  //   * InternalErrorException
  6632  //   The operation failed because of a system problem, even though the request
  6633  //   was valid. Retry your request.
  6634  //
  6635  //   * InvalidAccountException
  6636  //   The operation failed because you tried to create, update, or delete an object
  6637  //   by using an invalid account identifier.
  6638  //
  6639  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListRules
  6640  func (c *WAF) ListRules(input *ListRulesInput) (*ListRulesOutput, error) {
  6641  	req, out := c.ListRulesRequest(input)
  6642  	return out, req.Send()
  6643  }
  6644  
  6645  // ListRulesWithContext is the same as ListRules with the addition of
  6646  // the ability to pass a context and additional request options.
  6647  //
  6648  // See ListRules for details on how to use this API operation.
  6649  //
  6650  // The context must be non-nil and will be used for request cancellation. If
  6651  // the context is nil a panic will occur. In the future the SDK may create
  6652  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6653  // for more information on using Contexts.
  6654  func (c *WAF) ListRulesWithContext(ctx aws.Context, input *ListRulesInput, opts ...request.Option) (*ListRulesOutput, error) {
  6655  	req, out := c.ListRulesRequest(input)
  6656  	req.SetContext(ctx)
  6657  	req.ApplyOptions(opts...)
  6658  	return out, req.Send()
  6659  }
  6660  
  6661  const opListSizeConstraintSets = "ListSizeConstraintSets"
  6662  
  6663  // ListSizeConstraintSetsRequest generates a "aws/request.Request" representing the
  6664  // client's request for the ListSizeConstraintSets operation. The "output" return
  6665  // value will be populated with the request's response once the request completes
  6666  // successfully.
  6667  //
  6668  // Use "Send" method on the returned Request to send the API call to the service.
  6669  // the "output" return value is not valid until after Send returns without error.
  6670  //
  6671  // See ListSizeConstraintSets for more information on using the ListSizeConstraintSets
  6672  // API call, and error handling.
  6673  //
  6674  // This method is useful when you want to inject custom logic or configuration
  6675  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6676  //
  6677  //
  6678  //    // Example sending a request using the ListSizeConstraintSetsRequest method.
  6679  //    req, resp := client.ListSizeConstraintSetsRequest(params)
  6680  //
  6681  //    err := req.Send()
  6682  //    if err == nil { // resp is now filled
  6683  //        fmt.Println(resp)
  6684  //    }
  6685  //
  6686  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSizeConstraintSets
  6687  func (c *WAF) ListSizeConstraintSetsRequest(input *ListSizeConstraintSetsInput) (req *request.Request, output *ListSizeConstraintSetsOutput) {
  6688  	op := &request.Operation{
  6689  		Name:       opListSizeConstraintSets,
  6690  		HTTPMethod: "POST",
  6691  		HTTPPath:   "/",
  6692  	}
  6693  
  6694  	if input == nil {
  6695  		input = &ListSizeConstraintSetsInput{}
  6696  	}
  6697  
  6698  	output = &ListSizeConstraintSetsOutput{}
  6699  	req = c.newRequest(op, input, output)
  6700  	return
  6701  }
  6702  
  6703  // ListSizeConstraintSets API operation for AWS WAF.
  6704  //
  6705  //
  6706  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6707  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6708  // in the developer guide.
  6709  //
  6710  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6711  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6712  // With the latest version, AWS WAF has a single set of endpoints for regional
  6713  // and global use.
  6714  //
  6715  // Returns an array of SizeConstraintSetSummary objects.
  6716  //
  6717  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6718  // with awserr.Error's Code and Message methods to get detailed information about
  6719  // the error.
  6720  //
  6721  // See the AWS API reference guide for AWS WAF's
  6722  // API operation ListSizeConstraintSets for usage and error information.
  6723  //
  6724  // Returned Error Types:
  6725  //   * InternalErrorException
  6726  //   The operation failed because of a system problem, even though the request
  6727  //   was valid. Retry your request.
  6728  //
  6729  //   * InvalidAccountException
  6730  //   The operation failed because you tried to create, update, or delete an object
  6731  //   by using an invalid account identifier.
  6732  //
  6733  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSizeConstraintSets
  6734  func (c *WAF) ListSizeConstraintSets(input *ListSizeConstraintSetsInput) (*ListSizeConstraintSetsOutput, error) {
  6735  	req, out := c.ListSizeConstraintSetsRequest(input)
  6736  	return out, req.Send()
  6737  }
  6738  
  6739  // ListSizeConstraintSetsWithContext is the same as ListSizeConstraintSets with the addition of
  6740  // the ability to pass a context and additional request options.
  6741  //
  6742  // See ListSizeConstraintSets for details on how to use this API operation.
  6743  //
  6744  // The context must be non-nil and will be used for request cancellation. If
  6745  // the context is nil a panic will occur. In the future the SDK may create
  6746  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6747  // for more information on using Contexts.
  6748  func (c *WAF) ListSizeConstraintSetsWithContext(ctx aws.Context, input *ListSizeConstraintSetsInput, opts ...request.Option) (*ListSizeConstraintSetsOutput, error) {
  6749  	req, out := c.ListSizeConstraintSetsRequest(input)
  6750  	req.SetContext(ctx)
  6751  	req.ApplyOptions(opts...)
  6752  	return out, req.Send()
  6753  }
  6754  
  6755  const opListSqlInjectionMatchSets = "ListSqlInjectionMatchSets"
  6756  
  6757  // ListSqlInjectionMatchSetsRequest generates a "aws/request.Request" representing the
  6758  // client's request for the ListSqlInjectionMatchSets operation. The "output" return
  6759  // value will be populated with the request's response once the request completes
  6760  // successfully.
  6761  //
  6762  // Use "Send" method on the returned Request to send the API call to the service.
  6763  // the "output" return value is not valid until after Send returns without error.
  6764  //
  6765  // See ListSqlInjectionMatchSets for more information on using the ListSqlInjectionMatchSets
  6766  // API call, and error handling.
  6767  //
  6768  // This method is useful when you want to inject custom logic or configuration
  6769  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6770  //
  6771  //
  6772  //    // Example sending a request using the ListSqlInjectionMatchSetsRequest method.
  6773  //    req, resp := client.ListSqlInjectionMatchSetsRequest(params)
  6774  //
  6775  //    err := req.Send()
  6776  //    if err == nil { // resp is now filled
  6777  //        fmt.Println(resp)
  6778  //    }
  6779  //
  6780  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSqlInjectionMatchSets
  6781  func (c *WAF) ListSqlInjectionMatchSetsRequest(input *ListSqlInjectionMatchSetsInput) (req *request.Request, output *ListSqlInjectionMatchSetsOutput) {
  6782  	op := &request.Operation{
  6783  		Name:       opListSqlInjectionMatchSets,
  6784  		HTTPMethod: "POST",
  6785  		HTTPPath:   "/",
  6786  	}
  6787  
  6788  	if input == nil {
  6789  		input = &ListSqlInjectionMatchSetsInput{}
  6790  	}
  6791  
  6792  	output = &ListSqlInjectionMatchSetsOutput{}
  6793  	req = c.newRequest(op, input, output)
  6794  	return
  6795  }
  6796  
  6797  // ListSqlInjectionMatchSets API operation for AWS WAF.
  6798  //
  6799  //
  6800  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6801  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6802  // in the developer guide.
  6803  //
  6804  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6805  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6806  // With the latest version, AWS WAF has a single set of endpoints for regional
  6807  // and global use.
  6808  //
  6809  // Returns an array of SqlInjectionMatchSet objects.
  6810  //
  6811  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6812  // with awserr.Error's Code and Message methods to get detailed information about
  6813  // the error.
  6814  //
  6815  // See the AWS API reference guide for AWS WAF's
  6816  // API operation ListSqlInjectionMatchSets for usage and error information.
  6817  //
  6818  // Returned Error Types:
  6819  //   * InternalErrorException
  6820  //   The operation failed because of a system problem, even though the request
  6821  //   was valid. Retry your request.
  6822  //
  6823  //   * InvalidAccountException
  6824  //   The operation failed because you tried to create, update, or delete an object
  6825  //   by using an invalid account identifier.
  6826  //
  6827  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSqlInjectionMatchSets
  6828  func (c *WAF) ListSqlInjectionMatchSets(input *ListSqlInjectionMatchSetsInput) (*ListSqlInjectionMatchSetsOutput, error) {
  6829  	req, out := c.ListSqlInjectionMatchSetsRequest(input)
  6830  	return out, req.Send()
  6831  }
  6832  
  6833  // ListSqlInjectionMatchSetsWithContext is the same as ListSqlInjectionMatchSets with the addition of
  6834  // the ability to pass a context and additional request options.
  6835  //
  6836  // See ListSqlInjectionMatchSets for details on how to use this API operation.
  6837  //
  6838  // The context must be non-nil and will be used for request cancellation. If
  6839  // the context is nil a panic will occur. In the future the SDK may create
  6840  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6841  // for more information on using Contexts.
  6842  func (c *WAF) ListSqlInjectionMatchSetsWithContext(ctx aws.Context, input *ListSqlInjectionMatchSetsInput, opts ...request.Option) (*ListSqlInjectionMatchSetsOutput, error) {
  6843  	req, out := c.ListSqlInjectionMatchSetsRequest(input)
  6844  	req.SetContext(ctx)
  6845  	req.ApplyOptions(opts...)
  6846  	return out, req.Send()
  6847  }
  6848  
  6849  const opListSubscribedRuleGroups = "ListSubscribedRuleGroups"
  6850  
  6851  // ListSubscribedRuleGroupsRequest generates a "aws/request.Request" representing the
  6852  // client's request for the ListSubscribedRuleGroups operation. The "output" return
  6853  // value will be populated with the request's response once the request completes
  6854  // successfully.
  6855  //
  6856  // Use "Send" method on the returned Request to send the API call to the service.
  6857  // the "output" return value is not valid until after Send returns without error.
  6858  //
  6859  // See ListSubscribedRuleGroups for more information on using the ListSubscribedRuleGroups
  6860  // API call, and error handling.
  6861  //
  6862  // This method is useful when you want to inject custom logic or configuration
  6863  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6864  //
  6865  //
  6866  //    // Example sending a request using the ListSubscribedRuleGroupsRequest method.
  6867  //    req, resp := client.ListSubscribedRuleGroupsRequest(params)
  6868  //
  6869  //    err := req.Send()
  6870  //    if err == nil { // resp is now filled
  6871  //        fmt.Println(resp)
  6872  //    }
  6873  //
  6874  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSubscribedRuleGroups
  6875  func (c *WAF) ListSubscribedRuleGroupsRequest(input *ListSubscribedRuleGroupsInput) (req *request.Request, output *ListSubscribedRuleGroupsOutput) {
  6876  	op := &request.Operation{
  6877  		Name:       opListSubscribedRuleGroups,
  6878  		HTTPMethod: "POST",
  6879  		HTTPPath:   "/",
  6880  	}
  6881  
  6882  	if input == nil {
  6883  		input = &ListSubscribedRuleGroupsInput{}
  6884  	}
  6885  
  6886  	output = &ListSubscribedRuleGroupsOutput{}
  6887  	req = c.newRequest(op, input, output)
  6888  	return
  6889  }
  6890  
  6891  // ListSubscribedRuleGroups API operation for AWS WAF.
  6892  //
  6893  //
  6894  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6895  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6896  // in the developer guide.
  6897  //
  6898  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6899  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6900  // With the latest version, AWS WAF has a single set of endpoints for regional
  6901  // and global use.
  6902  //
  6903  // Returns an array of RuleGroup objects that you are subscribed to.
  6904  //
  6905  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  6906  // with awserr.Error's Code and Message methods to get detailed information about
  6907  // the error.
  6908  //
  6909  // See the AWS API reference guide for AWS WAF's
  6910  // API operation ListSubscribedRuleGroups for usage and error information.
  6911  //
  6912  // Returned Error Types:
  6913  //   * NonexistentItemException
  6914  //   The operation failed because the referenced object doesn't exist.
  6915  //
  6916  //   * InternalErrorException
  6917  //   The operation failed because of a system problem, even though the request
  6918  //   was valid. Retry your request.
  6919  //
  6920  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListSubscribedRuleGroups
  6921  func (c *WAF) ListSubscribedRuleGroups(input *ListSubscribedRuleGroupsInput) (*ListSubscribedRuleGroupsOutput, error) {
  6922  	req, out := c.ListSubscribedRuleGroupsRequest(input)
  6923  	return out, req.Send()
  6924  }
  6925  
  6926  // ListSubscribedRuleGroupsWithContext is the same as ListSubscribedRuleGroups with the addition of
  6927  // the ability to pass a context and additional request options.
  6928  //
  6929  // See ListSubscribedRuleGroups for details on how to use this API operation.
  6930  //
  6931  // The context must be non-nil and will be used for request cancellation. If
  6932  // the context is nil a panic will occur. In the future the SDK may create
  6933  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  6934  // for more information on using Contexts.
  6935  func (c *WAF) ListSubscribedRuleGroupsWithContext(ctx aws.Context, input *ListSubscribedRuleGroupsInput, opts ...request.Option) (*ListSubscribedRuleGroupsOutput, error) {
  6936  	req, out := c.ListSubscribedRuleGroupsRequest(input)
  6937  	req.SetContext(ctx)
  6938  	req.ApplyOptions(opts...)
  6939  	return out, req.Send()
  6940  }
  6941  
  6942  const opListTagsForResource = "ListTagsForResource"
  6943  
  6944  // ListTagsForResourceRequest generates a "aws/request.Request" representing the
  6945  // client's request for the ListTagsForResource operation. The "output" return
  6946  // value will be populated with the request's response once the request completes
  6947  // successfully.
  6948  //
  6949  // Use "Send" method on the returned Request to send the API call to the service.
  6950  // the "output" return value is not valid until after Send returns without error.
  6951  //
  6952  // See ListTagsForResource for more information on using the ListTagsForResource
  6953  // API call, and error handling.
  6954  //
  6955  // This method is useful when you want to inject custom logic or configuration
  6956  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  6957  //
  6958  //
  6959  //    // Example sending a request using the ListTagsForResourceRequest method.
  6960  //    req, resp := client.ListTagsForResourceRequest(params)
  6961  //
  6962  //    err := req.Send()
  6963  //    if err == nil { // resp is now filled
  6964  //        fmt.Println(resp)
  6965  //    }
  6966  //
  6967  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListTagsForResource
  6968  func (c *WAF) ListTagsForResourceRequest(input *ListTagsForResourceInput) (req *request.Request, output *ListTagsForResourceOutput) {
  6969  	op := &request.Operation{
  6970  		Name:       opListTagsForResource,
  6971  		HTTPMethod: "POST",
  6972  		HTTPPath:   "/",
  6973  	}
  6974  
  6975  	if input == nil {
  6976  		input = &ListTagsForResourceInput{}
  6977  	}
  6978  
  6979  	output = &ListTagsForResourceOutput{}
  6980  	req = c.newRequest(op, input, output)
  6981  	return
  6982  }
  6983  
  6984  // ListTagsForResource API operation for AWS WAF.
  6985  //
  6986  //
  6987  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  6988  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  6989  // in the developer guide.
  6990  //
  6991  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  6992  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  6993  // With the latest version, AWS WAF has a single set of endpoints for regional
  6994  // and global use.
  6995  //
  6996  // Retrieves the tags associated with the specified AWS resource. Tags are key:value
  6997  // pairs that you can use to categorize and manage your resources, for purposes
  6998  // like billing. For example, you might set the tag key to "customer" and the
  6999  // value to the customer name or ID. You can specify one or more tags to add
  7000  // to each AWS resource, up to 50 tags for a resource.
  7001  //
  7002  // Tagging is only available through the API, SDKs, and CLI. You can't manage
  7003  // or view tags through the AWS WAF Classic console. You can tag the AWS resources
  7004  // that you manage through AWS WAF Classic: web ACLs, rule groups, and rules.
  7005  //
  7006  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7007  // with awserr.Error's Code and Message methods to get detailed information about
  7008  // the error.
  7009  //
  7010  // See the AWS API reference guide for AWS WAF's
  7011  // API operation ListTagsForResource for usage and error information.
  7012  //
  7013  // Returned Error Types:
  7014  //   * InternalErrorException
  7015  //   The operation failed because of a system problem, even though the request
  7016  //   was valid. Retry your request.
  7017  //
  7018  //   * InvalidParameterException
  7019  //   The operation failed because AWS WAF didn't recognize a parameter in the
  7020  //   request. For example:
  7021  //
  7022  //      * You specified an invalid parameter name.
  7023  //
  7024  //      * You specified an invalid value.
  7025  //
  7026  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  7027  //      using an action other than INSERT or DELETE.
  7028  //
  7029  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  7030  //      BLOCK, or COUNT.
  7031  //
  7032  //      * You tried to create a RateBasedRule with a RateKey value other than
  7033  //      IP.
  7034  //
  7035  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  7036  //      BLOCK, or COUNT.
  7037  //
  7038  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  7039  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  7040  //
  7041  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  7042  //      for Data.
  7043  //
  7044  //      * Your request references an ARN that is malformed, or corresponds to
  7045  //      a resource with which a web ACL cannot be associated.
  7046  //
  7047  //   * NonexistentItemException
  7048  //   The operation failed because the referenced object doesn't exist.
  7049  //
  7050  //   * BadRequestException
  7051  //
  7052  //   * TagOperationException
  7053  //
  7054  //   * TagOperationInternalErrorException
  7055  //
  7056  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListTagsForResource
  7057  func (c *WAF) ListTagsForResource(input *ListTagsForResourceInput) (*ListTagsForResourceOutput, error) {
  7058  	req, out := c.ListTagsForResourceRequest(input)
  7059  	return out, req.Send()
  7060  }
  7061  
  7062  // ListTagsForResourceWithContext is the same as ListTagsForResource with the addition of
  7063  // the ability to pass a context and additional request options.
  7064  //
  7065  // See ListTagsForResource for details on how to use this API operation.
  7066  //
  7067  // The context must be non-nil and will be used for request cancellation. If
  7068  // the context is nil a panic will occur. In the future the SDK may create
  7069  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7070  // for more information on using Contexts.
  7071  func (c *WAF) ListTagsForResourceWithContext(ctx aws.Context, input *ListTagsForResourceInput, opts ...request.Option) (*ListTagsForResourceOutput, error) {
  7072  	req, out := c.ListTagsForResourceRequest(input)
  7073  	req.SetContext(ctx)
  7074  	req.ApplyOptions(opts...)
  7075  	return out, req.Send()
  7076  }
  7077  
  7078  const opListWebACLs = "ListWebACLs"
  7079  
  7080  // ListWebACLsRequest generates a "aws/request.Request" representing the
  7081  // client's request for the ListWebACLs operation. The "output" return
  7082  // value will be populated with the request's response once the request completes
  7083  // successfully.
  7084  //
  7085  // Use "Send" method on the returned Request to send the API call to the service.
  7086  // the "output" return value is not valid until after Send returns without error.
  7087  //
  7088  // See ListWebACLs for more information on using the ListWebACLs
  7089  // API call, and error handling.
  7090  //
  7091  // This method is useful when you want to inject custom logic or configuration
  7092  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7093  //
  7094  //
  7095  //    // Example sending a request using the ListWebACLsRequest method.
  7096  //    req, resp := client.ListWebACLsRequest(params)
  7097  //
  7098  //    err := req.Send()
  7099  //    if err == nil { // resp is now filled
  7100  //        fmt.Println(resp)
  7101  //    }
  7102  //
  7103  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListWebACLs
  7104  func (c *WAF) ListWebACLsRequest(input *ListWebACLsInput) (req *request.Request, output *ListWebACLsOutput) {
  7105  	op := &request.Operation{
  7106  		Name:       opListWebACLs,
  7107  		HTTPMethod: "POST",
  7108  		HTTPPath:   "/",
  7109  	}
  7110  
  7111  	if input == nil {
  7112  		input = &ListWebACLsInput{}
  7113  	}
  7114  
  7115  	output = &ListWebACLsOutput{}
  7116  	req = c.newRequest(op, input, output)
  7117  	return
  7118  }
  7119  
  7120  // ListWebACLs API operation for AWS WAF.
  7121  //
  7122  //
  7123  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  7124  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  7125  // in the developer guide.
  7126  //
  7127  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  7128  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  7129  // With the latest version, AWS WAF has a single set of endpoints for regional
  7130  // and global use.
  7131  //
  7132  // Returns an array of WebACLSummary objects in the response.
  7133  //
  7134  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7135  // with awserr.Error's Code and Message methods to get detailed information about
  7136  // the error.
  7137  //
  7138  // See the AWS API reference guide for AWS WAF's
  7139  // API operation ListWebACLs for usage and error information.
  7140  //
  7141  // Returned Error Types:
  7142  //   * InternalErrorException
  7143  //   The operation failed because of a system problem, even though the request
  7144  //   was valid. Retry your request.
  7145  //
  7146  //   * InvalidAccountException
  7147  //   The operation failed because you tried to create, update, or delete an object
  7148  //   by using an invalid account identifier.
  7149  //
  7150  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListWebACLs
  7151  func (c *WAF) ListWebACLs(input *ListWebACLsInput) (*ListWebACLsOutput, error) {
  7152  	req, out := c.ListWebACLsRequest(input)
  7153  	return out, req.Send()
  7154  }
  7155  
  7156  // ListWebACLsWithContext is the same as ListWebACLs with the addition of
  7157  // the ability to pass a context and additional request options.
  7158  //
  7159  // See ListWebACLs for details on how to use this API operation.
  7160  //
  7161  // The context must be non-nil and will be used for request cancellation. If
  7162  // the context is nil a panic will occur. In the future the SDK may create
  7163  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7164  // for more information on using Contexts.
  7165  func (c *WAF) ListWebACLsWithContext(ctx aws.Context, input *ListWebACLsInput, opts ...request.Option) (*ListWebACLsOutput, error) {
  7166  	req, out := c.ListWebACLsRequest(input)
  7167  	req.SetContext(ctx)
  7168  	req.ApplyOptions(opts...)
  7169  	return out, req.Send()
  7170  }
  7171  
  7172  const opListXssMatchSets = "ListXssMatchSets"
  7173  
  7174  // ListXssMatchSetsRequest generates a "aws/request.Request" representing the
  7175  // client's request for the ListXssMatchSets operation. The "output" return
  7176  // value will be populated with the request's response once the request completes
  7177  // successfully.
  7178  //
  7179  // Use "Send" method on the returned Request to send the API call to the service.
  7180  // the "output" return value is not valid until after Send returns without error.
  7181  //
  7182  // See ListXssMatchSets for more information on using the ListXssMatchSets
  7183  // API call, and error handling.
  7184  //
  7185  // This method is useful when you want to inject custom logic or configuration
  7186  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7187  //
  7188  //
  7189  //    // Example sending a request using the ListXssMatchSetsRequest method.
  7190  //    req, resp := client.ListXssMatchSetsRequest(params)
  7191  //
  7192  //    err := req.Send()
  7193  //    if err == nil { // resp is now filled
  7194  //        fmt.Println(resp)
  7195  //    }
  7196  //
  7197  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListXssMatchSets
  7198  func (c *WAF) ListXssMatchSetsRequest(input *ListXssMatchSetsInput) (req *request.Request, output *ListXssMatchSetsOutput) {
  7199  	op := &request.Operation{
  7200  		Name:       opListXssMatchSets,
  7201  		HTTPMethod: "POST",
  7202  		HTTPPath:   "/",
  7203  	}
  7204  
  7205  	if input == nil {
  7206  		input = &ListXssMatchSetsInput{}
  7207  	}
  7208  
  7209  	output = &ListXssMatchSetsOutput{}
  7210  	req = c.newRequest(op, input, output)
  7211  	return
  7212  }
  7213  
  7214  // ListXssMatchSets API operation for AWS WAF.
  7215  //
  7216  //
  7217  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  7218  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  7219  // in the developer guide.
  7220  //
  7221  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  7222  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  7223  // With the latest version, AWS WAF has a single set of endpoints for regional
  7224  // and global use.
  7225  //
  7226  // Returns an array of XssMatchSet objects.
  7227  //
  7228  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7229  // with awserr.Error's Code and Message methods to get detailed information about
  7230  // the error.
  7231  //
  7232  // See the AWS API reference guide for AWS WAF's
  7233  // API operation ListXssMatchSets for usage and error information.
  7234  //
  7235  // Returned Error Types:
  7236  //   * InternalErrorException
  7237  //   The operation failed because of a system problem, even though the request
  7238  //   was valid. Retry your request.
  7239  //
  7240  //   * InvalidAccountException
  7241  //   The operation failed because you tried to create, update, or delete an object
  7242  //   by using an invalid account identifier.
  7243  //
  7244  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/ListXssMatchSets
  7245  func (c *WAF) ListXssMatchSets(input *ListXssMatchSetsInput) (*ListXssMatchSetsOutput, error) {
  7246  	req, out := c.ListXssMatchSetsRequest(input)
  7247  	return out, req.Send()
  7248  }
  7249  
  7250  // ListXssMatchSetsWithContext is the same as ListXssMatchSets with the addition of
  7251  // the ability to pass a context and additional request options.
  7252  //
  7253  // See ListXssMatchSets for details on how to use this API operation.
  7254  //
  7255  // The context must be non-nil and will be used for request cancellation. If
  7256  // the context is nil a panic will occur. In the future the SDK may create
  7257  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7258  // for more information on using Contexts.
  7259  func (c *WAF) ListXssMatchSetsWithContext(ctx aws.Context, input *ListXssMatchSetsInput, opts ...request.Option) (*ListXssMatchSetsOutput, error) {
  7260  	req, out := c.ListXssMatchSetsRequest(input)
  7261  	req.SetContext(ctx)
  7262  	req.ApplyOptions(opts...)
  7263  	return out, req.Send()
  7264  }
  7265  
  7266  const opPutLoggingConfiguration = "PutLoggingConfiguration"
  7267  
  7268  // PutLoggingConfigurationRequest generates a "aws/request.Request" representing the
  7269  // client's request for the PutLoggingConfiguration operation. The "output" return
  7270  // value will be populated with the request's response once the request completes
  7271  // successfully.
  7272  //
  7273  // Use "Send" method on the returned Request to send the API call to the service.
  7274  // the "output" return value is not valid until after Send returns without error.
  7275  //
  7276  // See PutLoggingConfiguration for more information on using the PutLoggingConfiguration
  7277  // API call, and error handling.
  7278  //
  7279  // This method is useful when you want to inject custom logic or configuration
  7280  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7281  //
  7282  //
  7283  //    // Example sending a request using the PutLoggingConfigurationRequest method.
  7284  //    req, resp := client.PutLoggingConfigurationRequest(params)
  7285  //
  7286  //    err := req.Send()
  7287  //    if err == nil { // resp is now filled
  7288  //        fmt.Println(resp)
  7289  //    }
  7290  //
  7291  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/PutLoggingConfiguration
  7292  func (c *WAF) PutLoggingConfigurationRequest(input *PutLoggingConfigurationInput) (req *request.Request, output *PutLoggingConfigurationOutput) {
  7293  	op := &request.Operation{
  7294  		Name:       opPutLoggingConfiguration,
  7295  		HTTPMethod: "POST",
  7296  		HTTPPath:   "/",
  7297  	}
  7298  
  7299  	if input == nil {
  7300  		input = &PutLoggingConfigurationInput{}
  7301  	}
  7302  
  7303  	output = &PutLoggingConfigurationOutput{}
  7304  	req = c.newRequest(op, input, output)
  7305  	return
  7306  }
  7307  
  7308  // PutLoggingConfiguration API operation for AWS WAF.
  7309  //
  7310  //
  7311  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  7312  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  7313  // in the developer guide.
  7314  //
  7315  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  7316  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  7317  // With the latest version, AWS WAF has a single set of endpoints for regional
  7318  // and global use.
  7319  //
  7320  // Associates a LoggingConfiguration with a specified web ACL.
  7321  //
  7322  // You can access information about all traffic that AWS WAF inspects using
  7323  // the following steps:
  7324  //
  7325  // Create an Amazon Kinesis Data Firehose.
  7326  //
  7327  // Create the data firehose with a PUT source and in the region that you are
  7328  // operating. However, if you are capturing logs for Amazon CloudFront, always
  7329  // create the firehose in US East (N. Virginia).
  7330  //
  7331  // Do not create the data firehose using a Kinesis stream as your source.
  7332  //
  7333  // Associate that firehose to your web ACL using a PutLoggingConfiguration request.
  7334  //
  7335  // When you successfully enable logging using a PutLoggingConfiguration request,
  7336  // AWS WAF will create a service linked role with the necessary permissions
  7337  // to write logs to the Amazon Kinesis Data Firehose. For more information,
  7338  // see Logging Web ACL Traffic Information (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html)
  7339  // in the AWS WAF Developer Guide.
  7340  //
  7341  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7342  // with awserr.Error's Code and Message methods to get detailed information about
  7343  // the error.
  7344  //
  7345  // See the AWS API reference guide for AWS WAF's
  7346  // API operation PutLoggingConfiguration for usage and error information.
  7347  //
  7348  // Returned Error Types:
  7349  //   * InternalErrorException
  7350  //   The operation failed because of a system problem, even though the request
  7351  //   was valid. Retry your request.
  7352  //
  7353  //   * NonexistentItemException
  7354  //   The operation failed because the referenced object doesn't exist.
  7355  //
  7356  //   * StaleDataException
  7357  //   The operation failed because you tried to create, update, or delete an object
  7358  //   by using a change token that has already been used.
  7359  //
  7360  //   * ServiceLinkedRoleErrorException
  7361  //   AWS WAF is not able to access the service linked role. This can be caused
  7362  //   by a previous PutLoggingConfiguration request, which can lock the service
  7363  //   linked role for about 20 seconds. Please try your request again. The service
  7364  //   linked role can also be locked by a previous DeleteServiceLinkedRole request,
  7365  //   which can lock the role for 15 minutes or more. If you recently made a DeleteServiceLinkedRole,
  7366  //   wait at least 15 minutes and try the request again. If you receive this same
  7367  //   exception again, you will have to wait additional time until the role is
  7368  //   unlocked.
  7369  //
  7370  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/PutLoggingConfiguration
  7371  func (c *WAF) PutLoggingConfiguration(input *PutLoggingConfigurationInput) (*PutLoggingConfigurationOutput, error) {
  7372  	req, out := c.PutLoggingConfigurationRequest(input)
  7373  	return out, req.Send()
  7374  }
  7375  
  7376  // PutLoggingConfigurationWithContext is the same as PutLoggingConfiguration with the addition of
  7377  // the ability to pass a context and additional request options.
  7378  //
  7379  // See PutLoggingConfiguration for details on how to use this API operation.
  7380  //
  7381  // The context must be non-nil and will be used for request cancellation. If
  7382  // the context is nil a panic will occur. In the future the SDK may create
  7383  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7384  // for more information on using Contexts.
  7385  func (c *WAF) PutLoggingConfigurationWithContext(ctx aws.Context, input *PutLoggingConfigurationInput, opts ...request.Option) (*PutLoggingConfigurationOutput, error) {
  7386  	req, out := c.PutLoggingConfigurationRequest(input)
  7387  	req.SetContext(ctx)
  7388  	req.ApplyOptions(opts...)
  7389  	return out, req.Send()
  7390  }
  7391  
  7392  const opPutPermissionPolicy = "PutPermissionPolicy"
  7393  
  7394  // PutPermissionPolicyRequest generates a "aws/request.Request" representing the
  7395  // client's request for the PutPermissionPolicy operation. The "output" return
  7396  // value will be populated with the request's response once the request completes
  7397  // successfully.
  7398  //
  7399  // Use "Send" method on the returned Request to send the API call to the service.
  7400  // the "output" return value is not valid until after Send returns without error.
  7401  //
  7402  // See PutPermissionPolicy for more information on using the PutPermissionPolicy
  7403  // API call, and error handling.
  7404  //
  7405  // This method is useful when you want to inject custom logic or configuration
  7406  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7407  //
  7408  //
  7409  //    // Example sending a request using the PutPermissionPolicyRequest method.
  7410  //    req, resp := client.PutPermissionPolicyRequest(params)
  7411  //
  7412  //    err := req.Send()
  7413  //    if err == nil { // resp is now filled
  7414  //        fmt.Println(resp)
  7415  //    }
  7416  //
  7417  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/PutPermissionPolicy
  7418  func (c *WAF) PutPermissionPolicyRequest(input *PutPermissionPolicyInput) (req *request.Request, output *PutPermissionPolicyOutput) {
  7419  	op := &request.Operation{
  7420  		Name:       opPutPermissionPolicy,
  7421  		HTTPMethod: "POST",
  7422  		HTTPPath:   "/",
  7423  	}
  7424  
  7425  	if input == nil {
  7426  		input = &PutPermissionPolicyInput{}
  7427  	}
  7428  
  7429  	output = &PutPermissionPolicyOutput{}
  7430  	req = c.newRequest(op, input, output)
  7431  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7432  	return
  7433  }
  7434  
  7435  // PutPermissionPolicy API operation for AWS WAF.
  7436  //
  7437  //
  7438  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  7439  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  7440  // in the developer guide.
  7441  //
  7442  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  7443  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  7444  // With the latest version, AWS WAF has a single set of endpoints for regional
  7445  // and global use.
  7446  //
  7447  // Attaches an IAM policy to the specified resource. The only supported use
  7448  // for this action is to share a RuleGroup across accounts.
  7449  //
  7450  // The PutPermissionPolicy is subject to the following restrictions:
  7451  //
  7452  //    * You can attach only one policy with each PutPermissionPolicy request.
  7453  //
  7454  //    * The policy must include an Effect, Action and Principal.
  7455  //
  7456  //    * Effect must specify Allow.
  7457  //
  7458  //    * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL,
  7459  //    waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard
  7460  //    actions in the policy will be rejected.
  7461  //
  7462  //    * The policy cannot include a Resource parameter.
  7463  //
  7464  //    * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup
  7465  //    must exist in the same region.
  7466  //
  7467  //    * The user making the request must be the owner of the RuleGroup.
  7468  //
  7469  //    * Your policy must be composed using IAM Policy version 2012-10-17.
  7470  //
  7471  // For more information, see IAM Policies (https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies.html).
  7472  //
  7473  // An example of a valid policy parameter is shown in the Examples section below.
  7474  //
  7475  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7476  // with awserr.Error's Code and Message methods to get detailed information about
  7477  // the error.
  7478  //
  7479  // See the AWS API reference guide for AWS WAF's
  7480  // API operation PutPermissionPolicy for usage and error information.
  7481  //
  7482  // Returned Error Types:
  7483  //   * InternalErrorException
  7484  //   The operation failed because of a system problem, even though the request
  7485  //   was valid. Retry your request.
  7486  //
  7487  //   * StaleDataException
  7488  //   The operation failed because you tried to create, update, or delete an object
  7489  //   by using a change token that has already been used.
  7490  //
  7491  //   * NonexistentItemException
  7492  //   The operation failed because the referenced object doesn't exist.
  7493  //
  7494  //   * InvalidPermissionPolicyException
  7495  //   The operation failed because the specified policy is not in the proper format.
  7496  //
  7497  //   The policy is subject to the following restrictions:
  7498  //
  7499  //      * You can attach only one policy with each PutPermissionPolicy request.
  7500  //
  7501  //      * The policy must include an Effect, Action and Principal.
  7502  //
  7503  //      * Effect must specify Allow.
  7504  //
  7505  //      * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL,
  7506  //      waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard
  7507  //      actions in the policy will be rejected.
  7508  //
  7509  //      * The policy cannot include a Resource parameter.
  7510  //
  7511  //      * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup
  7512  //      must exist in the same region.
  7513  //
  7514  //      * The user making the request must be the owner of the RuleGroup.
  7515  //
  7516  //      * Your policy must be composed using IAM Policy version 2012-10-17.
  7517  //
  7518  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/PutPermissionPolicy
  7519  func (c *WAF) PutPermissionPolicy(input *PutPermissionPolicyInput) (*PutPermissionPolicyOutput, error) {
  7520  	req, out := c.PutPermissionPolicyRequest(input)
  7521  	return out, req.Send()
  7522  }
  7523  
  7524  // PutPermissionPolicyWithContext is the same as PutPermissionPolicy with the addition of
  7525  // the ability to pass a context and additional request options.
  7526  //
  7527  // See PutPermissionPolicy for details on how to use this API operation.
  7528  //
  7529  // The context must be non-nil and will be used for request cancellation. If
  7530  // the context is nil a panic will occur. In the future the SDK may create
  7531  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7532  // for more information on using Contexts.
  7533  func (c *WAF) PutPermissionPolicyWithContext(ctx aws.Context, input *PutPermissionPolicyInput, opts ...request.Option) (*PutPermissionPolicyOutput, error) {
  7534  	req, out := c.PutPermissionPolicyRequest(input)
  7535  	req.SetContext(ctx)
  7536  	req.ApplyOptions(opts...)
  7537  	return out, req.Send()
  7538  }
  7539  
  7540  const opTagResource = "TagResource"
  7541  
  7542  // TagResourceRequest generates a "aws/request.Request" representing the
  7543  // client's request for the TagResource operation. The "output" return
  7544  // value will be populated with the request's response once the request completes
  7545  // successfully.
  7546  //
  7547  // Use "Send" method on the returned Request to send the API call to the service.
  7548  // the "output" return value is not valid until after Send returns without error.
  7549  //
  7550  // See TagResource for more information on using the TagResource
  7551  // API call, and error handling.
  7552  //
  7553  // This method is useful when you want to inject custom logic or configuration
  7554  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7555  //
  7556  //
  7557  //    // Example sending a request using the TagResourceRequest method.
  7558  //    req, resp := client.TagResourceRequest(params)
  7559  //
  7560  //    err := req.Send()
  7561  //    if err == nil { // resp is now filled
  7562  //        fmt.Println(resp)
  7563  //    }
  7564  //
  7565  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/TagResource
  7566  func (c *WAF) TagResourceRequest(input *TagResourceInput) (req *request.Request, output *TagResourceOutput) {
  7567  	op := &request.Operation{
  7568  		Name:       opTagResource,
  7569  		HTTPMethod: "POST",
  7570  		HTTPPath:   "/",
  7571  	}
  7572  
  7573  	if input == nil {
  7574  		input = &TagResourceInput{}
  7575  	}
  7576  
  7577  	output = &TagResourceOutput{}
  7578  	req = c.newRequest(op, input, output)
  7579  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7580  	return
  7581  }
  7582  
  7583  // TagResource API operation for AWS WAF.
  7584  //
  7585  //
  7586  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  7587  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  7588  // in the developer guide.
  7589  //
  7590  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  7591  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  7592  // With the latest version, AWS WAF has a single set of endpoints for regional
  7593  // and global use.
  7594  //
  7595  // Associates tags with the specified AWS resource. Tags are key:value pairs
  7596  // that you can use to categorize and manage your resources, for purposes like
  7597  // billing. For example, you might set the tag key to "customer" and the value
  7598  // to the customer name or ID. You can specify one or more tags to add to each
  7599  // AWS resource, up to 50 tags for a resource.
  7600  //
  7601  // Tagging is only available through the API, SDKs, and CLI. You can't manage
  7602  // or view tags through the AWS WAF Classic console. You can use this action
  7603  // to tag the AWS resources that you manage through AWS WAF Classic: web ACLs,
  7604  // rule groups, and rules.
  7605  //
  7606  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7607  // with awserr.Error's Code and Message methods to get detailed information about
  7608  // the error.
  7609  //
  7610  // See the AWS API reference guide for AWS WAF's
  7611  // API operation TagResource for usage and error information.
  7612  //
  7613  // Returned Error Types:
  7614  //   * InternalErrorException
  7615  //   The operation failed because of a system problem, even though the request
  7616  //   was valid. Retry your request.
  7617  //
  7618  //   * InvalidParameterException
  7619  //   The operation failed because AWS WAF didn't recognize a parameter in the
  7620  //   request. For example:
  7621  //
  7622  //      * You specified an invalid parameter name.
  7623  //
  7624  //      * You specified an invalid value.
  7625  //
  7626  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  7627  //      using an action other than INSERT or DELETE.
  7628  //
  7629  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  7630  //      BLOCK, or COUNT.
  7631  //
  7632  //      * You tried to create a RateBasedRule with a RateKey value other than
  7633  //      IP.
  7634  //
  7635  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  7636  //      BLOCK, or COUNT.
  7637  //
  7638  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  7639  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  7640  //
  7641  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  7642  //      for Data.
  7643  //
  7644  //      * Your request references an ARN that is malformed, or corresponds to
  7645  //      a resource with which a web ACL cannot be associated.
  7646  //
  7647  //   * LimitsExceededException
  7648  //   The operation exceeds a resource limit, for example, the maximum number of
  7649  //   WebACL objects that you can create for an AWS account. For more information,
  7650  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  7651  //   in the AWS WAF Developer Guide.
  7652  //
  7653  //   * NonexistentItemException
  7654  //   The operation failed because the referenced object doesn't exist.
  7655  //
  7656  //   * BadRequestException
  7657  //
  7658  //   * TagOperationException
  7659  //
  7660  //   * TagOperationInternalErrorException
  7661  //
  7662  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/TagResource
  7663  func (c *WAF) TagResource(input *TagResourceInput) (*TagResourceOutput, error) {
  7664  	req, out := c.TagResourceRequest(input)
  7665  	return out, req.Send()
  7666  }
  7667  
  7668  // TagResourceWithContext is the same as TagResource with the addition of
  7669  // the ability to pass a context and additional request options.
  7670  //
  7671  // See TagResource for details on how to use this API operation.
  7672  //
  7673  // The context must be non-nil and will be used for request cancellation. If
  7674  // the context is nil a panic will occur. In the future the SDK may create
  7675  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7676  // for more information on using Contexts.
  7677  func (c *WAF) TagResourceWithContext(ctx aws.Context, input *TagResourceInput, opts ...request.Option) (*TagResourceOutput, error) {
  7678  	req, out := c.TagResourceRequest(input)
  7679  	req.SetContext(ctx)
  7680  	req.ApplyOptions(opts...)
  7681  	return out, req.Send()
  7682  }
  7683  
  7684  const opUntagResource = "UntagResource"
  7685  
  7686  // UntagResourceRequest generates a "aws/request.Request" representing the
  7687  // client's request for the UntagResource operation. The "output" return
  7688  // value will be populated with the request's response once the request completes
  7689  // successfully.
  7690  //
  7691  // Use "Send" method on the returned Request to send the API call to the service.
  7692  // the "output" return value is not valid until after Send returns without error.
  7693  //
  7694  // See UntagResource for more information on using the UntagResource
  7695  // API call, and error handling.
  7696  //
  7697  // This method is useful when you want to inject custom logic or configuration
  7698  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7699  //
  7700  //
  7701  //    // Example sending a request using the UntagResourceRequest method.
  7702  //    req, resp := client.UntagResourceRequest(params)
  7703  //
  7704  //    err := req.Send()
  7705  //    if err == nil { // resp is now filled
  7706  //        fmt.Println(resp)
  7707  //    }
  7708  //
  7709  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UntagResource
  7710  func (c *WAF) UntagResourceRequest(input *UntagResourceInput) (req *request.Request, output *UntagResourceOutput) {
  7711  	op := &request.Operation{
  7712  		Name:       opUntagResource,
  7713  		HTTPMethod: "POST",
  7714  		HTTPPath:   "/",
  7715  	}
  7716  
  7717  	if input == nil {
  7718  		input = &UntagResourceInput{}
  7719  	}
  7720  
  7721  	output = &UntagResourceOutput{}
  7722  	req = c.newRequest(op, input, output)
  7723  	req.Handlers.Unmarshal.Swap(jsonrpc.UnmarshalHandler.Name, protocol.UnmarshalDiscardBodyHandler)
  7724  	return
  7725  }
  7726  
  7727  // UntagResource API operation for AWS WAF.
  7728  //
  7729  //
  7730  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  7731  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  7732  // in the developer guide.
  7733  //
  7734  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  7735  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  7736  // With the latest version, AWS WAF has a single set of endpoints for regional
  7737  // and global use.
  7738  //
  7739  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7740  // with awserr.Error's Code and Message methods to get detailed information about
  7741  // the error.
  7742  //
  7743  // See the AWS API reference guide for AWS WAF's
  7744  // API operation UntagResource for usage and error information.
  7745  //
  7746  // Returned Error Types:
  7747  //   * InternalErrorException
  7748  //   The operation failed because of a system problem, even though the request
  7749  //   was valid. Retry your request.
  7750  //
  7751  //   * InvalidParameterException
  7752  //   The operation failed because AWS WAF didn't recognize a parameter in the
  7753  //   request. For example:
  7754  //
  7755  //      * You specified an invalid parameter name.
  7756  //
  7757  //      * You specified an invalid value.
  7758  //
  7759  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  7760  //      using an action other than INSERT or DELETE.
  7761  //
  7762  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  7763  //      BLOCK, or COUNT.
  7764  //
  7765  //      * You tried to create a RateBasedRule with a RateKey value other than
  7766  //      IP.
  7767  //
  7768  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  7769  //      BLOCK, or COUNT.
  7770  //
  7771  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  7772  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  7773  //
  7774  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  7775  //      for Data.
  7776  //
  7777  //      * Your request references an ARN that is malformed, or corresponds to
  7778  //      a resource with which a web ACL cannot be associated.
  7779  //
  7780  //   * NonexistentItemException
  7781  //   The operation failed because the referenced object doesn't exist.
  7782  //
  7783  //   * BadRequestException
  7784  //
  7785  //   * TagOperationException
  7786  //
  7787  //   * TagOperationInternalErrorException
  7788  //
  7789  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UntagResource
  7790  func (c *WAF) UntagResource(input *UntagResourceInput) (*UntagResourceOutput, error) {
  7791  	req, out := c.UntagResourceRequest(input)
  7792  	return out, req.Send()
  7793  }
  7794  
  7795  // UntagResourceWithContext is the same as UntagResource with the addition of
  7796  // the ability to pass a context and additional request options.
  7797  //
  7798  // See UntagResource for details on how to use this API operation.
  7799  //
  7800  // The context must be non-nil and will be used for request cancellation. If
  7801  // the context is nil a panic will occur. In the future the SDK may create
  7802  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  7803  // for more information on using Contexts.
  7804  func (c *WAF) UntagResourceWithContext(ctx aws.Context, input *UntagResourceInput, opts ...request.Option) (*UntagResourceOutput, error) {
  7805  	req, out := c.UntagResourceRequest(input)
  7806  	req.SetContext(ctx)
  7807  	req.ApplyOptions(opts...)
  7808  	return out, req.Send()
  7809  }
  7810  
  7811  const opUpdateByteMatchSet = "UpdateByteMatchSet"
  7812  
  7813  // UpdateByteMatchSetRequest generates a "aws/request.Request" representing the
  7814  // client's request for the UpdateByteMatchSet operation. The "output" return
  7815  // value will be populated with the request's response once the request completes
  7816  // successfully.
  7817  //
  7818  // Use "Send" method on the returned Request to send the API call to the service.
  7819  // the "output" return value is not valid until after Send returns without error.
  7820  //
  7821  // See UpdateByteMatchSet for more information on using the UpdateByteMatchSet
  7822  // API call, and error handling.
  7823  //
  7824  // This method is useful when you want to inject custom logic or configuration
  7825  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  7826  //
  7827  //
  7828  //    // Example sending a request using the UpdateByteMatchSetRequest method.
  7829  //    req, resp := client.UpdateByteMatchSetRequest(params)
  7830  //
  7831  //    err := req.Send()
  7832  //    if err == nil { // resp is now filled
  7833  //        fmt.Println(resp)
  7834  //    }
  7835  //
  7836  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSet
  7837  func (c *WAF) UpdateByteMatchSetRequest(input *UpdateByteMatchSetInput) (req *request.Request, output *UpdateByteMatchSetOutput) {
  7838  	op := &request.Operation{
  7839  		Name:       opUpdateByteMatchSet,
  7840  		HTTPMethod: "POST",
  7841  		HTTPPath:   "/",
  7842  	}
  7843  
  7844  	if input == nil {
  7845  		input = &UpdateByteMatchSetInput{}
  7846  	}
  7847  
  7848  	output = &UpdateByteMatchSetOutput{}
  7849  	req = c.newRequest(op, input, output)
  7850  	return
  7851  }
  7852  
  7853  // UpdateByteMatchSet API operation for AWS WAF.
  7854  //
  7855  //
  7856  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  7857  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  7858  // in the developer guide.
  7859  //
  7860  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  7861  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  7862  // With the latest version, AWS WAF has a single set of endpoints for regional
  7863  // and global use.
  7864  //
  7865  // Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet. For
  7866  // each ByteMatchTuple object, you specify the following values:
  7867  //
  7868  //    * Whether to insert or delete the object from the array. If you want to
  7869  //    change a ByteMatchSetUpdate object, you delete the existing object and
  7870  //    add a new one.
  7871  //
  7872  //    * The part of a web request that you want AWS WAF to inspect, such as
  7873  //    a query string or the value of the User-Agent header.
  7874  //
  7875  //    * The bytes (typically a string that corresponds with ASCII characters)
  7876  //    that you want AWS WAF to look for. For more information, including how
  7877  //    you specify the values for the AWS WAF API and the AWS CLI or SDKs, see
  7878  //    TargetString in the ByteMatchTuple data type.
  7879  //
  7880  //    * Where to look, such as at the beginning or the end of a query string.
  7881  //
  7882  //    * Whether to perform any conversions on the request, such as converting
  7883  //    it to lowercase, before inspecting it for the specified string.
  7884  //
  7885  // For example, you can add a ByteMatchSetUpdate object that matches web requests
  7886  // in which User-Agent headers contain the string BadBot. You can then configure
  7887  // AWS WAF to block those requests.
  7888  //
  7889  // To create and configure a ByteMatchSet, perform the following steps:
  7890  //
  7891  // Create a ByteMatchSet. For more information, see CreateByteMatchSet.
  7892  //
  7893  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  7894  // parameter of an UpdateByteMatchSet request.
  7895  //
  7896  // Submit an UpdateByteMatchSet request to specify the part of the request that
  7897  // you want AWS WAF to inspect (for example, the header or the URI) and the
  7898  // value that you want AWS WAF to watch for.
  7899  //
  7900  // For more information about how to use the AWS WAF API to allow or block HTTP
  7901  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  7902  //
  7903  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  7904  // with awserr.Error's Code and Message methods to get detailed information about
  7905  // the error.
  7906  //
  7907  // See the AWS API reference guide for AWS WAF's
  7908  // API operation UpdateByteMatchSet for usage and error information.
  7909  //
  7910  // Returned Error Types:
  7911  //   * InternalErrorException
  7912  //   The operation failed because of a system problem, even though the request
  7913  //   was valid. Retry your request.
  7914  //
  7915  //   * InvalidAccountException
  7916  //   The operation failed because you tried to create, update, or delete an object
  7917  //   by using an invalid account identifier.
  7918  //
  7919  //   * InvalidOperationException
  7920  //   The operation failed because there was nothing to do. For example:
  7921  //
  7922  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  7923  //      specified WebACL.
  7924  //
  7925  //      * You tried to remove an IP address from an IPSet, but the IP address
  7926  //      isn't in the specified IPSet.
  7927  //
  7928  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  7929  //      isn't in the specified WebACL.
  7930  //
  7931  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  7932  //      the specified WebACL.
  7933  //
  7934  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  7935  //      already exists in the specified WebACL.
  7936  //
  7937  //   * InvalidParameterException
  7938  //   The operation failed because AWS WAF didn't recognize a parameter in the
  7939  //   request. For example:
  7940  //
  7941  //      * You specified an invalid parameter name.
  7942  //
  7943  //      * You specified an invalid value.
  7944  //
  7945  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  7946  //      using an action other than INSERT or DELETE.
  7947  //
  7948  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  7949  //      BLOCK, or COUNT.
  7950  //
  7951  //      * You tried to create a RateBasedRule with a RateKey value other than
  7952  //      IP.
  7953  //
  7954  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  7955  //      BLOCK, or COUNT.
  7956  //
  7957  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  7958  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  7959  //
  7960  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  7961  //      for Data.
  7962  //
  7963  //      * Your request references an ARN that is malformed, or corresponds to
  7964  //      a resource with which a web ACL cannot be associated.
  7965  //
  7966  //   * NonexistentContainerException
  7967  //   The operation failed because you tried to add an object to or delete an object
  7968  //   from another object that doesn't exist. For example:
  7969  //
  7970  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  7971  //      exist.
  7972  //
  7973  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  7974  //      that doesn't exist.
  7975  //
  7976  //      * You tried to add an IP address to or delete an IP address from an IPSet
  7977  //      that doesn't exist.
  7978  //
  7979  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  7980  //      a ByteMatchSet that doesn't exist.
  7981  //
  7982  //   * NonexistentItemException
  7983  //   The operation failed because the referenced object doesn't exist.
  7984  //
  7985  //   * StaleDataException
  7986  //   The operation failed because you tried to create, update, or delete an object
  7987  //   by using a change token that has already been used.
  7988  //
  7989  //   * LimitsExceededException
  7990  //   The operation exceeds a resource limit, for example, the maximum number of
  7991  //   WebACL objects that you can create for an AWS account. For more information,
  7992  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  7993  //   in the AWS WAF Developer Guide.
  7994  //
  7995  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateByteMatchSet
  7996  func (c *WAF) UpdateByteMatchSet(input *UpdateByteMatchSetInput) (*UpdateByteMatchSetOutput, error) {
  7997  	req, out := c.UpdateByteMatchSetRequest(input)
  7998  	return out, req.Send()
  7999  }
  8000  
  8001  // UpdateByteMatchSetWithContext is the same as UpdateByteMatchSet with the addition of
  8002  // the ability to pass a context and additional request options.
  8003  //
  8004  // See UpdateByteMatchSet for details on how to use this API operation.
  8005  //
  8006  // The context must be non-nil and will be used for request cancellation. If
  8007  // the context is nil a panic will occur. In the future the SDK may create
  8008  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8009  // for more information on using Contexts.
  8010  func (c *WAF) UpdateByteMatchSetWithContext(ctx aws.Context, input *UpdateByteMatchSetInput, opts ...request.Option) (*UpdateByteMatchSetOutput, error) {
  8011  	req, out := c.UpdateByteMatchSetRequest(input)
  8012  	req.SetContext(ctx)
  8013  	req.ApplyOptions(opts...)
  8014  	return out, req.Send()
  8015  }
  8016  
  8017  const opUpdateGeoMatchSet = "UpdateGeoMatchSet"
  8018  
  8019  // UpdateGeoMatchSetRequest generates a "aws/request.Request" representing the
  8020  // client's request for the UpdateGeoMatchSet operation. The "output" return
  8021  // value will be populated with the request's response once the request completes
  8022  // successfully.
  8023  //
  8024  // Use "Send" method on the returned Request to send the API call to the service.
  8025  // the "output" return value is not valid until after Send returns without error.
  8026  //
  8027  // See UpdateGeoMatchSet for more information on using the UpdateGeoMatchSet
  8028  // API call, and error handling.
  8029  //
  8030  // This method is useful when you want to inject custom logic or configuration
  8031  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8032  //
  8033  //
  8034  //    // Example sending a request using the UpdateGeoMatchSetRequest method.
  8035  //    req, resp := client.UpdateGeoMatchSetRequest(params)
  8036  //
  8037  //    err := req.Send()
  8038  //    if err == nil { // resp is now filled
  8039  //        fmt.Println(resp)
  8040  //    }
  8041  //
  8042  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateGeoMatchSet
  8043  func (c *WAF) UpdateGeoMatchSetRequest(input *UpdateGeoMatchSetInput) (req *request.Request, output *UpdateGeoMatchSetOutput) {
  8044  	op := &request.Operation{
  8045  		Name:       opUpdateGeoMatchSet,
  8046  		HTTPMethod: "POST",
  8047  		HTTPPath:   "/",
  8048  	}
  8049  
  8050  	if input == nil {
  8051  		input = &UpdateGeoMatchSetInput{}
  8052  	}
  8053  
  8054  	output = &UpdateGeoMatchSetOutput{}
  8055  	req = c.newRequest(op, input, output)
  8056  	return
  8057  }
  8058  
  8059  // UpdateGeoMatchSet API operation for AWS WAF.
  8060  //
  8061  //
  8062  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  8063  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  8064  // in the developer guide.
  8065  //
  8066  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  8067  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  8068  // With the latest version, AWS WAF has a single set of endpoints for regional
  8069  // and global use.
  8070  //
  8071  // Inserts or deletes GeoMatchConstraint objects in an GeoMatchSet. For each
  8072  // GeoMatchConstraint object, you specify the following values:
  8073  //
  8074  //    * Whether to insert or delete the object from the array. If you want to
  8075  //    change an GeoMatchConstraint object, you delete the existing object and
  8076  //    add a new one.
  8077  //
  8078  //    * The Type. The only valid value for Type is Country.
  8079  //
  8080  //    * The Value, which is a two character code for the country to add to the
  8081  //    GeoMatchConstraint object. Valid codes are listed in GeoMatchConstraint$Value.
  8082  //
  8083  // To create and configure an GeoMatchSet, perform the following steps:
  8084  //
  8085  // Submit a CreateGeoMatchSet request.
  8086  //
  8087  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  8088  // parameter of an UpdateGeoMatchSet request.
  8089  //
  8090  // Submit an UpdateGeoMatchSet request to specify the country that you want
  8091  // AWS WAF to watch for.
  8092  //
  8093  // When you update an GeoMatchSet, you specify the country that you want to
  8094  // add and/or the country that you want to delete. If you want to change a country,
  8095  // you delete the existing country and add the new one.
  8096  //
  8097  // For more information about how to use the AWS WAF API to allow or block HTTP
  8098  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  8099  //
  8100  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8101  // with awserr.Error's Code and Message methods to get detailed information about
  8102  // the error.
  8103  //
  8104  // See the AWS API reference guide for AWS WAF's
  8105  // API operation UpdateGeoMatchSet for usage and error information.
  8106  //
  8107  // Returned Error Types:
  8108  //   * StaleDataException
  8109  //   The operation failed because you tried to create, update, or delete an object
  8110  //   by using a change token that has already been used.
  8111  //
  8112  //   * InternalErrorException
  8113  //   The operation failed because of a system problem, even though the request
  8114  //   was valid. Retry your request.
  8115  //
  8116  //   * InvalidAccountException
  8117  //   The operation failed because you tried to create, update, or delete an object
  8118  //   by using an invalid account identifier.
  8119  //
  8120  //   * InvalidOperationException
  8121  //   The operation failed because there was nothing to do. For example:
  8122  //
  8123  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  8124  //      specified WebACL.
  8125  //
  8126  //      * You tried to remove an IP address from an IPSet, but the IP address
  8127  //      isn't in the specified IPSet.
  8128  //
  8129  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  8130  //      isn't in the specified WebACL.
  8131  //
  8132  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  8133  //      the specified WebACL.
  8134  //
  8135  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  8136  //      already exists in the specified WebACL.
  8137  //
  8138  //   * InvalidParameterException
  8139  //   The operation failed because AWS WAF didn't recognize a parameter in the
  8140  //   request. For example:
  8141  //
  8142  //      * You specified an invalid parameter name.
  8143  //
  8144  //      * You specified an invalid value.
  8145  //
  8146  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  8147  //      using an action other than INSERT or DELETE.
  8148  //
  8149  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  8150  //      BLOCK, or COUNT.
  8151  //
  8152  //      * You tried to create a RateBasedRule with a RateKey value other than
  8153  //      IP.
  8154  //
  8155  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  8156  //      BLOCK, or COUNT.
  8157  //
  8158  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  8159  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  8160  //
  8161  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  8162  //      for Data.
  8163  //
  8164  //      * Your request references an ARN that is malformed, or corresponds to
  8165  //      a resource with which a web ACL cannot be associated.
  8166  //
  8167  //   * NonexistentContainerException
  8168  //   The operation failed because you tried to add an object to or delete an object
  8169  //   from another object that doesn't exist. For example:
  8170  //
  8171  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  8172  //      exist.
  8173  //
  8174  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  8175  //      that doesn't exist.
  8176  //
  8177  //      * You tried to add an IP address to or delete an IP address from an IPSet
  8178  //      that doesn't exist.
  8179  //
  8180  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  8181  //      a ByteMatchSet that doesn't exist.
  8182  //
  8183  //   * NonexistentItemException
  8184  //   The operation failed because the referenced object doesn't exist.
  8185  //
  8186  //   * ReferencedItemException
  8187  //   The operation failed because you tried to delete an object that is still
  8188  //   in use. For example:
  8189  //
  8190  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  8191  //
  8192  //      * You tried to delete a Rule that is still referenced by a WebACL.
  8193  //
  8194  //   * LimitsExceededException
  8195  //   The operation exceeds a resource limit, for example, the maximum number of
  8196  //   WebACL objects that you can create for an AWS account. For more information,
  8197  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  8198  //   in the AWS WAF Developer Guide.
  8199  //
  8200  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateGeoMatchSet
  8201  func (c *WAF) UpdateGeoMatchSet(input *UpdateGeoMatchSetInput) (*UpdateGeoMatchSetOutput, error) {
  8202  	req, out := c.UpdateGeoMatchSetRequest(input)
  8203  	return out, req.Send()
  8204  }
  8205  
  8206  // UpdateGeoMatchSetWithContext is the same as UpdateGeoMatchSet with the addition of
  8207  // the ability to pass a context and additional request options.
  8208  //
  8209  // See UpdateGeoMatchSet for details on how to use this API operation.
  8210  //
  8211  // The context must be non-nil and will be used for request cancellation. If
  8212  // the context is nil a panic will occur. In the future the SDK may create
  8213  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8214  // for more information on using Contexts.
  8215  func (c *WAF) UpdateGeoMatchSetWithContext(ctx aws.Context, input *UpdateGeoMatchSetInput, opts ...request.Option) (*UpdateGeoMatchSetOutput, error) {
  8216  	req, out := c.UpdateGeoMatchSetRequest(input)
  8217  	req.SetContext(ctx)
  8218  	req.ApplyOptions(opts...)
  8219  	return out, req.Send()
  8220  }
  8221  
  8222  const opUpdateIPSet = "UpdateIPSet"
  8223  
  8224  // UpdateIPSetRequest generates a "aws/request.Request" representing the
  8225  // client's request for the UpdateIPSet operation. The "output" return
  8226  // value will be populated with the request's response once the request completes
  8227  // successfully.
  8228  //
  8229  // Use "Send" method on the returned Request to send the API call to the service.
  8230  // the "output" return value is not valid until after Send returns without error.
  8231  //
  8232  // See UpdateIPSet for more information on using the UpdateIPSet
  8233  // API call, and error handling.
  8234  //
  8235  // This method is useful when you want to inject custom logic or configuration
  8236  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8237  //
  8238  //
  8239  //    // Example sending a request using the UpdateIPSetRequest method.
  8240  //    req, resp := client.UpdateIPSetRequest(params)
  8241  //
  8242  //    err := req.Send()
  8243  //    if err == nil { // resp is now filled
  8244  //        fmt.Println(resp)
  8245  //    }
  8246  //
  8247  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSet
  8248  func (c *WAF) UpdateIPSetRequest(input *UpdateIPSetInput) (req *request.Request, output *UpdateIPSetOutput) {
  8249  	op := &request.Operation{
  8250  		Name:       opUpdateIPSet,
  8251  		HTTPMethod: "POST",
  8252  		HTTPPath:   "/",
  8253  	}
  8254  
  8255  	if input == nil {
  8256  		input = &UpdateIPSetInput{}
  8257  	}
  8258  
  8259  	output = &UpdateIPSetOutput{}
  8260  	req = c.newRequest(op, input, output)
  8261  	return
  8262  }
  8263  
  8264  // UpdateIPSet API operation for AWS WAF.
  8265  //
  8266  //
  8267  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  8268  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  8269  // in the developer guide.
  8270  //
  8271  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  8272  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  8273  // With the latest version, AWS WAF has a single set of endpoints for regional
  8274  // and global use.
  8275  //
  8276  // Inserts or deletes IPSetDescriptor objects in an IPSet. For each IPSetDescriptor
  8277  // object, you specify the following values:
  8278  //
  8279  //    * Whether to insert or delete the object from the array. If you want to
  8280  //    change an IPSetDescriptor object, you delete the existing object and add
  8281  //    a new one.
  8282  //
  8283  //    * The IP address version, IPv4 or IPv6.
  8284  //
  8285  //    * The IP address in CIDR notation, for example, 192.0.2.0/24 (for the
  8286  //    range of IP addresses from 192.0.2.0 to 192.0.2.255) or 192.0.2.44/32
  8287  //    (for the individual IP address 192.0.2.44).
  8288  //
  8289  // AWS WAF supports IPv4 address ranges: /8 and any range between /16 through
  8290  // /32. AWS WAF supports IPv6 address ranges: /24, /32, /48, /56, /64, and /128.
  8291  // For more information about CIDR notation, see the Wikipedia entry Classless
  8292  // Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
  8293  //
  8294  // IPv6 addresses can be represented using any of the following formats:
  8295  //
  8296  //    * 1111:0000:0000:0000:0000:0000:0000:0111/128
  8297  //
  8298  //    * 1111:0:0:0:0:0:0:0111/128
  8299  //
  8300  //    * 1111::0111/128
  8301  //
  8302  //    * 1111::111/128
  8303  //
  8304  // You use an IPSet to specify which web requests you want to allow or block
  8305  // based on the IP addresses that the requests originated from. For example,
  8306  // if you're receiving a lot of requests from one or a small number of IP addresses
  8307  // and you want to block the requests, you can create an IPSet that specifies
  8308  // those IP addresses, and then configure AWS WAF to block the requests.
  8309  //
  8310  // To create and configure an IPSet, perform the following steps:
  8311  //
  8312  // Submit a CreateIPSet request.
  8313  //
  8314  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  8315  // parameter of an UpdateIPSet request.
  8316  //
  8317  // Submit an UpdateIPSet request to specify the IP addresses that you want AWS
  8318  // WAF to watch for.
  8319  //
  8320  // When you update an IPSet, you specify the IP addresses that you want to add
  8321  // and/or the IP addresses that you want to delete. If you want to change an
  8322  // IP address, you delete the existing IP address and add the new one.
  8323  //
  8324  // You can insert a maximum of 1000 addresses in a single request.
  8325  //
  8326  // For more information about how to use the AWS WAF API to allow or block HTTP
  8327  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  8328  //
  8329  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8330  // with awserr.Error's Code and Message methods to get detailed information about
  8331  // the error.
  8332  //
  8333  // See the AWS API reference guide for AWS WAF's
  8334  // API operation UpdateIPSet for usage and error information.
  8335  //
  8336  // Returned Error Types:
  8337  //   * StaleDataException
  8338  //   The operation failed because you tried to create, update, or delete an object
  8339  //   by using a change token that has already been used.
  8340  //
  8341  //   * InternalErrorException
  8342  //   The operation failed because of a system problem, even though the request
  8343  //   was valid. Retry your request.
  8344  //
  8345  //   * InvalidAccountException
  8346  //   The operation failed because you tried to create, update, or delete an object
  8347  //   by using an invalid account identifier.
  8348  //
  8349  //   * InvalidOperationException
  8350  //   The operation failed because there was nothing to do. For example:
  8351  //
  8352  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  8353  //      specified WebACL.
  8354  //
  8355  //      * You tried to remove an IP address from an IPSet, but the IP address
  8356  //      isn't in the specified IPSet.
  8357  //
  8358  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  8359  //      isn't in the specified WebACL.
  8360  //
  8361  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  8362  //      the specified WebACL.
  8363  //
  8364  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  8365  //      already exists in the specified WebACL.
  8366  //
  8367  //   * InvalidParameterException
  8368  //   The operation failed because AWS WAF didn't recognize a parameter in the
  8369  //   request. For example:
  8370  //
  8371  //      * You specified an invalid parameter name.
  8372  //
  8373  //      * You specified an invalid value.
  8374  //
  8375  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  8376  //      using an action other than INSERT or DELETE.
  8377  //
  8378  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  8379  //      BLOCK, or COUNT.
  8380  //
  8381  //      * You tried to create a RateBasedRule with a RateKey value other than
  8382  //      IP.
  8383  //
  8384  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  8385  //      BLOCK, or COUNT.
  8386  //
  8387  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  8388  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  8389  //
  8390  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  8391  //      for Data.
  8392  //
  8393  //      * Your request references an ARN that is malformed, or corresponds to
  8394  //      a resource with which a web ACL cannot be associated.
  8395  //
  8396  //   * NonexistentContainerException
  8397  //   The operation failed because you tried to add an object to or delete an object
  8398  //   from another object that doesn't exist. For example:
  8399  //
  8400  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  8401  //      exist.
  8402  //
  8403  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  8404  //      that doesn't exist.
  8405  //
  8406  //      * You tried to add an IP address to or delete an IP address from an IPSet
  8407  //      that doesn't exist.
  8408  //
  8409  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  8410  //      a ByteMatchSet that doesn't exist.
  8411  //
  8412  //   * NonexistentItemException
  8413  //   The operation failed because the referenced object doesn't exist.
  8414  //
  8415  //   * ReferencedItemException
  8416  //   The operation failed because you tried to delete an object that is still
  8417  //   in use. For example:
  8418  //
  8419  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  8420  //
  8421  //      * You tried to delete a Rule that is still referenced by a WebACL.
  8422  //
  8423  //   * LimitsExceededException
  8424  //   The operation exceeds a resource limit, for example, the maximum number of
  8425  //   WebACL objects that you can create for an AWS account. For more information,
  8426  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  8427  //   in the AWS WAF Developer Guide.
  8428  //
  8429  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateIPSet
  8430  func (c *WAF) UpdateIPSet(input *UpdateIPSetInput) (*UpdateIPSetOutput, error) {
  8431  	req, out := c.UpdateIPSetRequest(input)
  8432  	return out, req.Send()
  8433  }
  8434  
  8435  // UpdateIPSetWithContext is the same as UpdateIPSet with the addition of
  8436  // the ability to pass a context and additional request options.
  8437  //
  8438  // See UpdateIPSet for details on how to use this API operation.
  8439  //
  8440  // The context must be non-nil and will be used for request cancellation. If
  8441  // the context is nil a panic will occur. In the future the SDK may create
  8442  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8443  // for more information on using Contexts.
  8444  func (c *WAF) UpdateIPSetWithContext(ctx aws.Context, input *UpdateIPSetInput, opts ...request.Option) (*UpdateIPSetOutput, error) {
  8445  	req, out := c.UpdateIPSetRequest(input)
  8446  	req.SetContext(ctx)
  8447  	req.ApplyOptions(opts...)
  8448  	return out, req.Send()
  8449  }
  8450  
  8451  const opUpdateRateBasedRule = "UpdateRateBasedRule"
  8452  
  8453  // UpdateRateBasedRuleRequest generates a "aws/request.Request" representing the
  8454  // client's request for the UpdateRateBasedRule operation. The "output" return
  8455  // value will be populated with the request's response once the request completes
  8456  // successfully.
  8457  //
  8458  // Use "Send" method on the returned Request to send the API call to the service.
  8459  // the "output" return value is not valid until after Send returns without error.
  8460  //
  8461  // See UpdateRateBasedRule for more information on using the UpdateRateBasedRule
  8462  // API call, and error handling.
  8463  //
  8464  // This method is useful when you want to inject custom logic or configuration
  8465  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8466  //
  8467  //
  8468  //    // Example sending a request using the UpdateRateBasedRuleRequest method.
  8469  //    req, resp := client.UpdateRateBasedRuleRequest(params)
  8470  //
  8471  //    err := req.Send()
  8472  //    if err == nil { // resp is now filled
  8473  //        fmt.Println(resp)
  8474  //    }
  8475  //
  8476  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRule
  8477  func (c *WAF) UpdateRateBasedRuleRequest(input *UpdateRateBasedRuleInput) (req *request.Request, output *UpdateRateBasedRuleOutput) {
  8478  	op := &request.Operation{
  8479  		Name:       opUpdateRateBasedRule,
  8480  		HTTPMethod: "POST",
  8481  		HTTPPath:   "/",
  8482  	}
  8483  
  8484  	if input == nil {
  8485  		input = &UpdateRateBasedRuleInput{}
  8486  	}
  8487  
  8488  	output = &UpdateRateBasedRuleOutput{}
  8489  	req = c.newRequest(op, input, output)
  8490  	return
  8491  }
  8492  
  8493  // UpdateRateBasedRule API operation for AWS WAF.
  8494  //
  8495  //
  8496  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  8497  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  8498  // in the developer guide.
  8499  //
  8500  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  8501  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  8502  // With the latest version, AWS WAF has a single set of endpoints for regional
  8503  // and global use.
  8504  //
  8505  // Inserts or deletes Predicate objects in a rule and updates the RateLimit
  8506  // in the rule.
  8507  //
  8508  // Each Predicate object identifies a predicate, such as a ByteMatchSet or an
  8509  // IPSet, that specifies the web requests that you want to block or count. The
  8510  // RateLimit specifies the number of requests every five minutes that triggers
  8511  // the rule.
  8512  //
  8513  // If you add more than one predicate to a RateBasedRule, a request must match
  8514  // all the predicates and exceed the RateLimit to be counted or blocked. For
  8515  // example, suppose you add the following to a RateBasedRule:
  8516  //
  8517  //    * An IPSet that matches the IP address 192.0.2.44/32
  8518  //
  8519  //    * A ByteMatchSet that matches BadBot in the User-Agent header
  8520  //
  8521  // Further, you specify a RateLimit of 1,000.
  8522  //
  8523  // You then add the RateBasedRule to a WebACL and specify that you want to block
  8524  // requests that satisfy the rule. For a request to be blocked, it must come
  8525  // from the IP address 192.0.2.44 and the User-Agent header in the request must
  8526  // contain the value BadBot. Further, requests that match these two conditions
  8527  // much be received at a rate of more than 1,000 every five minutes. If the
  8528  // rate drops below this limit, AWS WAF no longer blocks the requests.
  8529  //
  8530  // As a second example, suppose you want to limit requests to a particular page
  8531  // on your site. To do this, you could add the following to a RateBasedRule:
  8532  //
  8533  //    * A ByteMatchSet with FieldToMatch of URI
  8534  //
  8535  //    * A PositionalConstraint of STARTS_WITH
  8536  //
  8537  //    * A TargetString of login
  8538  //
  8539  // Further, you specify a RateLimit of 1,000.
  8540  //
  8541  // By adding this RateBasedRule to a WebACL, you could limit requests to your
  8542  // login page without affecting the rest of your site.
  8543  //
  8544  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8545  // with awserr.Error's Code and Message methods to get detailed information about
  8546  // the error.
  8547  //
  8548  // See the AWS API reference guide for AWS WAF's
  8549  // API operation UpdateRateBasedRule for usage and error information.
  8550  //
  8551  // Returned Error Types:
  8552  //   * StaleDataException
  8553  //   The operation failed because you tried to create, update, or delete an object
  8554  //   by using a change token that has already been used.
  8555  //
  8556  //   * InternalErrorException
  8557  //   The operation failed because of a system problem, even though the request
  8558  //   was valid. Retry your request.
  8559  //
  8560  //   * InvalidAccountException
  8561  //   The operation failed because you tried to create, update, or delete an object
  8562  //   by using an invalid account identifier.
  8563  //
  8564  //   * InvalidOperationException
  8565  //   The operation failed because there was nothing to do. For example:
  8566  //
  8567  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  8568  //      specified WebACL.
  8569  //
  8570  //      * You tried to remove an IP address from an IPSet, but the IP address
  8571  //      isn't in the specified IPSet.
  8572  //
  8573  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  8574  //      isn't in the specified WebACL.
  8575  //
  8576  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  8577  //      the specified WebACL.
  8578  //
  8579  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  8580  //      already exists in the specified WebACL.
  8581  //
  8582  //   * InvalidParameterException
  8583  //   The operation failed because AWS WAF didn't recognize a parameter in the
  8584  //   request. For example:
  8585  //
  8586  //      * You specified an invalid parameter name.
  8587  //
  8588  //      * You specified an invalid value.
  8589  //
  8590  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  8591  //      using an action other than INSERT or DELETE.
  8592  //
  8593  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  8594  //      BLOCK, or COUNT.
  8595  //
  8596  //      * You tried to create a RateBasedRule with a RateKey value other than
  8597  //      IP.
  8598  //
  8599  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  8600  //      BLOCK, or COUNT.
  8601  //
  8602  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  8603  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  8604  //
  8605  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  8606  //      for Data.
  8607  //
  8608  //      * Your request references an ARN that is malformed, or corresponds to
  8609  //      a resource with which a web ACL cannot be associated.
  8610  //
  8611  //   * NonexistentContainerException
  8612  //   The operation failed because you tried to add an object to or delete an object
  8613  //   from another object that doesn't exist. For example:
  8614  //
  8615  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  8616  //      exist.
  8617  //
  8618  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  8619  //      that doesn't exist.
  8620  //
  8621  //      * You tried to add an IP address to or delete an IP address from an IPSet
  8622  //      that doesn't exist.
  8623  //
  8624  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  8625  //      a ByteMatchSet that doesn't exist.
  8626  //
  8627  //   * NonexistentItemException
  8628  //   The operation failed because the referenced object doesn't exist.
  8629  //
  8630  //   * ReferencedItemException
  8631  //   The operation failed because you tried to delete an object that is still
  8632  //   in use. For example:
  8633  //
  8634  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  8635  //
  8636  //      * You tried to delete a Rule that is still referenced by a WebACL.
  8637  //
  8638  //   * LimitsExceededException
  8639  //   The operation exceeds a resource limit, for example, the maximum number of
  8640  //   WebACL objects that you can create for an AWS account. For more information,
  8641  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  8642  //   in the AWS WAF Developer Guide.
  8643  //
  8644  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRateBasedRule
  8645  func (c *WAF) UpdateRateBasedRule(input *UpdateRateBasedRuleInput) (*UpdateRateBasedRuleOutput, error) {
  8646  	req, out := c.UpdateRateBasedRuleRequest(input)
  8647  	return out, req.Send()
  8648  }
  8649  
  8650  // UpdateRateBasedRuleWithContext is the same as UpdateRateBasedRule with the addition of
  8651  // the ability to pass a context and additional request options.
  8652  //
  8653  // See UpdateRateBasedRule for details on how to use this API operation.
  8654  //
  8655  // The context must be non-nil and will be used for request cancellation. If
  8656  // the context is nil a panic will occur. In the future the SDK may create
  8657  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8658  // for more information on using Contexts.
  8659  func (c *WAF) UpdateRateBasedRuleWithContext(ctx aws.Context, input *UpdateRateBasedRuleInput, opts ...request.Option) (*UpdateRateBasedRuleOutput, error) {
  8660  	req, out := c.UpdateRateBasedRuleRequest(input)
  8661  	req.SetContext(ctx)
  8662  	req.ApplyOptions(opts...)
  8663  	return out, req.Send()
  8664  }
  8665  
  8666  const opUpdateRegexMatchSet = "UpdateRegexMatchSet"
  8667  
  8668  // UpdateRegexMatchSetRequest generates a "aws/request.Request" representing the
  8669  // client's request for the UpdateRegexMatchSet operation. The "output" return
  8670  // value will be populated with the request's response once the request completes
  8671  // successfully.
  8672  //
  8673  // Use "Send" method on the returned Request to send the API call to the service.
  8674  // the "output" return value is not valid until after Send returns without error.
  8675  //
  8676  // See UpdateRegexMatchSet for more information on using the UpdateRegexMatchSet
  8677  // API call, and error handling.
  8678  //
  8679  // This method is useful when you want to inject custom logic or configuration
  8680  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8681  //
  8682  //
  8683  //    // Example sending a request using the UpdateRegexMatchSetRequest method.
  8684  //    req, resp := client.UpdateRegexMatchSetRequest(params)
  8685  //
  8686  //    err := req.Send()
  8687  //    if err == nil { // resp is now filled
  8688  //        fmt.Println(resp)
  8689  //    }
  8690  //
  8691  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRegexMatchSet
  8692  func (c *WAF) UpdateRegexMatchSetRequest(input *UpdateRegexMatchSetInput) (req *request.Request, output *UpdateRegexMatchSetOutput) {
  8693  	op := &request.Operation{
  8694  		Name:       opUpdateRegexMatchSet,
  8695  		HTTPMethod: "POST",
  8696  		HTTPPath:   "/",
  8697  	}
  8698  
  8699  	if input == nil {
  8700  		input = &UpdateRegexMatchSetInput{}
  8701  	}
  8702  
  8703  	output = &UpdateRegexMatchSetOutput{}
  8704  	req = c.newRequest(op, input, output)
  8705  	return
  8706  }
  8707  
  8708  // UpdateRegexMatchSet API operation for AWS WAF.
  8709  //
  8710  //
  8711  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  8712  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  8713  // in the developer guide.
  8714  //
  8715  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  8716  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  8717  // With the latest version, AWS WAF has a single set of endpoints for regional
  8718  // and global use.
  8719  //
  8720  // Inserts or deletes RegexMatchTuple objects (filters) in a RegexMatchSet.
  8721  // For each RegexMatchSetUpdate object, you specify the following values:
  8722  //
  8723  //    * Whether to insert or delete the object from the array. If you want to
  8724  //    change a RegexMatchSetUpdate object, you delete the existing object and
  8725  //    add a new one.
  8726  //
  8727  //    * The part of a web request that you want AWS WAF to inspectupdate, such
  8728  //    as a query string or the value of the User-Agent header.
  8729  //
  8730  //    * The identifier of the pattern (a regular expression) that you want AWS
  8731  //    WAF to look for. For more information, see RegexPatternSet.
  8732  //
  8733  //    * Whether to perform any conversions on the request, such as converting
  8734  //    it to lowercase, before inspecting it for the specified string.
  8735  //
  8736  // For example, you can create a RegexPatternSet that matches any requests with
  8737  // User-Agent headers that contain the string B[a@]dB[o0]t. You can then configure
  8738  // AWS WAF to reject those requests.
  8739  //
  8740  // To create and configure a RegexMatchSet, perform the following steps:
  8741  //
  8742  // Create a RegexMatchSet. For more information, see CreateRegexMatchSet.
  8743  //
  8744  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  8745  // parameter of an UpdateRegexMatchSet request.
  8746  //
  8747  // Submit an UpdateRegexMatchSet request to specify the part of the request
  8748  // that you want AWS WAF to inspect (for example, the header or the URI) and
  8749  // the identifier of the RegexPatternSet that contain the regular expression
  8750  // patters you want AWS WAF to watch for.
  8751  //
  8752  // For more information about how to use the AWS WAF API to allow or block HTTP
  8753  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  8754  //
  8755  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8756  // with awserr.Error's Code and Message methods to get detailed information about
  8757  // the error.
  8758  //
  8759  // See the AWS API reference guide for AWS WAF's
  8760  // API operation UpdateRegexMatchSet for usage and error information.
  8761  //
  8762  // Returned Error Types:
  8763  //   * StaleDataException
  8764  //   The operation failed because you tried to create, update, or delete an object
  8765  //   by using a change token that has already been used.
  8766  //
  8767  //   * InternalErrorException
  8768  //   The operation failed because of a system problem, even though the request
  8769  //   was valid. Retry your request.
  8770  //
  8771  //   * DisallowedNameException
  8772  //   The name specified is invalid.
  8773  //
  8774  //   * LimitsExceededException
  8775  //   The operation exceeds a resource limit, for example, the maximum number of
  8776  //   WebACL objects that you can create for an AWS account. For more information,
  8777  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  8778  //   in the AWS WAF Developer Guide.
  8779  //
  8780  //   * NonexistentItemException
  8781  //   The operation failed because the referenced object doesn't exist.
  8782  //
  8783  //   * NonexistentContainerException
  8784  //   The operation failed because you tried to add an object to or delete an object
  8785  //   from another object that doesn't exist. For example:
  8786  //
  8787  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  8788  //      exist.
  8789  //
  8790  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  8791  //      that doesn't exist.
  8792  //
  8793  //      * You tried to add an IP address to or delete an IP address from an IPSet
  8794  //      that doesn't exist.
  8795  //
  8796  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  8797  //      a ByteMatchSet that doesn't exist.
  8798  //
  8799  //   * InvalidOperationException
  8800  //   The operation failed because there was nothing to do. For example:
  8801  //
  8802  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  8803  //      specified WebACL.
  8804  //
  8805  //      * You tried to remove an IP address from an IPSet, but the IP address
  8806  //      isn't in the specified IPSet.
  8807  //
  8808  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  8809  //      isn't in the specified WebACL.
  8810  //
  8811  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  8812  //      the specified WebACL.
  8813  //
  8814  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  8815  //      already exists in the specified WebACL.
  8816  //
  8817  //   * InvalidAccountException
  8818  //   The operation failed because you tried to create, update, or delete an object
  8819  //   by using an invalid account identifier.
  8820  //
  8821  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRegexMatchSet
  8822  func (c *WAF) UpdateRegexMatchSet(input *UpdateRegexMatchSetInput) (*UpdateRegexMatchSetOutput, error) {
  8823  	req, out := c.UpdateRegexMatchSetRequest(input)
  8824  	return out, req.Send()
  8825  }
  8826  
  8827  // UpdateRegexMatchSetWithContext is the same as UpdateRegexMatchSet with the addition of
  8828  // the ability to pass a context and additional request options.
  8829  //
  8830  // See UpdateRegexMatchSet for details on how to use this API operation.
  8831  //
  8832  // The context must be non-nil and will be used for request cancellation. If
  8833  // the context is nil a panic will occur. In the future the SDK may create
  8834  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  8835  // for more information on using Contexts.
  8836  func (c *WAF) UpdateRegexMatchSetWithContext(ctx aws.Context, input *UpdateRegexMatchSetInput, opts ...request.Option) (*UpdateRegexMatchSetOutput, error) {
  8837  	req, out := c.UpdateRegexMatchSetRequest(input)
  8838  	req.SetContext(ctx)
  8839  	req.ApplyOptions(opts...)
  8840  	return out, req.Send()
  8841  }
  8842  
  8843  const opUpdateRegexPatternSet = "UpdateRegexPatternSet"
  8844  
  8845  // UpdateRegexPatternSetRequest generates a "aws/request.Request" representing the
  8846  // client's request for the UpdateRegexPatternSet operation. The "output" return
  8847  // value will be populated with the request's response once the request completes
  8848  // successfully.
  8849  //
  8850  // Use "Send" method on the returned Request to send the API call to the service.
  8851  // the "output" return value is not valid until after Send returns without error.
  8852  //
  8853  // See UpdateRegexPatternSet for more information on using the UpdateRegexPatternSet
  8854  // API call, and error handling.
  8855  //
  8856  // This method is useful when you want to inject custom logic or configuration
  8857  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  8858  //
  8859  //
  8860  //    // Example sending a request using the UpdateRegexPatternSetRequest method.
  8861  //    req, resp := client.UpdateRegexPatternSetRequest(params)
  8862  //
  8863  //    err := req.Send()
  8864  //    if err == nil { // resp is now filled
  8865  //        fmt.Println(resp)
  8866  //    }
  8867  //
  8868  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRegexPatternSet
  8869  func (c *WAF) UpdateRegexPatternSetRequest(input *UpdateRegexPatternSetInput) (req *request.Request, output *UpdateRegexPatternSetOutput) {
  8870  	op := &request.Operation{
  8871  		Name:       opUpdateRegexPatternSet,
  8872  		HTTPMethod: "POST",
  8873  		HTTPPath:   "/",
  8874  	}
  8875  
  8876  	if input == nil {
  8877  		input = &UpdateRegexPatternSetInput{}
  8878  	}
  8879  
  8880  	output = &UpdateRegexPatternSetOutput{}
  8881  	req = c.newRequest(op, input, output)
  8882  	return
  8883  }
  8884  
  8885  // UpdateRegexPatternSet API operation for AWS WAF.
  8886  //
  8887  //
  8888  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  8889  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  8890  // in the developer guide.
  8891  //
  8892  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  8893  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  8894  // With the latest version, AWS WAF has a single set of endpoints for regional
  8895  // and global use.
  8896  //
  8897  // Inserts or deletes RegexPatternString objects in a RegexPatternSet. For each
  8898  // RegexPatternString object, you specify the following values:
  8899  //
  8900  //    * Whether to insert or delete the RegexPatternString.
  8901  //
  8902  //    * The regular expression pattern that you want to insert or delete. For
  8903  //    more information, see RegexPatternSet.
  8904  //
  8905  // For example, you can create a RegexPatternString such as B[a@]dB[o0]t. AWS
  8906  // WAF will match this RegexPatternString to:
  8907  //
  8908  //    * BadBot
  8909  //
  8910  //    * BadB0t
  8911  //
  8912  //    * B@dBot
  8913  //
  8914  //    * B@dB0t
  8915  //
  8916  // To create and configure a RegexPatternSet, perform the following steps:
  8917  //
  8918  // Create a RegexPatternSet. For more information, see CreateRegexPatternSet.
  8919  //
  8920  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  8921  // parameter of an UpdateRegexPatternSet request.
  8922  //
  8923  // Submit an UpdateRegexPatternSet request to specify the regular expression
  8924  // pattern that you want AWS WAF to watch for.
  8925  //
  8926  // For more information about how to use the AWS WAF API to allow or block HTTP
  8927  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  8928  //
  8929  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  8930  // with awserr.Error's Code and Message methods to get detailed information about
  8931  // the error.
  8932  //
  8933  // See the AWS API reference guide for AWS WAF's
  8934  // API operation UpdateRegexPatternSet for usage and error information.
  8935  //
  8936  // Returned Error Types:
  8937  //   * StaleDataException
  8938  //   The operation failed because you tried to create, update, or delete an object
  8939  //   by using a change token that has already been used.
  8940  //
  8941  //   * InternalErrorException
  8942  //   The operation failed because of a system problem, even though the request
  8943  //   was valid. Retry your request.
  8944  //
  8945  //   * LimitsExceededException
  8946  //   The operation exceeds a resource limit, for example, the maximum number of
  8947  //   WebACL objects that you can create for an AWS account. For more information,
  8948  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  8949  //   in the AWS WAF Developer Guide.
  8950  //
  8951  //   * NonexistentItemException
  8952  //   The operation failed because the referenced object doesn't exist.
  8953  //
  8954  //   * NonexistentContainerException
  8955  //   The operation failed because you tried to add an object to or delete an object
  8956  //   from another object that doesn't exist. For example:
  8957  //
  8958  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  8959  //      exist.
  8960  //
  8961  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  8962  //      that doesn't exist.
  8963  //
  8964  //      * You tried to add an IP address to or delete an IP address from an IPSet
  8965  //      that doesn't exist.
  8966  //
  8967  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  8968  //      a ByteMatchSet that doesn't exist.
  8969  //
  8970  //   * InvalidOperationException
  8971  //   The operation failed because there was nothing to do. For example:
  8972  //
  8973  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  8974  //      specified WebACL.
  8975  //
  8976  //      * You tried to remove an IP address from an IPSet, but the IP address
  8977  //      isn't in the specified IPSet.
  8978  //
  8979  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  8980  //      isn't in the specified WebACL.
  8981  //
  8982  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  8983  //      the specified WebACL.
  8984  //
  8985  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  8986  //      already exists in the specified WebACL.
  8987  //
  8988  //   * InvalidAccountException
  8989  //   The operation failed because you tried to create, update, or delete an object
  8990  //   by using an invalid account identifier.
  8991  //
  8992  //   * InvalidRegexPatternException
  8993  //   The regular expression (regex) you specified in RegexPatternString is invalid.
  8994  //
  8995  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRegexPatternSet
  8996  func (c *WAF) UpdateRegexPatternSet(input *UpdateRegexPatternSetInput) (*UpdateRegexPatternSetOutput, error) {
  8997  	req, out := c.UpdateRegexPatternSetRequest(input)
  8998  	return out, req.Send()
  8999  }
  9000  
  9001  // UpdateRegexPatternSetWithContext is the same as UpdateRegexPatternSet with the addition of
  9002  // the ability to pass a context and additional request options.
  9003  //
  9004  // See UpdateRegexPatternSet for details on how to use this API operation.
  9005  //
  9006  // The context must be non-nil and will be used for request cancellation. If
  9007  // the context is nil a panic will occur. In the future the SDK may create
  9008  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9009  // for more information on using Contexts.
  9010  func (c *WAF) UpdateRegexPatternSetWithContext(ctx aws.Context, input *UpdateRegexPatternSetInput, opts ...request.Option) (*UpdateRegexPatternSetOutput, error) {
  9011  	req, out := c.UpdateRegexPatternSetRequest(input)
  9012  	req.SetContext(ctx)
  9013  	req.ApplyOptions(opts...)
  9014  	return out, req.Send()
  9015  }
  9016  
  9017  const opUpdateRule = "UpdateRule"
  9018  
  9019  // UpdateRuleRequest generates a "aws/request.Request" representing the
  9020  // client's request for the UpdateRule operation. The "output" return
  9021  // value will be populated with the request's response once the request completes
  9022  // successfully.
  9023  //
  9024  // Use "Send" method on the returned Request to send the API call to the service.
  9025  // the "output" return value is not valid until after Send returns without error.
  9026  //
  9027  // See UpdateRule for more information on using the UpdateRule
  9028  // API call, and error handling.
  9029  //
  9030  // This method is useful when you want to inject custom logic or configuration
  9031  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9032  //
  9033  //
  9034  //    // Example sending a request using the UpdateRuleRequest method.
  9035  //    req, resp := client.UpdateRuleRequest(params)
  9036  //
  9037  //    err := req.Send()
  9038  //    if err == nil { // resp is now filled
  9039  //        fmt.Println(resp)
  9040  //    }
  9041  //
  9042  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRule
  9043  func (c *WAF) UpdateRuleRequest(input *UpdateRuleInput) (req *request.Request, output *UpdateRuleOutput) {
  9044  	op := &request.Operation{
  9045  		Name:       opUpdateRule,
  9046  		HTTPMethod: "POST",
  9047  		HTTPPath:   "/",
  9048  	}
  9049  
  9050  	if input == nil {
  9051  		input = &UpdateRuleInput{}
  9052  	}
  9053  
  9054  	output = &UpdateRuleOutput{}
  9055  	req = c.newRequest(op, input, output)
  9056  	return
  9057  }
  9058  
  9059  // UpdateRule API operation for AWS WAF.
  9060  //
  9061  //
  9062  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  9063  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  9064  // in the developer guide.
  9065  //
  9066  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  9067  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  9068  // With the latest version, AWS WAF has a single set of endpoints for regional
  9069  // and global use.
  9070  //
  9071  // Inserts or deletes Predicate objects in a Rule. Each Predicate object identifies
  9072  // a predicate, such as a ByteMatchSet or an IPSet, that specifies the web requests
  9073  // that you want to allow, block, or count. If you add more than one predicate
  9074  // to a Rule, a request must match all of the specifications to be allowed,
  9075  // blocked, or counted. For example, suppose that you add the following to a
  9076  // Rule:
  9077  //
  9078  //    * A ByteMatchSet that matches the value BadBot in the User-Agent header
  9079  //
  9080  //    * An IPSet that matches the IP address 192.0.2.44
  9081  //
  9082  // You then add the Rule to a WebACL and specify that you want to block requests
  9083  // that satisfy the Rule. For a request to be blocked, the User-Agent header
  9084  // in the request must contain the value BadBot and the request must originate
  9085  // from the IP address 192.0.2.44.
  9086  //
  9087  // To create and configure a Rule, perform the following steps:
  9088  //
  9089  // Create and update the predicates that you want to include in the Rule.
  9090  //
  9091  // Create the Rule. See CreateRule.
  9092  //
  9093  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  9094  // parameter of an UpdateRule request.
  9095  //
  9096  // Submit an UpdateRule request to add predicates to the Rule.
  9097  //
  9098  // Create and update a WebACL that contains the Rule. See CreateWebACL.
  9099  //
  9100  // If you want to replace one ByteMatchSet or IPSet with another, you delete
  9101  // the existing one and add the new one.
  9102  //
  9103  // For more information about how to use the AWS WAF API to allow or block HTTP
  9104  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  9105  //
  9106  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9107  // with awserr.Error's Code and Message methods to get detailed information about
  9108  // the error.
  9109  //
  9110  // See the AWS API reference guide for AWS WAF's
  9111  // API operation UpdateRule for usage and error information.
  9112  //
  9113  // Returned Error Types:
  9114  //   * StaleDataException
  9115  //   The operation failed because you tried to create, update, or delete an object
  9116  //   by using a change token that has already been used.
  9117  //
  9118  //   * InternalErrorException
  9119  //   The operation failed because of a system problem, even though the request
  9120  //   was valid. Retry your request.
  9121  //
  9122  //   * InvalidAccountException
  9123  //   The operation failed because you tried to create, update, or delete an object
  9124  //   by using an invalid account identifier.
  9125  //
  9126  //   * InvalidOperationException
  9127  //   The operation failed because there was nothing to do. For example:
  9128  //
  9129  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  9130  //      specified WebACL.
  9131  //
  9132  //      * You tried to remove an IP address from an IPSet, but the IP address
  9133  //      isn't in the specified IPSet.
  9134  //
  9135  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  9136  //      isn't in the specified WebACL.
  9137  //
  9138  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  9139  //      the specified WebACL.
  9140  //
  9141  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  9142  //      already exists in the specified WebACL.
  9143  //
  9144  //   * InvalidParameterException
  9145  //   The operation failed because AWS WAF didn't recognize a parameter in the
  9146  //   request. For example:
  9147  //
  9148  //      * You specified an invalid parameter name.
  9149  //
  9150  //      * You specified an invalid value.
  9151  //
  9152  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  9153  //      using an action other than INSERT or DELETE.
  9154  //
  9155  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  9156  //      BLOCK, or COUNT.
  9157  //
  9158  //      * You tried to create a RateBasedRule with a RateKey value other than
  9159  //      IP.
  9160  //
  9161  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  9162  //      BLOCK, or COUNT.
  9163  //
  9164  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  9165  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  9166  //
  9167  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  9168  //      for Data.
  9169  //
  9170  //      * Your request references an ARN that is malformed, or corresponds to
  9171  //      a resource with which a web ACL cannot be associated.
  9172  //
  9173  //   * NonexistentContainerException
  9174  //   The operation failed because you tried to add an object to or delete an object
  9175  //   from another object that doesn't exist. For example:
  9176  //
  9177  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  9178  //      exist.
  9179  //
  9180  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  9181  //      that doesn't exist.
  9182  //
  9183  //      * You tried to add an IP address to or delete an IP address from an IPSet
  9184  //      that doesn't exist.
  9185  //
  9186  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  9187  //      a ByteMatchSet that doesn't exist.
  9188  //
  9189  //   * NonexistentItemException
  9190  //   The operation failed because the referenced object doesn't exist.
  9191  //
  9192  //   * ReferencedItemException
  9193  //   The operation failed because you tried to delete an object that is still
  9194  //   in use. For example:
  9195  //
  9196  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  9197  //
  9198  //      * You tried to delete a Rule that is still referenced by a WebACL.
  9199  //
  9200  //   * LimitsExceededException
  9201  //   The operation exceeds a resource limit, for example, the maximum number of
  9202  //   WebACL objects that you can create for an AWS account. For more information,
  9203  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  9204  //   in the AWS WAF Developer Guide.
  9205  //
  9206  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRule
  9207  func (c *WAF) UpdateRule(input *UpdateRuleInput) (*UpdateRuleOutput, error) {
  9208  	req, out := c.UpdateRuleRequest(input)
  9209  	return out, req.Send()
  9210  }
  9211  
  9212  // UpdateRuleWithContext is the same as UpdateRule with the addition of
  9213  // the ability to pass a context and additional request options.
  9214  //
  9215  // See UpdateRule for details on how to use this API operation.
  9216  //
  9217  // The context must be non-nil and will be used for request cancellation. If
  9218  // the context is nil a panic will occur. In the future the SDK may create
  9219  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9220  // for more information on using Contexts.
  9221  func (c *WAF) UpdateRuleWithContext(ctx aws.Context, input *UpdateRuleInput, opts ...request.Option) (*UpdateRuleOutput, error) {
  9222  	req, out := c.UpdateRuleRequest(input)
  9223  	req.SetContext(ctx)
  9224  	req.ApplyOptions(opts...)
  9225  	return out, req.Send()
  9226  }
  9227  
  9228  const opUpdateRuleGroup = "UpdateRuleGroup"
  9229  
  9230  // UpdateRuleGroupRequest generates a "aws/request.Request" representing the
  9231  // client's request for the UpdateRuleGroup operation. The "output" return
  9232  // value will be populated with the request's response once the request completes
  9233  // successfully.
  9234  //
  9235  // Use "Send" method on the returned Request to send the API call to the service.
  9236  // the "output" return value is not valid until after Send returns without error.
  9237  //
  9238  // See UpdateRuleGroup for more information on using the UpdateRuleGroup
  9239  // API call, and error handling.
  9240  //
  9241  // This method is useful when you want to inject custom logic or configuration
  9242  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9243  //
  9244  //
  9245  //    // Example sending a request using the UpdateRuleGroupRequest method.
  9246  //    req, resp := client.UpdateRuleGroupRequest(params)
  9247  //
  9248  //    err := req.Send()
  9249  //    if err == nil { // resp is now filled
  9250  //        fmt.Println(resp)
  9251  //    }
  9252  //
  9253  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleGroup
  9254  func (c *WAF) UpdateRuleGroupRequest(input *UpdateRuleGroupInput) (req *request.Request, output *UpdateRuleGroupOutput) {
  9255  	op := &request.Operation{
  9256  		Name:       opUpdateRuleGroup,
  9257  		HTTPMethod: "POST",
  9258  		HTTPPath:   "/",
  9259  	}
  9260  
  9261  	if input == nil {
  9262  		input = &UpdateRuleGroupInput{}
  9263  	}
  9264  
  9265  	output = &UpdateRuleGroupOutput{}
  9266  	req = c.newRequest(op, input, output)
  9267  	return
  9268  }
  9269  
  9270  // UpdateRuleGroup API operation for AWS WAF.
  9271  //
  9272  //
  9273  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  9274  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  9275  // in the developer guide.
  9276  //
  9277  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  9278  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  9279  // With the latest version, AWS WAF has a single set of endpoints for regional
  9280  // and global use.
  9281  //
  9282  // Inserts or deletes ActivatedRule objects in a RuleGroup.
  9283  //
  9284  // You can only insert REGULAR rules into a rule group.
  9285  //
  9286  // You can have a maximum of ten rules per rule group.
  9287  //
  9288  // To create and configure a RuleGroup, perform the following steps:
  9289  //
  9290  // Create and update the Rules that you want to include in the RuleGroup. See
  9291  // CreateRule.
  9292  //
  9293  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  9294  // parameter of an UpdateRuleGroup request.
  9295  //
  9296  // Submit an UpdateRuleGroup request to add Rules to the RuleGroup.
  9297  //
  9298  // Create and update a WebACL that contains the RuleGroup. See CreateWebACL.
  9299  //
  9300  // If you want to replace one Rule with another, you delete the existing one
  9301  // and add the new one.
  9302  //
  9303  // For more information about how to use the AWS WAF API to allow or block HTTP
  9304  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  9305  //
  9306  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9307  // with awserr.Error's Code and Message methods to get detailed information about
  9308  // the error.
  9309  //
  9310  // See the AWS API reference guide for AWS WAF's
  9311  // API operation UpdateRuleGroup for usage and error information.
  9312  //
  9313  // Returned Error Types:
  9314  //   * StaleDataException
  9315  //   The operation failed because you tried to create, update, or delete an object
  9316  //   by using a change token that has already been used.
  9317  //
  9318  //   * InternalErrorException
  9319  //   The operation failed because of a system problem, even though the request
  9320  //   was valid. Retry your request.
  9321  //
  9322  //   * NonexistentContainerException
  9323  //   The operation failed because you tried to add an object to or delete an object
  9324  //   from another object that doesn't exist. For example:
  9325  //
  9326  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  9327  //      exist.
  9328  //
  9329  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  9330  //      that doesn't exist.
  9331  //
  9332  //      * You tried to add an IP address to or delete an IP address from an IPSet
  9333  //      that doesn't exist.
  9334  //
  9335  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  9336  //      a ByteMatchSet that doesn't exist.
  9337  //
  9338  //   * NonexistentItemException
  9339  //   The operation failed because the referenced object doesn't exist.
  9340  //
  9341  //   * InvalidOperationException
  9342  //   The operation failed because there was nothing to do. For example:
  9343  //
  9344  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  9345  //      specified WebACL.
  9346  //
  9347  //      * You tried to remove an IP address from an IPSet, but the IP address
  9348  //      isn't in the specified IPSet.
  9349  //
  9350  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  9351  //      isn't in the specified WebACL.
  9352  //
  9353  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  9354  //      the specified WebACL.
  9355  //
  9356  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  9357  //      already exists in the specified WebACL.
  9358  //
  9359  //   * LimitsExceededException
  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  //   * InvalidParameterException
  9366  //   The operation failed because AWS WAF didn't recognize a parameter in the
  9367  //   request. For example:
  9368  //
  9369  //      * You specified an invalid parameter name.
  9370  //
  9371  //      * You specified an invalid value.
  9372  //
  9373  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  9374  //      using an action other than INSERT or DELETE.
  9375  //
  9376  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  9377  //      BLOCK, or COUNT.
  9378  //
  9379  //      * You tried to create a RateBasedRule with a RateKey value other than
  9380  //      IP.
  9381  //
  9382  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  9383  //      BLOCK, or COUNT.
  9384  //
  9385  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  9386  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  9387  //
  9388  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  9389  //      for Data.
  9390  //
  9391  //      * Your request references an ARN that is malformed, or corresponds to
  9392  //      a resource with which a web ACL cannot be associated.
  9393  //
  9394  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateRuleGroup
  9395  func (c *WAF) UpdateRuleGroup(input *UpdateRuleGroupInput) (*UpdateRuleGroupOutput, error) {
  9396  	req, out := c.UpdateRuleGroupRequest(input)
  9397  	return out, req.Send()
  9398  }
  9399  
  9400  // UpdateRuleGroupWithContext is the same as UpdateRuleGroup with the addition of
  9401  // the ability to pass a context and additional request options.
  9402  //
  9403  // See UpdateRuleGroup for details on how to use this API operation.
  9404  //
  9405  // The context must be non-nil and will be used for request cancellation. If
  9406  // the context is nil a panic will occur. In the future the SDK may create
  9407  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9408  // for more information on using Contexts.
  9409  func (c *WAF) UpdateRuleGroupWithContext(ctx aws.Context, input *UpdateRuleGroupInput, opts ...request.Option) (*UpdateRuleGroupOutput, error) {
  9410  	req, out := c.UpdateRuleGroupRequest(input)
  9411  	req.SetContext(ctx)
  9412  	req.ApplyOptions(opts...)
  9413  	return out, req.Send()
  9414  }
  9415  
  9416  const opUpdateSizeConstraintSet = "UpdateSizeConstraintSet"
  9417  
  9418  // UpdateSizeConstraintSetRequest generates a "aws/request.Request" representing the
  9419  // client's request for the UpdateSizeConstraintSet operation. The "output" return
  9420  // value will be populated with the request's response once the request completes
  9421  // successfully.
  9422  //
  9423  // Use "Send" method on the returned Request to send the API call to the service.
  9424  // the "output" return value is not valid until after Send returns without error.
  9425  //
  9426  // See UpdateSizeConstraintSet for more information on using the UpdateSizeConstraintSet
  9427  // API call, and error handling.
  9428  //
  9429  // This method is useful when you want to inject custom logic or configuration
  9430  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9431  //
  9432  //
  9433  //    // Example sending a request using the UpdateSizeConstraintSetRequest method.
  9434  //    req, resp := client.UpdateSizeConstraintSetRequest(params)
  9435  //
  9436  //    err := req.Send()
  9437  //    if err == nil { // resp is now filled
  9438  //        fmt.Println(resp)
  9439  //    }
  9440  //
  9441  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSet
  9442  func (c *WAF) UpdateSizeConstraintSetRequest(input *UpdateSizeConstraintSetInput) (req *request.Request, output *UpdateSizeConstraintSetOutput) {
  9443  	op := &request.Operation{
  9444  		Name:       opUpdateSizeConstraintSet,
  9445  		HTTPMethod: "POST",
  9446  		HTTPPath:   "/",
  9447  	}
  9448  
  9449  	if input == nil {
  9450  		input = &UpdateSizeConstraintSetInput{}
  9451  	}
  9452  
  9453  	output = &UpdateSizeConstraintSetOutput{}
  9454  	req = c.newRequest(op, input, output)
  9455  	return
  9456  }
  9457  
  9458  // UpdateSizeConstraintSet API operation for AWS WAF.
  9459  //
  9460  //
  9461  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  9462  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  9463  // in the developer guide.
  9464  //
  9465  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  9466  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  9467  // With the latest version, AWS WAF has a single set of endpoints for regional
  9468  // and global use.
  9469  //
  9470  // Inserts or deletes SizeConstraint objects (filters) in a SizeConstraintSet.
  9471  // For each SizeConstraint object, you specify the following values:
  9472  //
  9473  //    * Whether to insert or delete the object from the array. If you want to
  9474  //    change a SizeConstraintSetUpdate object, you delete the existing object
  9475  //    and add a new one.
  9476  //
  9477  //    * The part of a web request that you want AWS WAF to evaluate, such as
  9478  //    the length of a query string or the length of the User-Agent header.
  9479  //
  9480  //    * Whether to perform any transformations on the request, such as converting
  9481  //    it to lowercase, before checking its length. Note that transformations
  9482  //    of the request body are not supported because the AWS resource forwards
  9483  //    only the first 8192 bytes of your request to AWS WAF. You can only specify
  9484  //    a single type of TextTransformation.
  9485  //
  9486  //    * A ComparisonOperator used for evaluating the selected part of the request
  9487  //    against the specified Size, such as equals, greater than, less than, and
  9488  //    so on.
  9489  //
  9490  //    * The length, in bytes, that you want AWS WAF to watch for in selected
  9491  //    part of the request. The length is computed after applying the transformation.
  9492  //
  9493  // For example, you can add a SizeConstraintSetUpdate object that matches web
  9494  // requests in which the length of the User-Agent header is greater than 100
  9495  // bytes. You can then configure AWS WAF to block those requests.
  9496  //
  9497  // To create and configure a SizeConstraintSet, perform the following steps:
  9498  //
  9499  // Create a SizeConstraintSet. For more information, see CreateSizeConstraintSet.
  9500  //
  9501  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  9502  // parameter of an UpdateSizeConstraintSet request.
  9503  //
  9504  // Submit an UpdateSizeConstraintSet request to specify the part of the request
  9505  // that you want AWS WAF to inspect (for example, the header or the URI) and
  9506  // the value that you want AWS WAF to watch for.
  9507  //
  9508  // For more information about how to use the AWS WAF API to allow or block HTTP
  9509  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  9510  //
  9511  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9512  // with awserr.Error's Code and Message methods to get detailed information about
  9513  // the error.
  9514  //
  9515  // See the AWS API reference guide for AWS WAF's
  9516  // API operation UpdateSizeConstraintSet for usage and error information.
  9517  //
  9518  // Returned Error Types:
  9519  //   * StaleDataException
  9520  //   The operation failed because you tried to create, update, or delete an object
  9521  //   by using a change token that has already been used.
  9522  //
  9523  //   * InternalErrorException
  9524  //   The operation failed because of a system problem, even though the request
  9525  //   was valid. Retry your request.
  9526  //
  9527  //   * InvalidAccountException
  9528  //   The operation failed because you tried to create, update, or delete an object
  9529  //   by using an invalid account identifier.
  9530  //
  9531  //   * InvalidOperationException
  9532  //   The operation failed because there was nothing to do. For example:
  9533  //
  9534  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  9535  //      specified WebACL.
  9536  //
  9537  //      * You tried to remove an IP address from an IPSet, but the IP address
  9538  //      isn't in the specified IPSet.
  9539  //
  9540  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  9541  //      isn't in the specified WebACL.
  9542  //
  9543  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  9544  //      the specified WebACL.
  9545  //
  9546  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  9547  //      already exists in the specified WebACL.
  9548  //
  9549  //   * InvalidParameterException
  9550  //   The operation failed because AWS WAF didn't recognize a parameter in the
  9551  //   request. For example:
  9552  //
  9553  //      * You specified an invalid parameter name.
  9554  //
  9555  //      * You specified an invalid value.
  9556  //
  9557  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  9558  //      using an action other than INSERT or DELETE.
  9559  //
  9560  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  9561  //      BLOCK, or COUNT.
  9562  //
  9563  //      * You tried to create a RateBasedRule with a RateKey value other than
  9564  //      IP.
  9565  //
  9566  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  9567  //      BLOCK, or COUNT.
  9568  //
  9569  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  9570  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  9571  //
  9572  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  9573  //      for Data.
  9574  //
  9575  //      * Your request references an ARN that is malformed, or corresponds to
  9576  //      a resource with which a web ACL cannot be associated.
  9577  //
  9578  //   * NonexistentContainerException
  9579  //   The operation failed because you tried to add an object to or delete an object
  9580  //   from another object that doesn't exist. For example:
  9581  //
  9582  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  9583  //      exist.
  9584  //
  9585  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  9586  //      that doesn't exist.
  9587  //
  9588  //      * You tried to add an IP address to or delete an IP address from an IPSet
  9589  //      that doesn't exist.
  9590  //
  9591  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  9592  //      a ByteMatchSet that doesn't exist.
  9593  //
  9594  //   * NonexistentItemException
  9595  //   The operation failed because the referenced object doesn't exist.
  9596  //
  9597  //   * ReferencedItemException
  9598  //   The operation failed because you tried to delete an object that is still
  9599  //   in use. For example:
  9600  //
  9601  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
  9602  //
  9603  //      * You tried to delete a Rule that is still referenced by a WebACL.
  9604  //
  9605  //   * LimitsExceededException
  9606  //   The operation exceeds a resource limit, for example, the maximum number of
  9607  //   WebACL objects that you can create for an AWS account. For more information,
  9608  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  9609  //   in the AWS WAF Developer Guide.
  9610  //
  9611  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSizeConstraintSet
  9612  func (c *WAF) UpdateSizeConstraintSet(input *UpdateSizeConstraintSetInput) (*UpdateSizeConstraintSetOutput, error) {
  9613  	req, out := c.UpdateSizeConstraintSetRequest(input)
  9614  	return out, req.Send()
  9615  }
  9616  
  9617  // UpdateSizeConstraintSetWithContext is the same as UpdateSizeConstraintSet with the addition of
  9618  // the ability to pass a context and additional request options.
  9619  //
  9620  // See UpdateSizeConstraintSet for details on how to use this API operation.
  9621  //
  9622  // The context must be non-nil and will be used for request cancellation. If
  9623  // the context is nil a panic will occur. In the future the SDK may create
  9624  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9625  // for more information on using Contexts.
  9626  func (c *WAF) UpdateSizeConstraintSetWithContext(ctx aws.Context, input *UpdateSizeConstraintSetInput, opts ...request.Option) (*UpdateSizeConstraintSetOutput, error) {
  9627  	req, out := c.UpdateSizeConstraintSetRequest(input)
  9628  	req.SetContext(ctx)
  9629  	req.ApplyOptions(opts...)
  9630  	return out, req.Send()
  9631  }
  9632  
  9633  const opUpdateSqlInjectionMatchSet = "UpdateSqlInjectionMatchSet"
  9634  
  9635  // UpdateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
  9636  // client's request for the UpdateSqlInjectionMatchSet operation. The "output" return
  9637  // value will be populated with the request's response once the request completes
  9638  // successfully.
  9639  //
  9640  // Use "Send" method on the returned Request to send the API call to the service.
  9641  // the "output" return value is not valid until after Send returns without error.
  9642  //
  9643  // See UpdateSqlInjectionMatchSet for more information on using the UpdateSqlInjectionMatchSet
  9644  // API call, and error handling.
  9645  //
  9646  // This method is useful when you want to inject custom logic or configuration
  9647  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9648  //
  9649  //
  9650  //    // Example sending a request using the UpdateSqlInjectionMatchSetRequest method.
  9651  //    req, resp := client.UpdateSqlInjectionMatchSetRequest(params)
  9652  //
  9653  //    err := req.Send()
  9654  //    if err == nil { // resp is now filled
  9655  //        fmt.Println(resp)
  9656  //    }
  9657  //
  9658  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSet
  9659  func (c *WAF) UpdateSqlInjectionMatchSetRequest(input *UpdateSqlInjectionMatchSetInput) (req *request.Request, output *UpdateSqlInjectionMatchSetOutput) {
  9660  	op := &request.Operation{
  9661  		Name:       opUpdateSqlInjectionMatchSet,
  9662  		HTTPMethod: "POST",
  9663  		HTTPPath:   "/",
  9664  	}
  9665  
  9666  	if input == nil {
  9667  		input = &UpdateSqlInjectionMatchSetInput{}
  9668  	}
  9669  
  9670  	output = &UpdateSqlInjectionMatchSetOutput{}
  9671  	req = c.newRequest(op, input, output)
  9672  	return
  9673  }
  9674  
  9675  // UpdateSqlInjectionMatchSet API operation for AWS WAF.
  9676  //
  9677  //
  9678  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  9679  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  9680  // in the developer guide.
  9681  //
  9682  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  9683  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  9684  // With the latest version, AWS WAF has a single set of endpoints for regional
  9685  // and global use.
  9686  //
  9687  // Inserts or deletes SqlInjectionMatchTuple objects (filters) in a SqlInjectionMatchSet.
  9688  // For each SqlInjectionMatchTuple object, you specify the following values:
  9689  //
  9690  //    * Action: Whether to insert the object into or delete the object from
  9691  //    the array. To change a SqlInjectionMatchTuple, you delete the existing
  9692  //    object and add a new one.
  9693  //
  9694  //    * FieldToMatch: The part of web requests that you want AWS WAF to inspect
  9695  //    and, if you want AWS WAF to inspect a header or custom query parameter,
  9696  //    the name of the header or parameter.
  9697  //
  9698  //    * TextTransformation: Which text transformation, if any, to perform on
  9699  //    the web request before inspecting the request for snippets of malicious
  9700  //    SQL code. You can only specify a single type of TextTransformation.
  9701  //
  9702  // You use SqlInjectionMatchSet objects to specify which CloudFront requests
  9703  // that you want to allow, block, or count. For example, if you're receiving
  9704  // requests that contain snippets of SQL code in the query string and you want
  9705  // to block the requests, you can create a SqlInjectionMatchSet with the applicable
  9706  // settings, and then configure AWS WAF to block the requests.
  9707  //
  9708  // To create and configure a SqlInjectionMatchSet, perform the following steps:
  9709  //
  9710  // Submit a CreateSqlInjectionMatchSet request.
  9711  //
  9712  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  9713  // parameter of an UpdateIPSet request.
  9714  //
  9715  // Submit an UpdateSqlInjectionMatchSet request to specify the parts of web
  9716  // requests that you want AWS WAF to inspect for snippets of SQL code.
  9717  //
  9718  // For more information about how to use the AWS WAF API to allow or block HTTP
  9719  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  9720  //
  9721  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9722  // with awserr.Error's Code and Message methods to get detailed information about
  9723  // the error.
  9724  //
  9725  // See the AWS API reference guide for AWS WAF's
  9726  // API operation UpdateSqlInjectionMatchSet for usage and error information.
  9727  //
  9728  // Returned Error Types:
  9729  //   * InternalErrorException
  9730  //   The operation failed because of a system problem, even though the request
  9731  //   was valid. Retry your request.
  9732  //
  9733  //   * InvalidAccountException
  9734  //   The operation failed because you tried to create, update, or delete an object
  9735  //   by using an invalid account identifier.
  9736  //
  9737  //   * InvalidOperationException
  9738  //   The operation failed because there was nothing to do. For example:
  9739  //
  9740  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  9741  //      specified WebACL.
  9742  //
  9743  //      * You tried to remove an IP address from an IPSet, but the IP address
  9744  //      isn't in the specified IPSet.
  9745  //
  9746  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  9747  //      isn't in the specified WebACL.
  9748  //
  9749  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  9750  //      the specified WebACL.
  9751  //
  9752  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  9753  //      already exists in the specified WebACL.
  9754  //
  9755  //   * InvalidParameterException
  9756  //   The operation failed because AWS WAF didn't recognize a parameter in the
  9757  //   request. For example:
  9758  //
  9759  //      * You specified an invalid parameter name.
  9760  //
  9761  //      * You specified an invalid value.
  9762  //
  9763  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  9764  //      using an action other than INSERT or DELETE.
  9765  //
  9766  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  9767  //      BLOCK, or COUNT.
  9768  //
  9769  //      * You tried to create a RateBasedRule with a RateKey value other than
  9770  //      IP.
  9771  //
  9772  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
  9773  //      BLOCK, or COUNT.
  9774  //
  9775  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
  9776  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
  9777  //
  9778  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
  9779  //      for Data.
  9780  //
  9781  //      * Your request references an ARN that is malformed, or corresponds to
  9782  //      a resource with which a web ACL cannot be associated.
  9783  //
  9784  //   * NonexistentContainerException
  9785  //   The operation failed because you tried to add an object to or delete an object
  9786  //   from another object that doesn't exist. For example:
  9787  //
  9788  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
  9789  //      exist.
  9790  //
  9791  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
  9792  //      that doesn't exist.
  9793  //
  9794  //      * You tried to add an IP address to or delete an IP address from an IPSet
  9795  //      that doesn't exist.
  9796  //
  9797  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
  9798  //      a ByteMatchSet that doesn't exist.
  9799  //
  9800  //   * NonexistentItemException
  9801  //   The operation failed because the referenced object doesn't exist.
  9802  //
  9803  //   * StaleDataException
  9804  //   The operation failed because you tried to create, update, or delete an object
  9805  //   by using a change token that has already been used.
  9806  //
  9807  //   * LimitsExceededException
  9808  //   The operation exceeds a resource limit, for example, the maximum number of
  9809  //   WebACL objects that you can create for an AWS account. For more information,
  9810  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
  9811  //   in the AWS WAF Developer Guide.
  9812  //
  9813  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateSqlInjectionMatchSet
  9814  func (c *WAF) UpdateSqlInjectionMatchSet(input *UpdateSqlInjectionMatchSetInput) (*UpdateSqlInjectionMatchSetOutput, error) {
  9815  	req, out := c.UpdateSqlInjectionMatchSetRequest(input)
  9816  	return out, req.Send()
  9817  }
  9818  
  9819  // UpdateSqlInjectionMatchSetWithContext is the same as UpdateSqlInjectionMatchSet with the addition of
  9820  // the ability to pass a context and additional request options.
  9821  //
  9822  // See UpdateSqlInjectionMatchSet for details on how to use this API operation.
  9823  //
  9824  // The context must be non-nil and will be used for request cancellation. If
  9825  // the context is nil a panic will occur. In the future the SDK may create
  9826  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
  9827  // for more information on using Contexts.
  9828  func (c *WAF) UpdateSqlInjectionMatchSetWithContext(ctx aws.Context, input *UpdateSqlInjectionMatchSetInput, opts ...request.Option) (*UpdateSqlInjectionMatchSetOutput, error) {
  9829  	req, out := c.UpdateSqlInjectionMatchSetRequest(input)
  9830  	req.SetContext(ctx)
  9831  	req.ApplyOptions(opts...)
  9832  	return out, req.Send()
  9833  }
  9834  
  9835  const opUpdateWebACL = "UpdateWebACL"
  9836  
  9837  // UpdateWebACLRequest generates a "aws/request.Request" representing the
  9838  // client's request for the UpdateWebACL operation. The "output" return
  9839  // value will be populated with the request's response once the request completes
  9840  // successfully.
  9841  //
  9842  // Use "Send" method on the returned Request to send the API call to the service.
  9843  // the "output" return value is not valid until after Send returns without error.
  9844  //
  9845  // See UpdateWebACL for more information on using the UpdateWebACL
  9846  // API call, and error handling.
  9847  //
  9848  // This method is useful when you want to inject custom logic or configuration
  9849  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
  9850  //
  9851  //
  9852  //    // Example sending a request using the UpdateWebACLRequest method.
  9853  //    req, resp := client.UpdateWebACLRequest(params)
  9854  //
  9855  //    err := req.Send()
  9856  //    if err == nil { // resp is now filled
  9857  //        fmt.Println(resp)
  9858  //    }
  9859  //
  9860  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateWebACL
  9861  func (c *WAF) UpdateWebACLRequest(input *UpdateWebACLInput) (req *request.Request, output *UpdateWebACLOutput) {
  9862  	op := &request.Operation{
  9863  		Name:       opUpdateWebACL,
  9864  		HTTPMethod: "POST",
  9865  		HTTPPath:   "/",
  9866  	}
  9867  
  9868  	if input == nil {
  9869  		input = &UpdateWebACLInput{}
  9870  	}
  9871  
  9872  	output = &UpdateWebACLOutput{}
  9873  	req = c.newRequest(op, input, output)
  9874  	return
  9875  }
  9876  
  9877  // UpdateWebACL API operation for AWS WAF.
  9878  //
  9879  //
  9880  // This is AWS WAF Classic documentation. For more information, see AWS WAF
  9881  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
  9882  // in the developer guide.
  9883  //
  9884  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
  9885  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
  9886  // With the latest version, AWS WAF has a single set of endpoints for regional
  9887  // and global use.
  9888  //
  9889  // Inserts or deletes ActivatedRule objects in a WebACL. Each Rule identifies
  9890  // web requests that you want to allow, block, or count. When you update a WebACL,
  9891  // you specify the following values:
  9892  //
  9893  //    * A default action for the WebACL, either ALLOW or BLOCK. AWS WAF performs
  9894  //    the default action if a request doesn't match the criteria in any of the
  9895  //    Rules in a WebACL.
  9896  //
  9897  //    * The Rules that you want to add or delete. If you want to replace one
  9898  //    Rule with another, you delete the existing Rule and add the new one.
  9899  //
  9900  //    * For each Rule, whether you want AWS WAF to allow requests, block requests,
  9901  //    or count requests that match the conditions in the Rule.
  9902  //
  9903  //    * The order in which you want AWS WAF to evaluate the Rules in a WebACL.
  9904  //    If you add more than one Rule to a WebACL, AWS WAF evaluates each request
  9905  //    against the Rules in order based on the value of Priority. (The Rule that
  9906  //    has the lowest value for Priority is evaluated first.) When a web request
  9907  //    matches all the predicates (such as ByteMatchSets and IPSets) in a Rule,
  9908  //    AWS WAF immediately takes the corresponding action, allow or block, and
  9909  //    doesn't evaluate the request against the remaining Rules in the WebACL,
  9910  //    if any.
  9911  //
  9912  // To create and configure a WebACL, perform the following steps:
  9913  //
  9914  // Create and update the predicates that you want to include in Rules. For more
  9915  // information, see CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet,
  9916  // CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.
  9917  //
  9918  // Create and update the Rules that you want to include in the WebACL. For more
  9919  // information, see CreateRule and UpdateRule.
  9920  //
  9921  // Create a WebACL. See CreateWebACL.
  9922  //
  9923  // Use GetChangeToken to get the change token that you provide in the ChangeToken
  9924  // parameter of an UpdateWebACL request.
  9925  //
  9926  // Submit an UpdateWebACL request to specify the Rules that you want to include
  9927  // in the WebACL, to specify the default action, and to associate the WebACL
  9928  // with a CloudFront distribution.
  9929  //
  9930  // The ActivatedRule can be a rule group. If you specify a rule group as your
  9931  // ActivatedRule , you can exclude specific rules from that rule group.
  9932  //
  9933  // If you already have a rule group associated with a web ACL and want to submit
  9934  // an UpdateWebACL request to exclude certain rules from that rule group, you
  9935  // must first remove the rule group from the web ACL, the re-insert it again,
  9936  // specifying the excluded rules. For details, see ActivatedRule$ExcludedRules .
  9937  //
  9938  // Be aware that if you try to add a RATE_BASED rule to a web ACL without setting
  9939  // the rule type when first creating the rule, the UpdateWebACL request will
  9940  // fail because the request tries to add a REGULAR rule (the default rule type)
  9941  // with the specified ID, which does not exist.
  9942  //
  9943  // For more information about how to use the AWS WAF API to allow or block HTTP
  9944  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
  9945  //
  9946  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
  9947  // with awserr.Error's Code and Message methods to get detailed information about
  9948  // the error.
  9949  //
  9950  // See the AWS API reference guide for AWS WAF's
  9951  // API operation UpdateWebACL for usage and error information.
  9952  //
  9953  // Returned Error Types:
  9954  //   * StaleDataException
  9955  //   The operation failed because you tried to create, update, or delete an object
  9956  //   by using a change token that has already been used.
  9957  //
  9958  //   * InternalErrorException
  9959  //   The operation failed because of a system problem, even though the request
  9960  //   was valid. Retry your request.
  9961  //
  9962  //   * InvalidAccountException
  9963  //   The operation failed because you tried to create, update, or delete an object
  9964  //   by using an invalid account identifier.
  9965  //
  9966  //   * InvalidOperationException
  9967  //   The operation failed because there was nothing to do. For example:
  9968  //
  9969  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
  9970  //      specified WebACL.
  9971  //
  9972  //      * You tried to remove an IP address from an IPSet, but the IP address
  9973  //      isn't in the specified IPSet.
  9974  //
  9975  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
  9976  //      isn't in the specified WebACL.
  9977  //
  9978  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
  9979  //      the specified WebACL.
  9980  //
  9981  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
  9982  //      already exists in the specified WebACL.
  9983  //
  9984  //   * InvalidParameterException
  9985  //   The operation failed because AWS WAF didn't recognize a parameter in the
  9986  //   request. For example:
  9987  //
  9988  //      * You specified an invalid parameter name.
  9989  //
  9990  //      * You specified an invalid value.
  9991  //
  9992  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
  9993  //      using an action other than INSERT or DELETE.
  9994  //
  9995  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
  9996  //      BLOCK, or COUNT.
  9997  //
  9998  //      * You tried to create a RateBasedRule with a RateKey value other than
  9999  //      IP.
 10000  //
 10001  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
 10002  //      BLOCK, or COUNT.
 10003  //
 10004  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
 10005  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
 10006  //
 10007  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
 10008  //      for Data.
 10009  //
 10010  //      * Your request references an ARN that is malformed, or corresponds to
 10011  //      a resource with which a web ACL cannot be associated.
 10012  //
 10013  //   * NonexistentContainerException
 10014  //   The operation failed because you tried to add an object to or delete an object
 10015  //   from another object that doesn't exist. For example:
 10016  //
 10017  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
 10018  //      exist.
 10019  //
 10020  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
 10021  //      that doesn't exist.
 10022  //
 10023  //      * You tried to add an IP address to or delete an IP address from an IPSet
 10024  //      that doesn't exist.
 10025  //
 10026  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
 10027  //      a ByteMatchSet that doesn't exist.
 10028  //
 10029  //   * NonexistentItemException
 10030  //   The operation failed because the referenced object doesn't exist.
 10031  //
 10032  //   * ReferencedItemException
 10033  //   The operation failed because you tried to delete an object that is still
 10034  //   in use. For example:
 10035  //
 10036  //      * You tried to delete a ByteMatchSet that is still referenced by a Rule.
 10037  //
 10038  //      * You tried to delete a Rule that is still referenced by a WebACL.
 10039  //
 10040  //   * LimitsExceededException
 10041  //   The operation exceeds a resource limit, for example, the maximum number of
 10042  //   WebACL objects that you can create for an AWS account. For more information,
 10043  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
 10044  //   in the AWS WAF Developer Guide.
 10045  //
 10046  //   * SubscriptionNotFoundException
 10047  //   The specified subscription does not exist.
 10048  //
 10049  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateWebACL
 10050  func (c *WAF) UpdateWebACL(input *UpdateWebACLInput) (*UpdateWebACLOutput, error) {
 10051  	req, out := c.UpdateWebACLRequest(input)
 10052  	return out, req.Send()
 10053  }
 10054  
 10055  // UpdateWebACLWithContext is the same as UpdateWebACL with the addition of
 10056  // the ability to pass a context and additional request options.
 10057  //
 10058  // See UpdateWebACL for details on how to use this API operation.
 10059  //
 10060  // The context must be non-nil and will be used for request cancellation. If
 10061  // the context is nil a panic will occur. In the future the SDK may create
 10062  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10063  // for more information on using Contexts.
 10064  func (c *WAF) UpdateWebACLWithContext(ctx aws.Context, input *UpdateWebACLInput, opts ...request.Option) (*UpdateWebACLOutput, error) {
 10065  	req, out := c.UpdateWebACLRequest(input)
 10066  	req.SetContext(ctx)
 10067  	req.ApplyOptions(opts...)
 10068  	return out, req.Send()
 10069  }
 10070  
 10071  const opUpdateXssMatchSet = "UpdateXssMatchSet"
 10072  
 10073  // UpdateXssMatchSetRequest generates a "aws/request.Request" representing the
 10074  // client's request for the UpdateXssMatchSet operation. The "output" return
 10075  // value will be populated with the request's response once the request completes
 10076  // successfully.
 10077  //
 10078  // Use "Send" method on the returned Request to send the API call to the service.
 10079  // the "output" return value is not valid until after Send returns without error.
 10080  //
 10081  // See UpdateXssMatchSet for more information on using the UpdateXssMatchSet
 10082  // API call, and error handling.
 10083  //
 10084  // This method is useful when you want to inject custom logic or configuration
 10085  // into the SDK's request lifecycle. Such as custom headers, or retry logic.
 10086  //
 10087  //
 10088  //    // Example sending a request using the UpdateXssMatchSetRequest method.
 10089  //    req, resp := client.UpdateXssMatchSetRequest(params)
 10090  //
 10091  //    err := req.Send()
 10092  //    if err == nil { // resp is now filled
 10093  //        fmt.Println(resp)
 10094  //    }
 10095  //
 10096  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSet
 10097  func (c *WAF) UpdateXssMatchSetRequest(input *UpdateXssMatchSetInput) (req *request.Request, output *UpdateXssMatchSetOutput) {
 10098  	op := &request.Operation{
 10099  		Name:       opUpdateXssMatchSet,
 10100  		HTTPMethod: "POST",
 10101  		HTTPPath:   "/",
 10102  	}
 10103  
 10104  	if input == nil {
 10105  		input = &UpdateXssMatchSetInput{}
 10106  	}
 10107  
 10108  	output = &UpdateXssMatchSetOutput{}
 10109  	req = c.newRequest(op, input, output)
 10110  	return
 10111  }
 10112  
 10113  // UpdateXssMatchSet API operation for AWS WAF.
 10114  //
 10115  //
 10116  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 10117  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 10118  // in the developer guide.
 10119  //
 10120  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 10121  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 10122  // With the latest version, AWS WAF has a single set of endpoints for regional
 10123  // and global use.
 10124  //
 10125  // Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet. For
 10126  // each XssMatchTuple object, you specify the following values:
 10127  //
 10128  //    * Action: Whether to insert the object into or delete the object from
 10129  //    the array. To change an XssMatchTuple, you delete the existing object
 10130  //    and add a new one.
 10131  //
 10132  //    * FieldToMatch: The part of web requests that you want AWS WAF to inspect
 10133  //    and, if you want AWS WAF to inspect a header or custom query parameter,
 10134  //    the name of the header or parameter.
 10135  //
 10136  //    * TextTransformation: Which text transformation, if any, to perform on
 10137  //    the web request before inspecting the request for cross-site scripting
 10138  //    attacks. You can only specify a single type of TextTransformation.
 10139  //
 10140  // You use XssMatchSet objects to specify which CloudFront requests that you
 10141  // want to allow, block, or count. For example, if you're receiving requests
 10142  // that contain cross-site scripting attacks in the request body and you want
 10143  // to block the requests, you can create an XssMatchSet with the applicable
 10144  // settings, and then configure AWS WAF to block the requests.
 10145  //
 10146  // To create and configure an XssMatchSet, perform the following steps:
 10147  //
 10148  // Submit a CreateXssMatchSet request.
 10149  //
 10150  // Use GetChangeToken to get the change token that you provide in the ChangeToken
 10151  // parameter of an UpdateIPSet request.
 10152  //
 10153  // Submit an UpdateXssMatchSet request to specify the parts of web requests
 10154  // that you want AWS WAF to inspect for cross-site scripting attacks.
 10155  //
 10156  // For more information about how to use the AWS WAF API to allow or block HTTP
 10157  // requests, see the AWS WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/).
 10158  //
 10159  // Returns awserr.Error for service API and SDK errors. Use runtime type assertions
 10160  // with awserr.Error's Code and Message methods to get detailed information about
 10161  // the error.
 10162  //
 10163  // See the AWS API reference guide for AWS WAF's
 10164  // API operation UpdateXssMatchSet for usage and error information.
 10165  //
 10166  // Returned Error Types:
 10167  //   * InternalErrorException
 10168  //   The operation failed because of a system problem, even though the request
 10169  //   was valid. Retry your request.
 10170  //
 10171  //   * InvalidAccountException
 10172  //   The operation failed because you tried to create, update, or delete an object
 10173  //   by using an invalid account identifier.
 10174  //
 10175  //   * InvalidOperationException
 10176  //   The operation failed because there was nothing to do. For example:
 10177  //
 10178  //      * You tried to remove a Rule from a WebACL, but the Rule isn't in the
 10179  //      specified WebACL.
 10180  //
 10181  //      * You tried to remove an IP address from an IPSet, but the IP address
 10182  //      isn't in the specified IPSet.
 10183  //
 10184  //      * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
 10185  //      isn't in the specified WebACL.
 10186  //
 10187  //      * You tried to add a Rule to a WebACL, but the Rule already exists in
 10188  //      the specified WebACL.
 10189  //
 10190  //      * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
 10191  //      already exists in the specified WebACL.
 10192  //
 10193  //   * InvalidParameterException
 10194  //   The operation failed because AWS WAF didn't recognize a parameter in the
 10195  //   request. For example:
 10196  //
 10197  //      * You specified an invalid parameter name.
 10198  //
 10199  //      * You specified an invalid value.
 10200  //
 10201  //      * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
 10202  //      using an action other than INSERT or DELETE.
 10203  //
 10204  //      * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
 10205  //      BLOCK, or COUNT.
 10206  //
 10207  //      * You tried to create a RateBasedRule with a RateKey value other than
 10208  //      IP.
 10209  //
 10210  //      * You tried to update a WebACL with a WafAction Type other than ALLOW,
 10211  //      BLOCK, or COUNT.
 10212  //
 10213  //      * You tried to update a ByteMatchSet with a FieldToMatch Type other than
 10214  //      HEADER, METHOD, QUERY_STRING, URI, or BODY.
 10215  //
 10216  //      * You tried to update a ByteMatchSet with a Field of HEADER but no value
 10217  //      for Data.
 10218  //
 10219  //      * Your request references an ARN that is malformed, or corresponds to
 10220  //      a resource with which a web ACL cannot be associated.
 10221  //
 10222  //   * NonexistentContainerException
 10223  //   The operation failed because you tried to add an object to or delete an object
 10224  //   from another object that doesn't exist. For example:
 10225  //
 10226  //      * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
 10227  //      exist.
 10228  //
 10229  //      * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
 10230  //      that doesn't exist.
 10231  //
 10232  //      * You tried to add an IP address to or delete an IP address from an IPSet
 10233  //      that doesn't exist.
 10234  //
 10235  //      * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
 10236  //      a ByteMatchSet that doesn't exist.
 10237  //
 10238  //   * NonexistentItemException
 10239  //   The operation failed because the referenced object doesn't exist.
 10240  //
 10241  //   * StaleDataException
 10242  //   The operation failed because you tried to create, update, or delete an object
 10243  //   by using a change token that has already been used.
 10244  //
 10245  //   * LimitsExceededException
 10246  //   The operation exceeds a resource limit, for example, the maximum number of
 10247  //   WebACL objects that you can create for an AWS account. For more information,
 10248  //   see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
 10249  //   in the AWS WAF Developer Guide.
 10250  //
 10251  // See also, https://docs.aws.amazon.com/goto/WebAPI/waf-2015-08-24/UpdateXssMatchSet
 10252  func (c *WAF) UpdateXssMatchSet(input *UpdateXssMatchSetInput) (*UpdateXssMatchSetOutput, error) {
 10253  	req, out := c.UpdateXssMatchSetRequest(input)
 10254  	return out, req.Send()
 10255  }
 10256  
 10257  // UpdateXssMatchSetWithContext is the same as UpdateXssMatchSet with the addition of
 10258  // the ability to pass a context and additional request options.
 10259  //
 10260  // See UpdateXssMatchSet for details on how to use this API operation.
 10261  //
 10262  // The context must be non-nil and will be used for request cancellation. If
 10263  // the context is nil a panic will occur. In the future the SDK may create
 10264  // sub-contexts for http.Requests. See https://golang.org/pkg/context/
 10265  // for more information on using Contexts.
 10266  func (c *WAF) UpdateXssMatchSetWithContext(ctx aws.Context, input *UpdateXssMatchSetInput, opts ...request.Option) (*UpdateXssMatchSetOutput, error) {
 10267  	req, out := c.UpdateXssMatchSetRequest(input)
 10268  	req.SetContext(ctx)
 10269  	req.ApplyOptions(opts...)
 10270  	return out, req.Send()
 10271  }
 10272  
 10273  //
 10274  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 10275  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 10276  // in the developer guide.
 10277  //
 10278  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 10279  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 10280  // With the latest version, AWS WAF has a single set of endpoints for regional
 10281  // and global use.
 10282  //
 10283  // The ActivatedRule object in an UpdateWebACL request specifies a Rule that
 10284  // you want to insert or delete, the priority of the Rule in the WebACL, and
 10285  // the action that you want AWS WAF to take when a web request matches the Rule
 10286  // (ALLOW, BLOCK, or COUNT).
 10287  //
 10288  // To specify whether to insert or delete a Rule, use the Action parameter in
 10289  // the WebACLUpdate data type.
 10290  type ActivatedRule struct {
 10291  	_ struct{} `type:"structure"`
 10292  
 10293  	// Specifies the action that CloudFront or AWS WAF takes when a web request
 10294  	// matches the conditions in the Rule. Valid values for Action include the following:
 10295  	//
 10296  	//    * ALLOW: CloudFront responds with the requested object.
 10297  	//
 10298  	//    * BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code.
 10299  	//
 10300  	//    * COUNT: AWS WAF increments a counter of requests that match the conditions
 10301  	//    in the rule and then continues to inspect the web request based on the
 10302  	//    remaining rules in the web ACL.
 10303  	//
 10304  	// ActivatedRule|OverrideAction applies only when updating or adding a RuleGroup
 10305  	// to a WebACL. In this case, you do not use ActivatedRule|Action. For all other
 10306  	// update requests, ActivatedRule|Action is used instead of ActivatedRule|OverrideAction.
 10307  	Action *WafAction `type:"structure"`
 10308  
 10309  	// An array of rules to exclude from a rule group. This is applicable only when
 10310  	// the ActivatedRule refers to a RuleGroup.
 10311  	//
 10312  	// Sometimes it is necessary to troubleshoot rule groups that are blocking traffic
 10313  	// unexpectedly (false positives). One troubleshooting technique is to identify
 10314  	// the specific rule within the rule group that is blocking the legitimate traffic
 10315  	// and then disable (exclude) that particular rule. You can exclude rules from
 10316  	// both your own rule groups and AWS Marketplace rule groups that have been
 10317  	// associated with a web ACL.
 10318  	//
 10319  	// Specifying ExcludedRules does not remove those rules from the rule group.
 10320  	// Rather, it changes the action for the rules to COUNT. Therefore, requests
 10321  	// that match an ExcludedRule are counted but not blocked. The RuleGroup owner
 10322  	// will receive COUNT metrics for each ExcludedRule.
 10323  	//
 10324  	// If you want to exclude rules from a rule group that is already associated
 10325  	// with a web ACL, perform the following steps:
 10326  	//
 10327  	// Use the AWS WAF logs to identify the IDs of the rules that you want to exclude.
 10328  	// For more information about the logs, see Logging Web ACL Traffic Information
 10329  	// (https://docs.aws.amazon.com/waf/latest/developerguide/logging.html).
 10330  	//
 10331  	// Submit an UpdateWebACL request that has two actions:
 10332  	//
 10333  	//    * The first action deletes the existing rule group from the web ACL. That
 10334  	//    is, in the UpdateWebACL request, the first Updates:Action should be DELETE
 10335  	//    and Updates:ActivatedRule:RuleId should be the rule group that contains
 10336  	//    the rules that you want to exclude.
 10337  	//
 10338  	//    * The second action inserts the same rule group back in, but specifying
 10339  	//    the rules to exclude. That is, the second Updates:Action should be INSERT,
 10340  	//    Updates:ActivatedRule:RuleId should be the rule group that you just removed,
 10341  	//    and ExcludedRules should contain the rules that you want to exclude.
 10342  	ExcludedRules []*ExcludedRule `type:"list"`
 10343  
 10344  	// Use the OverrideAction to test your RuleGroup.
 10345  	//
 10346  	// Any rule in a RuleGroup can potentially block a request. If you set the OverrideAction
 10347  	// to None, the RuleGroup will block a request if any individual rule in the
 10348  	// RuleGroup matches the request and is configured to block that request. However
 10349  	// if you first want to test the RuleGroup, set the OverrideAction to Count.
 10350  	// The RuleGroup will then override any block action specified by individual
 10351  	// rules contained within the group. Instead of blocking matching requests,
 10352  	// those requests will be counted. You can view a record of counted requests
 10353  	// using GetSampledRequests.
 10354  	//
 10355  	// ActivatedRule|OverrideAction applies only when updating or adding a RuleGroup
 10356  	// to a WebACL. In this case you do not use ActivatedRule|Action. For all other
 10357  	// update requests, ActivatedRule|Action is used instead of ActivatedRule|OverrideAction.
 10358  	OverrideAction *WafOverrideAction `type:"structure"`
 10359  
 10360  	// Specifies the order in which the Rules in a WebACL are evaluated. Rules with
 10361  	// a lower value for Priority are evaluated before Rules with a higher value.
 10362  	// The value must be a unique integer. If you add multiple Rules to a WebACL,
 10363  	// the values don't need to be consecutive.
 10364  	//
 10365  	// Priority is a required field
 10366  	Priority *int64 `type:"integer" required:"true"`
 10367  
 10368  	// The RuleId for a Rule. You use RuleId to get more information about a Rule
 10369  	// (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL
 10370  	// or delete a one from a WebACL (see UpdateWebACL), or delete a Rule from AWS
 10371  	// WAF (see DeleteRule).
 10372  	//
 10373  	// RuleId is returned by CreateRule and by ListRules.
 10374  	//
 10375  	// RuleId is a required field
 10376  	RuleId *string `min:"1" type:"string" required:"true"`
 10377  
 10378  	// The rule type, either REGULAR, as defined by Rule, RATE_BASED, as defined
 10379  	// by RateBasedRule, or GROUP, as defined by RuleGroup. The default is REGULAR.
 10380  	// Although this field is optional, be aware that if you try to add a RATE_BASED
 10381  	// rule to a web ACL without setting the type, the UpdateWebACL request will
 10382  	// fail because the request tries to add a REGULAR rule with the specified ID,
 10383  	// which does not exist.
 10384  	Type *string `type:"string" enum:"WafRuleType"`
 10385  }
 10386  
 10387  // String returns the string representation.
 10388  //
 10389  // API parameter values that are decorated as "sensitive" in the API will not
 10390  // be included in the string output. The member name will be present, but the
 10391  // value will be replaced with "sensitive".
 10392  func (s ActivatedRule) String() string {
 10393  	return awsutil.Prettify(s)
 10394  }
 10395  
 10396  // GoString returns the string representation.
 10397  //
 10398  // API parameter values that are decorated as "sensitive" in the API will not
 10399  // be included in the string output. The member name will be present, but the
 10400  // value will be replaced with "sensitive".
 10401  func (s ActivatedRule) GoString() string {
 10402  	return s.String()
 10403  }
 10404  
 10405  // Validate inspects the fields of the type to determine if they are valid.
 10406  func (s *ActivatedRule) Validate() error {
 10407  	invalidParams := request.ErrInvalidParams{Context: "ActivatedRule"}
 10408  	if s.Priority == nil {
 10409  		invalidParams.Add(request.NewErrParamRequired("Priority"))
 10410  	}
 10411  	if s.RuleId == nil {
 10412  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 10413  	}
 10414  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 10415  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 10416  	}
 10417  	if s.Action != nil {
 10418  		if err := s.Action.Validate(); err != nil {
 10419  			invalidParams.AddNested("Action", err.(request.ErrInvalidParams))
 10420  		}
 10421  	}
 10422  	if s.ExcludedRules != nil {
 10423  		for i, v := range s.ExcludedRules {
 10424  			if v == nil {
 10425  				continue
 10426  			}
 10427  			if err := v.Validate(); err != nil {
 10428  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "ExcludedRules", i), err.(request.ErrInvalidParams))
 10429  			}
 10430  		}
 10431  	}
 10432  	if s.OverrideAction != nil {
 10433  		if err := s.OverrideAction.Validate(); err != nil {
 10434  			invalidParams.AddNested("OverrideAction", err.(request.ErrInvalidParams))
 10435  		}
 10436  	}
 10437  
 10438  	if invalidParams.Len() > 0 {
 10439  		return invalidParams
 10440  	}
 10441  	return nil
 10442  }
 10443  
 10444  // SetAction sets the Action field's value.
 10445  func (s *ActivatedRule) SetAction(v *WafAction) *ActivatedRule {
 10446  	s.Action = v
 10447  	return s
 10448  }
 10449  
 10450  // SetExcludedRules sets the ExcludedRules field's value.
 10451  func (s *ActivatedRule) SetExcludedRules(v []*ExcludedRule) *ActivatedRule {
 10452  	s.ExcludedRules = v
 10453  	return s
 10454  }
 10455  
 10456  // SetOverrideAction sets the OverrideAction field's value.
 10457  func (s *ActivatedRule) SetOverrideAction(v *WafOverrideAction) *ActivatedRule {
 10458  	s.OverrideAction = v
 10459  	return s
 10460  }
 10461  
 10462  // SetPriority sets the Priority field's value.
 10463  func (s *ActivatedRule) SetPriority(v int64) *ActivatedRule {
 10464  	s.Priority = &v
 10465  	return s
 10466  }
 10467  
 10468  // SetRuleId sets the RuleId field's value.
 10469  func (s *ActivatedRule) SetRuleId(v string) *ActivatedRule {
 10470  	s.RuleId = &v
 10471  	return s
 10472  }
 10473  
 10474  // SetType sets the Type field's value.
 10475  func (s *ActivatedRule) SetType(v string) *ActivatedRule {
 10476  	s.Type = &v
 10477  	return s
 10478  }
 10479  
 10480  type BadRequestException struct {
 10481  	_            struct{}                  `type:"structure"`
 10482  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 10483  
 10484  	Message_ *string `locationName:"message" type:"string"`
 10485  }
 10486  
 10487  // String returns the string representation.
 10488  //
 10489  // API parameter values that are decorated as "sensitive" in the API will not
 10490  // be included in the string output. The member name will be present, but the
 10491  // value will be replaced with "sensitive".
 10492  func (s BadRequestException) String() string {
 10493  	return awsutil.Prettify(s)
 10494  }
 10495  
 10496  // GoString returns the string representation.
 10497  //
 10498  // API parameter values that are decorated as "sensitive" in the API will not
 10499  // be included in the string output. The member name will be present, but the
 10500  // value will be replaced with "sensitive".
 10501  func (s BadRequestException) GoString() string {
 10502  	return s.String()
 10503  }
 10504  
 10505  func newErrorBadRequestException(v protocol.ResponseMetadata) error {
 10506  	return &BadRequestException{
 10507  		RespMetadata: v,
 10508  	}
 10509  }
 10510  
 10511  // Code returns the exception type name.
 10512  func (s *BadRequestException) Code() string {
 10513  	return "WAFBadRequestException"
 10514  }
 10515  
 10516  // Message returns the exception's message.
 10517  func (s *BadRequestException) Message() string {
 10518  	if s.Message_ != nil {
 10519  		return *s.Message_
 10520  	}
 10521  	return ""
 10522  }
 10523  
 10524  // OrigErr always returns nil, satisfies awserr.Error interface.
 10525  func (s *BadRequestException) OrigErr() error {
 10526  	return nil
 10527  }
 10528  
 10529  func (s *BadRequestException) Error() string {
 10530  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 10531  }
 10532  
 10533  // Status code returns the HTTP status code for the request's response error.
 10534  func (s *BadRequestException) StatusCode() int {
 10535  	return s.RespMetadata.StatusCode
 10536  }
 10537  
 10538  // RequestID returns the service's response RequestID for request.
 10539  func (s *BadRequestException) RequestID() string {
 10540  	return s.RespMetadata.RequestID
 10541  }
 10542  
 10543  //
 10544  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 10545  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 10546  // in the developer guide.
 10547  //
 10548  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 10549  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 10550  // With the latest version, AWS WAF has a single set of endpoints for regional
 10551  // and global use.
 10552  //
 10553  // In a GetByteMatchSet request, ByteMatchSet is a complex type that contains
 10554  // the ByteMatchSetId and Name of a ByteMatchSet, and the values that you specified
 10555  // when you updated the ByteMatchSet.
 10556  //
 10557  // A complex type that contains ByteMatchTuple objects, which specify the parts
 10558  // of web requests that you want AWS WAF to inspect and the values that you
 10559  // want AWS WAF to search for. If a ByteMatchSet contains more than one ByteMatchTuple
 10560  // object, a request needs to match the settings in only one ByteMatchTuple
 10561  // to be considered a match.
 10562  type ByteMatchSet struct {
 10563  	_ struct{} `type:"structure"`
 10564  
 10565  	// The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information
 10566  	// about a ByteMatchSet (see GetByteMatchSet), update a ByteMatchSet (see UpdateByteMatchSet),
 10567  	// insert a ByteMatchSet into a Rule or delete one from a Rule (see UpdateRule),
 10568  	// and delete a ByteMatchSet from AWS WAF (see DeleteByteMatchSet).
 10569  	//
 10570  	// ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.
 10571  	//
 10572  	// ByteMatchSetId is a required field
 10573  	ByteMatchSetId *string `min:"1" type:"string" required:"true"`
 10574  
 10575  	// Specifies the bytes (typically a string that corresponds with ASCII characters)
 10576  	// that you want AWS WAF to search for in web requests, the location in requests
 10577  	// that you want AWS WAF to search, and other settings.
 10578  	//
 10579  	// ByteMatchTuples is a required field
 10580  	ByteMatchTuples []*ByteMatchTuple `type:"list" required:"true"`
 10581  
 10582  	// A friendly name or description of the ByteMatchSet. You can't change Name
 10583  	// after you create a ByteMatchSet.
 10584  	Name *string `min:"1" type:"string"`
 10585  }
 10586  
 10587  // String returns the string representation.
 10588  //
 10589  // API parameter values that are decorated as "sensitive" in the API will not
 10590  // be included in the string output. The member name will be present, but the
 10591  // value will be replaced with "sensitive".
 10592  func (s ByteMatchSet) String() string {
 10593  	return awsutil.Prettify(s)
 10594  }
 10595  
 10596  // GoString returns the string representation.
 10597  //
 10598  // API parameter values that are decorated as "sensitive" in the API will not
 10599  // be included in the string output. The member name will be present, but the
 10600  // value will be replaced with "sensitive".
 10601  func (s ByteMatchSet) GoString() string {
 10602  	return s.String()
 10603  }
 10604  
 10605  // SetByteMatchSetId sets the ByteMatchSetId field's value.
 10606  func (s *ByteMatchSet) SetByteMatchSetId(v string) *ByteMatchSet {
 10607  	s.ByteMatchSetId = &v
 10608  	return s
 10609  }
 10610  
 10611  // SetByteMatchTuples sets the ByteMatchTuples field's value.
 10612  func (s *ByteMatchSet) SetByteMatchTuples(v []*ByteMatchTuple) *ByteMatchSet {
 10613  	s.ByteMatchTuples = v
 10614  	return s
 10615  }
 10616  
 10617  // SetName sets the Name field's value.
 10618  func (s *ByteMatchSet) SetName(v string) *ByteMatchSet {
 10619  	s.Name = &v
 10620  	return s
 10621  }
 10622  
 10623  //
 10624  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 10625  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 10626  // in the developer guide.
 10627  //
 10628  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 10629  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 10630  // With the latest version, AWS WAF has a single set of endpoints for regional
 10631  // and global use.
 10632  //
 10633  // Returned by ListByteMatchSets. Each ByteMatchSetSummary object includes the
 10634  // Name and ByteMatchSetId for one ByteMatchSet.
 10635  type ByteMatchSetSummary struct {
 10636  	_ struct{} `type:"structure"`
 10637  
 10638  	// The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information
 10639  	// about a ByteMatchSet, update a ByteMatchSet, remove a ByteMatchSet from a
 10640  	// Rule, and delete a ByteMatchSet from AWS WAF.
 10641  	//
 10642  	// ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.
 10643  	//
 10644  	// ByteMatchSetId is a required field
 10645  	ByteMatchSetId *string `min:"1" type:"string" required:"true"`
 10646  
 10647  	// A friendly name or description of the ByteMatchSet. You can't change Name
 10648  	// after you create a ByteMatchSet.
 10649  	//
 10650  	// Name is a required field
 10651  	Name *string `min:"1" type:"string" required:"true"`
 10652  }
 10653  
 10654  // String returns the string representation.
 10655  //
 10656  // API parameter values that are decorated as "sensitive" in the API will not
 10657  // be included in the string output. The member name will be present, but the
 10658  // value will be replaced with "sensitive".
 10659  func (s ByteMatchSetSummary) String() string {
 10660  	return awsutil.Prettify(s)
 10661  }
 10662  
 10663  // GoString returns the string representation.
 10664  //
 10665  // API parameter values that are decorated as "sensitive" in the API will not
 10666  // be included in the string output. The member name will be present, but the
 10667  // value will be replaced with "sensitive".
 10668  func (s ByteMatchSetSummary) GoString() string {
 10669  	return s.String()
 10670  }
 10671  
 10672  // SetByteMatchSetId sets the ByteMatchSetId field's value.
 10673  func (s *ByteMatchSetSummary) SetByteMatchSetId(v string) *ByteMatchSetSummary {
 10674  	s.ByteMatchSetId = &v
 10675  	return s
 10676  }
 10677  
 10678  // SetName sets the Name field's value.
 10679  func (s *ByteMatchSetSummary) SetName(v string) *ByteMatchSetSummary {
 10680  	s.Name = &v
 10681  	return s
 10682  }
 10683  
 10684  //
 10685  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 10686  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 10687  // in the developer guide.
 10688  //
 10689  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 10690  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 10691  // With the latest version, AWS WAF has a single set of endpoints for regional
 10692  // and global use.
 10693  //
 10694  // In an UpdateByteMatchSet request, ByteMatchSetUpdate specifies whether to
 10695  // insert or delete a ByteMatchTuple and includes the settings for the ByteMatchTuple.
 10696  type ByteMatchSetUpdate struct {
 10697  	_ struct{} `type:"structure"`
 10698  
 10699  	// Specifies whether to insert or delete a ByteMatchTuple.
 10700  	//
 10701  	// Action is a required field
 10702  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 10703  
 10704  	// Information about the part of a web request that you want AWS WAF to inspect
 10705  	// and the value that you want AWS WAF to search for. If you specify DELETE
 10706  	// for the value of Action, the ByteMatchTuple values must exactly match the
 10707  	// values in the ByteMatchTuple that you want to delete from the ByteMatchSet.
 10708  	//
 10709  	// ByteMatchTuple is a required field
 10710  	ByteMatchTuple *ByteMatchTuple `type:"structure" required:"true"`
 10711  }
 10712  
 10713  // String returns the string representation.
 10714  //
 10715  // API parameter values that are decorated as "sensitive" in the API will not
 10716  // be included in the string output. The member name will be present, but the
 10717  // value will be replaced with "sensitive".
 10718  func (s ByteMatchSetUpdate) String() string {
 10719  	return awsutil.Prettify(s)
 10720  }
 10721  
 10722  // GoString returns the string representation.
 10723  //
 10724  // API parameter values that are decorated as "sensitive" in the API will not
 10725  // be included in the string output. The member name will be present, but the
 10726  // value will be replaced with "sensitive".
 10727  func (s ByteMatchSetUpdate) GoString() string {
 10728  	return s.String()
 10729  }
 10730  
 10731  // Validate inspects the fields of the type to determine if they are valid.
 10732  func (s *ByteMatchSetUpdate) Validate() error {
 10733  	invalidParams := request.ErrInvalidParams{Context: "ByteMatchSetUpdate"}
 10734  	if s.Action == nil {
 10735  		invalidParams.Add(request.NewErrParamRequired("Action"))
 10736  	}
 10737  	if s.ByteMatchTuple == nil {
 10738  		invalidParams.Add(request.NewErrParamRequired("ByteMatchTuple"))
 10739  	}
 10740  	if s.ByteMatchTuple != nil {
 10741  		if err := s.ByteMatchTuple.Validate(); err != nil {
 10742  			invalidParams.AddNested("ByteMatchTuple", err.(request.ErrInvalidParams))
 10743  		}
 10744  	}
 10745  
 10746  	if invalidParams.Len() > 0 {
 10747  		return invalidParams
 10748  	}
 10749  	return nil
 10750  }
 10751  
 10752  // SetAction sets the Action field's value.
 10753  func (s *ByteMatchSetUpdate) SetAction(v string) *ByteMatchSetUpdate {
 10754  	s.Action = &v
 10755  	return s
 10756  }
 10757  
 10758  // SetByteMatchTuple sets the ByteMatchTuple field's value.
 10759  func (s *ByteMatchSetUpdate) SetByteMatchTuple(v *ByteMatchTuple) *ByteMatchSetUpdate {
 10760  	s.ByteMatchTuple = v
 10761  	return s
 10762  }
 10763  
 10764  //
 10765  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 10766  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 10767  // in the developer guide.
 10768  //
 10769  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 10770  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 10771  // With the latest version, AWS WAF has a single set of endpoints for regional
 10772  // and global use.
 10773  //
 10774  // The bytes (typically a string that corresponds with ASCII characters) that
 10775  // you want AWS WAF to search for in web requests, the location in requests
 10776  // that you want AWS WAF to search, and other settings.
 10777  type ByteMatchTuple struct {
 10778  	_ struct{} `type:"structure"`
 10779  
 10780  	// The part of a web request that you want AWS WAF to search, such as a specified
 10781  	// header or a query string. For more information, see FieldToMatch.
 10782  	//
 10783  	// FieldToMatch is a required field
 10784  	FieldToMatch *FieldToMatch `type:"structure" required:"true"`
 10785  
 10786  	// Within the portion of a web request that you want to search (for example,
 10787  	// in the query string, if any), specify where you want AWS WAF to search. Valid
 10788  	// values include the following:
 10789  	//
 10790  	// CONTAINS
 10791  	//
 10792  	// The specified part of the web request must include the value of TargetString,
 10793  	// but the location doesn't matter.
 10794  	//
 10795  	// CONTAINS_WORD
 10796  	//
 10797  	// The specified part of the web request must include the value of TargetString,
 10798  	// and TargetString must contain only alphanumeric characters or underscore
 10799  	// (A-Z, a-z, 0-9, or _). In addition, TargetString must be a word, which means
 10800  	// one of the following:
 10801  	//
 10802  	//    * TargetString exactly matches the value of the specified part of the
 10803  	//    web request, such as the value of a header.
 10804  	//
 10805  	//    * TargetString is at the beginning of the specified part of the web request
 10806  	//    and is followed by a character other than an alphanumeric character or
 10807  	//    underscore (_), for example, BadBot;.
 10808  	//
 10809  	//    * TargetString is at the end of the specified part of the web request
 10810  	//    and is preceded by a character other than an alphanumeric character or
 10811  	//    underscore (_), for example, ;BadBot.
 10812  	//
 10813  	//    * TargetString is in the middle of the specified part of the web request
 10814  	//    and is preceded and followed by characters other than alphanumeric characters
 10815  	//    or underscore (_), for example, -BadBot;.
 10816  	//
 10817  	// EXACTLY
 10818  	//
 10819  	// The value of the specified part of the web request must exactly match the
 10820  	// value of TargetString.
 10821  	//
 10822  	// STARTS_WITH
 10823  	//
 10824  	// The value of TargetString must appear at the beginning of the specified part
 10825  	// of the web request.
 10826  	//
 10827  	// ENDS_WITH
 10828  	//
 10829  	// The value of TargetString must appear at the end of the specified part of
 10830  	// the web request.
 10831  	//
 10832  	// PositionalConstraint is a required field
 10833  	PositionalConstraint *string `type:"string" required:"true" enum:"PositionalConstraint"`
 10834  
 10835  	// The value that you want AWS WAF to search for. AWS WAF searches for the specified
 10836  	// string in the part of web requests that you specified in FieldToMatch. The
 10837  	// maximum length of the value is 50 bytes.
 10838  	//
 10839  	// Valid values depend on the values that you specified for FieldToMatch:
 10840  	//
 10841  	//    * HEADER: The value that you want AWS WAF to search for in the request
 10842  	//    header that you specified in FieldToMatch, for example, the value of the
 10843  	//    User-Agent or Referer header.
 10844  	//
 10845  	//    * METHOD: The HTTP method, which indicates the type of operation specified
 10846  	//    in the request. CloudFront supports the following methods: DELETE, GET,
 10847  	//    HEAD, OPTIONS, PATCH, POST, and PUT.
 10848  	//
 10849  	//    * QUERY_STRING: The value that you want AWS WAF to search for in the query
 10850  	//    string, which is the part of a URL that appears after a ? character.
 10851  	//
 10852  	//    * URI: The value that you want AWS WAF to search for in the part of a
 10853  	//    URL that identifies a resource, for example, /images/daily-ad.jpg.
 10854  	//
 10855  	//    * BODY: The part of a request that contains any additional data that you
 10856  	//    want to send to your web server as the HTTP request body, such as data
 10857  	//    from a form. The request body immediately follows the request headers.
 10858  	//    Note that only the first 8192 bytes of the request body are forwarded
 10859  	//    to AWS WAF for inspection. To allow or block requests based on the length
 10860  	//    of the body, you can create a size constraint set. For more information,
 10861  	//    see CreateSizeConstraintSet.
 10862  	//
 10863  	//    * SINGLE_QUERY_ARG: The parameter in the query string that you will inspect,
 10864  	//    such as UserName or SalesRegion. The maximum length for SINGLE_QUERY_ARG
 10865  	//    is 30 characters.
 10866  	//
 10867  	//    * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but instead of inspecting
 10868  	//    a single parameter, AWS WAF inspects all parameters within the query string
 10869  	//    for the value or regex pattern that you specify in TargetString.
 10870  	//
 10871  	// If TargetString includes alphabetic characters A-Z and a-z, note that the
 10872  	// value is case sensitive.
 10873  	//
 10874  	// If you're using the AWS WAF API
 10875  	//
 10876  	// Specify a base64-encoded version of the value. The maximum length of the
 10877  	// value before you base64-encode it is 50 bytes.
 10878  	//
 10879  	// For example, suppose the value of Type is HEADER and the value of Data is
 10880  	// User-Agent. If you want to search the User-Agent header for the value BadBot,
 10881  	// you base64-encode BadBot using MIME base64-encoding and include the resulting
 10882  	// value, QmFkQm90, in the value of TargetString.
 10883  	//
 10884  	// If you're using the AWS CLI or one of the AWS SDKs
 10885  	//
 10886  	// The value that you want AWS WAF to search for. The SDK automatically base64
 10887  	// encodes the value.
 10888  	// TargetString is automatically base64 encoded/decoded by the SDK.
 10889  	//
 10890  	// TargetString is a required field
 10891  	TargetString []byte `type:"blob" required:"true"`
 10892  
 10893  	// Text transformations eliminate some of the unusual formatting that attackers
 10894  	// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,
 10895  	// AWS WAF performs the transformation on FieldToMatch before inspecting it
 10896  	// for a match.
 10897  	//
 10898  	// You can only specify a single type of TextTransformation.
 10899  	//
 10900  	// CMD_LINE
 10901  	//
 10902  	// When you're concerned that attackers are injecting an operating system command
 10903  	// line command and using unusual formatting to disguise some or all of the
 10904  	// command, use this option to perform the following transformations:
 10905  	//
 10906  	//    * Delete the following characters: \ " ' ^
 10907  	//
 10908  	//    * Delete spaces before the following characters: / (
 10909  	//
 10910  	//    * Replace the following characters with a space: , ;
 10911  	//
 10912  	//    * Replace multiple spaces with one space
 10913  	//
 10914  	//    * Convert uppercase letters (A-Z) to lowercase (a-z)
 10915  	//
 10916  	// COMPRESS_WHITE_SPACE
 10917  	//
 10918  	// Use this option to replace the following characters with a space character
 10919  	// (decimal 32):
 10920  	//
 10921  	//    * \f, formfeed, decimal 12
 10922  	//
 10923  	//    * \t, tab, decimal 9
 10924  	//
 10925  	//    * \n, newline, decimal 10
 10926  	//
 10927  	//    * \r, carriage return, decimal 13
 10928  	//
 10929  	//    * \v, vertical tab, decimal 11
 10930  	//
 10931  	//    * non-breaking space, decimal 160
 10932  	//
 10933  	// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
 10934  	//
 10935  	// HTML_ENTITY_DECODE
 10936  	//
 10937  	// Use this option to replace HTML-encoded characters with unencoded characters.
 10938  	// HTML_ENTITY_DECODE performs the following operations:
 10939  	//
 10940  	//    * Replaces (ampersand)quot; with "
 10941  	//
 10942  	//    * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
 10943  	//
 10944  	//    * Replaces (ampersand)lt; with a "less than" symbol
 10945  	//
 10946  	//    * Replaces (ampersand)gt; with >
 10947  	//
 10948  	//    * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,
 10949  	//    with the corresponding characters
 10950  	//
 10951  	//    * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,
 10952  	//    with the corresponding characters
 10953  	//
 10954  	// LOWERCASE
 10955  	//
 10956  	// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
 10957  	//
 10958  	// URL_DECODE
 10959  	//
 10960  	// Use this option to decode a URL-encoded value.
 10961  	//
 10962  	// NONE
 10963  	//
 10964  	// Specify NONE if you don't want to perform any text transformations.
 10965  	//
 10966  	// TextTransformation is a required field
 10967  	TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
 10968  }
 10969  
 10970  // String returns the string representation.
 10971  //
 10972  // API parameter values that are decorated as "sensitive" in the API will not
 10973  // be included in the string output. The member name will be present, but the
 10974  // value will be replaced with "sensitive".
 10975  func (s ByteMatchTuple) String() string {
 10976  	return awsutil.Prettify(s)
 10977  }
 10978  
 10979  // GoString returns the string representation.
 10980  //
 10981  // API parameter values that are decorated as "sensitive" in the API will not
 10982  // be included in the string output. The member name will be present, but the
 10983  // value will be replaced with "sensitive".
 10984  func (s ByteMatchTuple) GoString() string {
 10985  	return s.String()
 10986  }
 10987  
 10988  // Validate inspects the fields of the type to determine if they are valid.
 10989  func (s *ByteMatchTuple) Validate() error {
 10990  	invalidParams := request.ErrInvalidParams{Context: "ByteMatchTuple"}
 10991  	if s.FieldToMatch == nil {
 10992  		invalidParams.Add(request.NewErrParamRequired("FieldToMatch"))
 10993  	}
 10994  	if s.PositionalConstraint == nil {
 10995  		invalidParams.Add(request.NewErrParamRequired("PositionalConstraint"))
 10996  	}
 10997  	if s.TargetString == nil {
 10998  		invalidParams.Add(request.NewErrParamRequired("TargetString"))
 10999  	}
 11000  	if s.TextTransformation == nil {
 11001  		invalidParams.Add(request.NewErrParamRequired("TextTransformation"))
 11002  	}
 11003  	if s.FieldToMatch != nil {
 11004  		if err := s.FieldToMatch.Validate(); err != nil {
 11005  			invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams))
 11006  		}
 11007  	}
 11008  
 11009  	if invalidParams.Len() > 0 {
 11010  		return invalidParams
 11011  	}
 11012  	return nil
 11013  }
 11014  
 11015  // SetFieldToMatch sets the FieldToMatch field's value.
 11016  func (s *ByteMatchTuple) SetFieldToMatch(v *FieldToMatch) *ByteMatchTuple {
 11017  	s.FieldToMatch = v
 11018  	return s
 11019  }
 11020  
 11021  // SetPositionalConstraint sets the PositionalConstraint field's value.
 11022  func (s *ByteMatchTuple) SetPositionalConstraint(v string) *ByteMatchTuple {
 11023  	s.PositionalConstraint = &v
 11024  	return s
 11025  }
 11026  
 11027  // SetTargetString sets the TargetString field's value.
 11028  func (s *ByteMatchTuple) SetTargetString(v []byte) *ByteMatchTuple {
 11029  	s.TargetString = v
 11030  	return s
 11031  }
 11032  
 11033  // SetTextTransformation sets the TextTransformation field's value.
 11034  func (s *ByteMatchTuple) SetTextTransformation(v string) *ByteMatchTuple {
 11035  	s.TextTransformation = &v
 11036  	return s
 11037  }
 11038  
 11039  type CreateByteMatchSetInput struct {
 11040  	_ struct{} `type:"structure"`
 11041  
 11042  	// The value returned by the most recent call to GetChangeToken.
 11043  	//
 11044  	// ChangeToken is a required field
 11045  	ChangeToken *string `min:"1" type:"string" required:"true"`
 11046  
 11047  	// A friendly name or description of the ByteMatchSet. You can't change Name
 11048  	// after you create a ByteMatchSet.
 11049  	//
 11050  	// Name is a required field
 11051  	Name *string `min:"1" type:"string" required:"true"`
 11052  }
 11053  
 11054  // String returns the string representation.
 11055  //
 11056  // API parameter values that are decorated as "sensitive" in the API will not
 11057  // be included in the string output. The member name will be present, but the
 11058  // value will be replaced with "sensitive".
 11059  func (s CreateByteMatchSetInput) String() string {
 11060  	return awsutil.Prettify(s)
 11061  }
 11062  
 11063  // GoString returns the string representation.
 11064  //
 11065  // API parameter values that are decorated as "sensitive" in the API will not
 11066  // be included in the string output. The member name will be present, but the
 11067  // value will be replaced with "sensitive".
 11068  func (s CreateByteMatchSetInput) GoString() string {
 11069  	return s.String()
 11070  }
 11071  
 11072  // Validate inspects the fields of the type to determine if they are valid.
 11073  func (s *CreateByteMatchSetInput) Validate() error {
 11074  	invalidParams := request.ErrInvalidParams{Context: "CreateByteMatchSetInput"}
 11075  	if s.ChangeToken == nil {
 11076  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 11077  	}
 11078  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 11079  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 11080  	}
 11081  	if s.Name == nil {
 11082  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11083  	}
 11084  	if s.Name != nil && len(*s.Name) < 1 {
 11085  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11086  	}
 11087  
 11088  	if invalidParams.Len() > 0 {
 11089  		return invalidParams
 11090  	}
 11091  	return nil
 11092  }
 11093  
 11094  // SetChangeToken sets the ChangeToken field's value.
 11095  func (s *CreateByteMatchSetInput) SetChangeToken(v string) *CreateByteMatchSetInput {
 11096  	s.ChangeToken = &v
 11097  	return s
 11098  }
 11099  
 11100  // SetName sets the Name field's value.
 11101  func (s *CreateByteMatchSetInput) SetName(v string) *CreateByteMatchSetInput {
 11102  	s.Name = &v
 11103  	return s
 11104  }
 11105  
 11106  type CreateByteMatchSetOutput struct {
 11107  	_ struct{} `type:"structure"`
 11108  
 11109  	// A ByteMatchSet that contains no ByteMatchTuple objects.
 11110  	ByteMatchSet *ByteMatchSet `type:"structure"`
 11111  
 11112  	// The ChangeToken that you used to submit the CreateByteMatchSet request. You
 11113  	// can also use this value to query the status of the request. For more information,
 11114  	// see GetChangeTokenStatus.
 11115  	ChangeToken *string `min:"1" type:"string"`
 11116  }
 11117  
 11118  // String returns the string representation.
 11119  //
 11120  // API parameter values that are decorated as "sensitive" in the API will not
 11121  // be included in the string output. The member name will be present, but the
 11122  // value will be replaced with "sensitive".
 11123  func (s CreateByteMatchSetOutput) String() string {
 11124  	return awsutil.Prettify(s)
 11125  }
 11126  
 11127  // GoString returns the string representation.
 11128  //
 11129  // API parameter values that are decorated as "sensitive" in the API will not
 11130  // be included in the string output. The member name will be present, but the
 11131  // value will be replaced with "sensitive".
 11132  func (s CreateByteMatchSetOutput) GoString() string {
 11133  	return s.String()
 11134  }
 11135  
 11136  // SetByteMatchSet sets the ByteMatchSet field's value.
 11137  func (s *CreateByteMatchSetOutput) SetByteMatchSet(v *ByteMatchSet) *CreateByteMatchSetOutput {
 11138  	s.ByteMatchSet = v
 11139  	return s
 11140  }
 11141  
 11142  // SetChangeToken sets the ChangeToken field's value.
 11143  func (s *CreateByteMatchSetOutput) SetChangeToken(v string) *CreateByteMatchSetOutput {
 11144  	s.ChangeToken = &v
 11145  	return s
 11146  }
 11147  
 11148  type CreateGeoMatchSetInput struct {
 11149  	_ struct{} `type:"structure"`
 11150  
 11151  	// The value returned by the most recent call to GetChangeToken.
 11152  	//
 11153  	// ChangeToken is a required field
 11154  	ChangeToken *string `min:"1" type:"string" required:"true"`
 11155  
 11156  	// A friendly name or description of the GeoMatchSet. You can't change Name
 11157  	// after you create the GeoMatchSet.
 11158  	//
 11159  	// Name is a required field
 11160  	Name *string `min:"1" type:"string" required:"true"`
 11161  }
 11162  
 11163  // String returns the string representation.
 11164  //
 11165  // API parameter values that are decorated as "sensitive" in the API will not
 11166  // be included in the string output. The member name will be present, but the
 11167  // value will be replaced with "sensitive".
 11168  func (s CreateGeoMatchSetInput) String() string {
 11169  	return awsutil.Prettify(s)
 11170  }
 11171  
 11172  // GoString returns the string representation.
 11173  //
 11174  // API parameter values that are decorated as "sensitive" in the API will not
 11175  // be included in the string output. The member name will be present, but the
 11176  // value will be replaced with "sensitive".
 11177  func (s CreateGeoMatchSetInput) GoString() string {
 11178  	return s.String()
 11179  }
 11180  
 11181  // Validate inspects the fields of the type to determine if they are valid.
 11182  func (s *CreateGeoMatchSetInput) Validate() error {
 11183  	invalidParams := request.ErrInvalidParams{Context: "CreateGeoMatchSetInput"}
 11184  	if s.ChangeToken == nil {
 11185  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 11186  	}
 11187  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 11188  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 11189  	}
 11190  	if s.Name == nil {
 11191  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11192  	}
 11193  	if s.Name != nil && len(*s.Name) < 1 {
 11194  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11195  	}
 11196  
 11197  	if invalidParams.Len() > 0 {
 11198  		return invalidParams
 11199  	}
 11200  	return nil
 11201  }
 11202  
 11203  // SetChangeToken sets the ChangeToken field's value.
 11204  func (s *CreateGeoMatchSetInput) SetChangeToken(v string) *CreateGeoMatchSetInput {
 11205  	s.ChangeToken = &v
 11206  	return s
 11207  }
 11208  
 11209  // SetName sets the Name field's value.
 11210  func (s *CreateGeoMatchSetInput) SetName(v string) *CreateGeoMatchSetInput {
 11211  	s.Name = &v
 11212  	return s
 11213  }
 11214  
 11215  type CreateGeoMatchSetOutput struct {
 11216  	_ struct{} `type:"structure"`
 11217  
 11218  	// The ChangeToken that you used to submit the CreateGeoMatchSet request. You
 11219  	// can also use this value to query the status of the request. For more information,
 11220  	// see GetChangeTokenStatus.
 11221  	ChangeToken *string `min:"1" type:"string"`
 11222  
 11223  	// The GeoMatchSet returned in the CreateGeoMatchSet response. The GeoMatchSet
 11224  	// contains no GeoMatchConstraints.
 11225  	GeoMatchSet *GeoMatchSet `type:"structure"`
 11226  }
 11227  
 11228  // String returns the string representation.
 11229  //
 11230  // API parameter values that are decorated as "sensitive" in the API will not
 11231  // be included in the string output. The member name will be present, but the
 11232  // value will be replaced with "sensitive".
 11233  func (s CreateGeoMatchSetOutput) String() string {
 11234  	return awsutil.Prettify(s)
 11235  }
 11236  
 11237  // GoString returns the string representation.
 11238  //
 11239  // API parameter values that are decorated as "sensitive" in the API will not
 11240  // be included in the string output. The member name will be present, but the
 11241  // value will be replaced with "sensitive".
 11242  func (s CreateGeoMatchSetOutput) GoString() string {
 11243  	return s.String()
 11244  }
 11245  
 11246  // SetChangeToken sets the ChangeToken field's value.
 11247  func (s *CreateGeoMatchSetOutput) SetChangeToken(v string) *CreateGeoMatchSetOutput {
 11248  	s.ChangeToken = &v
 11249  	return s
 11250  }
 11251  
 11252  // SetGeoMatchSet sets the GeoMatchSet field's value.
 11253  func (s *CreateGeoMatchSetOutput) SetGeoMatchSet(v *GeoMatchSet) *CreateGeoMatchSetOutput {
 11254  	s.GeoMatchSet = v
 11255  	return s
 11256  }
 11257  
 11258  type CreateIPSetInput struct {
 11259  	_ struct{} `type:"structure"`
 11260  
 11261  	// The value returned by the most recent call to GetChangeToken.
 11262  	//
 11263  	// ChangeToken is a required field
 11264  	ChangeToken *string `min:"1" type:"string" required:"true"`
 11265  
 11266  	// A friendly name or description of the IPSet. You can't change Name after
 11267  	// you create the IPSet.
 11268  	//
 11269  	// Name is a required field
 11270  	Name *string `min:"1" type:"string" required:"true"`
 11271  }
 11272  
 11273  // String returns the string representation.
 11274  //
 11275  // API parameter values that are decorated as "sensitive" in the API will not
 11276  // be included in the string output. The member name will be present, but the
 11277  // value will be replaced with "sensitive".
 11278  func (s CreateIPSetInput) String() string {
 11279  	return awsutil.Prettify(s)
 11280  }
 11281  
 11282  // GoString returns the string representation.
 11283  //
 11284  // API parameter values that are decorated as "sensitive" in the API will not
 11285  // be included in the string output. The member name will be present, but the
 11286  // value will be replaced with "sensitive".
 11287  func (s CreateIPSetInput) GoString() string {
 11288  	return s.String()
 11289  }
 11290  
 11291  // Validate inspects the fields of the type to determine if they are valid.
 11292  func (s *CreateIPSetInput) Validate() error {
 11293  	invalidParams := request.ErrInvalidParams{Context: "CreateIPSetInput"}
 11294  	if s.ChangeToken == nil {
 11295  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 11296  	}
 11297  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 11298  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 11299  	}
 11300  	if s.Name == nil {
 11301  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11302  	}
 11303  	if s.Name != nil && len(*s.Name) < 1 {
 11304  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11305  	}
 11306  
 11307  	if invalidParams.Len() > 0 {
 11308  		return invalidParams
 11309  	}
 11310  	return nil
 11311  }
 11312  
 11313  // SetChangeToken sets the ChangeToken field's value.
 11314  func (s *CreateIPSetInput) SetChangeToken(v string) *CreateIPSetInput {
 11315  	s.ChangeToken = &v
 11316  	return s
 11317  }
 11318  
 11319  // SetName sets the Name field's value.
 11320  func (s *CreateIPSetInput) SetName(v string) *CreateIPSetInput {
 11321  	s.Name = &v
 11322  	return s
 11323  }
 11324  
 11325  type CreateIPSetOutput struct {
 11326  	_ struct{} `type:"structure"`
 11327  
 11328  	// The ChangeToken that you used to submit the CreateIPSet request. You can
 11329  	// also use this value to query the status of the request. For more information,
 11330  	// see GetChangeTokenStatus.
 11331  	ChangeToken *string `min:"1" type:"string"`
 11332  
 11333  	// The IPSet returned in the CreateIPSet response.
 11334  	IPSet *IPSet `type:"structure"`
 11335  }
 11336  
 11337  // String returns the string representation.
 11338  //
 11339  // API parameter values that are decorated as "sensitive" in the API will not
 11340  // be included in the string output. The member name will be present, but the
 11341  // value will be replaced with "sensitive".
 11342  func (s CreateIPSetOutput) String() string {
 11343  	return awsutil.Prettify(s)
 11344  }
 11345  
 11346  // GoString returns the string representation.
 11347  //
 11348  // API parameter values that are decorated as "sensitive" in the API will not
 11349  // be included in the string output. The member name will be present, but the
 11350  // value will be replaced with "sensitive".
 11351  func (s CreateIPSetOutput) GoString() string {
 11352  	return s.String()
 11353  }
 11354  
 11355  // SetChangeToken sets the ChangeToken field's value.
 11356  func (s *CreateIPSetOutput) SetChangeToken(v string) *CreateIPSetOutput {
 11357  	s.ChangeToken = &v
 11358  	return s
 11359  }
 11360  
 11361  // SetIPSet sets the IPSet field's value.
 11362  func (s *CreateIPSetOutput) SetIPSet(v *IPSet) *CreateIPSetOutput {
 11363  	s.IPSet = v
 11364  	return s
 11365  }
 11366  
 11367  type CreateRateBasedRuleInput struct {
 11368  	_ struct{} `type:"structure"`
 11369  
 11370  	// The ChangeToken that you used to submit the CreateRateBasedRule request.
 11371  	// You can also use this value to query the status of the request. For more
 11372  	// information, see GetChangeTokenStatus.
 11373  	//
 11374  	// ChangeToken is a required field
 11375  	ChangeToken *string `min:"1" type:"string" required:"true"`
 11376  
 11377  	// A friendly name or description for the metrics for this RateBasedRule. The
 11378  	// name can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum
 11379  	// length 128 and minimum length one. It can't contain whitespace or metric
 11380  	// names reserved for AWS WAF, including "All" and "Default_Action." You can't
 11381  	// change the name of the metric after you create the RateBasedRule.
 11382  	//
 11383  	// MetricName is a required field
 11384  	MetricName *string `min:"1" type:"string" required:"true"`
 11385  
 11386  	// A friendly name or description of the RateBasedRule. You can't change the
 11387  	// name of a RateBasedRule after you create it.
 11388  	//
 11389  	// Name is a required field
 11390  	Name *string `min:"1" type:"string" required:"true"`
 11391  
 11392  	// The field that AWS WAF uses to determine if requests are likely arriving
 11393  	// from a single source and thus subject to rate monitoring. The only valid
 11394  	// value for RateKey is IP. IP indicates that requests that arrive from the
 11395  	// same IP address are subject to the RateLimit that is specified in the RateBasedRule.
 11396  	//
 11397  	// RateKey is a required field
 11398  	RateKey *string `type:"string" required:"true" enum:"RateKey"`
 11399  
 11400  	// The maximum number of requests, which have an identical value in the field
 11401  	// that is specified by RateKey, allowed in a five-minute period. If the number
 11402  	// of requests exceeds the RateLimit and the other predicates specified in the
 11403  	// rule are also met, AWS WAF triggers the action that is specified for this
 11404  	// rule.
 11405  	//
 11406  	// RateLimit is a required field
 11407  	RateLimit *int64 `min:"100" type:"long" required:"true"`
 11408  
 11409  	Tags []*Tag `min:"1" type:"list"`
 11410  }
 11411  
 11412  // String returns the string representation.
 11413  //
 11414  // API parameter values that are decorated as "sensitive" in the API will not
 11415  // be included in the string output. The member name will be present, but the
 11416  // value will be replaced with "sensitive".
 11417  func (s CreateRateBasedRuleInput) String() string {
 11418  	return awsutil.Prettify(s)
 11419  }
 11420  
 11421  // GoString returns the string representation.
 11422  //
 11423  // API parameter values that are decorated as "sensitive" in the API will not
 11424  // be included in the string output. The member name will be present, but the
 11425  // value will be replaced with "sensitive".
 11426  func (s CreateRateBasedRuleInput) GoString() string {
 11427  	return s.String()
 11428  }
 11429  
 11430  // Validate inspects the fields of the type to determine if they are valid.
 11431  func (s *CreateRateBasedRuleInput) Validate() error {
 11432  	invalidParams := request.ErrInvalidParams{Context: "CreateRateBasedRuleInput"}
 11433  	if s.ChangeToken == nil {
 11434  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 11435  	}
 11436  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 11437  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 11438  	}
 11439  	if s.MetricName == nil {
 11440  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 11441  	}
 11442  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 11443  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 11444  	}
 11445  	if s.Name == nil {
 11446  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11447  	}
 11448  	if s.Name != nil && len(*s.Name) < 1 {
 11449  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11450  	}
 11451  	if s.RateKey == nil {
 11452  		invalidParams.Add(request.NewErrParamRequired("RateKey"))
 11453  	}
 11454  	if s.RateLimit == nil {
 11455  		invalidParams.Add(request.NewErrParamRequired("RateLimit"))
 11456  	}
 11457  	if s.RateLimit != nil && *s.RateLimit < 100 {
 11458  		invalidParams.Add(request.NewErrParamMinValue("RateLimit", 100))
 11459  	}
 11460  	if s.Tags != nil && len(s.Tags) < 1 {
 11461  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
 11462  	}
 11463  	if s.Tags != nil {
 11464  		for i, v := range s.Tags {
 11465  			if v == nil {
 11466  				continue
 11467  			}
 11468  			if err := v.Validate(); err != nil {
 11469  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 11470  			}
 11471  		}
 11472  	}
 11473  
 11474  	if invalidParams.Len() > 0 {
 11475  		return invalidParams
 11476  	}
 11477  	return nil
 11478  }
 11479  
 11480  // SetChangeToken sets the ChangeToken field's value.
 11481  func (s *CreateRateBasedRuleInput) SetChangeToken(v string) *CreateRateBasedRuleInput {
 11482  	s.ChangeToken = &v
 11483  	return s
 11484  }
 11485  
 11486  // SetMetricName sets the MetricName field's value.
 11487  func (s *CreateRateBasedRuleInput) SetMetricName(v string) *CreateRateBasedRuleInput {
 11488  	s.MetricName = &v
 11489  	return s
 11490  }
 11491  
 11492  // SetName sets the Name field's value.
 11493  func (s *CreateRateBasedRuleInput) SetName(v string) *CreateRateBasedRuleInput {
 11494  	s.Name = &v
 11495  	return s
 11496  }
 11497  
 11498  // SetRateKey sets the RateKey field's value.
 11499  func (s *CreateRateBasedRuleInput) SetRateKey(v string) *CreateRateBasedRuleInput {
 11500  	s.RateKey = &v
 11501  	return s
 11502  }
 11503  
 11504  // SetRateLimit sets the RateLimit field's value.
 11505  func (s *CreateRateBasedRuleInput) SetRateLimit(v int64) *CreateRateBasedRuleInput {
 11506  	s.RateLimit = &v
 11507  	return s
 11508  }
 11509  
 11510  // SetTags sets the Tags field's value.
 11511  func (s *CreateRateBasedRuleInput) SetTags(v []*Tag) *CreateRateBasedRuleInput {
 11512  	s.Tags = v
 11513  	return s
 11514  }
 11515  
 11516  type CreateRateBasedRuleOutput struct {
 11517  	_ struct{} `type:"structure"`
 11518  
 11519  	// The ChangeToken that you used to submit the CreateRateBasedRule request.
 11520  	// You can also use this value to query the status of the request. For more
 11521  	// information, see GetChangeTokenStatus.
 11522  	ChangeToken *string `min:"1" type:"string"`
 11523  
 11524  	// The RateBasedRule that is returned in the CreateRateBasedRule response.
 11525  	Rule *RateBasedRule `type:"structure"`
 11526  }
 11527  
 11528  // String returns the string representation.
 11529  //
 11530  // API parameter values that are decorated as "sensitive" in the API will not
 11531  // be included in the string output. The member name will be present, but the
 11532  // value will be replaced with "sensitive".
 11533  func (s CreateRateBasedRuleOutput) String() string {
 11534  	return awsutil.Prettify(s)
 11535  }
 11536  
 11537  // GoString returns the string representation.
 11538  //
 11539  // API parameter values that are decorated as "sensitive" in the API will not
 11540  // be included in the string output. The member name will be present, but the
 11541  // value will be replaced with "sensitive".
 11542  func (s CreateRateBasedRuleOutput) GoString() string {
 11543  	return s.String()
 11544  }
 11545  
 11546  // SetChangeToken sets the ChangeToken field's value.
 11547  func (s *CreateRateBasedRuleOutput) SetChangeToken(v string) *CreateRateBasedRuleOutput {
 11548  	s.ChangeToken = &v
 11549  	return s
 11550  }
 11551  
 11552  // SetRule sets the Rule field's value.
 11553  func (s *CreateRateBasedRuleOutput) SetRule(v *RateBasedRule) *CreateRateBasedRuleOutput {
 11554  	s.Rule = v
 11555  	return s
 11556  }
 11557  
 11558  type CreateRegexMatchSetInput struct {
 11559  	_ struct{} `type:"structure"`
 11560  
 11561  	// The value returned by the most recent call to GetChangeToken.
 11562  	//
 11563  	// ChangeToken is a required field
 11564  	ChangeToken *string `min:"1" type:"string" required:"true"`
 11565  
 11566  	// A friendly name or description of the RegexMatchSet. You can't change Name
 11567  	// after you create a RegexMatchSet.
 11568  	//
 11569  	// Name is a required field
 11570  	Name *string `min:"1" type:"string" required:"true"`
 11571  }
 11572  
 11573  // String returns the string representation.
 11574  //
 11575  // API parameter values that are decorated as "sensitive" in the API will not
 11576  // be included in the string output. The member name will be present, but the
 11577  // value will be replaced with "sensitive".
 11578  func (s CreateRegexMatchSetInput) String() string {
 11579  	return awsutil.Prettify(s)
 11580  }
 11581  
 11582  // GoString returns the string representation.
 11583  //
 11584  // API parameter values that are decorated as "sensitive" in the API will not
 11585  // be included in the string output. The member name will be present, but the
 11586  // value will be replaced with "sensitive".
 11587  func (s CreateRegexMatchSetInput) GoString() string {
 11588  	return s.String()
 11589  }
 11590  
 11591  // Validate inspects the fields of the type to determine if they are valid.
 11592  func (s *CreateRegexMatchSetInput) Validate() error {
 11593  	invalidParams := request.ErrInvalidParams{Context: "CreateRegexMatchSetInput"}
 11594  	if s.ChangeToken == nil {
 11595  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 11596  	}
 11597  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 11598  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 11599  	}
 11600  	if s.Name == nil {
 11601  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11602  	}
 11603  	if s.Name != nil && len(*s.Name) < 1 {
 11604  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11605  	}
 11606  
 11607  	if invalidParams.Len() > 0 {
 11608  		return invalidParams
 11609  	}
 11610  	return nil
 11611  }
 11612  
 11613  // SetChangeToken sets the ChangeToken field's value.
 11614  func (s *CreateRegexMatchSetInput) SetChangeToken(v string) *CreateRegexMatchSetInput {
 11615  	s.ChangeToken = &v
 11616  	return s
 11617  }
 11618  
 11619  // SetName sets the Name field's value.
 11620  func (s *CreateRegexMatchSetInput) SetName(v string) *CreateRegexMatchSetInput {
 11621  	s.Name = &v
 11622  	return s
 11623  }
 11624  
 11625  type CreateRegexMatchSetOutput struct {
 11626  	_ struct{} `type:"structure"`
 11627  
 11628  	// The ChangeToken that you used to submit the CreateRegexMatchSet request.
 11629  	// You can also use this value to query the status of the request. For more
 11630  	// information, see GetChangeTokenStatus.
 11631  	ChangeToken *string `min:"1" type:"string"`
 11632  
 11633  	// A RegexMatchSet that contains no RegexMatchTuple objects.
 11634  	RegexMatchSet *RegexMatchSet `type:"structure"`
 11635  }
 11636  
 11637  // String returns the string representation.
 11638  //
 11639  // API parameter values that are decorated as "sensitive" in the API will not
 11640  // be included in the string output. The member name will be present, but the
 11641  // value will be replaced with "sensitive".
 11642  func (s CreateRegexMatchSetOutput) String() string {
 11643  	return awsutil.Prettify(s)
 11644  }
 11645  
 11646  // GoString returns the string representation.
 11647  //
 11648  // API parameter values that are decorated as "sensitive" in the API will not
 11649  // be included in the string output. The member name will be present, but the
 11650  // value will be replaced with "sensitive".
 11651  func (s CreateRegexMatchSetOutput) GoString() string {
 11652  	return s.String()
 11653  }
 11654  
 11655  // SetChangeToken sets the ChangeToken field's value.
 11656  func (s *CreateRegexMatchSetOutput) SetChangeToken(v string) *CreateRegexMatchSetOutput {
 11657  	s.ChangeToken = &v
 11658  	return s
 11659  }
 11660  
 11661  // SetRegexMatchSet sets the RegexMatchSet field's value.
 11662  func (s *CreateRegexMatchSetOutput) SetRegexMatchSet(v *RegexMatchSet) *CreateRegexMatchSetOutput {
 11663  	s.RegexMatchSet = v
 11664  	return s
 11665  }
 11666  
 11667  type CreateRegexPatternSetInput struct {
 11668  	_ struct{} `type:"structure"`
 11669  
 11670  	// The value returned by the most recent call to GetChangeToken.
 11671  	//
 11672  	// ChangeToken is a required field
 11673  	ChangeToken *string `min:"1" type:"string" required:"true"`
 11674  
 11675  	// A friendly name or description of the RegexPatternSet. You can't change Name
 11676  	// after you create a RegexPatternSet.
 11677  	//
 11678  	// Name is a required field
 11679  	Name *string `min:"1" type:"string" required:"true"`
 11680  }
 11681  
 11682  // String returns the string representation.
 11683  //
 11684  // API parameter values that are decorated as "sensitive" in the API will not
 11685  // be included in the string output. The member name will be present, but the
 11686  // value will be replaced with "sensitive".
 11687  func (s CreateRegexPatternSetInput) String() string {
 11688  	return awsutil.Prettify(s)
 11689  }
 11690  
 11691  // GoString returns the string representation.
 11692  //
 11693  // API parameter values that are decorated as "sensitive" in the API will not
 11694  // be included in the string output. The member name will be present, but the
 11695  // value will be replaced with "sensitive".
 11696  func (s CreateRegexPatternSetInput) GoString() string {
 11697  	return s.String()
 11698  }
 11699  
 11700  // Validate inspects the fields of the type to determine if they are valid.
 11701  func (s *CreateRegexPatternSetInput) Validate() error {
 11702  	invalidParams := request.ErrInvalidParams{Context: "CreateRegexPatternSetInput"}
 11703  	if s.ChangeToken == nil {
 11704  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 11705  	}
 11706  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 11707  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 11708  	}
 11709  	if s.Name == nil {
 11710  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11711  	}
 11712  	if s.Name != nil && len(*s.Name) < 1 {
 11713  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11714  	}
 11715  
 11716  	if invalidParams.Len() > 0 {
 11717  		return invalidParams
 11718  	}
 11719  	return nil
 11720  }
 11721  
 11722  // SetChangeToken sets the ChangeToken field's value.
 11723  func (s *CreateRegexPatternSetInput) SetChangeToken(v string) *CreateRegexPatternSetInput {
 11724  	s.ChangeToken = &v
 11725  	return s
 11726  }
 11727  
 11728  // SetName sets the Name field's value.
 11729  func (s *CreateRegexPatternSetInput) SetName(v string) *CreateRegexPatternSetInput {
 11730  	s.Name = &v
 11731  	return s
 11732  }
 11733  
 11734  type CreateRegexPatternSetOutput struct {
 11735  	_ struct{} `type:"structure"`
 11736  
 11737  	// The ChangeToken that you used to submit the CreateRegexPatternSet request.
 11738  	// You can also use this value to query the status of the request. For more
 11739  	// information, see GetChangeTokenStatus.
 11740  	ChangeToken *string `min:"1" type:"string"`
 11741  
 11742  	// A RegexPatternSet that contains no objects.
 11743  	RegexPatternSet *RegexPatternSet `type:"structure"`
 11744  }
 11745  
 11746  // String returns the string representation.
 11747  //
 11748  // API parameter values that are decorated as "sensitive" in the API will not
 11749  // be included in the string output. The member name will be present, but the
 11750  // value will be replaced with "sensitive".
 11751  func (s CreateRegexPatternSetOutput) String() string {
 11752  	return awsutil.Prettify(s)
 11753  }
 11754  
 11755  // GoString returns the string representation.
 11756  //
 11757  // API parameter values that are decorated as "sensitive" in the API will not
 11758  // be included in the string output. The member name will be present, but the
 11759  // value will be replaced with "sensitive".
 11760  func (s CreateRegexPatternSetOutput) GoString() string {
 11761  	return s.String()
 11762  }
 11763  
 11764  // SetChangeToken sets the ChangeToken field's value.
 11765  func (s *CreateRegexPatternSetOutput) SetChangeToken(v string) *CreateRegexPatternSetOutput {
 11766  	s.ChangeToken = &v
 11767  	return s
 11768  }
 11769  
 11770  // SetRegexPatternSet sets the RegexPatternSet field's value.
 11771  func (s *CreateRegexPatternSetOutput) SetRegexPatternSet(v *RegexPatternSet) *CreateRegexPatternSetOutput {
 11772  	s.RegexPatternSet = v
 11773  	return s
 11774  }
 11775  
 11776  type CreateRuleGroupInput struct {
 11777  	_ struct{} `type:"structure"`
 11778  
 11779  	// The value returned by the most recent call to GetChangeToken.
 11780  	//
 11781  	// ChangeToken is a required field
 11782  	ChangeToken *string `min:"1" type:"string" required:"true"`
 11783  
 11784  	// A friendly name or description for the metrics for this RuleGroup. The name
 11785  	// can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length
 11786  	// 128 and minimum length one. It can't contain whitespace or metric names reserved
 11787  	// for AWS WAF, including "All" and "Default_Action." You can't change the name
 11788  	// of the metric after you create the RuleGroup.
 11789  	//
 11790  	// MetricName is a required field
 11791  	MetricName *string `min:"1" type:"string" required:"true"`
 11792  
 11793  	// A friendly name or description of the RuleGroup. You can't change Name after
 11794  	// you create a RuleGroup.
 11795  	//
 11796  	// Name is a required field
 11797  	Name *string `min:"1" type:"string" required:"true"`
 11798  
 11799  	Tags []*Tag `min:"1" type:"list"`
 11800  }
 11801  
 11802  // String returns the string representation.
 11803  //
 11804  // API parameter values that are decorated as "sensitive" in the API will not
 11805  // be included in the string output. The member name will be present, but the
 11806  // value will be replaced with "sensitive".
 11807  func (s CreateRuleGroupInput) String() string {
 11808  	return awsutil.Prettify(s)
 11809  }
 11810  
 11811  // GoString returns the string representation.
 11812  //
 11813  // API parameter values that are decorated as "sensitive" in the API will not
 11814  // be included in the string output. The member name will be present, but the
 11815  // value will be replaced with "sensitive".
 11816  func (s CreateRuleGroupInput) GoString() string {
 11817  	return s.String()
 11818  }
 11819  
 11820  // Validate inspects the fields of the type to determine if they are valid.
 11821  func (s *CreateRuleGroupInput) Validate() error {
 11822  	invalidParams := request.ErrInvalidParams{Context: "CreateRuleGroupInput"}
 11823  	if s.ChangeToken == nil {
 11824  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 11825  	}
 11826  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 11827  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 11828  	}
 11829  	if s.MetricName == nil {
 11830  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 11831  	}
 11832  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 11833  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 11834  	}
 11835  	if s.Name == nil {
 11836  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11837  	}
 11838  	if s.Name != nil && len(*s.Name) < 1 {
 11839  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11840  	}
 11841  	if s.Tags != nil && len(s.Tags) < 1 {
 11842  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
 11843  	}
 11844  	if s.Tags != nil {
 11845  		for i, v := range s.Tags {
 11846  			if v == nil {
 11847  				continue
 11848  			}
 11849  			if err := v.Validate(); err != nil {
 11850  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 11851  			}
 11852  		}
 11853  	}
 11854  
 11855  	if invalidParams.Len() > 0 {
 11856  		return invalidParams
 11857  	}
 11858  	return nil
 11859  }
 11860  
 11861  // SetChangeToken sets the ChangeToken field's value.
 11862  func (s *CreateRuleGroupInput) SetChangeToken(v string) *CreateRuleGroupInput {
 11863  	s.ChangeToken = &v
 11864  	return s
 11865  }
 11866  
 11867  // SetMetricName sets the MetricName field's value.
 11868  func (s *CreateRuleGroupInput) SetMetricName(v string) *CreateRuleGroupInput {
 11869  	s.MetricName = &v
 11870  	return s
 11871  }
 11872  
 11873  // SetName sets the Name field's value.
 11874  func (s *CreateRuleGroupInput) SetName(v string) *CreateRuleGroupInput {
 11875  	s.Name = &v
 11876  	return s
 11877  }
 11878  
 11879  // SetTags sets the Tags field's value.
 11880  func (s *CreateRuleGroupInput) SetTags(v []*Tag) *CreateRuleGroupInput {
 11881  	s.Tags = v
 11882  	return s
 11883  }
 11884  
 11885  type CreateRuleGroupOutput struct {
 11886  	_ struct{} `type:"structure"`
 11887  
 11888  	// The ChangeToken that you used to submit the CreateRuleGroup request. You
 11889  	// can also use this value to query the status of the request. For more information,
 11890  	// see GetChangeTokenStatus.
 11891  	ChangeToken *string `min:"1" type:"string"`
 11892  
 11893  	// An empty RuleGroup.
 11894  	RuleGroup *RuleGroup `type:"structure"`
 11895  }
 11896  
 11897  // String returns the string representation.
 11898  //
 11899  // API parameter values that are decorated as "sensitive" in the API will not
 11900  // be included in the string output. The member name will be present, but the
 11901  // value will be replaced with "sensitive".
 11902  func (s CreateRuleGroupOutput) String() string {
 11903  	return awsutil.Prettify(s)
 11904  }
 11905  
 11906  // GoString returns the string representation.
 11907  //
 11908  // API parameter values that are decorated as "sensitive" in the API will not
 11909  // be included in the string output. The member name will be present, but the
 11910  // value will be replaced with "sensitive".
 11911  func (s CreateRuleGroupOutput) GoString() string {
 11912  	return s.String()
 11913  }
 11914  
 11915  // SetChangeToken sets the ChangeToken field's value.
 11916  func (s *CreateRuleGroupOutput) SetChangeToken(v string) *CreateRuleGroupOutput {
 11917  	s.ChangeToken = &v
 11918  	return s
 11919  }
 11920  
 11921  // SetRuleGroup sets the RuleGroup field's value.
 11922  func (s *CreateRuleGroupOutput) SetRuleGroup(v *RuleGroup) *CreateRuleGroupOutput {
 11923  	s.RuleGroup = v
 11924  	return s
 11925  }
 11926  
 11927  type CreateRuleInput struct {
 11928  	_ struct{} `type:"structure"`
 11929  
 11930  	// The value returned by the most recent call to GetChangeToken.
 11931  	//
 11932  	// ChangeToken is a required field
 11933  	ChangeToken *string `min:"1" type:"string" required:"true"`
 11934  
 11935  	// A friendly name or description for the metrics for this Rule. The name can
 11936  	// contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length
 11937  	// 128 and minimum length one. It can't contain whitespace or metric names reserved
 11938  	// for AWS WAF, including "All" and "Default_Action." You can't change the name
 11939  	// of the metric after you create the Rule.
 11940  	//
 11941  	// MetricName is a required field
 11942  	MetricName *string `min:"1" type:"string" required:"true"`
 11943  
 11944  	// A friendly name or description of the Rule. You can't change the name of
 11945  	// a Rule after you create it.
 11946  	//
 11947  	// Name is a required field
 11948  	Name *string `min:"1" type:"string" required:"true"`
 11949  
 11950  	Tags []*Tag `min:"1" type:"list"`
 11951  }
 11952  
 11953  // String returns the string representation.
 11954  //
 11955  // API parameter values that are decorated as "sensitive" in the API will not
 11956  // be included in the string output. The member name will be present, but the
 11957  // value will be replaced with "sensitive".
 11958  func (s CreateRuleInput) String() string {
 11959  	return awsutil.Prettify(s)
 11960  }
 11961  
 11962  // GoString returns the string representation.
 11963  //
 11964  // API parameter values that are decorated as "sensitive" in the API will not
 11965  // be included in the string output. The member name will be present, but the
 11966  // value will be replaced with "sensitive".
 11967  func (s CreateRuleInput) GoString() string {
 11968  	return s.String()
 11969  }
 11970  
 11971  // Validate inspects the fields of the type to determine if they are valid.
 11972  func (s *CreateRuleInput) Validate() error {
 11973  	invalidParams := request.ErrInvalidParams{Context: "CreateRuleInput"}
 11974  	if s.ChangeToken == nil {
 11975  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 11976  	}
 11977  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 11978  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 11979  	}
 11980  	if s.MetricName == nil {
 11981  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 11982  	}
 11983  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 11984  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 11985  	}
 11986  	if s.Name == nil {
 11987  		invalidParams.Add(request.NewErrParamRequired("Name"))
 11988  	}
 11989  	if s.Name != nil && len(*s.Name) < 1 {
 11990  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 11991  	}
 11992  	if s.Tags != nil && len(s.Tags) < 1 {
 11993  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
 11994  	}
 11995  	if s.Tags != nil {
 11996  		for i, v := range s.Tags {
 11997  			if v == nil {
 11998  				continue
 11999  			}
 12000  			if err := v.Validate(); err != nil {
 12001  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 12002  			}
 12003  		}
 12004  	}
 12005  
 12006  	if invalidParams.Len() > 0 {
 12007  		return invalidParams
 12008  	}
 12009  	return nil
 12010  }
 12011  
 12012  // SetChangeToken sets the ChangeToken field's value.
 12013  func (s *CreateRuleInput) SetChangeToken(v string) *CreateRuleInput {
 12014  	s.ChangeToken = &v
 12015  	return s
 12016  }
 12017  
 12018  // SetMetricName sets the MetricName field's value.
 12019  func (s *CreateRuleInput) SetMetricName(v string) *CreateRuleInput {
 12020  	s.MetricName = &v
 12021  	return s
 12022  }
 12023  
 12024  // SetName sets the Name field's value.
 12025  func (s *CreateRuleInput) SetName(v string) *CreateRuleInput {
 12026  	s.Name = &v
 12027  	return s
 12028  }
 12029  
 12030  // SetTags sets the Tags field's value.
 12031  func (s *CreateRuleInput) SetTags(v []*Tag) *CreateRuleInput {
 12032  	s.Tags = v
 12033  	return s
 12034  }
 12035  
 12036  type CreateRuleOutput struct {
 12037  	_ struct{} `type:"structure"`
 12038  
 12039  	// The ChangeToken that you used to submit the CreateRule request. You can also
 12040  	// use this value to query the status of the request. For more information,
 12041  	// see GetChangeTokenStatus.
 12042  	ChangeToken *string `min:"1" type:"string"`
 12043  
 12044  	// The Rule returned in the CreateRule response.
 12045  	Rule *Rule `type:"structure"`
 12046  }
 12047  
 12048  // String returns the string representation.
 12049  //
 12050  // API parameter values that are decorated as "sensitive" in the API will not
 12051  // be included in the string output. The member name will be present, but the
 12052  // value will be replaced with "sensitive".
 12053  func (s CreateRuleOutput) String() string {
 12054  	return awsutil.Prettify(s)
 12055  }
 12056  
 12057  // GoString returns the string representation.
 12058  //
 12059  // API parameter values that are decorated as "sensitive" in the API will not
 12060  // be included in the string output. The member name will be present, but the
 12061  // value will be replaced with "sensitive".
 12062  func (s CreateRuleOutput) GoString() string {
 12063  	return s.String()
 12064  }
 12065  
 12066  // SetChangeToken sets the ChangeToken field's value.
 12067  func (s *CreateRuleOutput) SetChangeToken(v string) *CreateRuleOutput {
 12068  	s.ChangeToken = &v
 12069  	return s
 12070  }
 12071  
 12072  // SetRule sets the Rule field's value.
 12073  func (s *CreateRuleOutput) SetRule(v *Rule) *CreateRuleOutput {
 12074  	s.Rule = v
 12075  	return s
 12076  }
 12077  
 12078  type CreateSizeConstraintSetInput struct {
 12079  	_ struct{} `type:"structure"`
 12080  
 12081  	// The value returned by the most recent call to GetChangeToken.
 12082  	//
 12083  	// ChangeToken is a required field
 12084  	ChangeToken *string `min:"1" type:"string" required:"true"`
 12085  
 12086  	// A friendly name or description of the SizeConstraintSet. You can't change
 12087  	// Name after you create a SizeConstraintSet.
 12088  	//
 12089  	// Name is a required field
 12090  	Name *string `min:"1" type:"string" required:"true"`
 12091  }
 12092  
 12093  // String returns the string representation.
 12094  //
 12095  // API parameter values that are decorated as "sensitive" in the API will not
 12096  // be included in the string output. The member name will be present, but the
 12097  // value will be replaced with "sensitive".
 12098  func (s CreateSizeConstraintSetInput) String() string {
 12099  	return awsutil.Prettify(s)
 12100  }
 12101  
 12102  // GoString returns the string representation.
 12103  //
 12104  // API parameter values that are decorated as "sensitive" in the API will not
 12105  // be included in the string output. The member name will be present, but the
 12106  // value will be replaced with "sensitive".
 12107  func (s CreateSizeConstraintSetInput) GoString() string {
 12108  	return s.String()
 12109  }
 12110  
 12111  // Validate inspects the fields of the type to determine if they are valid.
 12112  func (s *CreateSizeConstraintSetInput) Validate() error {
 12113  	invalidParams := request.ErrInvalidParams{Context: "CreateSizeConstraintSetInput"}
 12114  	if s.ChangeToken == nil {
 12115  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 12116  	}
 12117  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 12118  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 12119  	}
 12120  	if s.Name == nil {
 12121  		invalidParams.Add(request.NewErrParamRequired("Name"))
 12122  	}
 12123  	if s.Name != nil && len(*s.Name) < 1 {
 12124  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 12125  	}
 12126  
 12127  	if invalidParams.Len() > 0 {
 12128  		return invalidParams
 12129  	}
 12130  	return nil
 12131  }
 12132  
 12133  // SetChangeToken sets the ChangeToken field's value.
 12134  func (s *CreateSizeConstraintSetInput) SetChangeToken(v string) *CreateSizeConstraintSetInput {
 12135  	s.ChangeToken = &v
 12136  	return s
 12137  }
 12138  
 12139  // SetName sets the Name field's value.
 12140  func (s *CreateSizeConstraintSetInput) SetName(v string) *CreateSizeConstraintSetInput {
 12141  	s.Name = &v
 12142  	return s
 12143  }
 12144  
 12145  type CreateSizeConstraintSetOutput struct {
 12146  	_ struct{} `type:"structure"`
 12147  
 12148  	// The ChangeToken that you used to submit the CreateSizeConstraintSet request.
 12149  	// You can also use this value to query the status of the request. For more
 12150  	// information, see GetChangeTokenStatus.
 12151  	ChangeToken *string `min:"1" type:"string"`
 12152  
 12153  	// A SizeConstraintSet that contains no SizeConstraint objects.
 12154  	SizeConstraintSet *SizeConstraintSet `type:"structure"`
 12155  }
 12156  
 12157  // String returns the string representation.
 12158  //
 12159  // API parameter values that are decorated as "sensitive" in the API will not
 12160  // be included in the string output. The member name will be present, but the
 12161  // value will be replaced with "sensitive".
 12162  func (s CreateSizeConstraintSetOutput) String() string {
 12163  	return awsutil.Prettify(s)
 12164  }
 12165  
 12166  // GoString returns the string representation.
 12167  //
 12168  // API parameter values that are decorated as "sensitive" in the API will not
 12169  // be included in the string output. The member name will be present, but the
 12170  // value will be replaced with "sensitive".
 12171  func (s CreateSizeConstraintSetOutput) GoString() string {
 12172  	return s.String()
 12173  }
 12174  
 12175  // SetChangeToken sets the ChangeToken field's value.
 12176  func (s *CreateSizeConstraintSetOutput) SetChangeToken(v string) *CreateSizeConstraintSetOutput {
 12177  	s.ChangeToken = &v
 12178  	return s
 12179  }
 12180  
 12181  // SetSizeConstraintSet sets the SizeConstraintSet field's value.
 12182  func (s *CreateSizeConstraintSetOutput) SetSizeConstraintSet(v *SizeConstraintSet) *CreateSizeConstraintSetOutput {
 12183  	s.SizeConstraintSet = v
 12184  	return s
 12185  }
 12186  
 12187  // A request to create a SqlInjectionMatchSet.
 12188  type CreateSqlInjectionMatchSetInput struct {
 12189  	_ struct{} `type:"structure"`
 12190  
 12191  	// The value returned by the most recent call to GetChangeToken.
 12192  	//
 12193  	// ChangeToken is a required field
 12194  	ChangeToken *string `min:"1" type:"string" required:"true"`
 12195  
 12196  	// A friendly name or description for the SqlInjectionMatchSet that you're creating.
 12197  	// You can't change Name after you create the SqlInjectionMatchSet.
 12198  	//
 12199  	// Name is a required field
 12200  	Name *string `min:"1" type:"string" required:"true"`
 12201  }
 12202  
 12203  // String returns the string representation.
 12204  //
 12205  // API parameter values that are decorated as "sensitive" in the API will not
 12206  // be included in the string output. The member name will be present, but the
 12207  // value will be replaced with "sensitive".
 12208  func (s CreateSqlInjectionMatchSetInput) String() string {
 12209  	return awsutil.Prettify(s)
 12210  }
 12211  
 12212  // GoString returns the string representation.
 12213  //
 12214  // API parameter values that are decorated as "sensitive" in the API will not
 12215  // be included in the string output. The member name will be present, but the
 12216  // value will be replaced with "sensitive".
 12217  func (s CreateSqlInjectionMatchSetInput) GoString() string {
 12218  	return s.String()
 12219  }
 12220  
 12221  // Validate inspects the fields of the type to determine if they are valid.
 12222  func (s *CreateSqlInjectionMatchSetInput) Validate() error {
 12223  	invalidParams := request.ErrInvalidParams{Context: "CreateSqlInjectionMatchSetInput"}
 12224  	if s.ChangeToken == nil {
 12225  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 12226  	}
 12227  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 12228  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 12229  	}
 12230  	if s.Name == nil {
 12231  		invalidParams.Add(request.NewErrParamRequired("Name"))
 12232  	}
 12233  	if s.Name != nil && len(*s.Name) < 1 {
 12234  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 12235  	}
 12236  
 12237  	if invalidParams.Len() > 0 {
 12238  		return invalidParams
 12239  	}
 12240  	return nil
 12241  }
 12242  
 12243  // SetChangeToken sets the ChangeToken field's value.
 12244  func (s *CreateSqlInjectionMatchSetInput) SetChangeToken(v string) *CreateSqlInjectionMatchSetInput {
 12245  	s.ChangeToken = &v
 12246  	return s
 12247  }
 12248  
 12249  // SetName sets the Name field's value.
 12250  func (s *CreateSqlInjectionMatchSetInput) SetName(v string) *CreateSqlInjectionMatchSetInput {
 12251  	s.Name = &v
 12252  	return s
 12253  }
 12254  
 12255  // The response to a CreateSqlInjectionMatchSet request.
 12256  type CreateSqlInjectionMatchSetOutput struct {
 12257  	_ struct{} `type:"structure"`
 12258  
 12259  	// The ChangeToken that you used to submit the CreateSqlInjectionMatchSet request.
 12260  	// You can also use this value to query the status of the request. For more
 12261  	// information, see GetChangeTokenStatus.
 12262  	ChangeToken *string `min:"1" type:"string"`
 12263  
 12264  	// A SqlInjectionMatchSet.
 12265  	SqlInjectionMatchSet *SqlInjectionMatchSet `type:"structure"`
 12266  }
 12267  
 12268  // String returns the string representation.
 12269  //
 12270  // API parameter values that are decorated as "sensitive" in the API will not
 12271  // be included in the string output. The member name will be present, but the
 12272  // value will be replaced with "sensitive".
 12273  func (s CreateSqlInjectionMatchSetOutput) String() string {
 12274  	return awsutil.Prettify(s)
 12275  }
 12276  
 12277  // GoString returns the string representation.
 12278  //
 12279  // API parameter values that are decorated as "sensitive" in the API will not
 12280  // be included in the string output. The member name will be present, but the
 12281  // value will be replaced with "sensitive".
 12282  func (s CreateSqlInjectionMatchSetOutput) GoString() string {
 12283  	return s.String()
 12284  }
 12285  
 12286  // SetChangeToken sets the ChangeToken field's value.
 12287  func (s *CreateSqlInjectionMatchSetOutput) SetChangeToken(v string) *CreateSqlInjectionMatchSetOutput {
 12288  	s.ChangeToken = &v
 12289  	return s
 12290  }
 12291  
 12292  // SetSqlInjectionMatchSet sets the SqlInjectionMatchSet field's value.
 12293  func (s *CreateSqlInjectionMatchSetOutput) SetSqlInjectionMatchSet(v *SqlInjectionMatchSet) *CreateSqlInjectionMatchSetOutput {
 12294  	s.SqlInjectionMatchSet = v
 12295  	return s
 12296  }
 12297  
 12298  type CreateWebACLInput struct {
 12299  	_ struct{} `type:"structure"`
 12300  
 12301  	// The value returned by the most recent call to GetChangeToken.
 12302  	//
 12303  	// ChangeToken is a required field
 12304  	ChangeToken *string `min:"1" type:"string" required:"true"`
 12305  
 12306  	// The action that you want AWS WAF to take when a request doesn't match the
 12307  	// criteria specified in any of the Rule objects that are associated with the
 12308  	// WebACL.
 12309  	//
 12310  	// DefaultAction is a required field
 12311  	DefaultAction *WafAction `type:"structure" required:"true"`
 12312  
 12313  	// A friendly name or description for the metrics for this WebACL.The name can
 12314  	// contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length
 12315  	// 128 and minimum length one. It can't contain whitespace or metric names reserved
 12316  	// for AWS WAF, including "All" and "Default_Action." You can't change MetricName
 12317  	// after you create the WebACL.
 12318  	//
 12319  	// MetricName is a required field
 12320  	MetricName *string `min:"1" type:"string" required:"true"`
 12321  
 12322  	// A friendly name or description of the WebACL. You can't change Name after
 12323  	// you create the WebACL.
 12324  	//
 12325  	// Name is a required field
 12326  	Name *string `min:"1" type:"string" required:"true"`
 12327  
 12328  	Tags []*Tag `min:"1" type:"list"`
 12329  }
 12330  
 12331  // String returns the string representation.
 12332  //
 12333  // API parameter values that are decorated as "sensitive" in the API will not
 12334  // be included in the string output. The member name will be present, but the
 12335  // value will be replaced with "sensitive".
 12336  func (s CreateWebACLInput) String() string {
 12337  	return awsutil.Prettify(s)
 12338  }
 12339  
 12340  // GoString returns the string representation.
 12341  //
 12342  // API parameter values that are decorated as "sensitive" in the API will not
 12343  // be included in the string output. The member name will be present, but the
 12344  // value will be replaced with "sensitive".
 12345  func (s CreateWebACLInput) GoString() string {
 12346  	return s.String()
 12347  }
 12348  
 12349  // Validate inspects the fields of the type to determine if they are valid.
 12350  func (s *CreateWebACLInput) Validate() error {
 12351  	invalidParams := request.ErrInvalidParams{Context: "CreateWebACLInput"}
 12352  	if s.ChangeToken == nil {
 12353  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 12354  	}
 12355  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 12356  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 12357  	}
 12358  	if s.DefaultAction == nil {
 12359  		invalidParams.Add(request.NewErrParamRequired("DefaultAction"))
 12360  	}
 12361  	if s.MetricName == nil {
 12362  		invalidParams.Add(request.NewErrParamRequired("MetricName"))
 12363  	}
 12364  	if s.MetricName != nil && len(*s.MetricName) < 1 {
 12365  		invalidParams.Add(request.NewErrParamMinLen("MetricName", 1))
 12366  	}
 12367  	if s.Name == nil {
 12368  		invalidParams.Add(request.NewErrParamRequired("Name"))
 12369  	}
 12370  	if s.Name != nil && len(*s.Name) < 1 {
 12371  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 12372  	}
 12373  	if s.Tags != nil && len(s.Tags) < 1 {
 12374  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
 12375  	}
 12376  	if s.DefaultAction != nil {
 12377  		if err := s.DefaultAction.Validate(); err != nil {
 12378  			invalidParams.AddNested("DefaultAction", err.(request.ErrInvalidParams))
 12379  		}
 12380  	}
 12381  	if s.Tags != nil {
 12382  		for i, v := range s.Tags {
 12383  			if v == nil {
 12384  				continue
 12385  			}
 12386  			if err := v.Validate(); err != nil {
 12387  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 12388  			}
 12389  		}
 12390  	}
 12391  
 12392  	if invalidParams.Len() > 0 {
 12393  		return invalidParams
 12394  	}
 12395  	return nil
 12396  }
 12397  
 12398  // SetChangeToken sets the ChangeToken field's value.
 12399  func (s *CreateWebACLInput) SetChangeToken(v string) *CreateWebACLInput {
 12400  	s.ChangeToken = &v
 12401  	return s
 12402  }
 12403  
 12404  // SetDefaultAction sets the DefaultAction field's value.
 12405  func (s *CreateWebACLInput) SetDefaultAction(v *WafAction) *CreateWebACLInput {
 12406  	s.DefaultAction = v
 12407  	return s
 12408  }
 12409  
 12410  // SetMetricName sets the MetricName field's value.
 12411  func (s *CreateWebACLInput) SetMetricName(v string) *CreateWebACLInput {
 12412  	s.MetricName = &v
 12413  	return s
 12414  }
 12415  
 12416  // SetName sets the Name field's value.
 12417  func (s *CreateWebACLInput) SetName(v string) *CreateWebACLInput {
 12418  	s.Name = &v
 12419  	return s
 12420  }
 12421  
 12422  // SetTags sets the Tags field's value.
 12423  func (s *CreateWebACLInput) SetTags(v []*Tag) *CreateWebACLInput {
 12424  	s.Tags = v
 12425  	return s
 12426  }
 12427  
 12428  type CreateWebACLMigrationStackInput struct {
 12429  	_ struct{} `type:"structure"`
 12430  
 12431  	// Indicates whether to exclude entities that can't be migrated or to stop the
 12432  	// migration. Set this to true to ignore unsupported entities in the web ACL
 12433  	// during the migration. Otherwise, if AWS WAF encounters unsupported entities,
 12434  	// it stops the process and throws an exception.
 12435  	//
 12436  	// IgnoreUnsupportedType is a required field
 12437  	IgnoreUnsupportedType *bool `type:"boolean" required:"true"`
 12438  
 12439  	// The name of the Amazon S3 bucket to store the CloudFormation template in.
 12440  	// The S3 bucket must be configured as follows for the migration:
 12441  	//
 12442  	//    * The bucket name must start with aws-waf-migration-. For example, aws-waf-migration-my-web-acl.
 12443  	//
 12444  	//    * The bucket must be in the Region where you are deploying the template.
 12445  	//    For example, for a web ACL in us-west-2, you must use an Amazon S3 bucket
 12446  	//    in us-west-2 and you must deploy the template stack to us-west-2.
 12447  	//
 12448  	//    * The bucket policies must permit the migration process to write data.
 12449  	//    For listings of the bucket policies, see the Examples section.
 12450  	//
 12451  	// S3BucketName is a required field
 12452  	S3BucketName *string `min:"3" type:"string" required:"true"`
 12453  
 12454  	// The UUID of the WAF Classic web ACL that you want to migrate to WAF v2.
 12455  	//
 12456  	// WebACLId is a required field
 12457  	WebACLId *string `min:"1" type:"string" required:"true"`
 12458  }
 12459  
 12460  // String returns the string representation.
 12461  //
 12462  // API parameter values that are decorated as "sensitive" in the API will not
 12463  // be included in the string output. The member name will be present, but the
 12464  // value will be replaced with "sensitive".
 12465  func (s CreateWebACLMigrationStackInput) String() string {
 12466  	return awsutil.Prettify(s)
 12467  }
 12468  
 12469  // GoString returns the string representation.
 12470  //
 12471  // API parameter values that are decorated as "sensitive" in the API will not
 12472  // be included in the string output. The member name will be present, but the
 12473  // value will be replaced with "sensitive".
 12474  func (s CreateWebACLMigrationStackInput) GoString() string {
 12475  	return s.String()
 12476  }
 12477  
 12478  // Validate inspects the fields of the type to determine if they are valid.
 12479  func (s *CreateWebACLMigrationStackInput) Validate() error {
 12480  	invalidParams := request.ErrInvalidParams{Context: "CreateWebACLMigrationStackInput"}
 12481  	if s.IgnoreUnsupportedType == nil {
 12482  		invalidParams.Add(request.NewErrParamRequired("IgnoreUnsupportedType"))
 12483  	}
 12484  	if s.S3BucketName == nil {
 12485  		invalidParams.Add(request.NewErrParamRequired("S3BucketName"))
 12486  	}
 12487  	if s.S3BucketName != nil && len(*s.S3BucketName) < 3 {
 12488  		invalidParams.Add(request.NewErrParamMinLen("S3BucketName", 3))
 12489  	}
 12490  	if s.WebACLId == nil {
 12491  		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
 12492  	}
 12493  	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
 12494  		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
 12495  	}
 12496  
 12497  	if invalidParams.Len() > 0 {
 12498  		return invalidParams
 12499  	}
 12500  	return nil
 12501  }
 12502  
 12503  // SetIgnoreUnsupportedType sets the IgnoreUnsupportedType field's value.
 12504  func (s *CreateWebACLMigrationStackInput) SetIgnoreUnsupportedType(v bool) *CreateWebACLMigrationStackInput {
 12505  	s.IgnoreUnsupportedType = &v
 12506  	return s
 12507  }
 12508  
 12509  // SetS3BucketName sets the S3BucketName field's value.
 12510  func (s *CreateWebACLMigrationStackInput) SetS3BucketName(v string) *CreateWebACLMigrationStackInput {
 12511  	s.S3BucketName = &v
 12512  	return s
 12513  }
 12514  
 12515  // SetWebACLId sets the WebACLId field's value.
 12516  func (s *CreateWebACLMigrationStackInput) SetWebACLId(v string) *CreateWebACLMigrationStackInput {
 12517  	s.WebACLId = &v
 12518  	return s
 12519  }
 12520  
 12521  type CreateWebACLMigrationStackOutput struct {
 12522  	_ struct{} `type:"structure"`
 12523  
 12524  	// The URL of the template created in Amazon S3.
 12525  	//
 12526  	// S3ObjectUrl is a required field
 12527  	S3ObjectUrl *string `min:"1" type:"string" required:"true"`
 12528  }
 12529  
 12530  // String returns the string representation.
 12531  //
 12532  // API parameter values that are decorated as "sensitive" in the API will not
 12533  // be included in the string output. The member name will be present, but the
 12534  // value will be replaced with "sensitive".
 12535  func (s CreateWebACLMigrationStackOutput) String() string {
 12536  	return awsutil.Prettify(s)
 12537  }
 12538  
 12539  // GoString returns the string representation.
 12540  //
 12541  // API parameter values that are decorated as "sensitive" in the API will not
 12542  // be included in the string output. The member name will be present, but the
 12543  // value will be replaced with "sensitive".
 12544  func (s CreateWebACLMigrationStackOutput) GoString() string {
 12545  	return s.String()
 12546  }
 12547  
 12548  // SetS3ObjectUrl sets the S3ObjectUrl field's value.
 12549  func (s *CreateWebACLMigrationStackOutput) SetS3ObjectUrl(v string) *CreateWebACLMigrationStackOutput {
 12550  	s.S3ObjectUrl = &v
 12551  	return s
 12552  }
 12553  
 12554  type CreateWebACLOutput struct {
 12555  	_ struct{} `type:"structure"`
 12556  
 12557  	// The ChangeToken that you used to submit the CreateWebACL request. You can
 12558  	// also use this value to query the status of the request. For more information,
 12559  	// see GetChangeTokenStatus.
 12560  	ChangeToken *string `min:"1" type:"string"`
 12561  
 12562  	// The WebACL returned in the CreateWebACL response.
 12563  	WebACL *WebACL `type:"structure"`
 12564  }
 12565  
 12566  // String returns the string representation.
 12567  //
 12568  // API parameter values that are decorated as "sensitive" in the API will not
 12569  // be included in the string output. The member name will be present, but the
 12570  // value will be replaced with "sensitive".
 12571  func (s CreateWebACLOutput) String() string {
 12572  	return awsutil.Prettify(s)
 12573  }
 12574  
 12575  // GoString returns the string representation.
 12576  //
 12577  // API parameter values that are decorated as "sensitive" in the API will not
 12578  // be included in the string output. The member name will be present, but the
 12579  // value will be replaced with "sensitive".
 12580  func (s CreateWebACLOutput) GoString() string {
 12581  	return s.String()
 12582  }
 12583  
 12584  // SetChangeToken sets the ChangeToken field's value.
 12585  func (s *CreateWebACLOutput) SetChangeToken(v string) *CreateWebACLOutput {
 12586  	s.ChangeToken = &v
 12587  	return s
 12588  }
 12589  
 12590  // SetWebACL sets the WebACL field's value.
 12591  func (s *CreateWebACLOutput) SetWebACL(v *WebACL) *CreateWebACLOutput {
 12592  	s.WebACL = v
 12593  	return s
 12594  }
 12595  
 12596  // A request to create an XssMatchSet.
 12597  type CreateXssMatchSetInput struct {
 12598  	_ struct{} `type:"structure"`
 12599  
 12600  	// The value returned by the most recent call to GetChangeToken.
 12601  	//
 12602  	// ChangeToken is a required field
 12603  	ChangeToken *string `min:"1" type:"string" required:"true"`
 12604  
 12605  	// A friendly name or description for the XssMatchSet that you're creating.
 12606  	// You can't change Name after you create the XssMatchSet.
 12607  	//
 12608  	// Name is a required field
 12609  	Name *string `min:"1" type:"string" required:"true"`
 12610  }
 12611  
 12612  // String returns the string representation.
 12613  //
 12614  // API parameter values that are decorated as "sensitive" in the API will not
 12615  // be included in the string output. The member name will be present, but the
 12616  // value will be replaced with "sensitive".
 12617  func (s CreateXssMatchSetInput) String() string {
 12618  	return awsutil.Prettify(s)
 12619  }
 12620  
 12621  // GoString returns the string representation.
 12622  //
 12623  // API parameter values that are decorated as "sensitive" in the API will not
 12624  // be included in the string output. The member name will be present, but the
 12625  // value will be replaced with "sensitive".
 12626  func (s CreateXssMatchSetInput) GoString() string {
 12627  	return s.String()
 12628  }
 12629  
 12630  // Validate inspects the fields of the type to determine if they are valid.
 12631  func (s *CreateXssMatchSetInput) Validate() error {
 12632  	invalidParams := request.ErrInvalidParams{Context: "CreateXssMatchSetInput"}
 12633  	if s.ChangeToken == nil {
 12634  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 12635  	}
 12636  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 12637  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 12638  	}
 12639  	if s.Name == nil {
 12640  		invalidParams.Add(request.NewErrParamRequired("Name"))
 12641  	}
 12642  	if s.Name != nil && len(*s.Name) < 1 {
 12643  		invalidParams.Add(request.NewErrParamMinLen("Name", 1))
 12644  	}
 12645  
 12646  	if invalidParams.Len() > 0 {
 12647  		return invalidParams
 12648  	}
 12649  	return nil
 12650  }
 12651  
 12652  // SetChangeToken sets the ChangeToken field's value.
 12653  func (s *CreateXssMatchSetInput) SetChangeToken(v string) *CreateXssMatchSetInput {
 12654  	s.ChangeToken = &v
 12655  	return s
 12656  }
 12657  
 12658  // SetName sets the Name field's value.
 12659  func (s *CreateXssMatchSetInput) SetName(v string) *CreateXssMatchSetInput {
 12660  	s.Name = &v
 12661  	return s
 12662  }
 12663  
 12664  // The response to a CreateXssMatchSet request.
 12665  type CreateXssMatchSetOutput struct {
 12666  	_ struct{} `type:"structure"`
 12667  
 12668  	// The ChangeToken that you used to submit the CreateXssMatchSet request. You
 12669  	// can also use this value to query the status of the request. For more information,
 12670  	// see GetChangeTokenStatus.
 12671  	ChangeToken *string `min:"1" type:"string"`
 12672  
 12673  	// An XssMatchSet.
 12674  	XssMatchSet *XssMatchSet `type:"structure"`
 12675  }
 12676  
 12677  // String returns the string representation.
 12678  //
 12679  // API parameter values that are decorated as "sensitive" in the API will not
 12680  // be included in the string output. The member name will be present, but the
 12681  // value will be replaced with "sensitive".
 12682  func (s CreateXssMatchSetOutput) String() string {
 12683  	return awsutil.Prettify(s)
 12684  }
 12685  
 12686  // GoString returns the string representation.
 12687  //
 12688  // API parameter values that are decorated as "sensitive" in the API will not
 12689  // be included in the string output. The member name will be present, but the
 12690  // value will be replaced with "sensitive".
 12691  func (s CreateXssMatchSetOutput) GoString() string {
 12692  	return s.String()
 12693  }
 12694  
 12695  // SetChangeToken sets the ChangeToken field's value.
 12696  func (s *CreateXssMatchSetOutput) SetChangeToken(v string) *CreateXssMatchSetOutput {
 12697  	s.ChangeToken = &v
 12698  	return s
 12699  }
 12700  
 12701  // SetXssMatchSet sets the XssMatchSet field's value.
 12702  func (s *CreateXssMatchSetOutput) SetXssMatchSet(v *XssMatchSet) *CreateXssMatchSetOutput {
 12703  	s.XssMatchSet = v
 12704  	return s
 12705  }
 12706  
 12707  type DeleteByteMatchSetInput struct {
 12708  	_ struct{} `type:"structure"`
 12709  
 12710  	// The ByteMatchSetId of the ByteMatchSet that you want to delete. ByteMatchSetId
 12711  	// is returned by CreateByteMatchSet and by ListByteMatchSets.
 12712  	//
 12713  	// ByteMatchSetId is a required field
 12714  	ByteMatchSetId *string `min:"1" type:"string" required:"true"`
 12715  
 12716  	// The value returned by the most recent call to GetChangeToken.
 12717  	//
 12718  	// ChangeToken is a required field
 12719  	ChangeToken *string `min:"1" type:"string" required:"true"`
 12720  }
 12721  
 12722  // String returns the string representation.
 12723  //
 12724  // API parameter values that are decorated as "sensitive" in the API will not
 12725  // be included in the string output. The member name will be present, but the
 12726  // value will be replaced with "sensitive".
 12727  func (s DeleteByteMatchSetInput) String() string {
 12728  	return awsutil.Prettify(s)
 12729  }
 12730  
 12731  // GoString returns the string representation.
 12732  //
 12733  // API parameter values that are decorated as "sensitive" in the API will not
 12734  // be included in the string output. The member name will be present, but the
 12735  // value will be replaced with "sensitive".
 12736  func (s DeleteByteMatchSetInput) GoString() string {
 12737  	return s.String()
 12738  }
 12739  
 12740  // Validate inspects the fields of the type to determine if they are valid.
 12741  func (s *DeleteByteMatchSetInput) Validate() error {
 12742  	invalidParams := request.ErrInvalidParams{Context: "DeleteByteMatchSetInput"}
 12743  	if s.ByteMatchSetId == nil {
 12744  		invalidParams.Add(request.NewErrParamRequired("ByteMatchSetId"))
 12745  	}
 12746  	if s.ByteMatchSetId != nil && len(*s.ByteMatchSetId) < 1 {
 12747  		invalidParams.Add(request.NewErrParamMinLen("ByteMatchSetId", 1))
 12748  	}
 12749  	if s.ChangeToken == nil {
 12750  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 12751  	}
 12752  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 12753  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 12754  	}
 12755  
 12756  	if invalidParams.Len() > 0 {
 12757  		return invalidParams
 12758  	}
 12759  	return nil
 12760  }
 12761  
 12762  // SetByteMatchSetId sets the ByteMatchSetId field's value.
 12763  func (s *DeleteByteMatchSetInput) SetByteMatchSetId(v string) *DeleteByteMatchSetInput {
 12764  	s.ByteMatchSetId = &v
 12765  	return s
 12766  }
 12767  
 12768  // SetChangeToken sets the ChangeToken field's value.
 12769  func (s *DeleteByteMatchSetInput) SetChangeToken(v string) *DeleteByteMatchSetInput {
 12770  	s.ChangeToken = &v
 12771  	return s
 12772  }
 12773  
 12774  type DeleteByteMatchSetOutput struct {
 12775  	_ struct{} `type:"structure"`
 12776  
 12777  	// The ChangeToken that you used to submit the DeleteByteMatchSet request. You
 12778  	// can also use this value to query the status of the request. For more information,
 12779  	// see GetChangeTokenStatus.
 12780  	ChangeToken *string `min:"1" type:"string"`
 12781  }
 12782  
 12783  // String returns the string representation.
 12784  //
 12785  // API parameter values that are decorated as "sensitive" in the API will not
 12786  // be included in the string output. The member name will be present, but the
 12787  // value will be replaced with "sensitive".
 12788  func (s DeleteByteMatchSetOutput) String() string {
 12789  	return awsutil.Prettify(s)
 12790  }
 12791  
 12792  // GoString returns the string representation.
 12793  //
 12794  // API parameter values that are decorated as "sensitive" in the API will not
 12795  // be included in the string output. The member name will be present, but the
 12796  // value will be replaced with "sensitive".
 12797  func (s DeleteByteMatchSetOutput) GoString() string {
 12798  	return s.String()
 12799  }
 12800  
 12801  // SetChangeToken sets the ChangeToken field's value.
 12802  func (s *DeleteByteMatchSetOutput) SetChangeToken(v string) *DeleteByteMatchSetOutput {
 12803  	s.ChangeToken = &v
 12804  	return s
 12805  }
 12806  
 12807  type DeleteGeoMatchSetInput struct {
 12808  	_ struct{} `type:"structure"`
 12809  
 12810  	// The value returned by the most recent call to GetChangeToken.
 12811  	//
 12812  	// ChangeToken is a required field
 12813  	ChangeToken *string `min:"1" type:"string" required:"true"`
 12814  
 12815  	// The GeoMatchSetID of the GeoMatchSet that you want to delete. GeoMatchSetId
 12816  	// is returned by CreateGeoMatchSet and by ListGeoMatchSets.
 12817  	//
 12818  	// GeoMatchSetId is a required field
 12819  	GeoMatchSetId *string `min:"1" type:"string" required:"true"`
 12820  }
 12821  
 12822  // String returns the string representation.
 12823  //
 12824  // API parameter values that are decorated as "sensitive" in the API will not
 12825  // be included in the string output. The member name will be present, but the
 12826  // value will be replaced with "sensitive".
 12827  func (s DeleteGeoMatchSetInput) String() string {
 12828  	return awsutil.Prettify(s)
 12829  }
 12830  
 12831  // GoString returns the string representation.
 12832  //
 12833  // API parameter values that are decorated as "sensitive" in the API will not
 12834  // be included in the string output. The member name will be present, but the
 12835  // value will be replaced with "sensitive".
 12836  func (s DeleteGeoMatchSetInput) GoString() string {
 12837  	return s.String()
 12838  }
 12839  
 12840  // Validate inspects the fields of the type to determine if they are valid.
 12841  func (s *DeleteGeoMatchSetInput) Validate() error {
 12842  	invalidParams := request.ErrInvalidParams{Context: "DeleteGeoMatchSetInput"}
 12843  	if s.ChangeToken == nil {
 12844  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 12845  	}
 12846  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 12847  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 12848  	}
 12849  	if s.GeoMatchSetId == nil {
 12850  		invalidParams.Add(request.NewErrParamRequired("GeoMatchSetId"))
 12851  	}
 12852  	if s.GeoMatchSetId != nil && len(*s.GeoMatchSetId) < 1 {
 12853  		invalidParams.Add(request.NewErrParamMinLen("GeoMatchSetId", 1))
 12854  	}
 12855  
 12856  	if invalidParams.Len() > 0 {
 12857  		return invalidParams
 12858  	}
 12859  	return nil
 12860  }
 12861  
 12862  // SetChangeToken sets the ChangeToken field's value.
 12863  func (s *DeleteGeoMatchSetInput) SetChangeToken(v string) *DeleteGeoMatchSetInput {
 12864  	s.ChangeToken = &v
 12865  	return s
 12866  }
 12867  
 12868  // SetGeoMatchSetId sets the GeoMatchSetId field's value.
 12869  func (s *DeleteGeoMatchSetInput) SetGeoMatchSetId(v string) *DeleteGeoMatchSetInput {
 12870  	s.GeoMatchSetId = &v
 12871  	return s
 12872  }
 12873  
 12874  type DeleteGeoMatchSetOutput struct {
 12875  	_ struct{} `type:"structure"`
 12876  
 12877  	// The ChangeToken that you used to submit the DeleteGeoMatchSet request. You
 12878  	// can also use this value to query the status of the request. For more information,
 12879  	// see GetChangeTokenStatus.
 12880  	ChangeToken *string `min:"1" type:"string"`
 12881  }
 12882  
 12883  // String returns the string representation.
 12884  //
 12885  // API parameter values that are decorated as "sensitive" in the API will not
 12886  // be included in the string output. The member name will be present, but the
 12887  // value will be replaced with "sensitive".
 12888  func (s DeleteGeoMatchSetOutput) String() string {
 12889  	return awsutil.Prettify(s)
 12890  }
 12891  
 12892  // GoString returns the string representation.
 12893  //
 12894  // API parameter values that are decorated as "sensitive" in the API will not
 12895  // be included in the string output. The member name will be present, but the
 12896  // value will be replaced with "sensitive".
 12897  func (s DeleteGeoMatchSetOutput) GoString() string {
 12898  	return s.String()
 12899  }
 12900  
 12901  // SetChangeToken sets the ChangeToken field's value.
 12902  func (s *DeleteGeoMatchSetOutput) SetChangeToken(v string) *DeleteGeoMatchSetOutput {
 12903  	s.ChangeToken = &v
 12904  	return s
 12905  }
 12906  
 12907  type DeleteIPSetInput struct {
 12908  	_ struct{} `type:"structure"`
 12909  
 12910  	// The value returned by the most recent call to GetChangeToken.
 12911  	//
 12912  	// ChangeToken is a required field
 12913  	ChangeToken *string `min:"1" type:"string" required:"true"`
 12914  
 12915  	// The IPSetId of the IPSet that you want to delete. IPSetId is returned by
 12916  	// CreateIPSet and by ListIPSets.
 12917  	//
 12918  	// IPSetId is a required field
 12919  	IPSetId *string `min:"1" type:"string" required:"true"`
 12920  }
 12921  
 12922  // String returns the string representation.
 12923  //
 12924  // API parameter values that are decorated as "sensitive" in the API will not
 12925  // be included in the string output. The member name will be present, but the
 12926  // value will be replaced with "sensitive".
 12927  func (s DeleteIPSetInput) String() string {
 12928  	return awsutil.Prettify(s)
 12929  }
 12930  
 12931  // GoString returns the string representation.
 12932  //
 12933  // API parameter values that are decorated as "sensitive" in the API will not
 12934  // be included in the string output. The member name will be present, but the
 12935  // value will be replaced with "sensitive".
 12936  func (s DeleteIPSetInput) GoString() string {
 12937  	return s.String()
 12938  }
 12939  
 12940  // Validate inspects the fields of the type to determine if they are valid.
 12941  func (s *DeleteIPSetInput) Validate() error {
 12942  	invalidParams := request.ErrInvalidParams{Context: "DeleteIPSetInput"}
 12943  	if s.ChangeToken == nil {
 12944  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 12945  	}
 12946  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 12947  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 12948  	}
 12949  	if s.IPSetId == nil {
 12950  		invalidParams.Add(request.NewErrParamRequired("IPSetId"))
 12951  	}
 12952  	if s.IPSetId != nil && len(*s.IPSetId) < 1 {
 12953  		invalidParams.Add(request.NewErrParamMinLen("IPSetId", 1))
 12954  	}
 12955  
 12956  	if invalidParams.Len() > 0 {
 12957  		return invalidParams
 12958  	}
 12959  	return nil
 12960  }
 12961  
 12962  // SetChangeToken sets the ChangeToken field's value.
 12963  func (s *DeleteIPSetInput) SetChangeToken(v string) *DeleteIPSetInput {
 12964  	s.ChangeToken = &v
 12965  	return s
 12966  }
 12967  
 12968  // SetIPSetId sets the IPSetId field's value.
 12969  func (s *DeleteIPSetInput) SetIPSetId(v string) *DeleteIPSetInput {
 12970  	s.IPSetId = &v
 12971  	return s
 12972  }
 12973  
 12974  type DeleteIPSetOutput struct {
 12975  	_ struct{} `type:"structure"`
 12976  
 12977  	// The ChangeToken that you used to submit the DeleteIPSet request. You can
 12978  	// also use this value to query the status of the request. For more information,
 12979  	// see GetChangeTokenStatus.
 12980  	ChangeToken *string `min:"1" type:"string"`
 12981  }
 12982  
 12983  // String returns the string representation.
 12984  //
 12985  // API parameter values that are decorated as "sensitive" in the API will not
 12986  // be included in the string output. The member name will be present, but the
 12987  // value will be replaced with "sensitive".
 12988  func (s DeleteIPSetOutput) String() string {
 12989  	return awsutil.Prettify(s)
 12990  }
 12991  
 12992  // GoString returns the string representation.
 12993  //
 12994  // API parameter values that are decorated as "sensitive" in the API will not
 12995  // be included in the string output. The member name will be present, but the
 12996  // value will be replaced with "sensitive".
 12997  func (s DeleteIPSetOutput) GoString() string {
 12998  	return s.String()
 12999  }
 13000  
 13001  // SetChangeToken sets the ChangeToken field's value.
 13002  func (s *DeleteIPSetOutput) SetChangeToken(v string) *DeleteIPSetOutput {
 13003  	s.ChangeToken = &v
 13004  	return s
 13005  }
 13006  
 13007  type DeleteLoggingConfigurationInput struct {
 13008  	_ struct{} `type:"structure"`
 13009  
 13010  	// The Amazon Resource Name (ARN) of the web ACL from which you want to delete
 13011  	// the LoggingConfiguration.
 13012  	//
 13013  	// ResourceArn is a required field
 13014  	ResourceArn *string `min:"1" type:"string" required:"true"`
 13015  }
 13016  
 13017  // String returns the string representation.
 13018  //
 13019  // API parameter values that are decorated as "sensitive" in the API will not
 13020  // be included in the string output. The member name will be present, but the
 13021  // value will be replaced with "sensitive".
 13022  func (s DeleteLoggingConfigurationInput) String() string {
 13023  	return awsutil.Prettify(s)
 13024  }
 13025  
 13026  // GoString returns the string representation.
 13027  //
 13028  // API parameter values that are decorated as "sensitive" in the API will not
 13029  // be included in the string output. The member name will be present, but the
 13030  // value will be replaced with "sensitive".
 13031  func (s DeleteLoggingConfigurationInput) GoString() string {
 13032  	return s.String()
 13033  }
 13034  
 13035  // Validate inspects the fields of the type to determine if they are valid.
 13036  func (s *DeleteLoggingConfigurationInput) Validate() error {
 13037  	invalidParams := request.ErrInvalidParams{Context: "DeleteLoggingConfigurationInput"}
 13038  	if s.ResourceArn == nil {
 13039  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 13040  	}
 13041  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 13042  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 13043  	}
 13044  
 13045  	if invalidParams.Len() > 0 {
 13046  		return invalidParams
 13047  	}
 13048  	return nil
 13049  }
 13050  
 13051  // SetResourceArn sets the ResourceArn field's value.
 13052  func (s *DeleteLoggingConfigurationInput) SetResourceArn(v string) *DeleteLoggingConfigurationInput {
 13053  	s.ResourceArn = &v
 13054  	return s
 13055  }
 13056  
 13057  type DeleteLoggingConfigurationOutput struct {
 13058  	_ struct{} `type:"structure"`
 13059  }
 13060  
 13061  // String returns the string representation.
 13062  //
 13063  // API parameter values that are decorated as "sensitive" in the API will not
 13064  // be included in the string output. The member name will be present, but the
 13065  // value will be replaced with "sensitive".
 13066  func (s DeleteLoggingConfigurationOutput) String() string {
 13067  	return awsutil.Prettify(s)
 13068  }
 13069  
 13070  // GoString returns the string representation.
 13071  //
 13072  // API parameter values that are decorated as "sensitive" in the API will not
 13073  // be included in the string output. The member name will be present, but the
 13074  // value will be replaced with "sensitive".
 13075  func (s DeleteLoggingConfigurationOutput) GoString() string {
 13076  	return s.String()
 13077  }
 13078  
 13079  type DeletePermissionPolicyInput struct {
 13080  	_ struct{} `type:"structure"`
 13081  
 13082  	// The Amazon Resource Name (ARN) of the RuleGroup from which you want to delete
 13083  	// the policy.
 13084  	//
 13085  	// The user making the request must be the owner of the RuleGroup.
 13086  	//
 13087  	// ResourceArn is a required field
 13088  	ResourceArn *string `min:"1" type:"string" required:"true"`
 13089  }
 13090  
 13091  // String returns the string representation.
 13092  //
 13093  // API parameter values that are decorated as "sensitive" in the API will not
 13094  // be included in the string output. The member name will be present, but the
 13095  // value will be replaced with "sensitive".
 13096  func (s DeletePermissionPolicyInput) String() string {
 13097  	return awsutil.Prettify(s)
 13098  }
 13099  
 13100  // GoString returns the string representation.
 13101  //
 13102  // API parameter values that are decorated as "sensitive" in the API will not
 13103  // be included in the string output. The member name will be present, but the
 13104  // value will be replaced with "sensitive".
 13105  func (s DeletePermissionPolicyInput) GoString() string {
 13106  	return s.String()
 13107  }
 13108  
 13109  // Validate inspects the fields of the type to determine if they are valid.
 13110  func (s *DeletePermissionPolicyInput) Validate() error {
 13111  	invalidParams := request.ErrInvalidParams{Context: "DeletePermissionPolicyInput"}
 13112  	if s.ResourceArn == nil {
 13113  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 13114  	}
 13115  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 13116  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 13117  	}
 13118  
 13119  	if invalidParams.Len() > 0 {
 13120  		return invalidParams
 13121  	}
 13122  	return nil
 13123  }
 13124  
 13125  // SetResourceArn sets the ResourceArn field's value.
 13126  func (s *DeletePermissionPolicyInput) SetResourceArn(v string) *DeletePermissionPolicyInput {
 13127  	s.ResourceArn = &v
 13128  	return s
 13129  }
 13130  
 13131  type DeletePermissionPolicyOutput struct {
 13132  	_ struct{} `type:"structure"`
 13133  }
 13134  
 13135  // String returns the string representation.
 13136  //
 13137  // API parameter values that are decorated as "sensitive" in the API will not
 13138  // be included in the string output. The member name will be present, but the
 13139  // value will be replaced with "sensitive".
 13140  func (s DeletePermissionPolicyOutput) String() string {
 13141  	return awsutil.Prettify(s)
 13142  }
 13143  
 13144  // GoString returns the string representation.
 13145  //
 13146  // API parameter values that are decorated as "sensitive" in the API will not
 13147  // be included in the string output. The member name will be present, but the
 13148  // value will be replaced with "sensitive".
 13149  func (s DeletePermissionPolicyOutput) GoString() string {
 13150  	return s.String()
 13151  }
 13152  
 13153  type DeleteRateBasedRuleInput struct {
 13154  	_ struct{} `type:"structure"`
 13155  
 13156  	// The value returned by the most recent call to GetChangeToken.
 13157  	//
 13158  	// ChangeToken is a required field
 13159  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13160  
 13161  	// The RuleId of the RateBasedRule that you want to delete. RuleId is returned
 13162  	// by CreateRateBasedRule and by ListRateBasedRules.
 13163  	//
 13164  	// RuleId is a required field
 13165  	RuleId *string `min:"1" type:"string" required:"true"`
 13166  }
 13167  
 13168  // String returns the string representation.
 13169  //
 13170  // API parameter values that are decorated as "sensitive" in the API will not
 13171  // be included in the string output. The member name will be present, but the
 13172  // value will be replaced with "sensitive".
 13173  func (s DeleteRateBasedRuleInput) String() string {
 13174  	return awsutil.Prettify(s)
 13175  }
 13176  
 13177  // GoString returns the string representation.
 13178  //
 13179  // API parameter values that are decorated as "sensitive" in the API will not
 13180  // be included in the string output. The member name will be present, but the
 13181  // value will be replaced with "sensitive".
 13182  func (s DeleteRateBasedRuleInput) GoString() string {
 13183  	return s.String()
 13184  }
 13185  
 13186  // Validate inspects the fields of the type to determine if they are valid.
 13187  func (s *DeleteRateBasedRuleInput) Validate() error {
 13188  	invalidParams := request.ErrInvalidParams{Context: "DeleteRateBasedRuleInput"}
 13189  	if s.ChangeToken == nil {
 13190  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13191  	}
 13192  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13193  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13194  	}
 13195  	if s.RuleId == nil {
 13196  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 13197  	}
 13198  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 13199  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 13200  	}
 13201  
 13202  	if invalidParams.Len() > 0 {
 13203  		return invalidParams
 13204  	}
 13205  	return nil
 13206  }
 13207  
 13208  // SetChangeToken sets the ChangeToken field's value.
 13209  func (s *DeleteRateBasedRuleInput) SetChangeToken(v string) *DeleteRateBasedRuleInput {
 13210  	s.ChangeToken = &v
 13211  	return s
 13212  }
 13213  
 13214  // SetRuleId sets the RuleId field's value.
 13215  func (s *DeleteRateBasedRuleInput) SetRuleId(v string) *DeleteRateBasedRuleInput {
 13216  	s.RuleId = &v
 13217  	return s
 13218  }
 13219  
 13220  type DeleteRateBasedRuleOutput struct {
 13221  	_ struct{} `type:"structure"`
 13222  
 13223  	// The ChangeToken that you used to submit the DeleteRateBasedRule request.
 13224  	// You can also use this value to query the status of the request. For more
 13225  	// information, see GetChangeTokenStatus.
 13226  	ChangeToken *string `min:"1" type:"string"`
 13227  }
 13228  
 13229  // String returns the string representation.
 13230  //
 13231  // API parameter values that are decorated as "sensitive" in the API will not
 13232  // be included in the string output. The member name will be present, but the
 13233  // value will be replaced with "sensitive".
 13234  func (s DeleteRateBasedRuleOutput) String() string {
 13235  	return awsutil.Prettify(s)
 13236  }
 13237  
 13238  // GoString returns the string representation.
 13239  //
 13240  // API parameter values that are decorated as "sensitive" in the API will not
 13241  // be included in the string output. The member name will be present, but the
 13242  // value will be replaced with "sensitive".
 13243  func (s DeleteRateBasedRuleOutput) GoString() string {
 13244  	return s.String()
 13245  }
 13246  
 13247  // SetChangeToken sets the ChangeToken field's value.
 13248  func (s *DeleteRateBasedRuleOutput) SetChangeToken(v string) *DeleteRateBasedRuleOutput {
 13249  	s.ChangeToken = &v
 13250  	return s
 13251  }
 13252  
 13253  type DeleteRegexMatchSetInput struct {
 13254  	_ struct{} `type:"structure"`
 13255  
 13256  	// The value returned by the most recent call to GetChangeToken.
 13257  	//
 13258  	// ChangeToken is a required field
 13259  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13260  
 13261  	// The RegexMatchSetId of the RegexMatchSet that you want to delete. RegexMatchSetId
 13262  	// is returned by CreateRegexMatchSet and by ListRegexMatchSets.
 13263  	//
 13264  	// RegexMatchSetId is a required field
 13265  	RegexMatchSetId *string `min:"1" type:"string" required:"true"`
 13266  }
 13267  
 13268  // String returns the string representation.
 13269  //
 13270  // API parameter values that are decorated as "sensitive" in the API will not
 13271  // be included in the string output. The member name will be present, but the
 13272  // value will be replaced with "sensitive".
 13273  func (s DeleteRegexMatchSetInput) String() string {
 13274  	return awsutil.Prettify(s)
 13275  }
 13276  
 13277  // GoString returns the string representation.
 13278  //
 13279  // API parameter values that are decorated as "sensitive" in the API will not
 13280  // be included in the string output. The member name will be present, but the
 13281  // value will be replaced with "sensitive".
 13282  func (s DeleteRegexMatchSetInput) GoString() string {
 13283  	return s.String()
 13284  }
 13285  
 13286  // Validate inspects the fields of the type to determine if they are valid.
 13287  func (s *DeleteRegexMatchSetInput) Validate() error {
 13288  	invalidParams := request.ErrInvalidParams{Context: "DeleteRegexMatchSetInput"}
 13289  	if s.ChangeToken == nil {
 13290  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13291  	}
 13292  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13293  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13294  	}
 13295  	if s.RegexMatchSetId == nil {
 13296  		invalidParams.Add(request.NewErrParamRequired("RegexMatchSetId"))
 13297  	}
 13298  	if s.RegexMatchSetId != nil && len(*s.RegexMatchSetId) < 1 {
 13299  		invalidParams.Add(request.NewErrParamMinLen("RegexMatchSetId", 1))
 13300  	}
 13301  
 13302  	if invalidParams.Len() > 0 {
 13303  		return invalidParams
 13304  	}
 13305  	return nil
 13306  }
 13307  
 13308  // SetChangeToken sets the ChangeToken field's value.
 13309  func (s *DeleteRegexMatchSetInput) SetChangeToken(v string) *DeleteRegexMatchSetInput {
 13310  	s.ChangeToken = &v
 13311  	return s
 13312  }
 13313  
 13314  // SetRegexMatchSetId sets the RegexMatchSetId field's value.
 13315  func (s *DeleteRegexMatchSetInput) SetRegexMatchSetId(v string) *DeleteRegexMatchSetInput {
 13316  	s.RegexMatchSetId = &v
 13317  	return s
 13318  }
 13319  
 13320  type DeleteRegexMatchSetOutput struct {
 13321  	_ struct{} `type:"structure"`
 13322  
 13323  	// The ChangeToken that you used to submit the DeleteRegexMatchSet request.
 13324  	// You can also use this value to query the status of the request. For more
 13325  	// information, see GetChangeTokenStatus.
 13326  	ChangeToken *string `min:"1" type:"string"`
 13327  }
 13328  
 13329  // String returns the string representation.
 13330  //
 13331  // API parameter values that are decorated as "sensitive" in the API will not
 13332  // be included in the string output. The member name will be present, but the
 13333  // value will be replaced with "sensitive".
 13334  func (s DeleteRegexMatchSetOutput) String() string {
 13335  	return awsutil.Prettify(s)
 13336  }
 13337  
 13338  // GoString returns the string representation.
 13339  //
 13340  // API parameter values that are decorated as "sensitive" in the API will not
 13341  // be included in the string output. The member name will be present, but the
 13342  // value will be replaced with "sensitive".
 13343  func (s DeleteRegexMatchSetOutput) GoString() string {
 13344  	return s.String()
 13345  }
 13346  
 13347  // SetChangeToken sets the ChangeToken field's value.
 13348  func (s *DeleteRegexMatchSetOutput) SetChangeToken(v string) *DeleteRegexMatchSetOutput {
 13349  	s.ChangeToken = &v
 13350  	return s
 13351  }
 13352  
 13353  type DeleteRegexPatternSetInput struct {
 13354  	_ struct{} `type:"structure"`
 13355  
 13356  	// The value returned by the most recent call to GetChangeToken.
 13357  	//
 13358  	// ChangeToken is a required field
 13359  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13360  
 13361  	// The RegexPatternSetId of the RegexPatternSet that you want to delete. RegexPatternSetId
 13362  	// is returned by CreateRegexPatternSet and by ListRegexPatternSets.
 13363  	//
 13364  	// RegexPatternSetId is a required field
 13365  	RegexPatternSetId *string `min:"1" type:"string" required:"true"`
 13366  }
 13367  
 13368  // String returns the string representation.
 13369  //
 13370  // API parameter values that are decorated as "sensitive" in the API will not
 13371  // be included in the string output. The member name will be present, but the
 13372  // value will be replaced with "sensitive".
 13373  func (s DeleteRegexPatternSetInput) String() string {
 13374  	return awsutil.Prettify(s)
 13375  }
 13376  
 13377  // GoString returns the string representation.
 13378  //
 13379  // API parameter values that are decorated as "sensitive" in the API will not
 13380  // be included in the string output. The member name will be present, but the
 13381  // value will be replaced with "sensitive".
 13382  func (s DeleteRegexPatternSetInput) GoString() string {
 13383  	return s.String()
 13384  }
 13385  
 13386  // Validate inspects the fields of the type to determine if they are valid.
 13387  func (s *DeleteRegexPatternSetInput) Validate() error {
 13388  	invalidParams := request.ErrInvalidParams{Context: "DeleteRegexPatternSetInput"}
 13389  	if s.ChangeToken == nil {
 13390  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13391  	}
 13392  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13393  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13394  	}
 13395  	if s.RegexPatternSetId == nil {
 13396  		invalidParams.Add(request.NewErrParamRequired("RegexPatternSetId"))
 13397  	}
 13398  	if s.RegexPatternSetId != nil && len(*s.RegexPatternSetId) < 1 {
 13399  		invalidParams.Add(request.NewErrParamMinLen("RegexPatternSetId", 1))
 13400  	}
 13401  
 13402  	if invalidParams.Len() > 0 {
 13403  		return invalidParams
 13404  	}
 13405  	return nil
 13406  }
 13407  
 13408  // SetChangeToken sets the ChangeToken field's value.
 13409  func (s *DeleteRegexPatternSetInput) SetChangeToken(v string) *DeleteRegexPatternSetInput {
 13410  	s.ChangeToken = &v
 13411  	return s
 13412  }
 13413  
 13414  // SetRegexPatternSetId sets the RegexPatternSetId field's value.
 13415  func (s *DeleteRegexPatternSetInput) SetRegexPatternSetId(v string) *DeleteRegexPatternSetInput {
 13416  	s.RegexPatternSetId = &v
 13417  	return s
 13418  }
 13419  
 13420  type DeleteRegexPatternSetOutput struct {
 13421  	_ struct{} `type:"structure"`
 13422  
 13423  	// The ChangeToken that you used to submit the DeleteRegexPatternSet request.
 13424  	// You can also use this value to query the status of the request. For more
 13425  	// information, see GetChangeTokenStatus.
 13426  	ChangeToken *string `min:"1" type:"string"`
 13427  }
 13428  
 13429  // String returns the string representation.
 13430  //
 13431  // API parameter values that are decorated as "sensitive" in the API will not
 13432  // be included in the string output. The member name will be present, but the
 13433  // value will be replaced with "sensitive".
 13434  func (s DeleteRegexPatternSetOutput) String() string {
 13435  	return awsutil.Prettify(s)
 13436  }
 13437  
 13438  // GoString returns the string representation.
 13439  //
 13440  // API parameter values that are decorated as "sensitive" in the API will not
 13441  // be included in the string output. The member name will be present, but the
 13442  // value will be replaced with "sensitive".
 13443  func (s DeleteRegexPatternSetOutput) GoString() string {
 13444  	return s.String()
 13445  }
 13446  
 13447  // SetChangeToken sets the ChangeToken field's value.
 13448  func (s *DeleteRegexPatternSetOutput) SetChangeToken(v string) *DeleteRegexPatternSetOutput {
 13449  	s.ChangeToken = &v
 13450  	return s
 13451  }
 13452  
 13453  type DeleteRuleGroupInput struct {
 13454  	_ struct{} `type:"structure"`
 13455  
 13456  	// The value returned by the most recent call to GetChangeToken.
 13457  	//
 13458  	// ChangeToken is a required field
 13459  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13460  
 13461  	// The RuleGroupId of the RuleGroup that you want to delete. RuleGroupId is
 13462  	// returned by CreateRuleGroup and by ListRuleGroups.
 13463  	//
 13464  	// RuleGroupId is a required field
 13465  	RuleGroupId *string `min:"1" type:"string" required:"true"`
 13466  }
 13467  
 13468  // String returns the string representation.
 13469  //
 13470  // API parameter values that are decorated as "sensitive" in the API will not
 13471  // be included in the string output. The member name will be present, but the
 13472  // value will be replaced with "sensitive".
 13473  func (s DeleteRuleGroupInput) String() string {
 13474  	return awsutil.Prettify(s)
 13475  }
 13476  
 13477  // GoString returns the string representation.
 13478  //
 13479  // API parameter values that are decorated as "sensitive" in the API will not
 13480  // be included in the string output. The member name will be present, but the
 13481  // value will be replaced with "sensitive".
 13482  func (s DeleteRuleGroupInput) GoString() string {
 13483  	return s.String()
 13484  }
 13485  
 13486  // Validate inspects the fields of the type to determine if they are valid.
 13487  func (s *DeleteRuleGroupInput) Validate() error {
 13488  	invalidParams := request.ErrInvalidParams{Context: "DeleteRuleGroupInput"}
 13489  	if s.ChangeToken == nil {
 13490  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13491  	}
 13492  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13493  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13494  	}
 13495  	if s.RuleGroupId == nil {
 13496  		invalidParams.Add(request.NewErrParamRequired("RuleGroupId"))
 13497  	}
 13498  	if s.RuleGroupId != nil && len(*s.RuleGroupId) < 1 {
 13499  		invalidParams.Add(request.NewErrParamMinLen("RuleGroupId", 1))
 13500  	}
 13501  
 13502  	if invalidParams.Len() > 0 {
 13503  		return invalidParams
 13504  	}
 13505  	return nil
 13506  }
 13507  
 13508  // SetChangeToken sets the ChangeToken field's value.
 13509  func (s *DeleteRuleGroupInput) SetChangeToken(v string) *DeleteRuleGroupInput {
 13510  	s.ChangeToken = &v
 13511  	return s
 13512  }
 13513  
 13514  // SetRuleGroupId sets the RuleGroupId field's value.
 13515  func (s *DeleteRuleGroupInput) SetRuleGroupId(v string) *DeleteRuleGroupInput {
 13516  	s.RuleGroupId = &v
 13517  	return s
 13518  }
 13519  
 13520  type DeleteRuleGroupOutput struct {
 13521  	_ struct{} `type:"structure"`
 13522  
 13523  	// The ChangeToken that you used to submit the DeleteRuleGroup request. You
 13524  	// can also use this value to query the status of the request. For more information,
 13525  	// see GetChangeTokenStatus.
 13526  	ChangeToken *string `min:"1" type:"string"`
 13527  }
 13528  
 13529  // String returns the string representation.
 13530  //
 13531  // API parameter values that are decorated as "sensitive" in the API will not
 13532  // be included in the string output. The member name will be present, but the
 13533  // value will be replaced with "sensitive".
 13534  func (s DeleteRuleGroupOutput) String() string {
 13535  	return awsutil.Prettify(s)
 13536  }
 13537  
 13538  // GoString returns the string representation.
 13539  //
 13540  // API parameter values that are decorated as "sensitive" in the API will not
 13541  // be included in the string output. The member name will be present, but the
 13542  // value will be replaced with "sensitive".
 13543  func (s DeleteRuleGroupOutput) GoString() string {
 13544  	return s.String()
 13545  }
 13546  
 13547  // SetChangeToken sets the ChangeToken field's value.
 13548  func (s *DeleteRuleGroupOutput) SetChangeToken(v string) *DeleteRuleGroupOutput {
 13549  	s.ChangeToken = &v
 13550  	return s
 13551  }
 13552  
 13553  type DeleteRuleInput struct {
 13554  	_ struct{} `type:"structure"`
 13555  
 13556  	// The value returned by the most recent call to GetChangeToken.
 13557  	//
 13558  	// ChangeToken is a required field
 13559  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13560  
 13561  	// The RuleId of the Rule that you want to delete. RuleId is returned by CreateRule
 13562  	// and by ListRules.
 13563  	//
 13564  	// RuleId is a required field
 13565  	RuleId *string `min:"1" type:"string" required:"true"`
 13566  }
 13567  
 13568  // String returns the string representation.
 13569  //
 13570  // API parameter values that are decorated as "sensitive" in the API will not
 13571  // be included in the string output. The member name will be present, but the
 13572  // value will be replaced with "sensitive".
 13573  func (s DeleteRuleInput) String() string {
 13574  	return awsutil.Prettify(s)
 13575  }
 13576  
 13577  // GoString returns the string representation.
 13578  //
 13579  // API parameter values that are decorated as "sensitive" in the API will not
 13580  // be included in the string output. The member name will be present, but the
 13581  // value will be replaced with "sensitive".
 13582  func (s DeleteRuleInput) GoString() string {
 13583  	return s.String()
 13584  }
 13585  
 13586  // Validate inspects the fields of the type to determine if they are valid.
 13587  func (s *DeleteRuleInput) Validate() error {
 13588  	invalidParams := request.ErrInvalidParams{Context: "DeleteRuleInput"}
 13589  	if s.ChangeToken == nil {
 13590  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13591  	}
 13592  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13593  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13594  	}
 13595  	if s.RuleId == nil {
 13596  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 13597  	}
 13598  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 13599  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 13600  	}
 13601  
 13602  	if invalidParams.Len() > 0 {
 13603  		return invalidParams
 13604  	}
 13605  	return nil
 13606  }
 13607  
 13608  // SetChangeToken sets the ChangeToken field's value.
 13609  func (s *DeleteRuleInput) SetChangeToken(v string) *DeleteRuleInput {
 13610  	s.ChangeToken = &v
 13611  	return s
 13612  }
 13613  
 13614  // SetRuleId sets the RuleId field's value.
 13615  func (s *DeleteRuleInput) SetRuleId(v string) *DeleteRuleInput {
 13616  	s.RuleId = &v
 13617  	return s
 13618  }
 13619  
 13620  type DeleteRuleOutput struct {
 13621  	_ struct{} `type:"structure"`
 13622  
 13623  	// The ChangeToken that you used to submit the DeleteRule request. You can also
 13624  	// use this value to query the status of the request. For more information,
 13625  	// see GetChangeTokenStatus.
 13626  	ChangeToken *string `min:"1" type:"string"`
 13627  }
 13628  
 13629  // String returns the string representation.
 13630  //
 13631  // API parameter values that are decorated as "sensitive" in the API will not
 13632  // be included in the string output. The member name will be present, but the
 13633  // value will be replaced with "sensitive".
 13634  func (s DeleteRuleOutput) String() string {
 13635  	return awsutil.Prettify(s)
 13636  }
 13637  
 13638  // GoString returns the string representation.
 13639  //
 13640  // API parameter values that are decorated as "sensitive" in the API will not
 13641  // be included in the string output. The member name will be present, but the
 13642  // value will be replaced with "sensitive".
 13643  func (s DeleteRuleOutput) GoString() string {
 13644  	return s.String()
 13645  }
 13646  
 13647  // SetChangeToken sets the ChangeToken field's value.
 13648  func (s *DeleteRuleOutput) SetChangeToken(v string) *DeleteRuleOutput {
 13649  	s.ChangeToken = &v
 13650  	return s
 13651  }
 13652  
 13653  type DeleteSizeConstraintSetInput struct {
 13654  	_ struct{} `type:"structure"`
 13655  
 13656  	// The value returned by the most recent call to GetChangeToken.
 13657  	//
 13658  	// ChangeToken is a required field
 13659  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13660  
 13661  	// The SizeConstraintSetId of the SizeConstraintSet that you want to delete.
 13662  	// SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.
 13663  	//
 13664  	// SizeConstraintSetId is a required field
 13665  	SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
 13666  }
 13667  
 13668  // String returns the string representation.
 13669  //
 13670  // API parameter values that are decorated as "sensitive" in the API will not
 13671  // be included in the string output. The member name will be present, but the
 13672  // value will be replaced with "sensitive".
 13673  func (s DeleteSizeConstraintSetInput) String() string {
 13674  	return awsutil.Prettify(s)
 13675  }
 13676  
 13677  // GoString returns the string representation.
 13678  //
 13679  // API parameter values that are decorated as "sensitive" in the API will not
 13680  // be included in the string output. The member name will be present, but the
 13681  // value will be replaced with "sensitive".
 13682  func (s DeleteSizeConstraintSetInput) GoString() string {
 13683  	return s.String()
 13684  }
 13685  
 13686  // Validate inspects the fields of the type to determine if they are valid.
 13687  func (s *DeleteSizeConstraintSetInput) Validate() error {
 13688  	invalidParams := request.ErrInvalidParams{Context: "DeleteSizeConstraintSetInput"}
 13689  	if s.ChangeToken == nil {
 13690  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13691  	}
 13692  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13693  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13694  	}
 13695  	if s.SizeConstraintSetId == nil {
 13696  		invalidParams.Add(request.NewErrParamRequired("SizeConstraintSetId"))
 13697  	}
 13698  	if s.SizeConstraintSetId != nil && len(*s.SizeConstraintSetId) < 1 {
 13699  		invalidParams.Add(request.NewErrParamMinLen("SizeConstraintSetId", 1))
 13700  	}
 13701  
 13702  	if invalidParams.Len() > 0 {
 13703  		return invalidParams
 13704  	}
 13705  	return nil
 13706  }
 13707  
 13708  // SetChangeToken sets the ChangeToken field's value.
 13709  func (s *DeleteSizeConstraintSetInput) SetChangeToken(v string) *DeleteSizeConstraintSetInput {
 13710  	s.ChangeToken = &v
 13711  	return s
 13712  }
 13713  
 13714  // SetSizeConstraintSetId sets the SizeConstraintSetId field's value.
 13715  func (s *DeleteSizeConstraintSetInput) SetSizeConstraintSetId(v string) *DeleteSizeConstraintSetInput {
 13716  	s.SizeConstraintSetId = &v
 13717  	return s
 13718  }
 13719  
 13720  type DeleteSizeConstraintSetOutput struct {
 13721  	_ struct{} `type:"structure"`
 13722  
 13723  	// The ChangeToken that you used to submit the DeleteSizeConstraintSet request.
 13724  	// You can also use this value to query the status of the request. For more
 13725  	// information, see GetChangeTokenStatus.
 13726  	ChangeToken *string `min:"1" type:"string"`
 13727  }
 13728  
 13729  // String returns the string representation.
 13730  //
 13731  // API parameter values that are decorated as "sensitive" in the API will not
 13732  // be included in the string output. The member name will be present, but the
 13733  // value will be replaced with "sensitive".
 13734  func (s DeleteSizeConstraintSetOutput) String() string {
 13735  	return awsutil.Prettify(s)
 13736  }
 13737  
 13738  // GoString returns the string representation.
 13739  //
 13740  // API parameter values that are decorated as "sensitive" in the API will not
 13741  // be included in the string output. The member name will be present, but the
 13742  // value will be replaced with "sensitive".
 13743  func (s DeleteSizeConstraintSetOutput) GoString() string {
 13744  	return s.String()
 13745  }
 13746  
 13747  // SetChangeToken sets the ChangeToken field's value.
 13748  func (s *DeleteSizeConstraintSetOutput) SetChangeToken(v string) *DeleteSizeConstraintSetOutput {
 13749  	s.ChangeToken = &v
 13750  	return s
 13751  }
 13752  
 13753  // A request to delete a SqlInjectionMatchSet from AWS WAF.
 13754  type DeleteSqlInjectionMatchSetInput struct {
 13755  	_ struct{} `type:"structure"`
 13756  
 13757  	// The value returned by the most recent call to GetChangeToken.
 13758  	//
 13759  	// ChangeToken is a required field
 13760  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13761  
 13762  	// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to delete.
 13763  	// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.
 13764  	//
 13765  	// SqlInjectionMatchSetId is a required field
 13766  	SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
 13767  }
 13768  
 13769  // String returns the string representation.
 13770  //
 13771  // API parameter values that are decorated as "sensitive" in the API will not
 13772  // be included in the string output. The member name will be present, but the
 13773  // value will be replaced with "sensitive".
 13774  func (s DeleteSqlInjectionMatchSetInput) String() string {
 13775  	return awsutil.Prettify(s)
 13776  }
 13777  
 13778  // GoString returns the string representation.
 13779  //
 13780  // API parameter values that are decorated as "sensitive" in the API will not
 13781  // be included in the string output. The member name will be present, but the
 13782  // value will be replaced with "sensitive".
 13783  func (s DeleteSqlInjectionMatchSetInput) GoString() string {
 13784  	return s.String()
 13785  }
 13786  
 13787  // Validate inspects the fields of the type to determine if they are valid.
 13788  func (s *DeleteSqlInjectionMatchSetInput) Validate() error {
 13789  	invalidParams := request.ErrInvalidParams{Context: "DeleteSqlInjectionMatchSetInput"}
 13790  	if s.ChangeToken == nil {
 13791  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13792  	}
 13793  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13794  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13795  	}
 13796  	if s.SqlInjectionMatchSetId == nil {
 13797  		invalidParams.Add(request.NewErrParamRequired("SqlInjectionMatchSetId"))
 13798  	}
 13799  	if s.SqlInjectionMatchSetId != nil && len(*s.SqlInjectionMatchSetId) < 1 {
 13800  		invalidParams.Add(request.NewErrParamMinLen("SqlInjectionMatchSetId", 1))
 13801  	}
 13802  
 13803  	if invalidParams.Len() > 0 {
 13804  		return invalidParams
 13805  	}
 13806  	return nil
 13807  }
 13808  
 13809  // SetChangeToken sets the ChangeToken field's value.
 13810  func (s *DeleteSqlInjectionMatchSetInput) SetChangeToken(v string) *DeleteSqlInjectionMatchSetInput {
 13811  	s.ChangeToken = &v
 13812  	return s
 13813  }
 13814  
 13815  // SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value.
 13816  func (s *DeleteSqlInjectionMatchSetInput) SetSqlInjectionMatchSetId(v string) *DeleteSqlInjectionMatchSetInput {
 13817  	s.SqlInjectionMatchSetId = &v
 13818  	return s
 13819  }
 13820  
 13821  // The response to a request to delete a SqlInjectionMatchSet from AWS WAF.
 13822  type DeleteSqlInjectionMatchSetOutput struct {
 13823  	_ struct{} `type:"structure"`
 13824  
 13825  	// The ChangeToken that you used to submit the DeleteSqlInjectionMatchSet request.
 13826  	// You can also use this value to query the status of the request. For more
 13827  	// information, see GetChangeTokenStatus.
 13828  	ChangeToken *string `min:"1" type:"string"`
 13829  }
 13830  
 13831  // String returns the string representation.
 13832  //
 13833  // API parameter values that are decorated as "sensitive" in the API will not
 13834  // be included in the string output. The member name will be present, but the
 13835  // value will be replaced with "sensitive".
 13836  func (s DeleteSqlInjectionMatchSetOutput) String() string {
 13837  	return awsutil.Prettify(s)
 13838  }
 13839  
 13840  // GoString returns the string representation.
 13841  //
 13842  // API parameter values that are decorated as "sensitive" in the API will not
 13843  // be included in the string output. The member name will be present, but the
 13844  // value will be replaced with "sensitive".
 13845  func (s DeleteSqlInjectionMatchSetOutput) GoString() string {
 13846  	return s.String()
 13847  }
 13848  
 13849  // SetChangeToken sets the ChangeToken field's value.
 13850  func (s *DeleteSqlInjectionMatchSetOutput) SetChangeToken(v string) *DeleteSqlInjectionMatchSetOutput {
 13851  	s.ChangeToken = &v
 13852  	return s
 13853  }
 13854  
 13855  type DeleteWebACLInput struct {
 13856  	_ struct{} `type:"structure"`
 13857  
 13858  	// The value returned by the most recent call to GetChangeToken.
 13859  	//
 13860  	// ChangeToken is a required field
 13861  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13862  
 13863  	// The WebACLId of the WebACL that you want to delete. WebACLId is returned
 13864  	// by CreateWebACL and by ListWebACLs.
 13865  	//
 13866  	// WebACLId is a required field
 13867  	WebACLId *string `min:"1" type:"string" required:"true"`
 13868  }
 13869  
 13870  // String returns the string representation.
 13871  //
 13872  // API parameter values that are decorated as "sensitive" in the API will not
 13873  // be included in the string output. The member name will be present, but the
 13874  // value will be replaced with "sensitive".
 13875  func (s DeleteWebACLInput) String() string {
 13876  	return awsutil.Prettify(s)
 13877  }
 13878  
 13879  // GoString returns the string representation.
 13880  //
 13881  // API parameter values that are decorated as "sensitive" in the API will not
 13882  // be included in the string output. The member name will be present, but the
 13883  // value will be replaced with "sensitive".
 13884  func (s DeleteWebACLInput) GoString() string {
 13885  	return s.String()
 13886  }
 13887  
 13888  // Validate inspects the fields of the type to determine if they are valid.
 13889  func (s *DeleteWebACLInput) Validate() error {
 13890  	invalidParams := request.ErrInvalidParams{Context: "DeleteWebACLInput"}
 13891  	if s.ChangeToken == nil {
 13892  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13893  	}
 13894  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13895  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13896  	}
 13897  	if s.WebACLId == nil {
 13898  		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
 13899  	}
 13900  	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
 13901  		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
 13902  	}
 13903  
 13904  	if invalidParams.Len() > 0 {
 13905  		return invalidParams
 13906  	}
 13907  	return nil
 13908  }
 13909  
 13910  // SetChangeToken sets the ChangeToken field's value.
 13911  func (s *DeleteWebACLInput) SetChangeToken(v string) *DeleteWebACLInput {
 13912  	s.ChangeToken = &v
 13913  	return s
 13914  }
 13915  
 13916  // SetWebACLId sets the WebACLId field's value.
 13917  func (s *DeleteWebACLInput) SetWebACLId(v string) *DeleteWebACLInput {
 13918  	s.WebACLId = &v
 13919  	return s
 13920  }
 13921  
 13922  type DeleteWebACLOutput struct {
 13923  	_ struct{} `type:"structure"`
 13924  
 13925  	// The ChangeToken that you used to submit the DeleteWebACL request. You can
 13926  	// also use this value to query the status of the request. For more information,
 13927  	// see GetChangeTokenStatus.
 13928  	ChangeToken *string `min:"1" type:"string"`
 13929  }
 13930  
 13931  // String returns the string representation.
 13932  //
 13933  // API parameter values that are decorated as "sensitive" in the API will not
 13934  // be included in the string output. The member name will be present, but the
 13935  // value will be replaced with "sensitive".
 13936  func (s DeleteWebACLOutput) String() string {
 13937  	return awsutil.Prettify(s)
 13938  }
 13939  
 13940  // GoString returns the string representation.
 13941  //
 13942  // API parameter values that are decorated as "sensitive" in the API will not
 13943  // be included in the string output. The member name will be present, but the
 13944  // value will be replaced with "sensitive".
 13945  func (s DeleteWebACLOutput) GoString() string {
 13946  	return s.String()
 13947  }
 13948  
 13949  // SetChangeToken sets the ChangeToken field's value.
 13950  func (s *DeleteWebACLOutput) SetChangeToken(v string) *DeleteWebACLOutput {
 13951  	s.ChangeToken = &v
 13952  	return s
 13953  }
 13954  
 13955  // A request to delete an XssMatchSet from AWS WAF.
 13956  type DeleteXssMatchSetInput struct {
 13957  	_ struct{} `type:"structure"`
 13958  
 13959  	// The value returned by the most recent call to GetChangeToken.
 13960  	//
 13961  	// ChangeToken is a required field
 13962  	ChangeToken *string `min:"1" type:"string" required:"true"`
 13963  
 13964  	// The XssMatchSetId of the XssMatchSet that you want to delete. XssMatchSetId
 13965  	// is returned by CreateXssMatchSet and by ListXssMatchSets.
 13966  	//
 13967  	// XssMatchSetId is a required field
 13968  	XssMatchSetId *string `min:"1" type:"string" required:"true"`
 13969  }
 13970  
 13971  // String returns the string representation.
 13972  //
 13973  // API parameter values that are decorated as "sensitive" in the API will not
 13974  // be included in the string output. The member name will be present, but the
 13975  // value will be replaced with "sensitive".
 13976  func (s DeleteXssMatchSetInput) String() string {
 13977  	return awsutil.Prettify(s)
 13978  }
 13979  
 13980  // GoString returns the string representation.
 13981  //
 13982  // API parameter values that are decorated as "sensitive" in the API will not
 13983  // be included in the string output. The member name will be present, but the
 13984  // value will be replaced with "sensitive".
 13985  func (s DeleteXssMatchSetInput) GoString() string {
 13986  	return s.String()
 13987  }
 13988  
 13989  // Validate inspects the fields of the type to determine if they are valid.
 13990  func (s *DeleteXssMatchSetInput) Validate() error {
 13991  	invalidParams := request.ErrInvalidParams{Context: "DeleteXssMatchSetInput"}
 13992  	if s.ChangeToken == nil {
 13993  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 13994  	}
 13995  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 13996  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 13997  	}
 13998  	if s.XssMatchSetId == nil {
 13999  		invalidParams.Add(request.NewErrParamRequired("XssMatchSetId"))
 14000  	}
 14001  	if s.XssMatchSetId != nil && len(*s.XssMatchSetId) < 1 {
 14002  		invalidParams.Add(request.NewErrParamMinLen("XssMatchSetId", 1))
 14003  	}
 14004  
 14005  	if invalidParams.Len() > 0 {
 14006  		return invalidParams
 14007  	}
 14008  	return nil
 14009  }
 14010  
 14011  // SetChangeToken sets the ChangeToken field's value.
 14012  func (s *DeleteXssMatchSetInput) SetChangeToken(v string) *DeleteXssMatchSetInput {
 14013  	s.ChangeToken = &v
 14014  	return s
 14015  }
 14016  
 14017  // SetXssMatchSetId sets the XssMatchSetId field's value.
 14018  func (s *DeleteXssMatchSetInput) SetXssMatchSetId(v string) *DeleteXssMatchSetInput {
 14019  	s.XssMatchSetId = &v
 14020  	return s
 14021  }
 14022  
 14023  // The response to a request to delete an XssMatchSet from AWS WAF.
 14024  type DeleteXssMatchSetOutput struct {
 14025  	_ struct{} `type:"structure"`
 14026  
 14027  	// The ChangeToken that you used to submit the DeleteXssMatchSet request. You
 14028  	// can also use this value to query the status of the request. For more information,
 14029  	// see GetChangeTokenStatus.
 14030  	ChangeToken *string `min:"1" type:"string"`
 14031  }
 14032  
 14033  // String returns the string representation.
 14034  //
 14035  // API parameter values that are decorated as "sensitive" in the API will not
 14036  // be included in the string output. The member name will be present, but the
 14037  // value will be replaced with "sensitive".
 14038  func (s DeleteXssMatchSetOutput) String() string {
 14039  	return awsutil.Prettify(s)
 14040  }
 14041  
 14042  // GoString returns the string representation.
 14043  //
 14044  // API parameter values that are decorated as "sensitive" in the API will not
 14045  // be included in the string output. The member name will be present, but the
 14046  // value will be replaced with "sensitive".
 14047  func (s DeleteXssMatchSetOutput) GoString() string {
 14048  	return s.String()
 14049  }
 14050  
 14051  // SetChangeToken sets the ChangeToken field's value.
 14052  func (s *DeleteXssMatchSetOutput) SetChangeToken(v string) *DeleteXssMatchSetOutput {
 14053  	s.ChangeToken = &v
 14054  	return s
 14055  }
 14056  
 14057  // The name specified is invalid.
 14058  type DisallowedNameException struct {
 14059  	_            struct{}                  `type:"structure"`
 14060  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 14061  
 14062  	Message_ *string `locationName:"message" type:"string"`
 14063  }
 14064  
 14065  // String returns the string representation.
 14066  //
 14067  // API parameter values that are decorated as "sensitive" in the API will not
 14068  // be included in the string output. The member name will be present, but the
 14069  // value will be replaced with "sensitive".
 14070  func (s DisallowedNameException) String() string {
 14071  	return awsutil.Prettify(s)
 14072  }
 14073  
 14074  // GoString returns the string representation.
 14075  //
 14076  // API parameter values that are decorated as "sensitive" in the API will not
 14077  // be included in the string output. The member name will be present, but the
 14078  // value will be replaced with "sensitive".
 14079  func (s DisallowedNameException) GoString() string {
 14080  	return s.String()
 14081  }
 14082  
 14083  func newErrorDisallowedNameException(v protocol.ResponseMetadata) error {
 14084  	return &DisallowedNameException{
 14085  		RespMetadata: v,
 14086  	}
 14087  }
 14088  
 14089  // Code returns the exception type name.
 14090  func (s *DisallowedNameException) Code() string {
 14091  	return "WAFDisallowedNameException"
 14092  }
 14093  
 14094  // Message returns the exception's message.
 14095  func (s *DisallowedNameException) Message() string {
 14096  	if s.Message_ != nil {
 14097  		return *s.Message_
 14098  	}
 14099  	return ""
 14100  }
 14101  
 14102  // OrigErr always returns nil, satisfies awserr.Error interface.
 14103  func (s *DisallowedNameException) OrigErr() error {
 14104  	return nil
 14105  }
 14106  
 14107  func (s *DisallowedNameException) Error() string {
 14108  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 14109  }
 14110  
 14111  // Status code returns the HTTP status code for the request's response error.
 14112  func (s *DisallowedNameException) StatusCode() int {
 14113  	return s.RespMetadata.StatusCode
 14114  }
 14115  
 14116  // RequestID returns the service's response RequestID for request.
 14117  func (s *DisallowedNameException) RequestID() string {
 14118  	return s.RespMetadata.RequestID
 14119  }
 14120  
 14121  //
 14122  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 14123  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 14124  // in the developer guide.
 14125  //
 14126  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 14127  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 14128  // With the latest version, AWS WAF has a single set of endpoints for regional
 14129  // and global use.
 14130  //
 14131  // The rule to exclude from a rule group. This is applicable only when the ActivatedRule
 14132  // refers to a RuleGroup. The rule must belong to the RuleGroup that is specified
 14133  // by the ActivatedRule.
 14134  type ExcludedRule struct {
 14135  	_ struct{} `type:"structure"`
 14136  
 14137  	// The unique identifier for the rule to exclude from the rule group.
 14138  	//
 14139  	// RuleId is a required field
 14140  	RuleId *string `min:"1" type:"string" required:"true"`
 14141  }
 14142  
 14143  // String returns the string representation.
 14144  //
 14145  // API parameter values that are decorated as "sensitive" in the API will not
 14146  // be included in the string output. The member name will be present, but the
 14147  // value will be replaced with "sensitive".
 14148  func (s ExcludedRule) String() string {
 14149  	return awsutil.Prettify(s)
 14150  }
 14151  
 14152  // GoString returns the string representation.
 14153  //
 14154  // API parameter values that are decorated as "sensitive" in the API will not
 14155  // be included in the string output. The member name will be present, but the
 14156  // value will be replaced with "sensitive".
 14157  func (s ExcludedRule) GoString() string {
 14158  	return s.String()
 14159  }
 14160  
 14161  // Validate inspects the fields of the type to determine if they are valid.
 14162  func (s *ExcludedRule) Validate() error {
 14163  	invalidParams := request.ErrInvalidParams{Context: "ExcludedRule"}
 14164  	if s.RuleId == nil {
 14165  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 14166  	}
 14167  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 14168  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 14169  	}
 14170  
 14171  	if invalidParams.Len() > 0 {
 14172  		return invalidParams
 14173  	}
 14174  	return nil
 14175  }
 14176  
 14177  // SetRuleId sets the RuleId field's value.
 14178  func (s *ExcludedRule) SetRuleId(v string) *ExcludedRule {
 14179  	s.RuleId = &v
 14180  	return s
 14181  }
 14182  
 14183  //
 14184  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 14185  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 14186  // in the developer guide.
 14187  //
 14188  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 14189  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 14190  // With the latest version, AWS WAF has a single set of endpoints for regional
 14191  // and global use.
 14192  //
 14193  // Specifies where in a web request to look for TargetString.
 14194  type FieldToMatch struct {
 14195  	_ struct{} `type:"structure"`
 14196  
 14197  	// When the value of Type is HEADER, enter the name of the header that you want
 14198  	// AWS WAF to search, for example, User-Agent or Referer. The name of the header
 14199  	// is not case sensitive.
 14200  	//
 14201  	// When the value of Type is SINGLE_QUERY_ARG, enter the name of the parameter
 14202  	// that you want AWS WAF to search, for example, UserName or SalesRegion. The
 14203  	// parameter name is not case sensitive.
 14204  	//
 14205  	// If the value of Type is any other value, omit Data.
 14206  	Data *string `min:"1" type:"string"`
 14207  
 14208  	// The part of the web request that you want AWS WAF to search for a specified
 14209  	// string. Parts of a request that you can search include the following:
 14210  	//
 14211  	//    * HEADER: A specified request header, for example, the value of the User-Agent
 14212  	//    or Referer header. If you choose HEADER for the type, specify the name
 14213  	//    of the header in Data.
 14214  	//
 14215  	//    * METHOD: The HTTP method, which indicated the type of operation that
 14216  	//    the request is asking the origin to perform. Amazon CloudFront supports
 14217  	//    the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT.
 14218  	//
 14219  	//    * QUERY_STRING: A query string, which is the part of a URL that appears
 14220  	//    after a ? character, if any.
 14221  	//
 14222  	//    * URI: The part of a web request that identifies a resource, for example,
 14223  	//    /images/daily-ad.jpg.
 14224  	//
 14225  	//    * BODY: The part of a request that contains any additional data that you
 14226  	//    want to send to your web server as the HTTP request body, such as data
 14227  	//    from a form. The request body immediately follows the request headers.
 14228  	//    Note that only the first 8192 bytes of the request body are forwarded
 14229  	//    to AWS WAF for inspection. To allow or block requests based on the length
 14230  	//    of the body, you can create a size constraint set. For more information,
 14231  	//    see CreateSizeConstraintSet.
 14232  	//
 14233  	//    * SINGLE_QUERY_ARG: The parameter in the query string that you will inspect,
 14234  	//    such as UserName or SalesRegion. The maximum length for SINGLE_QUERY_ARG
 14235  	//    is 30 characters.
 14236  	//
 14237  	//    * ALL_QUERY_ARGS: Similar to SINGLE_QUERY_ARG, but rather than inspecting
 14238  	//    a single parameter, AWS WAF will inspect all parameters within the query
 14239  	//    for the value or regex pattern that you specify in TargetString.
 14240  	//
 14241  	// Type is a required field
 14242  	Type *string `type:"string" required:"true" enum:"MatchFieldType"`
 14243  }
 14244  
 14245  // String returns the string representation.
 14246  //
 14247  // API parameter values that are decorated as "sensitive" in the API will not
 14248  // be included in the string output. The member name will be present, but the
 14249  // value will be replaced with "sensitive".
 14250  func (s FieldToMatch) String() string {
 14251  	return awsutil.Prettify(s)
 14252  }
 14253  
 14254  // GoString returns the string representation.
 14255  //
 14256  // API parameter values that are decorated as "sensitive" in the API will not
 14257  // be included in the string output. The member name will be present, but the
 14258  // value will be replaced with "sensitive".
 14259  func (s FieldToMatch) GoString() string {
 14260  	return s.String()
 14261  }
 14262  
 14263  // Validate inspects the fields of the type to determine if they are valid.
 14264  func (s *FieldToMatch) Validate() error {
 14265  	invalidParams := request.ErrInvalidParams{Context: "FieldToMatch"}
 14266  	if s.Data != nil && len(*s.Data) < 1 {
 14267  		invalidParams.Add(request.NewErrParamMinLen("Data", 1))
 14268  	}
 14269  	if s.Type == nil {
 14270  		invalidParams.Add(request.NewErrParamRequired("Type"))
 14271  	}
 14272  
 14273  	if invalidParams.Len() > 0 {
 14274  		return invalidParams
 14275  	}
 14276  	return nil
 14277  }
 14278  
 14279  // SetData sets the Data field's value.
 14280  func (s *FieldToMatch) SetData(v string) *FieldToMatch {
 14281  	s.Data = &v
 14282  	return s
 14283  }
 14284  
 14285  // SetType sets the Type field's value.
 14286  func (s *FieldToMatch) SetType(v string) *FieldToMatch {
 14287  	s.Type = &v
 14288  	return s
 14289  }
 14290  
 14291  //
 14292  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 14293  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 14294  // in the developer guide.
 14295  //
 14296  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 14297  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 14298  // With the latest version, AWS WAF has a single set of endpoints for regional
 14299  // and global use.
 14300  //
 14301  // The country from which web requests originate that you want AWS WAF to search
 14302  // for.
 14303  type GeoMatchConstraint struct {
 14304  	_ struct{} `type:"structure"`
 14305  
 14306  	// The type of geographical area you want AWS WAF to search for. Currently Country
 14307  	// is the only valid value.
 14308  	//
 14309  	// Type is a required field
 14310  	Type *string `type:"string" required:"true" enum:"GeoMatchConstraintType"`
 14311  
 14312  	// The country that you want AWS WAF to search for.
 14313  	//
 14314  	// Value is a required field
 14315  	Value *string `type:"string" required:"true" enum:"GeoMatchConstraintValue"`
 14316  }
 14317  
 14318  // String returns the string representation.
 14319  //
 14320  // API parameter values that are decorated as "sensitive" in the API will not
 14321  // be included in the string output. The member name will be present, but the
 14322  // value will be replaced with "sensitive".
 14323  func (s GeoMatchConstraint) String() string {
 14324  	return awsutil.Prettify(s)
 14325  }
 14326  
 14327  // GoString returns the string representation.
 14328  //
 14329  // API parameter values that are decorated as "sensitive" in the API will not
 14330  // be included in the string output. The member name will be present, but the
 14331  // value will be replaced with "sensitive".
 14332  func (s GeoMatchConstraint) GoString() string {
 14333  	return s.String()
 14334  }
 14335  
 14336  // Validate inspects the fields of the type to determine if they are valid.
 14337  func (s *GeoMatchConstraint) Validate() error {
 14338  	invalidParams := request.ErrInvalidParams{Context: "GeoMatchConstraint"}
 14339  	if s.Type == nil {
 14340  		invalidParams.Add(request.NewErrParamRequired("Type"))
 14341  	}
 14342  	if s.Value == nil {
 14343  		invalidParams.Add(request.NewErrParamRequired("Value"))
 14344  	}
 14345  
 14346  	if invalidParams.Len() > 0 {
 14347  		return invalidParams
 14348  	}
 14349  	return nil
 14350  }
 14351  
 14352  // SetType sets the Type field's value.
 14353  func (s *GeoMatchConstraint) SetType(v string) *GeoMatchConstraint {
 14354  	s.Type = &v
 14355  	return s
 14356  }
 14357  
 14358  // SetValue sets the Value field's value.
 14359  func (s *GeoMatchConstraint) SetValue(v string) *GeoMatchConstraint {
 14360  	s.Value = &v
 14361  	return s
 14362  }
 14363  
 14364  //
 14365  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 14366  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 14367  // in the developer guide.
 14368  //
 14369  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 14370  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 14371  // With the latest version, AWS WAF has a single set of endpoints for regional
 14372  // and global use.
 14373  //
 14374  // Contains one or more countries that AWS WAF will search for.
 14375  type GeoMatchSet struct {
 14376  	_ struct{} `type:"structure"`
 14377  
 14378  	// An array of GeoMatchConstraint objects, which contain the country that you
 14379  	// want AWS WAF to search for.
 14380  	//
 14381  	// GeoMatchConstraints is a required field
 14382  	GeoMatchConstraints []*GeoMatchConstraint `type:"list" required:"true"`
 14383  
 14384  	// The GeoMatchSetId for an GeoMatchSet. You use GeoMatchSetId to get information
 14385  	// about a GeoMatchSet (see GeoMatchSet), update a GeoMatchSet (see UpdateGeoMatchSet),
 14386  	// insert a GeoMatchSet into a Rule or delete one from a Rule (see UpdateRule),
 14387  	// and delete a GeoMatchSet from AWS WAF (see DeleteGeoMatchSet).
 14388  	//
 14389  	// GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.
 14390  	//
 14391  	// GeoMatchSetId is a required field
 14392  	GeoMatchSetId *string `min:"1" type:"string" required:"true"`
 14393  
 14394  	// A friendly name or description of the GeoMatchSet. You can't change the name
 14395  	// of an GeoMatchSet after you create it.
 14396  	Name *string `min:"1" type:"string"`
 14397  }
 14398  
 14399  // String returns the string representation.
 14400  //
 14401  // API parameter values that are decorated as "sensitive" in the API will not
 14402  // be included in the string output. The member name will be present, but the
 14403  // value will be replaced with "sensitive".
 14404  func (s GeoMatchSet) String() string {
 14405  	return awsutil.Prettify(s)
 14406  }
 14407  
 14408  // GoString returns the string representation.
 14409  //
 14410  // API parameter values that are decorated as "sensitive" in the API will not
 14411  // be included in the string output. The member name will be present, but the
 14412  // value will be replaced with "sensitive".
 14413  func (s GeoMatchSet) GoString() string {
 14414  	return s.String()
 14415  }
 14416  
 14417  // SetGeoMatchConstraints sets the GeoMatchConstraints field's value.
 14418  func (s *GeoMatchSet) SetGeoMatchConstraints(v []*GeoMatchConstraint) *GeoMatchSet {
 14419  	s.GeoMatchConstraints = v
 14420  	return s
 14421  }
 14422  
 14423  // SetGeoMatchSetId sets the GeoMatchSetId field's value.
 14424  func (s *GeoMatchSet) SetGeoMatchSetId(v string) *GeoMatchSet {
 14425  	s.GeoMatchSetId = &v
 14426  	return s
 14427  }
 14428  
 14429  // SetName sets the Name field's value.
 14430  func (s *GeoMatchSet) SetName(v string) *GeoMatchSet {
 14431  	s.Name = &v
 14432  	return s
 14433  }
 14434  
 14435  //
 14436  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 14437  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 14438  // in the developer guide.
 14439  //
 14440  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 14441  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 14442  // With the latest version, AWS WAF has a single set of endpoints for regional
 14443  // and global use.
 14444  //
 14445  // Contains the identifier and the name of the GeoMatchSet.
 14446  type GeoMatchSetSummary struct {
 14447  	_ struct{} `type:"structure"`
 14448  
 14449  	// The GeoMatchSetId for an GeoMatchSet. You can use GeoMatchSetId in a GetGeoMatchSet
 14450  	// request to get detailed information about an GeoMatchSet.
 14451  	//
 14452  	// GeoMatchSetId is a required field
 14453  	GeoMatchSetId *string `min:"1" type:"string" required:"true"`
 14454  
 14455  	// A friendly name or description of the GeoMatchSet. You can't change the name
 14456  	// of an GeoMatchSet after you create it.
 14457  	//
 14458  	// Name is a required field
 14459  	Name *string `min:"1" type:"string" required:"true"`
 14460  }
 14461  
 14462  // String returns the string representation.
 14463  //
 14464  // API parameter values that are decorated as "sensitive" in the API will not
 14465  // be included in the string output. The member name will be present, but the
 14466  // value will be replaced with "sensitive".
 14467  func (s GeoMatchSetSummary) String() string {
 14468  	return awsutil.Prettify(s)
 14469  }
 14470  
 14471  // GoString returns the string representation.
 14472  //
 14473  // API parameter values that are decorated as "sensitive" in the API will not
 14474  // be included in the string output. The member name will be present, but the
 14475  // value will be replaced with "sensitive".
 14476  func (s GeoMatchSetSummary) GoString() string {
 14477  	return s.String()
 14478  }
 14479  
 14480  // SetGeoMatchSetId sets the GeoMatchSetId field's value.
 14481  func (s *GeoMatchSetSummary) SetGeoMatchSetId(v string) *GeoMatchSetSummary {
 14482  	s.GeoMatchSetId = &v
 14483  	return s
 14484  }
 14485  
 14486  // SetName sets the Name field's value.
 14487  func (s *GeoMatchSetSummary) SetName(v string) *GeoMatchSetSummary {
 14488  	s.Name = &v
 14489  	return s
 14490  }
 14491  
 14492  //
 14493  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 14494  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 14495  // in the developer guide.
 14496  //
 14497  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 14498  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 14499  // With the latest version, AWS WAF has a single set of endpoints for regional
 14500  // and global use.
 14501  //
 14502  // Specifies the type of update to perform to an GeoMatchSet with UpdateGeoMatchSet.
 14503  type GeoMatchSetUpdate struct {
 14504  	_ struct{} `type:"structure"`
 14505  
 14506  	// Specifies whether to insert or delete a country with UpdateGeoMatchSet.
 14507  	//
 14508  	// Action is a required field
 14509  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 14510  
 14511  	// The country from which web requests originate that you want AWS WAF to search
 14512  	// for.
 14513  	//
 14514  	// GeoMatchConstraint is a required field
 14515  	GeoMatchConstraint *GeoMatchConstraint `type:"structure" required:"true"`
 14516  }
 14517  
 14518  // String returns the string representation.
 14519  //
 14520  // API parameter values that are decorated as "sensitive" in the API will not
 14521  // be included in the string output. The member name will be present, but the
 14522  // value will be replaced with "sensitive".
 14523  func (s GeoMatchSetUpdate) String() string {
 14524  	return awsutil.Prettify(s)
 14525  }
 14526  
 14527  // GoString returns the string representation.
 14528  //
 14529  // API parameter values that are decorated as "sensitive" in the API will not
 14530  // be included in the string output. The member name will be present, but the
 14531  // value will be replaced with "sensitive".
 14532  func (s GeoMatchSetUpdate) GoString() string {
 14533  	return s.String()
 14534  }
 14535  
 14536  // Validate inspects the fields of the type to determine if they are valid.
 14537  func (s *GeoMatchSetUpdate) Validate() error {
 14538  	invalidParams := request.ErrInvalidParams{Context: "GeoMatchSetUpdate"}
 14539  	if s.Action == nil {
 14540  		invalidParams.Add(request.NewErrParamRequired("Action"))
 14541  	}
 14542  	if s.GeoMatchConstraint == nil {
 14543  		invalidParams.Add(request.NewErrParamRequired("GeoMatchConstraint"))
 14544  	}
 14545  	if s.GeoMatchConstraint != nil {
 14546  		if err := s.GeoMatchConstraint.Validate(); err != nil {
 14547  			invalidParams.AddNested("GeoMatchConstraint", err.(request.ErrInvalidParams))
 14548  		}
 14549  	}
 14550  
 14551  	if invalidParams.Len() > 0 {
 14552  		return invalidParams
 14553  	}
 14554  	return nil
 14555  }
 14556  
 14557  // SetAction sets the Action field's value.
 14558  func (s *GeoMatchSetUpdate) SetAction(v string) *GeoMatchSetUpdate {
 14559  	s.Action = &v
 14560  	return s
 14561  }
 14562  
 14563  // SetGeoMatchConstraint sets the GeoMatchConstraint field's value.
 14564  func (s *GeoMatchSetUpdate) SetGeoMatchConstraint(v *GeoMatchConstraint) *GeoMatchSetUpdate {
 14565  	s.GeoMatchConstraint = v
 14566  	return s
 14567  }
 14568  
 14569  type GetByteMatchSetInput struct {
 14570  	_ struct{} `type:"structure"`
 14571  
 14572  	// The ByteMatchSetId of the ByteMatchSet that you want to get. ByteMatchSetId
 14573  	// is returned by CreateByteMatchSet and by ListByteMatchSets.
 14574  	//
 14575  	// ByteMatchSetId is a required field
 14576  	ByteMatchSetId *string `min:"1" type:"string" required:"true"`
 14577  }
 14578  
 14579  // String returns the string representation.
 14580  //
 14581  // API parameter values that are decorated as "sensitive" in the API will not
 14582  // be included in the string output. The member name will be present, but the
 14583  // value will be replaced with "sensitive".
 14584  func (s GetByteMatchSetInput) String() string {
 14585  	return awsutil.Prettify(s)
 14586  }
 14587  
 14588  // GoString returns the string representation.
 14589  //
 14590  // API parameter values that are decorated as "sensitive" in the API will not
 14591  // be included in the string output. The member name will be present, but the
 14592  // value will be replaced with "sensitive".
 14593  func (s GetByteMatchSetInput) GoString() string {
 14594  	return s.String()
 14595  }
 14596  
 14597  // Validate inspects the fields of the type to determine if they are valid.
 14598  func (s *GetByteMatchSetInput) Validate() error {
 14599  	invalidParams := request.ErrInvalidParams{Context: "GetByteMatchSetInput"}
 14600  	if s.ByteMatchSetId == nil {
 14601  		invalidParams.Add(request.NewErrParamRequired("ByteMatchSetId"))
 14602  	}
 14603  	if s.ByteMatchSetId != nil && len(*s.ByteMatchSetId) < 1 {
 14604  		invalidParams.Add(request.NewErrParamMinLen("ByteMatchSetId", 1))
 14605  	}
 14606  
 14607  	if invalidParams.Len() > 0 {
 14608  		return invalidParams
 14609  	}
 14610  	return nil
 14611  }
 14612  
 14613  // SetByteMatchSetId sets the ByteMatchSetId field's value.
 14614  func (s *GetByteMatchSetInput) SetByteMatchSetId(v string) *GetByteMatchSetInput {
 14615  	s.ByteMatchSetId = &v
 14616  	return s
 14617  }
 14618  
 14619  type GetByteMatchSetOutput struct {
 14620  	_ struct{} `type:"structure"`
 14621  
 14622  	// Information about the ByteMatchSet that you specified in the GetByteMatchSet
 14623  	// request. For more information, see the following topics:
 14624  	//
 14625  	//    * ByteMatchSet: Contains ByteMatchSetId, ByteMatchTuples, and Name
 14626  	//
 14627  	//    * ByteMatchTuples: Contains an array of ByteMatchTuple objects. Each ByteMatchTuple
 14628  	//    object contains FieldToMatch, PositionalConstraint, TargetString, and
 14629  	//    TextTransformation
 14630  	//
 14631  	//    * FieldToMatch: Contains Data and Type
 14632  	ByteMatchSet *ByteMatchSet `type:"structure"`
 14633  }
 14634  
 14635  // String returns the string representation.
 14636  //
 14637  // API parameter values that are decorated as "sensitive" in the API will not
 14638  // be included in the string output. The member name will be present, but the
 14639  // value will be replaced with "sensitive".
 14640  func (s GetByteMatchSetOutput) String() string {
 14641  	return awsutil.Prettify(s)
 14642  }
 14643  
 14644  // GoString returns the string representation.
 14645  //
 14646  // API parameter values that are decorated as "sensitive" in the API will not
 14647  // be included in the string output. The member name will be present, but the
 14648  // value will be replaced with "sensitive".
 14649  func (s GetByteMatchSetOutput) GoString() string {
 14650  	return s.String()
 14651  }
 14652  
 14653  // SetByteMatchSet sets the ByteMatchSet field's value.
 14654  func (s *GetByteMatchSetOutput) SetByteMatchSet(v *ByteMatchSet) *GetByteMatchSetOutput {
 14655  	s.ByteMatchSet = v
 14656  	return s
 14657  }
 14658  
 14659  type GetChangeTokenInput struct {
 14660  	_ struct{} `type:"structure"`
 14661  }
 14662  
 14663  // String returns the string representation.
 14664  //
 14665  // API parameter values that are decorated as "sensitive" in the API will not
 14666  // be included in the string output. The member name will be present, but the
 14667  // value will be replaced with "sensitive".
 14668  func (s GetChangeTokenInput) String() string {
 14669  	return awsutil.Prettify(s)
 14670  }
 14671  
 14672  // GoString returns the string representation.
 14673  //
 14674  // API parameter values that are decorated as "sensitive" in the API will not
 14675  // be included in the string output. The member name will be present, but the
 14676  // value will be replaced with "sensitive".
 14677  func (s GetChangeTokenInput) GoString() string {
 14678  	return s.String()
 14679  }
 14680  
 14681  type GetChangeTokenOutput struct {
 14682  	_ struct{} `type:"structure"`
 14683  
 14684  	// The ChangeToken that you used in the request. Use this value in a GetChangeTokenStatus
 14685  	// request to get the current status of the request.
 14686  	ChangeToken *string `min:"1" type:"string"`
 14687  }
 14688  
 14689  // String returns the string representation.
 14690  //
 14691  // API parameter values that are decorated as "sensitive" in the API will not
 14692  // be included in the string output. The member name will be present, but the
 14693  // value will be replaced with "sensitive".
 14694  func (s GetChangeTokenOutput) String() string {
 14695  	return awsutil.Prettify(s)
 14696  }
 14697  
 14698  // GoString returns the string representation.
 14699  //
 14700  // API parameter values that are decorated as "sensitive" in the API will not
 14701  // be included in the string output. The member name will be present, but the
 14702  // value will be replaced with "sensitive".
 14703  func (s GetChangeTokenOutput) GoString() string {
 14704  	return s.String()
 14705  }
 14706  
 14707  // SetChangeToken sets the ChangeToken field's value.
 14708  func (s *GetChangeTokenOutput) SetChangeToken(v string) *GetChangeTokenOutput {
 14709  	s.ChangeToken = &v
 14710  	return s
 14711  }
 14712  
 14713  type GetChangeTokenStatusInput struct {
 14714  	_ struct{} `type:"structure"`
 14715  
 14716  	// The change token for which you want to get the status. This change token
 14717  	// was previously returned in the GetChangeToken response.
 14718  	//
 14719  	// ChangeToken is a required field
 14720  	ChangeToken *string `min:"1" type:"string" required:"true"`
 14721  }
 14722  
 14723  // String returns the string representation.
 14724  //
 14725  // API parameter values that are decorated as "sensitive" in the API will not
 14726  // be included in the string output. The member name will be present, but the
 14727  // value will be replaced with "sensitive".
 14728  func (s GetChangeTokenStatusInput) String() string {
 14729  	return awsutil.Prettify(s)
 14730  }
 14731  
 14732  // GoString returns the string representation.
 14733  //
 14734  // API parameter values that are decorated as "sensitive" in the API will not
 14735  // be included in the string output. The member name will be present, but the
 14736  // value will be replaced with "sensitive".
 14737  func (s GetChangeTokenStatusInput) GoString() string {
 14738  	return s.String()
 14739  }
 14740  
 14741  // Validate inspects the fields of the type to determine if they are valid.
 14742  func (s *GetChangeTokenStatusInput) Validate() error {
 14743  	invalidParams := request.ErrInvalidParams{Context: "GetChangeTokenStatusInput"}
 14744  	if s.ChangeToken == nil {
 14745  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 14746  	}
 14747  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 14748  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 14749  	}
 14750  
 14751  	if invalidParams.Len() > 0 {
 14752  		return invalidParams
 14753  	}
 14754  	return nil
 14755  }
 14756  
 14757  // SetChangeToken sets the ChangeToken field's value.
 14758  func (s *GetChangeTokenStatusInput) SetChangeToken(v string) *GetChangeTokenStatusInput {
 14759  	s.ChangeToken = &v
 14760  	return s
 14761  }
 14762  
 14763  type GetChangeTokenStatusOutput struct {
 14764  	_ struct{} `type:"structure"`
 14765  
 14766  	// The status of the change token.
 14767  	ChangeTokenStatus *string `type:"string" enum:"ChangeTokenStatus"`
 14768  }
 14769  
 14770  // String returns the string representation.
 14771  //
 14772  // API parameter values that are decorated as "sensitive" in the API will not
 14773  // be included in the string output. The member name will be present, but the
 14774  // value will be replaced with "sensitive".
 14775  func (s GetChangeTokenStatusOutput) String() string {
 14776  	return awsutil.Prettify(s)
 14777  }
 14778  
 14779  // GoString returns the string representation.
 14780  //
 14781  // API parameter values that are decorated as "sensitive" in the API will not
 14782  // be included in the string output. The member name will be present, but the
 14783  // value will be replaced with "sensitive".
 14784  func (s GetChangeTokenStatusOutput) GoString() string {
 14785  	return s.String()
 14786  }
 14787  
 14788  // SetChangeTokenStatus sets the ChangeTokenStatus field's value.
 14789  func (s *GetChangeTokenStatusOutput) SetChangeTokenStatus(v string) *GetChangeTokenStatusOutput {
 14790  	s.ChangeTokenStatus = &v
 14791  	return s
 14792  }
 14793  
 14794  type GetGeoMatchSetInput struct {
 14795  	_ struct{} `type:"structure"`
 14796  
 14797  	// The GeoMatchSetId of the GeoMatchSet that you want to get. GeoMatchSetId
 14798  	// is returned by CreateGeoMatchSet and by ListGeoMatchSets.
 14799  	//
 14800  	// GeoMatchSetId is a required field
 14801  	GeoMatchSetId *string `min:"1" type:"string" required:"true"`
 14802  }
 14803  
 14804  // String returns the string representation.
 14805  //
 14806  // API parameter values that are decorated as "sensitive" in the API will not
 14807  // be included in the string output. The member name will be present, but the
 14808  // value will be replaced with "sensitive".
 14809  func (s GetGeoMatchSetInput) String() string {
 14810  	return awsutil.Prettify(s)
 14811  }
 14812  
 14813  // GoString returns the string representation.
 14814  //
 14815  // API parameter values that are decorated as "sensitive" in the API will not
 14816  // be included in the string output. The member name will be present, but the
 14817  // value will be replaced with "sensitive".
 14818  func (s GetGeoMatchSetInput) GoString() string {
 14819  	return s.String()
 14820  }
 14821  
 14822  // Validate inspects the fields of the type to determine if they are valid.
 14823  func (s *GetGeoMatchSetInput) Validate() error {
 14824  	invalidParams := request.ErrInvalidParams{Context: "GetGeoMatchSetInput"}
 14825  	if s.GeoMatchSetId == nil {
 14826  		invalidParams.Add(request.NewErrParamRequired("GeoMatchSetId"))
 14827  	}
 14828  	if s.GeoMatchSetId != nil && len(*s.GeoMatchSetId) < 1 {
 14829  		invalidParams.Add(request.NewErrParamMinLen("GeoMatchSetId", 1))
 14830  	}
 14831  
 14832  	if invalidParams.Len() > 0 {
 14833  		return invalidParams
 14834  	}
 14835  	return nil
 14836  }
 14837  
 14838  // SetGeoMatchSetId sets the GeoMatchSetId field's value.
 14839  func (s *GetGeoMatchSetInput) SetGeoMatchSetId(v string) *GetGeoMatchSetInput {
 14840  	s.GeoMatchSetId = &v
 14841  	return s
 14842  }
 14843  
 14844  type GetGeoMatchSetOutput struct {
 14845  	_ struct{} `type:"structure"`
 14846  
 14847  	// Information about the GeoMatchSet that you specified in the GetGeoMatchSet
 14848  	// request. This includes the Type, which for a GeoMatchContraint is always
 14849  	// Country, as well as the Value, which is the identifier for a specific country.
 14850  	GeoMatchSet *GeoMatchSet `type:"structure"`
 14851  }
 14852  
 14853  // String returns the string representation.
 14854  //
 14855  // API parameter values that are decorated as "sensitive" in the API will not
 14856  // be included in the string output. The member name will be present, but the
 14857  // value will be replaced with "sensitive".
 14858  func (s GetGeoMatchSetOutput) String() string {
 14859  	return awsutil.Prettify(s)
 14860  }
 14861  
 14862  // GoString returns the string representation.
 14863  //
 14864  // API parameter values that are decorated as "sensitive" in the API will not
 14865  // be included in the string output. The member name will be present, but the
 14866  // value will be replaced with "sensitive".
 14867  func (s GetGeoMatchSetOutput) GoString() string {
 14868  	return s.String()
 14869  }
 14870  
 14871  // SetGeoMatchSet sets the GeoMatchSet field's value.
 14872  func (s *GetGeoMatchSetOutput) SetGeoMatchSet(v *GeoMatchSet) *GetGeoMatchSetOutput {
 14873  	s.GeoMatchSet = v
 14874  	return s
 14875  }
 14876  
 14877  type GetIPSetInput struct {
 14878  	_ struct{} `type:"structure"`
 14879  
 14880  	// The IPSetId of the IPSet that you want to get. IPSetId is returned by CreateIPSet
 14881  	// and by ListIPSets.
 14882  	//
 14883  	// IPSetId is a required field
 14884  	IPSetId *string `min:"1" type:"string" required:"true"`
 14885  }
 14886  
 14887  // String returns the string representation.
 14888  //
 14889  // API parameter values that are decorated as "sensitive" in the API will not
 14890  // be included in the string output. The member name will be present, but the
 14891  // value will be replaced with "sensitive".
 14892  func (s GetIPSetInput) String() string {
 14893  	return awsutil.Prettify(s)
 14894  }
 14895  
 14896  // GoString returns the string representation.
 14897  //
 14898  // API parameter values that are decorated as "sensitive" in the API will not
 14899  // be included in the string output. The member name will be present, but the
 14900  // value will be replaced with "sensitive".
 14901  func (s GetIPSetInput) GoString() string {
 14902  	return s.String()
 14903  }
 14904  
 14905  // Validate inspects the fields of the type to determine if they are valid.
 14906  func (s *GetIPSetInput) Validate() error {
 14907  	invalidParams := request.ErrInvalidParams{Context: "GetIPSetInput"}
 14908  	if s.IPSetId == nil {
 14909  		invalidParams.Add(request.NewErrParamRequired("IPSetId"))
 14910  	}
 14911  	if s.IPSetId != nil && len(*s.IPSetId) < 1 {
 14912  		invalidParams.Add(request.NewErrParamMinLen("IPSetId", 1))
 14913  	}
 14914  
 14915  	if invalidParams.Len() > 0 {
 14916  		return invalidParams
 14917  	}
 14918  	return nil
 14919  }
 14920  
 14921  // SetIPSetId sets the IPSetId field's value.
 14922  func (s *GetIPSetInput) SetIPSetId(v string) *GetIPSetInput {
 14923  	s.IPSetId = &v
 14924  	return s
 14925  }
 14926  
 14927  type GetIPSetOutput struct {
 14928  	_ struct{} `type:"structure"`
 14929  
 14930  	// Information about the IPSet that you specified in the GetIPSet request. For
 14931  	// more information, see the following topics:
 14932  	//
 14933  	//    * IPSet: Contains IPSetDescriptors, IPSetId, and Name
 14934  	//
 14935  	//    * IPSetDescriptors: Contains an array of IPSetDescriptor objects. Each
 14936  	//    IPSetDescriptor object contains Type and Value
 14937  	IPSet *IPSet `type:"structure"`
 14938  }
 14939  
 14940  // String returns the string representation.
 14941  //
 14942  // API parameter values that are decorated as "sensitive" in the API will not
 14943  // be included in the string output. The member name will be present, but the
 14944  // value will be replaced with "sensitive".
 14945  func (s GetIPSetOutput) String() string {
 14946  	return awsutil.Prettify(s)
 14947  }
 14948  
 14949  // GoString returns the string representation.
 14950  //
 14951  // API parameter values that are decorated as "sensitive" in the API will not
 14952  // be included in the string output. The member name will be present, but the
 14953  // value will be replaced with "sensitive".
 14954  func (s GetIPSetOutput) GoString() string {
 14955  	return s.String()
 14956  }
 14957  
 14958  // SetIPSet sets the IPSet field's value.
 14959  func (s *GetIPSetOutput) SetIPSet(v *IPSet) *GetIPSetOutput {
 14960  	s.IPSet = v
 14961  	return s
 14962  }
 14963  
 14964  type GetLoggingConfigurationInput struct {
 14965  	_ struct{} `type:"structure"`
 14966  
 14967  	// The Amazon Resource Name (ARN) of the web ACL for which you want to get the
 14968  	// LoggingConfiguration.
 14969  	//
 14970  	// ResourceArn is a required field
 14971  	ResourceArn *string `min:"1" type:"string" required:"true"`
 14972  }
 14973  
 14974  // String returns the string representation.
 14975  //
 14976  // API parameter values that are decorated as "sensitive" in the API will not
 14977  // be included in the string output. The member name will be present, but the
 14978  // value will be replaced with "sensitive".
 14979  func (s GetLoggingConfigurationInput) String() string {
 14980  	return awsutil.Prettify(s)
 14981  }
 14982  
 14983  // GoString returns the string representation.
 14984  //
 14985  // API parameter values that are decorated as "sensitive" in the API will not
 14986  // be included in the string output. The member name will be present, but the
 14987  // value will be replaced with "sensitive".
 14988  func (s GetLoggingConfigurationInput) GoString() string {
 14989  	return s.String()
 14990  }
 14991  
 14992  // Validate inspects the fields of the type to determine if they are valid.
 14993  func (s *GetLoggingConfigurationInput) Validate() error {
 14994  	invalidParams := request.ErrInvalidParams{Context: "GetLoggingConfigurationInput"}
 14995  	if s.ResourceArn == nil {
 14996  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 14997  	}
 14998  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 14999  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 15000  	}
 15001  
 15002  	if invalidParams.Len() > 0 {
 15003  		return invalidParams
 15004  	}
 15005  	return nil
 15006  }
 15007  
 15008  // SetResourceArn sets the ResourceArn field's value.
 15009  func (s *GetLoggingConfigurationInput) SetResourceArn(v string) *GetLoggingConfigurationInput {
 15010  	s.ResourceArn = &v
 15011  	return s
 15012  }
 15013  
 15014  type GetLoggingConfigurationOutput struct {
 15015  	_ struct{} `type:"structure"`
 15016  
 15017  	// The LoggingConfiguration for the specified web ACL.
 15018  	LoggingConfiguration *LoggingConfiguration `type:"structure"`
 15019  }
 15020  
 15021  // String returns the string representation.
 15022  //
 15023  // API parameter values that are decorated as "sensitive" in the API will not
 15024  // be included in the string output. The member name will be present, but the
 15025  // value will be replaced with "sensitive".
 15026  func (s GetLoggingConfigurationOutput) String() string {
 15027  	return awsutil.Prettify(s)
 15028  }
 15029  
 15030  // GoString returns the string representation.
 15031  //
 15032  // API parameter values that are decorated as "sensitive" in the API will not
 15033  // be included in the string output. The member name will be present, but the
 15034  // value will be replaced with "sensitive".
 15035  func (s GetLoggingConfigurationOutput) GoString() string {
 15036  	return s.String()
 15037  }
 15038  
 15039  // SetLoggingConfiguration sets the LoggingConfiguration field's value.
 15040  func (s *GetLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *GetLoggingConfigurationOutput {
 15041  	s.LoggingConfiguration = v
 15042  	return s
 15043  }
 15044  
 15045  type GetPermissionPolicyInput struct {
 15046  	_ struct{} `type:"structure"`
 15047  
 15048  	// The Amazon Resource Name (ARN) of the RuleGroup for which you want to get
 15049  	// the policy.
 15050  	//
 15051  	// ResourceArn is a required field
 15052  	ResourceArn *string `min:"1" type:"string" required:"true"`
 15053  }
 15054  
 15055  // String returns the string representation.
 15056  //
 15057  // API parameter values that are decorated as "sensitive" in the API will not
 15058  // be included in the string output. The member name will be present, but the
 15059  // value will be replaced with "sensitive".
 15060  func (s GetPermissionPolicyInput) String() string {
 15061  	return awsutil.Prettify(s)
 15062  }
 15063  
 15064  // GoString returns the string representation.
 15065  //
 15066  // API parameter values that are decorated as "sensitive" in the API will not
 15067  // be included in the string output. The member name will be present, but the
 15068  // value will be replaced with "sensitive".
 15069  func (s GetPermissionPolicyInput) GoString() string {
 15070  	return s.String()
 15071  }
 15072  
 15073  // Validate inspects the fields of the type to determine if they are valid.
 15074  func (s *GetPermissionPolicyInput) Validate() error {
 15075  	invalidParams := request.ErrInvalidParams{Context: "GetPermissionPolicyInput"}
 15076  	if s.ResourceArn == nil {
 15077  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 15078  	}
 15079  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 15080  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 15081  	}
 15082  
 15083  	if invalidParams.Len() > 0 {
 15084  		return invalidParams
 15085  	}
 15086  	return nil
 15087  }
 15088  
 15089  // SetResourceArn sets the ResourceArn field's value.
 15090  func (s *GetPermissionPolicyInput) SetResourceArn(v string) *GetPermissionPolicyInput {
 15091  	s.ResourceArn = &v
 15092  	return s
 15093  }
 15094  
 15095  type GetPermissionPolicyOutput struct {
 15096  	_ struct{} `type:"structure"`
 15097  
 15098  	// The IAM policy attached to the specified RuleGroup.
 15099  	Policy *string `min:"1" type:"string"`
 15100  }
 15101  
 15102  // String returns the string representation.
 15103  //
 15104  // API parameter values that are decorated as "sensitive" in the API will not
 15105  // be included in the string output. The member name will be present, but the
 15106  // value will be replaced with "sensitive".
 15107  func (s GetPermissionPolicyOutput) String() string {
 15108  	return awsutil.Prettify(s)
 15109  }
 15110  
 15111  // GoString returns the string representation.
 15112  //
 15113  // API parameter values that are decorated as "sensitive" in the API will not
 15114  // be included in the string output. The member name will be present, but the
 15115  // value will be replaced with "sensitive".
 15116  func (s GetPermissionPolicyOutput) GoString() string {
 15117  	return s.String()
 15118  }
 15119  
 15120  // SetPolicy sets the Policy field's value.
 15121  func (s *GetPermissionPolicyOutput) SetPolicy(v string) *GetPermissionPolicyOutput {
 15122  	s.Policy = &v
 15123  	return s
 15124  }
 15125  
 15126  type GetRateBasedRuleInput struct {
 15127  	_ struct{} `type:"structure"`
 15128  
 15129  	// The RuleId of the RateBasedRule that you want to get. RuleId is returned
 15130  	// by CreateRateBasedRule and by ListRateBasedRules.
 15131  	//
 15132  	// RuleId is a required field
 15133  	RuleId *string `min:"1" type:"string" required:"true"`
 15134  }
 15135  
 15136  // String returns the string representation.
 15137  //
 15138  // API parameter values that are decorated as "sensitive" in the API will not
 15139  // be included in the string output. The member name will be present, but the
 15140  // value will be replaced with "sensitive".
 15141  func (s GetRateBasedRuleInput) String() string {
 15142  	return awsutil.Prettify(s)
 15143  }
 15144  
 15145  // GoString returns the string representation.
 15146  //
 15147  // API parameter values that are decorated as "sensitive" in the API will not
 15148  // be included in the string output. The member name will be present, but the
 15149  // value will be replaced with "sensitive".
 15150  func (s GetRateBasedRuleInput) GoString() string {
 15151  	return s.String()
 15152  }
 15153  
 15154  // Validate inspects the fields of the type to determine if they are valid.
 15155  func (s *GetRateBasedRuleInput) Validate() error {
 15156  	invalidParams := request.ErrInvalidParams{Context: "GetRateBasedRuleInput"}
 15157  	if s.RuleId == nil {
 15158  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 15159  	}
 15160  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 15161  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 15162  	}
 15163  
 15164  	if invalidParams.Len() > 0 {
 15165  		return invalidParams
 15166  	}
 15167  	return nil
 15168  }
 15169  
 15170  // SetRuleId sets the RuleId field's value.
 15171  func (s *GetRateBasedRuleInput) SetRuleId(v string) *GetRateBasedRuleInput {
 15172  	s.RuleId = &v
 15173  	return s
 15174  }
 15175  
 15176  type GetRateBasedRuleManagedKeysInput struct {
 15177  	_ struct{} `type:"structure"`
 15178  
 15179  	// A null value and not currently used. Do not include this in your request.
 15180  	NextMarker *string `min:"1" type:"string"`
 15181  
 15182  	// The RuleId of the RateBasedRule for which you want to get a list of ManagedKeys.
 15183  	// RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.
 15184  	//
 15185  	// RuleId is a required field
 15186  	RuleId *string `min:"1" type:"string" required:"true"`
 15187  }
 15188  
 15189  // String returns the string representation.
 15190  //
 15191  // API parameter values that are decorated as "sensitive" in the API will not
 15192  // be included in the string output. The member name will be present, but the
 15193  // value will be replaced with "sensitive".
 15194  func (s GetRateBasedRuleManagedKeysInput) String() string {
 15195  	return awsutil.Prettify(s)
 15196  }
 15197  
 15198  // GoString returns the string representation.
 15199  //
 15200  // API parameter values that are decorated as "sensitive" in the API will not
 15201  // be included in the string output. The member name will be present, but the
 15202  // value will be replaced with "sensitive".
 15203  func (s GetRateBasedRuleManagedKeysInput) GoString() string {
 15204  	return s.String()
 15205  }
 15206  
 15207  // Validate inspects the fields of the type to determine if they are valid.
 15208  func (s *GetRateBasedRuleManagedKeysInput) Validate() error {
 15209  	invalidParams := request.ErrInvalidParams{Context: "GetRateBasedRuleManagedKeysInput"}
 15210  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 15211  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 15212  	}
 15213  	if s.RuleId == nil {
 15214  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 15215  	}
 15216  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 15217  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 15218  	}
 15219  
 15220  	if invalidParams.Len() > 0 {
 15221  		return invalidParams
 15222  	}
 15223  	return nil
 15224  }
 15225  
 15226  // SetNextMarker sets the NextMarker field's value.
 15227  func (s *GetRateBasedRuleManagedKeysInput) SetNextMarker(v string) *GetRateBasedRuleManagedKeysInput {
 15228  	s.NextMarker = &v
 15229  	return s
 15230  }
 15231  
 15232  // SetRuleId sets the RuleId field's value.
 15233  func (s *GetRateBasedRuleManagedKeysInput) SetRuleId(v string) *GetRateBasedRuleManagedKeysInput {
 15234  	s.RuleId = &v
 15235  	return s
 15236  }
 15237  
 15238  type GetRateBasedRuleManagedKeysOutput struct {
 15239  	_ struct{} `type:"structure"`
 15240  
 15241  	// An array of IP addresses that currently are blocked by the specified RateBasedRule.
 15242  	ManagedKeys []*string `type:"list"`
 15243  
 15244  	// A null value and not currently used.
 15245  	NextMarker *string `min:"1" type:"string"`
 15246  }
 15247  
 15248  // String returns the string representation.
 15249  //
 15250  // API parameter values that are decorated as "sensitive" in the API will not
 15251  // be included in the string output. The member name will be present, but the
 15252  // value will be replaced with "sensitive".
 15253  func (s GetRateBasedRuleManagedKeysOutput) String() string {
 15254  	return awsutil.Prettify(s)
 15255  }
 15256  
 15257  // GoString returns the string representation.
 15258  //
 15259  // API parameter values that are decorated as "sensitive" in the API will not
 15260  // be included in the string output. The member name will be present, but the
 15261  // value will be replaced with "sensitive".
 15262  func (s GetRateBasedRuleManagedKeysOutput) GoString() string {
 15263  	return s.String()
 15264  }
 15265  
 15266  // SetManagedKeys sets the ManagedKeys field's value.
 15267  func (s *GetRateBasedRuleManagedKeysOutput) SetManagedKeys(v []*string) *GetRateBasedRuleManagedKeysOutput {
 15268  	s.ManagedKeys = v
 15269  	return s
 15270  }
 15271  
 15272  // SetNextMarker sets the NextMarker field's value.
 15273  func (s *GetRateBasedRuleManagedKeysOutput) SetNextMarker(v string) *GetRateBasedRuleManagedKeysOutput {
 15274  	s.NextMarker = &v
 15275  	return s
 15276  }
 15277  
 15278  type GetRateBasedRuleOutput struct {
 15279  	_ struct{} `type:"structure"`
 15280  
 15281  	// Information about the RateBasedRule that you specified in the GetRateBasedRule
 15282  	// request.
 15283  	Rule *RateBasedRule `type:"structure"`
 15284  }
 15285  
 15286  // String returns the string representation.
 15287  //
 15288  // API parameter values that are decorated as "sensitive" in the API will not
 15289  // be included in the string output. The member name will be present, but the
 15290  // value will be replaced with "sensitive".
 15291  func (s GetRateBasedRuleOutput) String() string {
 15292  	return awsutil.Prettify(s)
 15293  }
 15294  
 15295  // GoString returns the string representation.
 15296  //
 15297  // API parameter values that are decorated as "sensitive" in the API will not
 15298  // be included in the string output. The member name will be present, but the
 15299  // value will be replaced with "sensitive".
 15300  func (s GetRateBasedRuleOutput) GoString() string {
 15301  	return s.String()
 15302  }
 15303  
 15304  // SetRule sets the Rule field's value.
 15305  func (s *GetRateBasedRuleOutput) SetRule(v *RateBasedRule) *GetRateBasedRuleOutput {
 15306  	s.Rule = v
 15307  	return s
 15308  }
 15309  
 15310  type GetRegexMatchSetInput struct {
 15311  	_ struct{} `type:"structure"`
 15312  
 15313  	// The RegexMatchSetId of the RegexMatchSet that you want to get. RegexMatchSetId
 15314  	// is returned by CreateRegexMatchSet and by ListRegexMatchSets.
 15315  	//
 15316  	// RegexMatchSetId is a required field
 15317  	RegexMatchSetId *string `min:"1" type:"string" required:"true"`
 15318  }
 15319  
 15320  // String returns the string representation.
 15321  //
 15322  // API parameter values that are decorated as "sensitive" in the API will not
 15323  // be included in the string output. The member name will be present, but the
 15324  // value will be replaced with "sensitive".
 15325  func (s GetRegexMatchSetInput) String() string {
 15326  	return awsutil.Prettify(s)
 15327  }
 15328  
 15329  // GoString returns the string representation.
 15330  //
 15331  // API parameter values that are decorated as "sensitive" in the API will not
 15332  // be included in the string output. The member name will be present, but the
 15333  // value will be replaced with "sensitive".
 15334  func (s GetRegexMatchSetInput) GoString() string {
 15335  	return s.String()
 15336  }
 15337  
 15338  // Validate inspects the fields of the type to determine if they are valid.
 15339  func (s *GetRegexMatchSetInput) Validate() error {
 15340  	invalidParams := request.ErrInvalidParams{Context: "GetRegexMatchSetInput"}
 15341  	if s.RegexMatchSetId == nil {
 15342  		invalidParams.Add(request.NewErrParamRequired("RegexMatchSetId"))
 15343  	}
 15344  	if s.RegexMatchSetId != nil && len(*s.RegexMatchSetId) < 1 {
 15345  		invalidParams.Add(request.NewErrParamMinLen("RegexMatchSetId", 1))
 15346  	}
 15347  
 15348  	if invalidParams.Len() > 0 {
 15349  		return invalidParams
 15350  	}
 15351  	return nil
 15352  }
 15353  
 15354  // SetRegexMatchSetId sets the RegexMatchSetId field's value.
 15355  func (s *GetRegexMatchSetInput) SetRegexMatchSetId(v string) *GetRegexMatchSetInput {
 15356  	s.RegexMatchSetId = &v
 15357  	return s
 15358  }
 15359  
 15360  type GetRegexMatchSetOutput struct {
 15361  	_ struct{} `type:"structure"`
 15362  
 15363  	// Information about the RegexMatchSet that you specified in the GetRegexMatchSet
 15364  	// request. For more information, see RegexMatchTuple.
 15365  	RegexMatchSet *RegexMatchSet `type:"structure"`
 15366  }
 15367  
 15368  // String returns the string representation.
 15369  //
 15370  // API parameter values that are decorated as "sensitive" in the API will not
 15371  // be included in the string output. The member name will be present, but the
 15372  // value will be replaced with "sensitive".
 15373  func (s GetRegexMatchSetOutput) String() string {
 15374  	return awsutil.Prettify(s)
 15375  }
 15376  
 15377  // GoString returns the string representation.
 15378  //
 15379  // API parameter values that are decorated as "sensitive" in the API will not
 15380  // be included in the string output. The member name will be present, but the
 15381  // value will be replaced with "sensitive".
 15382  func (s GetRegexMatchSetOutput) GoString() string {
 15383  	return s.String()
 15384  }
 15385  
 15386  // SetRegexMatchSet sets the RegexMatchSet field's value.
 15387  func (s *GetRegexMatchSetOutput) SetRegexMatchSet(v *RegexMatchSet) *GetRegexMatchSetOutput {
 15388  	s.RegexMatchSet = v
 15389  	return s
 15390  }
 15391  
 15392  type GetRegexPatternSetInput struct {
 15393  	_ struct{} `type:"structure"`
 15394  
 15395  	// The RegexPatternSetId of the RegexPatternSet that you want to get. RegexPatternSetId
 15396  	// is returned by CreateRegexPatternSet and by ListRegexPatternSets.
 15397  	//
 15398  	// RegexPatternSetId is a required field
 15399  	RegexPatternSetId *string `min:"1" type:"string" required:"true"`
 15400  }
 15401  
 15402  // String returns the string representation.
 15403  //
 15404  // API parameter values that are decorated as "sensitive" in the API will not
 15405  // be included in the string output. The member name will be present, but the
 15406  // value will be replaced with "sensitive".
 15407  func (s GetRegexPatternSetInput) String() string {
 15408  	return awsutil.Prettify(s)
 15409  }
 15410  
 15411  // GoString returns the string representation.
 15412  //
 15413  // API parameter values that are decorated as "sensitive" in the API will not
 15414  // be included in the string output. The member name will be present, but the
 15415  // value will be replaced with "sensitive".
 15416  func (s GetRegexPatternSetInput) GoString() string {
 15417  	return s.String()
 15418  }
 15419  
 15420  // Validate inspects the fields of the type to determine if they are valid.
 15421  func (s *GetRegexPatternSetInput) Validate() error {
 15422  	invalidParams := request.ErrInvalidParams{Context: "GetRegexPatternSetInput"}
 15423  	if s.RegexPatternSetId == nil {
 15424  		invalidParams.Add(request.NewErrParamRequired("RegexPatternSetId"))
 15425  	}
 15426  	if s.RegexPatternSetId != nil && len(*s.RegexPatternSetId) < 1 {
 15427  		invalidParams.Add(request.NewErrParamMinLen("RegexPatternSetId", 1))
 15428  	}
 15429  
 15430  	if invalidParams.Len() > 0 {
 15431  		return invalidParams
 15432  	}
 15433  	return nil
 15434  }
 15435  
 15436  // SetRegexPatternSetId sets the RegexPatternSetId field's value.
 15437  func (s *GetRegexPatternSetInput) SetRegexPatternSetId(v string) *GetRegexPatternSetInput {
 15438  	s.RegexPatternSetId = &v
 15439  	return s
 15440  }
 15441  
 15442  type GetRegexPatternSetOutput struct {
 15443  	_ struct{} `type:"structure"`
 15444  
 15445  	// Information about the RegexPatternSet that you specified in the GetRegexPatternSet
 15446  	// request, including the identifier of the pattern set and the regular expression
 15447  	// patterns you want AWS WAF to search for.
 15448  	RegexPatternSet *RegexPatternSet `type:"structure"`
 15449  }
 15450  
 15451  // String returns the string representation.
 15452  //
 15453  // API parameter values that are decorated as "sensitive" in the API will not
 15454  // be included in the string output. The member name will be present, but the
 15455  // value will be replaced with "sensitive".
 15456  func (s GetRegexPatternSetOutput) String() string {
 15457  	return awsutil.Prettify(s)
 15458  }
 15459  
 15460  // GoString returns the string representation.
 15461  //
 15462  // API parameter values that are decorated as "sensitive" in the API will not
 15463  // be included in the string output. The member name will be present, but the
 15464  // value will be replaced with "sensitive".
 15465  func (s GetRegexPatternSetOutput) GoString() string {
 15466  	return s.String()
 15467  }
 15468  
 15469  // SetRegexPatternSet sets the RegexPatternSet field's value.
 15470  func (s *GetRegexPatternSetOutput) SetRegexPatternSet(v *RegexPatternSet) *GetRegexPatternSetOutput {
 15471  	s.RegexPatternSet = v
 15472  	return s
 15473  }
 15474  
 15475  type GetRuleGroupInput struct {
 15476  	_ struct{} `type:"structure"`
 15477  
 15478  	// The RuleGroupId of the RuleGroup that you want to get. RuleGroupId is returned
 15479  	// by CreateRuleGroup and by ListRuleGroups.
 15480  	//
 15481  	// RuleGroupId is a required field
 15482  	RuleGroupId *string `min:"1" type:"string" required:"true"`
 15483  }
 15484  
 15485  // String returns the string representation.
 15486  //
 15487  // API parameter values that are decorated as "sensitive" in the API will not
 15488  // be included in the string output. The member name will be present, but the
 15489  // value will be replaced with "sensitive".
 15490  func (s GetRuleGroupInput) String() string {
 15491  	return awsutil.Prettify(s)
 15492  }
 15493  
 15494  // GoString returns the string representation.
 15495  //
 15496  // API parameter values that are decorated as "sensitive" in the API will not
 15497  // be included in the string output. The member name will be present, but the
 15498  // value will be replaced with "sensitive".
 15499  func (s GetRuleGroupInput) GoString() string {
 15500  	return s.String()
 15501  }
 15502  
 15503  // Validate inspects the fields of the type to determine if they are valid.
 15504  func (s *GetRuleGroupInput) Validate() error {
 15505  	invalidParams := request.ErrInvalidParams{Context: "GetRuleGroupInput"}
 15506  	if s.RuleGroupId == nil {
 15507  		invalidParams.Add(request.NewErrParamRequired("RuleGroupId"))
 15508  	}
 15509  	if s.RuleGroupId != nil && len(*s.RuleGroupId) < 1 {
 15510  		invalidParams.Add(request.NewErrParamMinLen("RuleGroupId", 1))
 15511  	}
 15512  
 15513  	if invalidParams.Len() > 0 {
 15514  		return invalidParams
 15515  	}
 15516  	return nil
 15517  }
 15518  
 15519  // SetRuleGroupId sets the RuleGroupId field's value.
 15520  func (s *GetRuleGroupInput) SetRuleGroupId(v string) *GetRuleGroupInput {
 15521  	s.RuleGroupId = &v
 15522  	return s
 15523  }
 15524  
 15525  type GetRuleGroupOutput struct {
 15526  	_ struct{} `type:"structure"`
 15527  
 15528  	// Information about the RuleGroup that you specified in the GetRuleGroup request.
 15529  	RuleGroup *RuleGroup `type:"structure"`
 15530  }
 15531  
 15532  // String returns the string representation.
 15533  //
 15534  // API parameter values that are decorated as "sensitive" in the API will not
 15535  // be included in the string output. The member name will be present, but the
 15536  // value will be replaced with "sensitive".
 15537  func (s GetRuleGroupOutput) String() string {
 15538  	return awsutil.Prettify(s)
 15539  }
 15540  
 15541  // GoString returns the string representation.
 15542  //
 15543  // API parameter values that are decorated as "sensitive" in the API will not
 15544  // be included in the string output. The member name will be present, but the
 15545  // value will be replaced with "sensitive".
 15546  func (s GetRuleGroupOutput) GoString() string {
 15547  	return s.String()
 15548  }
 15549  
 15550  // SetRuleGroup sets the RuleGroup field's value.
 15551  func (s *GetRuleGroupOutput) SetRuleGroup(v *RuleGroup) *GetRuleGroupOutput {
 15552  	s.RuleGroup = v
 15553  	return s
 15554  }
 15555  
 15556  type GetRuleInput struct {
 15557  	_ struct{} `type:"structure"`
 15558  
 15559  	// The RuleId of the Rule that you want to get. RuleId is returned by CreateRule
 15560  	// and by ListRules.
 15561  	//
 15562  	// RuleId is a required field
 15563  	RuleId *string `min:"1" type:"string" required:"true"`
 15564  }
 15565  
 15566  // String returns the string representation.
 15567  //
 15568  // API parameter values that are decorated as "sensitive" in the API will not
 15569  // be included in the string output. The member name will be present, but the
 15570  // value will be replaced with "sensitive".
 15571  func (s GetRuleInput) String() string {
 15572  	return awsutil.Prettify(s)
 15573  }
 15574  
 15575  // GoString returns the string representation.
 15576  //
 15577  // API parameter values that are decorated as "sensitive" in the API will not
 15578  // be included in the string output. The member name will be present, but the
 15579  // value will be replaced with "sensitive".
 15580  func (s GetRuleInput) GoString() string {
 15581  	return s.String()
 15582  }
 15583  
 15584  // Validate inspects the fields of the type to determine if they are valid.
 15585  func (s *GetRuleInput) Validate() error {
 15586  	invalidParams := request.ErrInvalidParams{Context: "GetRuleInput"}
 15587  	if s.RuleId == nil {
 15588  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 15589  	}
 15590  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 15591  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 15592  	}
 15593  
 15594  	if invalidParams.Len() > 0 {
 15595  		return invalidParams
 15596  	}
 15597  	return nil
 15598  }
 15599  
 15600  // SetRuleId sets the RuleId field's value.
 15601  func (s *GetRuleInput) SetRuleId(v string) *GetRuleInput {
 15602  	s.RuleId = &v
 15603  	return s
 15604  }
 15605  
 15606  type GetRuleOutput struct {
 15607  	_ struct{} `type:"structure"`
 15608  
 15609  	// Information about the Rule that you specified in the GetRule request. For
 15610  	// more information, see the following topics:
 15611  	//
 15612  	//    * Rule: Contains MetricName, Name, an array of Predicate objects, and
 15613  	//    RuleId
 15614  	//
 15615  	//    * Predicate: Each Predicate object contains DataId, Negated, and Type
 15616  	Rule *Rule `type:"structure"`
 15617  }
 15618  
 15619  // String returns the string representation.
 15620  //
 15621  // API parameter values that are decorated as "sensitive" in the API will not
 15622  // be included in the string output. The member name will be present, but the
 15623  // value will be replaced with "sensitive".
 15624  func (s GetRuleOutput) String() string {
 15625  	return awsutil.Prettify(s)
 15626  }
 15627  
 15628  // GoString returns the string representation.
 15629  //
 15630  // API parameter values that are decorated as "sensitive" in the API will not
 15631  // be included in the string output. The member name will be present, but the
 15632  // value will be replaced with "sensitive".
 15633  func (s GetRuleOutput) GoString() string {
 15634  	return s.String()
 15635  }
 15636  
 15637  // SetRule sets the Rule field's value.
 15638  func (s *GetRuleOutput) SetRule(v *Rule) *GetRuleOutput {
 15639  	s.Rule = v
 15640  	return s
 15641  }
 15642  
 15643  type GetSampledRequestsInput struct {
 15644  	_ struct{} `type:"structure"`
 15645  
 15646  	// The number of requests that you want AWS WAF to return from among the first
 15647  	// 5,000 requests that your AWS resource received during the time range. If
 15648  	// your resource received fewer requests than the value of MaxItems, GetSampledRequests
 15649  	// returns information about all of them.
 15650  	//
 15651  	// MaxItems is a required field
 15652  	MaxItems *int64 `min:"1" type:"long" required:"true"`
 15653  
 15654  	// RuleId is one of three values:
 15655  	//
 15656  	//    * The RuleId of the Rule or the RuleGroupId of the RuleGroup for which
 15657  	//    you want GetSampledRequests to return a sample of requests.
 15658  	//
 15659  	//    * Default_Action, which causes GetSampledRequests to return a sample of
 15660  	//    the requests that didn't match any of the rules in the specified WebACL.
 15661  	//
 15662  	// RuleId is a required field
 15663  	RuleId *string `min:"1" type:"string" required:"true"`
 15664  
 15665  	// The start date and time and the end date and time of the range for which
 15666  	// you want GetSampledRequests to return a sample of requests. You must specify
 15667  	// the times in Coordinated Universal Time (UTC) format. UTC format includes
 15668  	// the special designator, Z. For example, "2016-09-27T14:50Z". You can specify
 15669  	// any time range in the previous three hours.
 15670  	//
 15671  	// TimeWindow is a required field
 15672  	TimeWindow *TimeWindow `type:"structure" required:"true"`
 15673  
 15674  	// The WebACLId of the WebACL for which you want GetSampledRequests to return
 15675  	// a sample of requests.
 15676  	//
 15677  	// WebAclId is a required field
 15678  	WebAclId *string `min:"1" type:"string" required:"true"`
 15679  }
 15680  
 15681  // String returns the string representation.
 15682  //
 15683  // API parameter values that are decorated as "sensitive" in the API will not
 15684  // be included in the string output. The member name will be present, but the
 15685  // value will be replaced with "sensitive".
 15686  func (s GetSampledRequestsInput) String() string {
 15687  	return awsutil.Prettify(s)
 15688  }
 15689  
 15690  // GoString returns the string representation.
 15691  //
 15692  // API parameter values that are decorated as "sensitive" in the API will not
 15693  // be included in the string output. The member name will be present, but the
 15694  // value will be replaced with "sensitive".
 15695  func (s GetSampledRequestsInput) GoString() string {
 15696  	return s.String()
 15697  }
 15698  
 15699  // Validate inspects the fields of the type to determine if they are valid.
 15700  func (s *GetSampledRequestsInput) Validate() error {
 15701  	invalidParams := request.ErrInvalidParams{Context: "GetSampledRequestsInput"}
 15702  	if s.MaxItems == nil {
 15703  		invalidParams.Add(request.NewErrParamRequired("MaxItems"))
 15704  	}
 15705  	if s.MaxItems != nil && *s.MaxItems < 1 {
 15706  		invalidParams.Add(request.NewErrParamMinValue("MaxItems", 1))
 15707  	}
 15708  	if s.RuleId == nil {
 15709  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 15710  	}
 15711  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 15712  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 15713  	}
 15714  	if s.TimeWindow == nil {
 15715  		invalidParams.Add(request.NewErrParamRequired("TimeWindow"))
 15716  	}
 15717  	if s.WebAclId == nil {
 15718  		invalidParams.Add(request.NewErrParamRequired("WebAclId"))
 15719  	}
 15720  	if s.WebAclId != nil && len(*s.WebAclId) < 1 {
 15721  		invalidParams.Add(request.NewErrParamMinLen("WebAclId", 1))
 15722  	}
 15723  	if s.TimeWindow != nil {
 15724  		if err := s.TimeWindow.Validate(); err != nil {
 15725  			invalidParams.AddNested("TimeWindow", err.(request.ErrInvalidParams))
 15726  		}
 15727  	}
 15728  
 15729  	if invalidParams.Len() > 0 {
 15730  		return invalidParams
 15731  	}
 15732  	return nil
 15733  }
 15734  
 15735  // SetMaxItems sets the MaxItems field's value.
 15736  func (s *GetSampledRequestsInput) SetMaxItems(v int64) *GetSampledRequestsInput {
 15737  	s.MaxItems = &v
 15738  	return s
 15739  }
 15740  
 15741  // SetRuleId sets the RuleId field's value.
 15742  func (s *GetSampledRequestsInput) SetRuleId(v string) *GetSampledRequestsInput {
 15743  	s.RuleId = &v
 15744  	return s
 15745  }
 15746  
 15747  // SetTimeWindow sets the TimeWindow field's value.
 15748  func (s *GetSampledRequestsInput) SetTimeWindow(v *TimeWindow) *GetSampledRequestsInput {
 15749  	s.TimeWindow = v
 15750  	return s
 15751  }
 15752  
 15753  // SetWebAclId sets the WebAclId field's value.
 15754  func (s *GetSampledRequestsInput) SetWebAclId(v string) *GetSampledRequestsInput {
 15755  	s.WebAclId = &v
 15756  	return s
 15757  }
 15758  
 15759  type GetSampledRequestsOutput struct {
 15760  	_ struct{} `type:"structure"`
 15761  
 15762  	// The total number of requests from which GetSampledRequests got a sample of
 15763  	// MaxItems requests. If PopulationSize is less than MaxItems, the sample includes
 15764  	// every request that your AWS resource received during the specified time range.
 15765  	PopulationSize *int64 `type:"long"`
 15766  
 15767  	// A complex type that contains detailed information about each of the requests
 15768  	// in the sample.
 15769  	SampledRequests []*SampledHTTPRequest `type:"list"`
 15770  
 15771  	// Usually, TimeWindow is the time range that you specified in the GetSampledRequests
 15772  	// request. However, if your AWS resource received more than 5,000 requests
 15773  	// during the time range that you specified in the request, GetSampledRequests
 15774  	// returns the time range for the first 5,000 requests. Times are in Coordinated
 15775  	// Universal Time (UTC) format.
 15776  	TimeWindow *TimeWindow `type:"structure"`
 15777  }
 15778  
 15779  // String returns the string representation.
 15780  //
 15781  // API parameter values that are decorated as "sensitive" in the API will not
 15782  // be included in the string output. The member name will be present, but the
 15783  // value will be replaced with "sensitive".
 15784  func (s GetSampledRequestsOutput) String() string {
 15785  	return awsutil.Prettify(s)
 15786  }
 15787  
 15788  // GoString returns the string representation.
 15789  //
 15790  // API parameter values that are decorated as "sensitive" in the API will not
 15791  // be included in the string output. The member name will be present, but the
 15792  // value will be replaced with "sensitive".
 15793  func (s GetSampledRequestsOutput) GoString() string {
 15794  	return s.String()
 15795  }
 15796  
 15797  // SetPopulationSize sets the PopulationSize field's value.
 15798  func (s *GetSampledRequestsOutput) SetPopulationSize(v int64) *GetSampledRequestsOutput {
 15799  	s.PopulationSize = &v
 15800  	return s
 15801  }
 15802  
 15803  // SetSampledRequests sets the SampledRequests field's value.
 15804  func (s *GetSampledRequestsOutput) SetSampledRequests(v []*SampledHTTPRequest) *GetSampledRequestsOutput {
 15805  	s.SampledRequests = v
 15806  	return s
 15807  }
 15808  
 15809  // SetTimeWindow sets the TimeWindow field's value.
 15810  func (s *GetSampledRequestsOutput) SetTimeWindow(v *TimeWindow) *GetSampledRequestsOutput {
 15811  	s.TimeWindow = v
 15812  	return s
 15813  }
 15814  
 15815  type GetSizeConstraintSetInput struct {
 15816  	_ struct{} `type:"structure"`
 15817  
 15818  	// The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId
 15819  	// is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.
 15820  	//
 15821  	// SizeConstraintSetId is a required field
 15822  	SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
 15823  }
 15824  
 15825  // String returns the string representation.
 15826  //
 15827  // API parameter values that are decorated as "sensitive" in the API will not
 15828  // be included in the string output. The member name will be present, but the
 15829  // value will be replaced with "sensitive".
 15830  func (s GetSizeConstraintSetInput) String() string {
 15831  	return awsutil.Prettify(s)
 15832  }
 15833  
 15834  // GoString returns the string representation.
 15835  //
 15836  // API parameter values that are decorated as "sensitive" in the API will not
 15837  // be included in the string output. The member name will be present, but the
 15838  // value will be replaced with "sensitive".
 15839  func (s GetSizeConstraintSetInput) GoString() string {
 15840  	return s.String()
 15841  }
 15842  
 15843  // Validate inspects the fields of the type to determine if they are valid.
 15844  func (s *GetSizeConstraintSetInput) Validate() error {
 15845  	invalidParams := request.ErrInvalidParams{Context: "GetSizeConstraintSetInput"}
 15846  	if s.SizeConstraintSetId == nil {
 15847  		invalidParams.Add(request.NewErrParamRequired("SizeConstraintSetId"))
 15848  	}
 15849  	if s.SizeConstraintSetId != nil && len(*s.SizeConstraintSetId) < 1 {
 15850  		invalidParams.Add(request.NewErrParamMinLen("SizeConstraintSetId", 1))
 15851  	}
 15852  
 15853  	if invalidParams.Len() > 0 {
 15854  		return invalidParams
 15855  	}
 15856  	return nil
 15857  }
 15858  
 15859  // SetSizeConstraintSetId sets the SizeConstraintSetId field's value.
 15860  func (s *GetSizeConstraintSetInput) SetSizeConstraintSetId(v string) *GetSizeConstraintSetInput {
 15861  	s.SizeConstraintSetId = &v
 15862  	return s
 15863  }
 15864  
 15865  type GetSizeConstraintSetOutput struct {
 15866  	_ struct{} `type:"structure"`
 15867  
 15868  	// Information about the SizeConstraintSet that you specified in the GetSizeConstraintSet
 15869  	// request. For more information, see the following topics:
 15870  	//
 15871  	//    * SizeConstraintSet: Contains SizeConstraintSetId, SizeConstraints, and
 15872  	//    Name
 15873  	//
 15874  	//    * SizeConstraints: Contains an array of SizeConstraint objects. Each SizeConstraint
 15875  	//    object contains FieldToMatch, TextTransformation, ComparisonOperator,
 15876  	//    and Size
 15877  	//
 15878  	//    * FieldToMatch: Contains Data and Type
 15879  	SizeConstraintSet *SizeConstraintSet `type:"structure"`
 15880  }
 15881  
 15882  // String returns the string representation.
 15883  //
 15884  // API parameter values that are decorated as "sensitive" in the API will not
 15885  // be included in the string output. The member name will be present, but the
 15886  // value will be replaced with "sensitive".
 15887  func (s GetSizeConstraintSetOutput) String() string {
 15888  	return awsutil.Prettify(s)
 15889  }
 15890  
 15891  // GoString returns the string representation.
 15892  //
 15893  // API parameter values that are decorated as "sensitive" in the API will not
 15894  // be included in the string output. The member name will be present, but the
 15895  // value will be replaced with "sensitive".
 15896  func (s GetSizeConstraintSetOutput) GoString() string {
 15897  	return s.String()
 15898  }
 15899  
 15900  // SetSizeConstraintSet sets the SizeConstraintSet field's value.
 15901  func (s *GetSizeConstraintSetOutput) SetSizeConstraintSet(v *SizeConstraintSet) *GetSizeConstraintSetOutput {
 15902  	s.SizeConstraintSet = v
 15903  	return s
 15904  }
 15905  
 15906  // A request to get a SqlInjectionMatchSet.
 15907  type GetSqlInjectionMatchSetInput struct {
 15908  	_ struct{} `type:"structure"`
 15909  
 15910  	// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to get.
 15911  	// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.
 15912  	//
 15913  	// SqlInjectionMatchSetId is a required field
 15914  	SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
 15915  }
 15916  
 15917  // String returns the string representation.
 15918  //
 15919  // API parameter values that are decorated as "sensitive" in the API will not
 15920  // be included in the string output. The member name will be present, but the
 15921  // value will be replaced with "sensitive".
 15922  func (s GetSqlInjectionMatchSetInput) String() string {
 15923  	return awsutil.Prettify(s)
 15924  }
 15925  
 15926  // GoString returns the string representation.
 15927  //
 15928  // API parameter values that are decorated as "sensitive" in the API will not
 15929  // be included in the string output. The member name will be present, but the
 15930  // value will be replaced with "sensitive".
 15931  func (s GetSqlInjectionMatchSetInput) GoString() string {
 15932  	return s.String()
 15933  }
 15934  
 15935  // Validate inspects the fields of the type to determine if they are valid.
 15936  func (s *GetSqlInjectionMatchSetInput) Validate() error {
 15937  	invalidParams := request.ErrInvalidParams{Context: "GetSqlInjectionMatchSetInput"}
 15938  	if s.SqlInjectionMatchSetId == nil {
 15939  		invalidParams.Add(request.NewErrParamRequired("SqlInjectionMatchSetId"))
 15940  	}
 15941  	if s.SqlInjectionMatchSetId != nil && len(*s.SqlInjectionMatchSetId) < 1 {
 15942  		invalidParams.Add(request.NewErrParamMinLen("SqlInjectionMatchSetId", 1))
 15943  	}
 15944  
 15945  	if invalidParams.Len() > 0 {
 15946  		return invalidParams
 15947  	}
 15948  	return nil
 15949  }
 15950  
 15951  // SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value.
 15952  func (s *GetSqlInjectionMatchSetInput) SetSqlInjectionMatchSetId(v string) *GetSqlInjectionMatchSetInput {
 15953  	s.SqlInjectionMatchSetId = &v
 15954  	return s
 15955  }
 15956  
 15957  // The response to a GetSqlInjectionMatchSet request.
 15958  type GetSqlInjectionMatchSetOutput struct {
 15959  	_ struct{} `type:"structure"`
 15960  
 15961  	// Information about the SqlInjectionMatchSet that you specified in the GetSqlInjectionMatchSet
 15962  	// request. For more information, see the following topics:
 15963  	//
 15964  	//    * SqlInjectionMatchSet: Contains Name, SqlInjectionMatchSetId, and an
 15965  	//    array of SqlInjectionMatchTuple objects
 15966  	//
 15967  	//    * SqlInjectionMatchTuple: Each SqlInjectionMatchTuple object contains
 15968  	//    FieldToMatch and TextTransformation
 15969  	//
 15970  	//    * FieldToMatch: Contains Data and Type
 15971  	SqlInjectionMatchSet *SqlInjectionMatchSet `type:"structure"`
 15972  }
 15973  
 15974  // String returns the string representation.
 15975  //
 15976  // API parameter values that are decorated as "sensitive" in the API will not
 15977  // be included in the string output. The member name will be present, but the
 15978  // value will be replaced with "sensitive".
 15979  func (s GetSqlInjectionMatchSetOutput) String() string {
 15980  	return awsutil.Prettify(s)
 15981  }
 15982  
 15983  // GoString returns the string representation.
 15984  //
 15985  // API parameter values that are decorated as "sensitive" in the API will not
 15986  // be included in the string output. The member name will be present, but the
 15987  // value will be replaced with "sensitive".
 15988  func (s GetSqlInjectionMatchSetOutput) GoString() string {
 15989  	return s.String()
 15990  }
 15991  
 15992  // SetSqlInjectionMatchSet sets the SqlInjectionMatchSet field's value.
 15993  func (s *GetSqlInjectionMatchSetOutput) SetSqlInjectionMatchSet(v *SqlInjectionMatchSet) *GetSqlInjectionMatchSetOutput {
 15994  	s.SqlInjectionMatchSet = v
 15995  	return s
 15996  }
 15997  
 15998  type GetWebACLInput struct {
 15999  	_ struct{} `type:"structure"`
 16000  
 16001  	// The WebACLId of the WebACL that you want to get. WebACLId is returned by
 16002  	// CreateWebACL and by ListWebACLs.
 16003  	//
 16004  	// WebACLId is a required field
 16005  	WebACLId *string `min:"1" type:"string" required:"true"`
 16006  }
 16007  
 16008  // String returns the string representation.
 16009  //
 16010  // API parameter values that are decorated as "sensitive" in the API will not
 16011  // be included in the string output. The member name will be present, but the
 16012  // value will be replaced with "sensitive".
 16013  func (s GetWebACLInput) String() string {
 16014  	return awsutil.Prettify(s)
 16015  }
 16016  
 16017  // GoString returns the string representation.
 16018  //
 16019  // API parameter values that are decorated as "sensitive" in the API will not
 16020  // be included in the string output. The member name will be present, but the
 16021  // value will be replaced with "sensitive".
 16022  func (s GetWebACLInput) GoString() string {
 16023  	return s.String()
 16024  }
 16025  
 16026  // Validate inspects the fields of the type to determine if they are valid.
 16027  func (s *GetWebACLInput) Validate() error {
 16028  	invalidParams := request.ErrInvalidParams{Context: "GetWebACLInput"}
 16029  	if s.WebACLId == nil {
 16030  		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
 16031  	}
 16032  	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
 16033  		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
 16034  	}
 16035  
 16036  	if invalidParams.Len() > 0 {
 16037  		return invalidParams
 16038  	}
 16039  	return nil
 16040  }
 16041  
 16042  // SetWebACLId sets the WebACLId field's value.
 16043  func (s *GetWebACLInput) SetWebACLId(v string) *GetWebACLInput {
 16044  	s.WebACLId = &v
 16045  	return s
 16046  }
 16047  
 16048  type GetWebACLOutput struct {
 16049  	_ struct{} `type:"structure"`
 16050  
 16051  	// Information about the WebACL that you specified in the GetWebACL request.
 16052  	// For more information, see the following topics:
 16053  	//
 16054  	//    * WebACL: Contains DefaultAction, MetricName, Name, an array of Rule objects,
 16055  	//    and WebACLId
 16056  	//
 16057  	//    * DefaultAction (Data type is WafAction): Contains Type
 16058  	//
 16059  	//    * Rules: Contains an array of ActivatedRule objects, which contain Action,
 16060  	//    Priority, and RuleId
 16061  	//
 16062  	//    * Action: Contains Type
 16063  	WebACL *WebACL `type:"structure"`
 16064  }
 16065  
 16066  // String returns the string representation.
 16067  //
 16068  // API parameter values that are decorated as "sensitive" in the API will not
 16069  // be included in the string output. The member name will be present, but the
 16070  // value will be replaced with "sensitive".
 16071  func (s GetWebACLOutput) String() string {
 16072  	return awsutil.Prettify(s)
 16073  }
 16074  
 16075  // GoString returns the string representation.
 16076  //
 16077  // API parameter values that are decorated as "sensitive" in the API will not
 16078  // be included in the string output. The member name will be present, but the
 16079  // value will be replaced with "sensitive".
 16080  func (s GetWebACLOutput) GoString() string {
 16081  	return s.String()
 16082  }
 16083  
 16084  // SetWebACL sets the WebACL field's value.
 16085  func (s *GetWebACLOutput) SetWebACL(v *WebACL) *GetWebACLOutput {
 16086  	s.WebACL = v
 16087  	return s
 16088  }
 16089  
 16090  // A request to get an XssMatchSet.
 16091  type GetXssMatchSetInput struct {
 16092  	_ struct{} `type:"structure"`
 16093  
 16094  	// The XssMatchSetId of the XssMatchSet that you want to get. XssMatchSetId
 16095  	// is returned by CreateXssMatchSet and by ListXssMatchSets.
 16096  	//
 16097  	// XssMatchSetId is a required field
 16098  	XssMatchSetId *string `min:"1" type:"string" required:"true"`
 16099  }
 16100  
 16101  // String returns the string representation.
 16102  //
 16103  // API parameter values that are decorated as "sensitive" in the API will not
 16104  // be included in the string output. The member name will be present, but the
 16105  // value will be replaced with "sensitive".
 16106  func (s GetXssMatchSetInput) String() string {
 16107  	return awsutil.Prettify(s)
 16108  }
 16109  
 16110  // GoString returns the string representation.
 16111  //
 16112  // API parameter values that are decorated as "sensitive" in the API will not
 16113  // be included in the string output. The member name will be present, but the
 16114  // value will be replaced with "sensitive".
 16115  func (s GetXssMatchSetInput) GoString() string {
 16116  	return s.String()
 16117  }
 16118  
 16119  // Validate inspects the fields of the type to determine if they are valid.
 16120  func (s *GetXssMatchSetInput) Validate() error {
 16121  	invalidParams := request.ErrInvalidParams{Context: "GetXssMatchSetInput"}
 16122  	if s.XssMatchSetId == nil {
 16123  		invalidParams.Add(request.NewErrParamRequired("XssMatchSetId"))
 16124  	}
 16125  	if s.XssMatchSetId != nil && len(*s.XssMatchSetId) < 1 {
 16126  		invalidParams.Add(request.NewErrParamMinLen("XssMatchSetId", 1))
 16127  	}
 16128  
 16129  	if invalidParams.Len() > 0 {
 16130  		return invalidParams
 16131  	}
 16132  	return nil
 16133  }
 16134  
 16135  // SetXssMatchSetId sets the XssMatchSetId field's value.
 16136  func (s *GetXssMatchSetInput) SetXssMatchSetId(v string) *GetXssMatchSetInput {
 16137  	s.XssMatchSetId = &v
 16138  	return s
 16139  }
 16140  
 16141  // The response to a GetXssMatchSet request.
 16142  type GetXssMatchSetOutput struct {
 16143  	_ struct{} `type:"structure"`
 16144  
 16145  	// Information about the XssMatchSet that you specified in the GetXssMatchSet
 16146  	// request. For more information, see the following topics:
 16147  	//
 16148  	//    * XssMatchSet: Contains Name, XssMatchSetId, and an array of XssMatchTuple
 16149  	//    objects
 16150  	//
 16151  	//    * XssMatchTuple: Each XssMatchTuple object contains FieldToMatch and TextTransformation
 16152  	//
 16153  	//    * FieldToMatch: Contains Data and Type
 16154  	XssMatchSet *XssMatchSet `type:"structure"`
 16155  }
 16156  
 16157  // String returns the string representation.
 16158  //
 16159  // API parameter values that are decorated as "sensitive" in the API will not
 16160  // be included in the string output. The member name will be present, but the
 16161  // value will be replaced with "sensitive".
 16162  func (s GetXssMatchSetOutput) String() string {
 16163  	return awsutil.Prettify(s)
 16164  }
 16165  
 16166  // GoString returns the string representation.
 16167  //
 16168  // API parameter values that are decorated as "sensitive" in the API will not
 16169  // be included in the string output. The member name will be present, but the
 16170  // value will be replaced with "sensitive".
 16171  func (s GetXssMatchSetOutput) GoString() string {
 16172  	return s.String()
 16173  }
 16174  
 16175  // SetXssMatchSet sets the XssMatchSet field's value.
 16176  func (s *GetXssMatchSetOutput) SetXssMatchSet(v *XssMatchSet) *GetXssMatchSetOutput {
 16177  	s.XssMatchSet = v
 16178  	return s
 16179  }
 16180  
 16181  //
 16182  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 16183  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 16184  // in the developer guide.
 16185  //
 16186  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 16187  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 16188  // With the latest version, AWS WAF has a single set of endpoints for regional
 16189  // and global use.
 16190  //
 16191  // The response from a GetSampledRequests request includes an HTTPHeader complex
 16192  // type that appears as Headers in the response syntax. HTTPHeader contains
 16193  // the names and values of all of the headers that appear in one of the web
 16194  // requests that were returned by GetSampledRequests.
 16195  type HTTPHeader struct {
 16196  	_ struct{} `type:"structure"`
 16197  
 16198  	// The name of one of the headers in the sampled web request.
 16199  	Name *string `type:"string"`
 16200  
 16201  	// The value of one of the headers in the sampled web request.
 16202  	Value *string `type:"string"`
 16203  }
 16204  
 16205  // String returns the string representation.
 16206  //
 16207  // API parameter values that are decorated as "sensitive" in the API will not
 16208  // be included in the string output. The member name will be present, but the
 16209  // value will be replaced with "sensitive".
 16210  func (s HTTPHeader) String() string {
 16211  	return awsutil.Prettify(s)
 16212  }
 16213  
 16214  // GoString returns the string representation.
 16215  //
 16216  // API parameter values that are decorated as "sensitive" in the API will not
 16217  // be included in the string output. The member name will be present, but the
 16218  // value will be replaced with "sensitive".
 16219  func (s HTTPHeader) GoString() string {
 16220  	return s.String()
 16221  }
 16222  
 16223  // SetName sets the Name field's value.
 16224  func (s *HTTPHeader) SetName(v string) *HTTPHeader {
 16225  	s.Name = &v
 16226  	return s
 16227  }
 16228  
 16229  // SetValue sets the Value field's value.
 16230  func (s *HTTPHeader) SetValue(v string) *HTTPHeader {
 16231  	s.Value = &v
 16232  	return s
 16233  }
 16234  
 16235  //
 16236  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 16237  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 16238  // in the developer guide.
 16239  //
 16240  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 16241  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 16242  // With the latest version, AWS WAF has a single set of endpoints for regional
 16243  // and global use.
 16244  //
 16245  // The response from a GetSampledRequests request includes an HTTPRequest complex
 16246  // type that appears as Request in the response syntax. HTTPRequest contains
 16247  // information about one of the web requests that were returned by GetSampledRequests.
 16248  type HTTPRequest struct {
 16249  	_ struct{} `type:"structure"`
 16250  
 16251  	// The IP address that the request originated from. If the WebACL is associated
 16252  	// with a CloudFront distribution, this is the value of one of the following
 16253  	// fields in CloudFront access logs:
 16254  	//
 16255  	//    * c-ip, if the viewer did not use an HTTP proxy or a load balancer to
 16256  	//    send the request
 16257  	//
 16258  	//    * x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer
 16259  	//    to send the request
 16260  	ClientIP *string `type:"string"`
 16261  
 16262  	// The two-letter country code for the country that the request originated from.
 16263  	// For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2
 16264  	// (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
 16265  	Country *string `type:"string"`
 16266  
 16267  	// The HTTP version specified in the sampled web request, for example, HTTP/1.1.
 16268  	HTTPVersion *string `type:"string"`
 16269  
 16270  	// A complex type that contains two values for each header in the sampled web
 16271  	// request: the name of the header and the value of the header.
 16272  	Headers []*HTTPHeader `type:"list"`
 16273  
 16274  	// The HTTP method specified in the sampled web request. CloudFront supports
 16275  	// the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT.
 16276  	Method *string `type:"string"`
 16277  
 16278  	// The part of a web request that identifies the resource, for example, /images/daily-ad.jpg.
 16279  	URI *string `type:"string"`
 16280  }
 16281  
 16282  // String returns the string representation.
 16283  //
 16284  // API parameter values that are decorated as "sensitive" in the API will not
 16285  // be included in the string output. The member name will be present, but the
 16286  // value will be replaced with "sensitive".
 16287  func (s HTTPRequest) String() string {
 16288  	return awsutil.Prettify(s)
 16289  }
 16290  
 16291  // GoString returns the string representation.
 16292  //
 16293  // API parameter values that are decorated as "sensitive" in the API will not
 16294  // be included in the string output. The member name will be present, but the
 16295  // value will be replaced with "sensitive".
 16296  func (s HTTPRequest) GoString() string {
 16297  	return s.String()
 16298  }
 16299  
 16300  // SetClientIP sets the ClientIP field's value.
 16301  func (s *HTTPRequest) SetClientIP(v string) *HTTPRequest {
 16302  	s.ClientIP = &v
 16303  	return s
 16304  }
 16305  
 16306  // SetCountry sets the Country field's value.
 16307  func (s *HTTPRequest) SetCountry(v string) *HTTPRequest {
 16308  	s.Country = &v
 16309  	return s
 16310  }
 16311  
 16312  // SetHTTPVersion sets the HTTPVersion field's value.
 16313  func (s *HTTPRequest) SetHTTPVersion(v string) *HTTPRequest {
 16314  	s.HTTPVersion = &v
 16315  	return s
 16316  }
 16317  
 16318  // SetHeaders sets the Headers field's value.
 16319  func (s *HTTPRequest) SetHeaders(v []*HTTPHeader) *HTTPRequest {
 16320  	s.Headers = v
 16321  	return s
 16322  }
 16323  
 16324  // SetMethod sets the Method field's value.
 16325  func (s *HTTPRequest) SetMethod(v string) *HTTPRequest {
 16326  	s.Method = &v
 16327  	return s
 16328  }
 16329  
 16330  // SetURI sets the URI field's value.
 16331  func (s *HTTPRequest) SetURI(v string) *HTTPRequest {
 16332  	s.URI = &v
 16333  	return s
 16334  }
 16335  
 16336  //
 16337  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 16338  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 16339  // in the developer guide.
 16340  //
 16341  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 16342  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 16343  // With the latest version, AWS WAF has a single set of endpoints for regional
 16344  // and global use.
 16345  //
 16346  // Contains one or more IP addresses or blocks of IP addresses specified in
 16347  // Classless Inter-Domain Routing (CIDR) notation. AWS WAF supports IPv4 address
 16348  // ranges: /8 and any range between /16 through /32. AWS WAF supports IPv6 address
 16349  // ranges: /24, /32, /48, /56, /64, and /128.
 16350  //
 16351  // To specify an individual IP address, you specify the four-part IP address
 16352  // followed by a /32, for example, 192.0.2.0/32. To block a range of IP addresses,
 16353  // you can specify /8 or any range between /16 through /32 (for IPv4) or /24,
 16354  // /32, /48, /56, /64, or /128 (for IPv6). For more information about CIDR notation,
 16355  // see the Wikipedia entry Classless Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
 16356  type IPSet struct {
 16357  	_ struct{} `type:"structure"`
 16358  
 16359  	// The IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation)
 16360  	// that web requests originate from. If the WebACL is associated with a CloudFront
 16361  	// distribution and the viewer did not use an HTTP proxy or a load balancer
 16362  	// to send the request, this is the value of the c-ip field in the CloudFront
 16363  	// access logs.
 16364  	//
 16365  	// IPSetDescriptors is a required field
 16366  	IPSetDescriptors []*IPSetDescriptor `type:"list" required:"true"`
 16367  
 16368  	// The IPSetId for an IPSet. You use IPSetId to get information about an IPSet
 16369  	// (see GetIPSet), update an IPSet (see UpdateIPSet), insert an IPSet into a
 16370  	// Rule or delete one from a Rule (see UpdateRule), and delete an IPSet from
 16371  	// AWS WAF (see DeleteIPSet).
 16372  	//
 16373  	// IPSetId is returned by CreateIPSet and by ListIPSets.
 16374  	//
 16375  	// IPSetId is a required field
 16376  	IPSetId *string `min:"1" type:"string" required:"true"`
 16377  
 16378  	// A friendly name or description of the IPSet. You can't change the name of
 16379  	// an IPSet after you create it.
 16380  	Name *string `min:"1" type:"string"`
 16381  }
 16382  
 16383  // String returns the string representation.
 16384  //
 16385  // API parameter values that are decorated as "sensitive" in the API will not
 16386  // be included in the string output. The member name will be present, but the
 16387  // value will be replaced with "sensitive".
 16388  func (s IPSet) String() string {
 16389  	return awsutil.Prettify(s)
 16390  }
 16391  
 16392  // GoString returns the string representation.
 16393  //
 16394  // API parameter values that are decorated as "sensitive" in the API will not
 16395  // be included in the string output. The member name will be present, but the
 16396  // value will be replaced with "sensitive".
 16397  func (s IPSet) GoString() string {
 16398  	return s.String()
 16399  }
 16400  
 16401  // SetIPSetDescriptors sets the IPSetDescriptors field's value.
 16402  func (s *IPSet) SetIPSetDescriptors(v []*IPSetDescriptor) *IPSet {
 16403  	s.IPSetDescriptors = v
 16404  	return s
 16405  }
 16406  
 16407  // SetIPSetId sets the IPSetId field's value.
 16408  func (s *IPSet) SetIPSetId(v string) *IPSet {
 16409  	s.IPSetId = &v
 16410  	return s
 16411  }
 16412  
 16413  // SetName sets the Name field's value.
 16414  func (s *IPSet) SetName(v string) *IPSet {
 16415  	s.Name = &v
 16416  	return s
 16417  }
 16418  
 16419  //
 16420  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 16421  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 16422  // in the developer guide.
 16423  //
 16424  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 16425  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 16426  // With the latest version, AWS WAF has a single set of endpoints for regional
 16427  // and global use.
 16428  //
 16429  // Specifies the IP address type (IPV4 or IPV6) and the IP address range (in
 16430  // CIDR format) that web requests originate from.
 16431  type IPSetDescriptor struct {
 16432  	_ struct{} `type:"structure"`
 16433  
 16434  	// Specify IPV4 or IPV6.
 16435  	//
 16436  	// Type is a required field
 16437  	Type *string `type:"string" required:"true" enum:"IPSetDescriptorType"`
 16438  
 16439  	// Specify an IPv4 address by using CIDR notation. For example:
 16440  	//
 16441  	//    * To configure AWS WAF to allow, block, or count requests that originated
 16442  	//    from the IP address 192.0.2.44, specify 192.0.2.44/32.
 16443  	//
 16444  	//    * To configure AWS WAF to allow, block, or count requests that originated
 16445  	//    from IP addresses from 192.0.2.0 to 192.0.2.255, specify 192.0.2.0/24.
 16446  	//
 16447  	// For more information about CIDR notation, see the Wikipedia entry Classless
 16448  	// Inter-Domain Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).
 16449  	//
 16450  	// Specify an IPv6 address by using CIDR notation. For example:
 16451  	//
 16452  	//    * To configure AWS WAF to allow, block, or count requests that originated
 16453  	//    from the IP address 1111:0000:0000:0000:0000:0000:0000:0111, specify 1111:0000:0000:0000:0000:0000:0000:0111/128.
 16454  	//
 16455  	//    * To configure AWS WAF to allow, block, or count requests that originated
 16456  	//    from IP addresses 1111:0000:0000:0000:0000:0000:0000:0000 to 1111:0000:0000:0000:ffff:ffff:ffff:ffff,
 16457  	//    specify 1111:0000:0000:0000:0000:0000:0000:0000/64.
 16458  	//
 16459  	// Value is a required field
 16460  	Value *string `min:"1" type:"string" required:"true"`
 16461  }
 16462  
 16463  // String returns the string representation.
 16464  //
 16465  // API parameter values that are decorated as "sensitive" in the API will not
 16466  // be included in the string output. The member name will be present, but the
 16467  // value will be replaced with "sensitive".
 16468  func (s IPSetDescriptor) String() string {
 16469  	return awsutil.Prettify(s)
 16470  }
 16471  
 16472  // GoString returns the string representation.
 16473  //
 16474  // API parameter values that are decorated as "sensitive" in the API will not
 16475  // be included in the string output. The member name will be present, but the
 16476  // value will be replaced with "sensitive".
 16477  func (s IPSetDescriptor) GoString() string {
 16478  	return s.String()
 16479  }
 16480  
 16481  // Validate inspects the fields of the type to determine if they are valid.
 16482  func (s *IPSetDescriptor) Validate() error {
 16483  	invalidParams := request.ErrInvalidParams{Context: "IPSetDescriptor"}
 16484  	if s.Type == nil {
 16485  		invalidParams.Add(request.NewErrParamRequired("Type"))
 16486  	}
 16487  	if s.Value == nil {
 16488  		invalidParams.Add(request.NewErrParamRequired("Value"))
 16489  	}
 16490  	if s.Value != nil && len(*s.Value) < 1 {
 16491  		invalidParams.Add(request.NewErrParamMinLen("Value", 1))
 16492  	}
 16493  
 16494  	if invalidParams.Len() > 0 {
 16495  		return invalidParams
 16496  	}
 16497  	return nil
 16498  }
 16499  
 16500  // SetType sets the Type field's value.
 16501  func (s *IPSetDescriptor) SetType(v string) *IPSetDescriptor {
 16502  	s.Type = &v
 16503  	return s
 16504  }
 16505  
 16506  // SetValue sets the Value field's value.
 16507  func (s *IPSetDescriptor) SetValue(v string) *IPSetDescriptor {
 16508  	s.Value = &v
 16509  	return s
 16510  }
 16511  
 16512  //
 16513  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 16514  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 16515  // in the developer guide.
 16516  //
 16517  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 16518  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 16519  // With the latest version, AWS WAF has a single set of endpoints for regional
 16520  // and global use.
 16521  //
 16522  // Contains the identifier and the name of the IPSet.
 16523  type IPSetSummary struct {
 16524  	_ struct{} `type:"structure"`
 16525  
 16526  	// The IPSetId for an IPSet. You can use IPSetId in a GetIPSet request to get
 16527  	// detailed information about an IPSet.
 16528  	//
 16529  	// IPSetId is a required field
 16530  	IPSetId *string `min:"1" type:"string" required:"true"`
 16531  
 16532  	// A friendly name or description of the IPSet. You can't change the name of
 16533  	// an IPSet after you create it.
 16534  	//
 16535  	// Name is a required field
 16536  	Name *string `min:"1" type:"string" required:"true"`
 16537  }
 16538  
 16539  // String returns the string representation.
 16540  //
 16541  // API parameter values that are decorated as "sensitive" in the API will not
 16542  // be included in the string output. The member name will be present, but the
 16543  // value will be replaced with "sensitive".
 16544  func (s IPSetSummary) String() string {
 16545  	return awsutil.Prettify(s)
 16546  }
 16547  
 16548  // GoString returns the string representation.
 16549  //
 16550  // API parameter values that are decorated as "sensitive" in the API will not
 16551  // be included in the string output. The member name will be present, but the
 16552  // value will be replaced with "sensitive".
 16553  func (s IPSetSummary) GoString() string {
 16554  	return s.String()
 16555  }
 16556  
 16557  // SetIPSetId sets the IPSetId field's value.
 16558  func (s *IPSetSummary) SetIPSetId(v string) *IPSetSummary {
 16559  	s.IPSetId = &v
 16560  	return s
 16561  }
 16562  
 16563  // SetName sets the Name field's value.
 16564  func (s *IPSetSummary) SetName(v string) *IPSetSummary {
 16565  	s.Name = &v
 16566  	return s
 16567  }
 16568  
 16569  //
 16570  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 16571  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 16572  // in the developer guide.
 16573  //
 16574  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 16575  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 16576  // With the latest version, AWS WAF has a single set of endpoints for regional
 16577  // and global use.
 16578  //
 16579  // Specifies the type of update to perform to an IPSet with UpdateIPSet.
 16580  type IPSetUpdate struct {
 16581  	_ struct{} `type:"structure"`
 16582  
 16583  	// Specifies whether to insert or delete an IP address with UpdateIPSet.
 16584  	//
 16585  	// Action is a required field
 16586  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 16587  
 16588  	// The IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation)
 16589  	// that web requests originate from.
 16590  	//
 16591  	// IPSetDescriptor is a required field
 16592  	IPSetDescriptor *IPSetDescriptor `type:"structure" required:"true"`
 16593  }
 16594  
 16595  // String returns the string representation.
 16596  //
 16597  // API parameter values that are decorated as "sensitive" in the API will not
 16598  // be included in the string output. The member name will be present, but the
 16599  // value will be replaced with "sensitive".
 16600  func (s IPSetUpdate) String() string {
 16601  	return awsutil.Prettify(s)
 16602  }
 16603  
 16604  // GoString returns the string representation.
 16605  //
 16606  // API parameter values that are decorated as "sensitive" in the API will not
 16607  // be included in the string output. The member name will be present, but the
 16608  // value will be replaced with "sensitive".
 16609  func (s IPSetUpdate) GoString() string {
 16610  	return s.String()
 16611  }
 16612  
 16613  // Validate inspects the fields of the type to determine if they are valid.
 16614  func (s *IPSetUpdate) Validate() error {
 16615  	invalidParams := request.ErrInvalidParams{Context: "IPSetUpdate"}
 16616  	if s.Action == nil {
 16617  		invalidParams.Add(request.NewErrParamRequired("Action"))
 16618  	}
 16619  	if s.IPSetDescriptor == nil {
 16620  		invalidParams.Add(request.NewErrParamRequired("IPSetDescriptor"))
 16621  	}
 16622  	if s.IPSetDescriptor != nil {
 16623  		if err := s.IPSetDescriptor.Validate(); err != nil {
 16624  			invalidParams.AddNested("IPSetDescriptor", err.(request.ErrInvalidParams))
 16625  		}
 16626  	}
 16627  
 16628  	if invalidParams.Len() > 0 {
 16629  		return invalidParams
 16630  	}
 16631  	return nil
 16632  }
 16633  
 16634  // SetAction sets the Action field's value.
 16635  func (s *IPSetUpdate) SetAction(v string) *IPSetUpdate {
 16636  	s.Action = &v
 16637  	return s
 16638  }
 16639  
 16640  // SetIPSetDescriptor sets the IPSetDescriptor field's value.
 16641  func (s *IPSetUpdate) SetIPSetDescriptor(v *IPSetDescriptor) *IPSetUpdate {
 16642  	s.IPSetDescriptor = v
 16643  	return s
 16644  }
 16645  
 16646  // The operation failed because of a system problem, even though the request
 16647  // was valid. Retry your request.
 16648  type InternalErrorException struct {
 16649  	_            struct{}                  `type:"structure"`
 16650  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16651  
 16652  	Message_ *string `locationName:"message" type:"string"`
 16653  }
 16654  
 16655  // String returns the string representation.
 16656  //
 16657  // API parameter values that are decorated as "sensitive" in the API will not
 16658  // be included in the string output. The member name will be present, but the
 16659  // value will be replaced with "sensitive".
 16660  func (s InternalErrorException) String() string {
 16661  	return awsutil.Prettify(s)
 16662  }
 16663  
 16664  // GoString returns the string representation.
 16665  //
 16666  // API parameter values that are decorated as "sensitive" in the API will not
 16667  // be included in the string output. The member name will be present, but the
 16668  // value will be replaced with "sensitive".
 16669  func (s InternalErrorException) GoString() string {
 16670  	return s.String()
 16671  }
 16672  
 16673  func newErrorInternalErrorException(v protocol.ResponseMetadata) error {
 16674  	return &InternalErrorException{
 16675  		RespMetadata: v,
 16676  	}
 16677  }
 16678  
 16679  // Code returns the exception type name.
 16680  func (s *InternalErrorException) Code() string {
 16681  	return "WAFInternalErrorException"
 16682  }
 16683  
 16684  // Message returns the exception's message.
 16685  func (s *InternalErrorException) Message() string {
 16686  	if s.Message_ != nil {
 16687  		return *s.Message_
 16688  	}
 16689  	return ""
 16690  }
 16691  
 16692  // OrigErr always returns nil, satisfies awserr.Error interface.
 16693  func (s *InternalErrorException) OrigErr() error {
 16694  	return nil
 16695  }
 16696  
 16697  func (s *InternalErrorException) Error() string {
 16698  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16699  }
 16700  
 16701  // Status code returns the HTTP status code for the request's response error.
 16702  func (s *InternalErrorException) StatusCode() int {
 16703  	return s.RespMetadata.StatusCode
 16704  }
 16705  
 16706  // RequestID returns the service's response RequestID for request.
 16707  func (s *InternalErrorException) RequestID() string {
 16708  	return s.RespMetadata.RequestID
 16709  }
 16710  
 16711  // The operation failed because you tried to create, update, or delete an object
 16712  // by using an invalid account identifier.
 16713  type InvalidAccountException struct {
 16714  	_            struct{}                  `type:"structure"`
 16715  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16716  
 16717  	Message_ *string `locationName:"message" type:"string"`
 16718  }
 16719  
 16720  // String returns the string representation.
 16721  //
 16722  // API parameter values that are decorated as "sensitive" in the API will not
 16723  // be included in the string output. The member name will be present, but the
 16724  // value will be replaced with "sensitive".
 16725  func (s InvalidAccountException) String() string {
 16726  	return awsutil.Prettify(s)
 16727  }
 16728  
 16729  // GoString returns the string representation.
 16730  //
 16731  // API parameter values that are decorated as "sensitive" in the API will not
 16732  // be included in the string output. The member name will be present, but the
 16733  // value will be replaced with "sensitive".
 16734  func (s InvalidAccountException) GoString() string {
 16735  	return s.String()
 16736  }
 16737  
 16738  func newErrorInvalidAccountException(v protocol.ResponseMetadata) error {
 16739  	return &InvalidAccountException{
 16740  		RespMetadata: v,
 16741  	}
 16742  }
 16743  
 16744  // Code returns the exception type name.
 16745  func (s *InvalidAccountException) Code() string {
 16746  	return "WAFInvalidAccountException"
 16747  }
 16748  
 16749  // Message returns the exception's message.
 16750  func (s *InvalidAccountException) Message() string {
 16751  	if s.Message_ != nil {
 16752  		return *s.Message_
 16753  	}
 16754  	return ""
 16755  }
 16756  
 16757  // OrigErr always returns nil, satisfies awserr.Error interface.
 16758  func (s *InvalidAccountException) OrigErr() error {
 16759  	return nil
 16760  }
 16761  
 16762  func (s *InvalidAccountException) Error() string {
 16763  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16764  }
 16765  
 16766  // Status code returns the HTTP status code for the request's response error.
 16767  func (s *InvalidAccountException) StatusCode() int {
 16768  	return s.RespMetadata.StatusCode
 16769  }
 16770  
 16771  // RequestID returns the service's response RequestID for request.
 16772  func (s *InvalidAccountException) RequestID() string {
 16773  	return s.RespMetadata.RequestID
 16774  }
 16775  
 16776  // The operation failed because there was nothing to do. For example:
 16777  //
 16778  //    * You tried to remove a Rule from a WebACL, but the Rule isn't in the
 16779  //    specified WebACL.
 16780  //
 16781  //    * You tried to remove an IP address from an IPSet, but the IP address
 16782  //    isn't in the specified IPSet.
 16783  //
 16784  //    * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple
 16785  //    isn't in the specified WebACL.
 16786  //
 16787  //    * You tried to add a Rule to a WebACL, but the Rule already exists in
 16788  //    the specified WebACL.
 16789  //
 16790  //    * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple
 16791  //    already exists in the specified WebACL.
 16792  type InvalidOperationException struct {
 16793  	_            struct{}                  `type:"structure"`
 16794  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16795  
 16796  	Message_ *string `locationName:"message" type:"string"`
 16797  }
 16798  
 16799  // String returns the string representation.
 16800  //
 16801  // API parameter values that are decorated as "sensitive" in the API will not
 16802  // be included in the string output. The member name will be present, but the
 16803  // value will be replaced with "sensitive".
 16804  func (s InvalidOperationException) String() string {
 16805  	return awsutil.Prettify(s)
 16806  }
 16807  
 16808  // GoString returns the string representation.
 16809  //
 16810  // API parameter values that are decorated as "sensitive" in the API will not
 16811  // be included in the string output. The member name will be present, but the
 16812  // value will be replaced with "sensitive".
 16813  func (s InvalidOperationException) GoString() string {
 16814  	return s.String()
 16815  }
 16816  
 16817  func newErrorInvalidOperationException(v protocol.ResponseMetadata) error {
 16818  	return &InvalidOperationException{
 16819  		RespMetadata: v,
 16820  	}
 16821  }
 16822  
 16823  // Code returns the exception type name.
 16824  func (s *InvalidOperationException) Code() string {
 16825  	return "WAFInvalidOperationException"
 16826  }
 16827  
 16828  // Message returns the exception's message.
 16829  func (s *InvalidOperationException) Message() string {
 16830  	if s.Message_ != nil {
 16831  		return *s.Message_
 16832  	}
 16833  	return ""
 16834  }
 16835  
 16836  // OrigErr always returns nil, satisfies awserr.Error interface.
 16837  func (s *InvalidOperationException) OrigErr() error {
 16838  	return nil
 16839  }
 16840  
 16841  func (s *InvalidOperationException) Error() string {
 16842  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 16843  }
 16844  
 16845  // Status code returns the HTTP status code for the request's response error.
 16846  func (s *InvalidOperationException) StatusCode() int {
 16847  	return s.RespMetadata.StatusCode
 16848  }
 16849  
 16850  // RequestID returns the service's response RequestID for request.
 16851  func (s *InvalidOperationException) RequestID() string {
 16852  	return s.RespMetadata.RequestID
 16853  }
 16854  
 16855  // The operation failed because AWS WAF didn't recognize a parameter in the
 16856  // request. For example:
 16857  //
 16858  //    * You specified an invalid parameter name.
 16859  //
 16860  //    * You specified an invalid value.
 16861  //
 16862  //    * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
 16863  //    using an action other than INSERT or DELETE.
 16864  //
 16865  //    * You tried to create a WebACL with a DefaultAction Type other than ALLOW,
 16866  //    BLOCK, or COUNT.
 16867  //
 16868  //    * You tried to create a RateBasedRule with a RateKey value other than
 16869  //    IP.
 16870  //
 16871  //    * You tried to update a WebACL with a WafAction Type other than ALLOW,
 16872  //    BLOCK, or COUNT.
 16873  //
 16874  //    * You tried to update a ByteMatchSet with a FieldToMatch Type other than
 16875  //    HEADER, METHOD, QUERY_STRING, URI, or BODY.
 16876  //
 16877  //    * You tried to update a ByteMatchSet with a Field of HEADER but no value
 16878  //    for Data.
 16879  //
 16880  //    * Your request references an ARN that is malformed, or corresponds to
 16881  //    a resource with which a web ACL cannot be associated.
 16882  type InvalidParameterException struct {
 16883  	_            struct{}                  `type:"structure"`
 16884  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16885  
 16886  	Field *string `locationName:"field" type:"string" enum:"ParameterExceptionField"`
 16887  
 16888  	Message_ *string `locationName:"message" type:"string"`
 16889  
 16890  	Parameter *string `locationName:"parameter" min:"1" type:"string"`
 16891  
 16892  	Reason *string `locationName:"reason" type:"string" enum:"ParameterExceptionReason"`
 16893  }
 16894  
 16895  // String returns the string representation.
 16896  //
 16897  // API parameter values that are decorated as "sensitive" in the API will not
 16898  // be included in the string output. The member name will be present, but the
 16899  // value will be replaced with "sensitive".
 16900  func (s InvalidParameterException) String() string {
 16901  	return awsutil.Prettify(s)
 16902  }
 16903  
 16904  // GoString returns the string representation.
 16905  //
 16906  // API parameter values that are decorated as "sensitive" in the API will not
 16907  // be included in the string output. The member name will be present, but the
 16908  // value will be replaced with "sensitive".
 16909  func (s InvalidParameterException) GoString() string {
 16910  	return s.String()
 16911  }
 16912  
 16913  func newErrorInvalidParameterException(v protocol.ResponseMetadata) error {
 16914  	return &InvalidParameterException{
 16915  		RespMetadata: v,
 16916  	}
 16917  }
 16918  
 16919  // Code returns the exception type name.
 16920  func (s *InvalidParameterException) Code() string {
 16921  	return "WAFInvalidParameterException"
 16922  }
 16923  
 16924  // Message returns the exception's message.
 16925  func (s *InvalidParameterException) Message() string {
 16926  	if s.Message_ != nil {
 16927  		return *s.Message_
 16928  	}
 16929  	return ""
 16930  }
 16931  
 16932  // OrigErr always returns nil, satisfies awserr.Error interface.
 16933  func (s *InvalidParameterException) OrigErr() error {
 16934  	return nil
 16935  }
 16936  
 16937  func (s *InvalidParameterException) Error() string {
 16938  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 16939  }
 16940  
 16941  // Status code returns the HTTP status code for the request's response error.
 16942  func (s *InvalidParameterException) StatusCode() int {
 16943  	return s.RespMetadata.StatusCode
 16944  }
 16945  
 16946  // RequestID returns the service's response RequestID for request.
 16947  func (s *InvalidParameterException) RequestID() string {
 16948  	return s.RespMetadata.RequestID
 16949  }
 16950  
 16951  // The operation failed because the specified policy is not in the proper format.
 16952  //
 16953  // The policy is subject to the following restrictions:
 16954  //
 16955  //    * You can attach only one policy with each PutPermissionPolicy request.
 16956  //
 16957  //    * The policy must include an Effect, Action and Principal.
 16958  //
 16959  //    * Effect must specify Allow.
 16960  //
 16961  //    * The Action in the policy must be waf:UpdateWebACL, waf-regional:UpdateWebACL,
 16962  //    waf:GetRuleGroup and waf-regional:GetRuleGroup . Any extra or wildcard
 16963  //    actions in the policy will be rejected.
 16964  //
 16965  //    * The policy cannot include a Resource parameter.
 16966  //
 16967  //    * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup
 16968  //    must exist in the same region.
 16969  //
 16970  //    * The user making the request must be the owner of the RuleGroup.
 16971  //
 16972  //    * Your policy must be composed using IAM Policy version 2012-10-17.
 16973  type InvalidPermissionPolicyException struct {
 16974  	_            struct{}                  `type:"structure"`
 16975  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 16976  
 16977  	Message_ *string `locationName:"message" type:"string"`
 16978  }
 16979  
 16980  // String returns the string representation.
 16981  //
 16982  // API parameter values that are decorated as "sensitive" in the API will not
 16983  // be included in the string output. The member name will be present, but the
 16984  // value will be replaced with "sensitive".
 16985  func (s InvalidPermissionPolicyException) String() string {
 16986  	return awsutil.Prettify(s)
 16987  }
 16988  
 16989  // GoString returns the string representation.
 16990  //
 16991  // API parameter values that are decorated as "sensitive" in the API will not
 16992  // be included in the string output. The member name will be present, but the
 16993  // value will be replaced with "sensitive".
 16994  func (s InvalidPermissionPolicyException) GoString() string {
 16995  	return s.String()
 16996  }
 16997  
 16998  func newErrorInvalidPermissionPolicyException(v protocol.ResponseMetadata) error {
 16999  	return &InvalidPermissionPolicyException{
 17000  		RespMetadata: v,
 17001  	}
 17002  }
 17003  
 17004  // Code returns the exception type name.
 17005  func (s *InvalidPermissionPolicyException) Code() string {
 17006  	return "WAFInvalidPermissionPolicyException"
 17007  }
 17008  
 17009  // Message returns the exception's message.
 17010  func (s *InvalidPermissionPolicyException) Message() string {
 17011  	if s.Message_ != nil {
 17012  		return *s.Message_
 17013  	}
 17014  	return ""
 17015  }
 17016  
 17017  // OrigErr always returns nil, satisfies awserr.Error interface.
 17018  func (s *InvalidPermissionPolicyException) OrigErr() error {
 17019  	return nil
 17020  }
 17021  
 17022  func (s *InvalidPermissionPolicyException) Error() string {
 17023  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17024  }
 17025  
 17026  // Status code returns the HTTP status code for the request's response error.
 17027  func (s *InvalidPermissionPolicyException) StatusCode() int {
 17028  	return s.RespMetadata.StatusCode
 17029  }
 17030  
 17031  // RequestID returns the service's response RequestID for request.
 17032  func (s *InvalidPermissionPolicyException) RequestID() string {
 17033  	return s.RespMetadata.RequestID
 17034  }
 17035  
 17036  // The regular expression (regex) you specified in RegexPatternString is invalid.
 17037  type InvalidRegexPatternException struct {
 17038  	_            struct{}                  `type:"structure"`
 17039  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17040  
 17041  	Message_ *string `locationName:"message" type:"string"`
 17042  }
 17043  
 17044  // String returns the string representation.
 17045  //
 17046  // API parameter values that are decorated as "sensitive" in the API will not
 17047  // be included in the string output. The member name will be present, but the
 17048  // value will be replaced with "sensitive".
 17049  func (s InvalidRegexPatternException) String() string {
 17050  	return awsutil.Prettify(s)
 17051  }
 17052  
 17053  // GoString returns the string representation.
 17054  //
 17055  // API parameter values that are decorated as "sensitive" in the API will not
 17056  // be included in the string output. The member name will be present, but the
 17057  // value will be replaced with "sensitive".
 17058  func (s InvalidRegexPatternException) GoString() string {
 17059  	return s.String()
 17060  }
 17061  
 17062  func newErrorInvalidRegexPatternException(v protocol.ResponseMetadata) error {
 17063  	return &InvalidRegexPatternException{
 17064  		RespMetadata: v,
 17065  	}
 17066  }
 17067  
 17068  // Code returns the exception type name.
 17069  func (s *InvalidRegexPatternException) Code() string {
 17070  	return "WAFInvalidRegexPatternException"
 17071  }
 17072  
 17073  // Message returns the exception's message.
 17074  func (s *InvalidRegexPatternException) Message() string {
 17075  	if s.Message_ != nil {
 17076  		return *s.Message_
 17077  	}
 17078  	return ""
 17079  }
 17080  
 17081  // OrigErr always returns nil, satisfies awserr.Error interface.
 17082  func (s *InvalidRegexPatternException) OrigErr() error {
 17083  	return nil
 17084  }
 17085  
 17086  func (s *InvalidRegexPatternException) Error() string {
 17087  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17088  }
 17089  
 17090  // Status code returns the HTTP status code for the request's response error.
 17091  func (s *InvalidRegexPatternException) StatusCode() int {
 17092  	return s.RespMetadata.StatusCode
 17093  }
 17094  
 17095  // RequestID returns the service's response RequestID for request.
 17096  func (s *InvalidRegexPatternException) RequestID() string {
 17097  	return s.RespMetadata.RequestID
 17098  }
 17099  
 17100  // The operation exceeds a resource limit, for example, the maximum number of
 17101  // WebACL objects that you can create for an AWS account. For more information,
 17102  // see Limits (https://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
 17103  // in the AWS WAF Developer Guide.
 17104  type LimitsExceededException struct {
 17105  	_            struct{}                  `type:"structure"`
 17106  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 17107  
 17108  	Message_ *string `locationName:"message" type:"string"`
 17109  }
 17110  
 17111  // String returns the string representation.
 17112  //
 17113  // API parameter values that are decorated as "sensitive" in the API will not
 17114  // be included in the string output. The member name will be present, but the
 17115  // value will be replaced with "sensitive".
 17116  func (s LimitsExceededException) String() string {
 17117  	return awsutil.Prettify(s)
 17118  }
 17119  
 17120  // GoString returns the string representation.
 17121  //
 17122  // API parameter values that are decorated as "sensitive" in the API will not
 17123  // be included in the string output. The member name will be present, but the
 17124  // value will be replaced with "sensitive".
 17125  func (s LimitsExceededException) GoString() string {
 17126  	return s.String()
 17127  }
 17128  
 17129  func newErrorLimitsExceededException(v protocol.ResponseMetadata) error {
 17130  	return &LimitsExceededException{
 17131  		RespMetadata: v,
 17132  	}
 17133  }
 17134  
 17135  // Code returns the exception type name.
 17136  func (s *LimitsExceededException) Code() string {
 17137  	return "WAFLimitsExceededException"
 17138  }
 17139  
 17140  // Message returns the exception's message.
 17141  func (s *LimitsExceededException) Message() string {
 17142  	if s.Message_ != nil {
 17143  		return *s.Message_
 17144  	}
 17145  	return ""
 17146  }
 17147  
 17148  // OrigErr always returns nil, satisfies awserr.Error interface.
 17149  func (s *LimitsExceededException) OrigErr() error {
 17150  	return nil
 17151  }
 17152  
 17153  func (s *LimitsExceededException) Error() string {
 17154  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 17155  }
 17156  
 17157  // Status code returns the HTTP status code for the request's response error.
 17158  func (s *LimitsExceededException) StatusCode() int {
 17159  	return s.RespMetadata.StatusCode
 17160  }
 17161  
 17162  // RequestID returns the service's response RequestID for request.
 17163  func (s *LimitsExceededException) RequestID() string {
 17164  	return s.RespMetadata.RequestID
 17165  }
 17166  
 17167  type ListActivatedRulesInRuleGroupInput struct {
 17168  	_ struct{} `type:"structure"`
 17169  
 17170  	// Specifies the number of ActivatedRules that you want AWS WAF to return for
 17171  	// this request. If you have more ActivatedRules than the number that you specify
 17172  	// for Limit, the response includes a NextMarker value that you can use to get
 17173  	// another batch of ActivatedRules.
 17174  	Limit *int64 `type:"integer"`
 17175  
 17176  	// If you specify a value for Limit and you have more ActivatedRules than the
 17177  	// value of Limit, AWS WAF returns a NextMarker value in the response that allows
 17178  	// you to list another group of ActivatedRules. For the second and subsequent
 17179  	// ListActivatedRulesInRuleGroup requests, specify the value of NextMarker from
 17180  	// the previous response to get information about another batch of ActivatedRules.
 17181  	NextMarker *string `min:"1" type:"string"`
 17182  
 17183  	// The RuleGroupId of the RuleGroup for which you want to get a list of ActivatedRule
 17184  	// objects.
 17185  	RuleGroupId *string `min:"1" type:"string"`
 17186  }
 17187  
 17188  // String returns the string representation.
 17189  //
 17190  // API parameter values that are decorated as "sensitive" in the API will not
 17191  // be included in the string output. The member name will be present, but the
 17192  // value will be replaced with "sensitive".
 17193  func (s ListActivatedRulesInRuleGroupInput) String() string {
 17194  	return awsutil.Prettify(s)
 17195  }
 17196  
 17197  // GoString returns the string representation.
 17198  //
 17199  // API parameter values that are decorated as "sensitive" in the API will not
 17200  // be included in the string output. The member name will be present, but the
 17201  // value will be replaced with "sensitive".
 17202  func (s ListActivatedRulesInRuleGroupInput) GoString() string {
 17203  	return s.String()
 17204  }
 17205  
 17206  // Validate inspects the fields of the type to determine if they are valid.
 17207  func (s *ListActivatedRulesInRuleGroupInput) Validate() error {
 17208  	invalidParams := request.ErrInvalidParams{Context: "ListActivatedRulesInRuleGroupInput"}
 17209  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 17210  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 17211  	}
 17212  	if s.RuleGroupId != nil && len(*s.RuleGroupId) < 1 {
 17213  		invalidParams.Add(request.NewErrParamMinLen("RuleGroupId", 1))
 17214  	}
 17215  
 17216  	if invalidParams.Len() > 0 {
 17217  		return invalidParams
 17218  	}
 17219  	return nil
 17220  }
 17221  
 17222  // SetLimit sets the Limit field's value.
 17223  func (s *ListActivatedRulesInRuleGroupInput) SetLimit(v int64) *ListActivatedRulesInRuleGroupInput {
 17224  	s.Limit = &v
 17225  	return s
 17226  }
 17227  
 17228  // SetNextMarker sets the NextMarker field's value.
 17229  func (s *ListActivatedRulesInRuleGroupInput) SetNextMarker(v string) *ListActivatedRulesInRuleGroupInput {
 17230  	s.NextMarker = &v
 17231  	return s
 17232  }
 17233  
 17234  // SetRuleGroupId sets the RuleGroupId field's value.
 17235  func (s *ListActivatedRulesInRuleGroupInput) SetRuleGroupId(v string) *ListActivatedRulesInRuleGroupInput {
 17236  	s.RuleGroupId = &v
 17237  	return s
 17238  }
 17239  
 17240  type ListActivatedRulesInRuleGroupOutput struct {
 17241  	_ struct{} `type:"structure"`
 17242  
 17243  	// An array of ActivatedRules objects.
 17244  	ActivatedRules []*ActivatedRule `type:"list"`
 17245  
 17246  	// If you have more ActivatedRules than the number that you specified for Limit
 17247  	// in the request, the response includes a NextMarker value. To list more ActivatedRules,
 17248  	// submit another ListActivatedRulesInRuleGroup request, and specify the NextMarker
 17249  	// value from the response in the NextMarker value in the next request.
 17250  	NextMarker *string `min:"1" type:"string"`
 17251  }
 17252  
 17253  // String returns the string representation.
 17254  //
 17255  // API parameter values that are decorated as "sensitive" in the API will not
 17256  // be included in the string output. The member name will be present, but the
 17257  // value will be replaced with "sensitive".
 17258  func (s ListActivatedRulesInRuleGroupOutput) String() string {
 17259  	return awsutil.Prettify(s)
 17260  }
 17261  
 17262  // GoString returns the string representation.
 17263  //
 17264  // API parameter values that are decorated as "sensitive" in the API will not
 17265  // be included in the string output. The member name will be present, but the
 17266  // value will be replaced with "sensitive".
 17267  func (s ListActivatedRulesInRuleGroupOutput) GoString() string {
 17268  	return s.String()
 17269  }
 17270  
 17271  // SetActivatedRules sets the ActivatedRules field's value.
 17272  func (s *ListActivatedRulesInRuleGroupOutput) SetActivatedRules(v []*ActivatedRule) *ListActivatedRulesInRuleGroupOutput {
 17273  	s.ActivatedRules = v
 17274  	return s
 17275  }
 17276  
 17277  // SetNextMarker sets the NextMarker field's value.
 17278  func (s *ListActivatedRulesInRuleGroupOutput) SetNextMarker(v string) *ListActivatedRulesInRuleGroupOutput {
 17279  	s.NextMarker = &v
 17280  	return s
 17281  }
 17282  
 17283  type ListByteMatchSetsInput struct {
 17284  	_ struct{} `type:"structure"`
 17285  
 17286  	// Specifies the number of ByteMatchSet objects that you want AWS WAF to return
 17287  	// for this request. If you have more ByteMatchSets objects than the number
 17288  	// you specify for Limit, the response includes a NextMarker value that you
 17289  	// can use to get another batch of ByteMatchSet objects.
 17290  	Limit *int64 `type:"integer"`
 17291  
 17292  	// If you specify a value for Limit and you have more ByteMatchSets than the
 17293  	// value of Limit, AWS WAF returns a NextMarker value in the response that allows
 17294  	// you to list another group of ByteMatchSets. For the second and subsequent
 17295  	// ListByteMatchSets requests, specify the value of NextMarker from the previous
 17296  	// response to get information about another batch of ByteMatchSets.
 17297  	NextMarker *string `min:"1" type:"string"`
 17298  }
 17299  
 17300  // String returns the string representation.
 17301  //
 17302  // API parameter values that are decorated as "sensitive" in the API will not
 17303  // be included in the string output. The member name will be present, but the
 17304  // value will be replaced with "sensitive".
 17305  func (s ListByteMatchSetsInput) String() string {
 17306  	return awsutil.Prettify(s)
 17307  }
 17308  
 17309  // GoString returns the string representation.
 17310  //
 17311  // API parameter values that are decorated as "sensitive" in the API will not
 17312  // be included in the string output. The member name will be present, but the
 17313  // value will be replaced with "sensitive".
 17314  func (s ListByteMatchSetsInput) GoString() string {
 17315  	return s.String()
 17316  }
 17317  
 17318  // Validate inspects the fields of the type to determine if they are valid.
 17319  func (s *ListByteMatchSetsInput) Validate() error {
 17320  	invalidParams := request.ErrInvalidParams{Context: "ListByteMatchSetsInput"}
 17321  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 17322  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 17323  	}
 17324  
 17325  	if invalidParams.Len() > 0 {
 17326  		return invalidParams
 17327  	}
 17328  	return nil
 17329  }
 17330  
 17331  // SetLimit sets the Limit field's value.
 17332  func (s *ListByteMatchSetsInput) SetLimit(v int64) *ListByteMatchSetsInput {
 17333  	s.Limit = &v
 17334  	return s
 17335  }
 17336  
 17337  // SetNextMarker sets the NextMarker field's value.
 17338  func (s *ListByteMatchSetsInput) SetNextMarker(v string) *ListByteMatchSetsInput {
 17339  	s.NextMarker = &v
 17340  	return s
 17341  }
 17342  
 17343  type ListByteMatchSetsOutput struct {
 17344  	_ struct{} `type:"structure"`
 17345  
 17346  	// An array of ByteMatchSetSummary objects.
 17347  	ByteMatchSets []*ByteMatchSetSummary `type:"list"`
 17348  
 17349  	// If you have more ByteMatchSet objects than the number that you specified
 17350  	// for Limit in the request, the response includes a NextMarker value. To list
 17351  	// more ByteMatchSet objects, submit another ListByteMatchSets request, and
 17352  	// specify the NextMarker value from the response in the NextMarker value in
 17353  	// the next request.
 17354  	NextMarker *string `min:"1" type:"string"`
 17355  }
 17356  
 17357  // String returns the string representation.
 17358  //
 17359  // API parameter values that are decorated as "sensitive" in the API will not
 17360  // be included in the string output. The member name will be present, but the
 17361  // value will be replaced with "sensitive".
 17362  func (s ListByteMatchSetsOutput) String() string {
 17363  	return awsutil.Prettify(s)
 17364  }
 17365  
 17366  // GoString returns the string representation.
 17367  //
 17368  // API parameter values that are decorated as "sensitive" in the API will not
 17369  // be included in the string output. The member name will be present, but the
 17370  // value will be replaced with "sensitive".
 17371  func (s ListByteMatchSetsOutput) GoString() string {
 17372  	return s.String()
 17373  }
 17374  
 17375  // SetByteMatchSets sets the ByteMatchSets field's value.
 17376  func (s *ListByteMatchSetsOutput) SetByteMatchSets(v []*ByteMatchSetSummary) *ListByteMatchSetsOutput {
 17377  	s.ByteMatchSets = v
 17378  	return s
 17379  }
 17380  
 17381  // SetNextMarker sets the NextMarker field's value.
 17382  func (s *ListByteMatchSetsOutput) SetNextMarker(v string) *ListByteMatchSetsOutput {
 17383  	s.NextMarker = &v
 17384  	return s
 17385  }
 17386  
 17387  type ListGeoMatchSetsInput struct {
 17388  	_ struct{} `type:"structure"`
 17389  
 17390  	// Specifies the number of GeoMatchSet objects that you want AWS WAF to return
 17391  	// for this request. If you have more GeoMatchSet objects than the number you
 17392  	// specify for Limit, the response includes a NextMarker value that you can
 17393  	// use to get another batch of GeoMatchSet objects.
 17394  	Limit *int64 `type:"integer"`
 17395  
 17396  	// If you specify a value for Limit and you have more GeoMatchSets than the
 17397  	// value of Limit, AWS WAF returns a NextMarker value in the response that allows
 17398  	// you to list another group of GeoMatchSet objects. For the second and subsequent
 17399  	// ListGeoMatchSets requests, specify the value of NextMarker from the previous
 17400  	// response to get information about another batch of GeoMatchSet objects.
 17401  	NextMarker *string `min:"1" type:"string"`
 17402  }
 17403  
 17404  // String returns the string representation.
 17405  //
 17406  // API parameter values that are decorated as "sensitive" in the API will not
 17407  // be included in the string output. The member name will be present, but the
 17408  // value will be replaced with "sensitive".
 17409  func (s ListGeoMatchSetsInput) String() string {
 17410  	return awsutil.Prettify(s)
 17411  }
 17412  
 17413  // GoString returns the string representation.
 17414  //
 17415  // API parameter values that are decorated as "sensitive" in the API will not
 17416  // be included in the string output. The member name will be present, but the
 17417  // value will be replaced with "sensitive".
 17418  func (s ListGeoMatchSetsInput) GoString() string {
 17419  	return s.String()
 17420  }
 17421  
 17422  // Validate inspects the fields of the type to determine if they are valid.
 17423  func (s *ListGeoMatchSetsInput) Validate() error {
 17424  	invalidParams := request.ErrInvalidParams{Context: "ListGeoMatchSetsInput"}
 17425  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 17426  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 17427  	}
 17428  
 17429  	if invalidParams.Len() > 0 {
 17430  		return invalidParams
 17431  	}
 17432  	return nil
 17433  }
 17434  
 17435  // SetLimit sets the Limit field's value.
 17436  func (s *ListGeoMatchSetsInput) SetLimit(v int64) *ListGeoMatchSetsInput {
 17437  	s.Limit = &v
 17438  	return s
 17439  }
 17440  
 17441  // SetNextMarker sets the NextMarker field's value.
 17442  func (s *ListGeoMatchSetsInput) SetNextMarker(v string) *ListGeoMatchSetsInput {
 17443  	s.NextMarker = &v
 17444  	return s
 17445  }
 17446  
 17447  type ListGeoMatchSetsOutput struct {
 17448  	_ struct{} `type:"structure"`
 17449  
 17450  	// An array of GeoMatchSetSummary objects.
 17451  	GeoMatchSets []*GeoMatchSetSummary `type:"list"`
 17452  
 17453  	// If you have more GeoMatchSet objects than the number that you specified for
 17454  	// Limit in the request, the response includes a NextMarker value. To list more
 17455  	// GeoMatchSet objects, submit another ListGeoMatchSets request, and specify
 17456  	// the NextMarker value from the response in the NextMarker value in the next
 17457  	// request.
 17458  	NextMarker *string `min:"1" type:"string"`
 17459  }
 17460  
 17461  // String returns the string representation.
 17462  //
 17463  // API parameter values that are decorated as "sensitive" in the API will not
 17464  // be included in the string output. The member name will be present, but the
 17465  // value will be replaced with "sensitive".
 17466  func (s ListGeoMatchSetsOutput) String() string {
 17467  	return awsutil.Prettify(s)
 17468  }
 17469  
 17470  // GoString returns the string representation.
 17471  //
 17472  // API parameter values that are decorated as "sensitive" in the API will not
 17473  // be included in the string output. The member name will be present, but the
 17474  // value will be replaced with "sensitive".
 17475  func (s ListGeoMatchSetsOutput) GoString() string {
 17476  	return s.String()
 17477  }
 17478  
 17479  // SetGeoMatchSets sets the GeoMatchSets field's value.
 17480  func (s *ListGeoMatchSetsOutput) SetGeoMatchSets(v []*GeoMatchSetSummary) *ListGeoMatchSetsOutput {
 17481  	s.GeoMatchSets = v
 17482  	return s
 17483  }
 17484  
 17485  // SetNextMarker sets the NextMarker field's value.
 17486  func (s *ListGeoMatchSetsOutput) SetNextMarker(v string) *ListGeoMatchSetsOutput {
 17487  	s.NextMarker = &v
 17488  	return s
 17489  }
 17490  
 17491  type ListIPSetsInput struct {
 17492  	_ struct{} `type:"structure"`
 17493  
 17494  	// Specifies the number of IPSet objects that you want AWS WAF to return for
 17495  	// this request. If you have more IPSet objects than the number you specify
 17496  	// for Limit, the response includes a NextMarker value that you can use to get
 17497  	// another batch of IPSet objects.
 17498  	Limit *int64 `type:"integer"`
 17499  
 17500  	// AWS WAF returns a NextMarker value in the response that allows you to list
 17501  	// another group of IPSets. For the second and subsequent ListIPSets requests,
 17502  	// specify the value of NextMarker from the previous response to get information
 17503  	// about another batch of IPSets.
 17504  	NextMarker *string `min:"1" type:"string"`
 17505  }
 17506  
 17507  // String returns the string representation.
 17508  //
 17509  // API parameter values that are decorated as "sensitive" in the API will not
 17510  // be included in the string output. The member name will be present, but the
 17511  // value will be replaced with "sensitive".
 17512  func (s ListIPSetsInput) String() string {
 17513  	return awsutil.Prettify(s)
 17514  }
 17515  
 17516  // GoString returns the string representation.
 17517  //
 17518  // API parameter values that are decorated as "sensitive" in the API will not
 17519  // be included in the string output. The member name will be present, but the
 17520  // value will be replaced with "sensitive".
 17521  func (s ListIPSetsInput) GoString() string {
 17522  	return s.String()
 17523  }
 17524  
 17525  // Validate inspects the fields of the type to determine if they are valid.
 17526  func (s *ListIPSetsInput) Validate() error {
 17527  	invalidParams := request.ErrInvalidParams{Context: "ListIPSetsInput"}
 17528  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 17529  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 17530  	}
 17531  
 17532  	if invalidParams.Len() > 0 {
 17533  		return invalidParams
 17534  	}
 17535  	return nil
 17536  }
 17537  
 17538  // SetLimit sets the Limit field's value.
 17539  func (s *ListIPSetsInput) SetLimit(v int64) *ListIPSetsInput {
 17540  	s.Limit = &v
 17541  	return s
 17542  }
 17543  
 17544  // SetNextMarker sets the NextMarker field's value.
 17545  func (s *ListIPSetsInput) SetNextMarker(v string) *ListIPSetsInput {
 17546  	s.NextMarker = &v
 17547  	return s
 17548  }
 17549  
 17550  type ListIPSetsOutput struct {
 17551  	_ struct{} `type:"structure"`
 17552  
 17553  	// An array of IPSetSummary objects.
 17554  	IPSets []*IPSetSummary `type:"list"`
 17555  
 17556  	// To list more IPSet objects, submit another ListIPSets request, and in the
 17557  	// next request use the NextMarker response value as the NextMarker value.
 17558  	NextMarker *string `min:"1" type:"string"`
 17559  }
 17560  
 17561  // String returns the string representation.
 17562  //
 17563  // API parameter values that are decorated as "sensitive" in the API will not
 17564  // be included in the string output. The member name will be present, but the
 17565  // value will be replaced with "sensitive".
 17566  func (s ListIPSetsOutput) String() string {
 17567  	return awsutil.Prettify(s)
 17568  }
 17569  
 17570  // GoString returns the string representation.
 17571  //
 17572  // API parameter values that are decorated as "sensitive" in the API will not
 17573  // be included in the string output. The member name will be present, but the
 17574  // value will be replaced with "sensitive".
 17575  func (s ListIPSetsOutput) GoString() string {
 17576  	return s.String()
 17577  }
 17578  
 17579  // SetIPSets sets the IPSets field's value.
 17580  func (s *ListIPSetsOutput) SetIPSets(v []*IPSetSummary) *ListIPSetsOutput {
 17581  	s.IPSets = v
 17582  	return s
 17583  }
 17584  
 17585  // SetNextMarker sets the NextMarker field's value.
 17586  func (s *ListIPSetsOutput) SetNextMarker(v string) *ListIPSetsOutput {
 17587  	s.NextMarker = &v
 17588  	return s
 17589  }
 17590  
 17591  type ListLoggingConfigurationsInput struct {
 17592  	_ struct{} `type:"structure"`
 17593  
 17594  	// Specifies the number of LoggingConfigurations that you want AWS WAF to return
 17595  	// for this request. If you have more LoggingConfigurations than the number
 17596  	// that you specify for Limit, the response includes a NextMarker value that
 17597  	// you can use to get another batch of LoggingConfigurations.
 17598  	Limit *int64 `type:"integer"`
 17599  
 17600  	// If you specify a value for Limit and you have more LoggingConfigurations
 17601  	// than the value of Limit, AWS WAF returns a NextMarker value in the response
 17602  	// that allows you to list another group of LoggingConfigurations. For the second
 17603  	// and subsequent ListLoggingConfigurations requests, specify the value of NextMarker
 17604  	// from the previous response to get information about another batch of ListLoggingConfigurations.
 17605  	NextMarker *string `min:"1" type:"string"`
 17606  }
 17607  
 17608  // String returns the string representation.
 17609  //
 17610  // API parameter values that are decorated as "sensitive" in the API will not
 17611  // be included in the string output. The member name will be present, but the
 17612  // value will be replaced with "sensitive".
 17613  func (s ListLoggingConfigurationsInput) String() string {
 17614  	return awsutil.Prettify(s)
 17615  }
 17616  
 17617  // GoString returns the string representation.
 17618  //
 17619  // API parameter values that are decorated as "sensitive" in the API will not
 17620  // be included in the string output. The member name will be present, but the
 17621  // value will be replaced with "sensitive".
 17622  func (s ListLoggingConfigurationsInput) GoString() string {
 17623  	return s.String()
 17624  }
 17625  
 17626  // Validate inspects the fields of the type to determine if they are valid.
 17627  func (s *ListLoggingConfigurationsInput) Validate() error {
 17628  	invalidParams := request.ErrInvalidParams{Context: "ListLoggingConfigurationsInput"}
 17629  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 17630  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 17631  	}
 17632  
 17633  	if invalidParams.Len() > 0 {
 17634  		return invalidParams
 17635  	}
 17636  	return nil
 17637  }
 17638  
 17639  // SetLimit sets the Limit field's value.
 17640  func (s *ListLoggingConfigurationsInput) SetLimit(v int64) *ListLoggingConfigurationsInput {
 17641  	s.Limit = &v
 17642  	return s
 17643  }
 17644  
 17645  // SetNextMarker sets the NextMarker field's value.
 17646  func (s *ListLoggingConfigurationsInput) SetNextMarker(v string) *ListLoggingConfigurationsInput {
 17647  	s.NextMarker = &v
 17648  	return s
 17649  }
 17650  
 17651  type ListLoggingConfigurationsOutput struct {
 17652  	_ struct{} `type:"structure"`
 17653  
 17654  	// An array of LoggingConfiguration objects.
 17655  	LoggingConfigurations []*LoggingConfiguration `type:"list"`
 17656  
 17657  	// If you have more LoggingConfigurations than the number that you specified
 17658  	// for Limit in the request, the response includes a NextMarker value. To list
 17659  	// more LoggingConfigurations, submit another ListLoggingConfigurations request,
 17660  	// and specify the NextMarker value from the response in the NextMarker value
 17661  	// in the next request.
 17662  	NextMarker *string `min:"1" type:"string"`
 17663  }
 17664  
 17665  // String returns the string representation.
 17666  //
 17667  // API parameter values that are decorated as "sensitive" in the API will not
 17668  // be included in the string output. The member name will be present, but the
 17669  // value will be replaced with "sensitive".
 17670  func (s ListLoggingConfigurationsOutput) String() string {
 17671  	return awsutil.Prettify(s)
 17672  }
 17673  
 17674  // GoString returns the string representation.
 17675  //
 17676  // API parameter values that are decorated as "sensitive" in the API will not
 17677  // be included in the string output. The member name will be present, but the
 17678  // value will be replaced with "sensitive".
 17679  func (s ListLoggingConfigurationsOutput) GoString() string {
 17680  	return s.String()
 17681  }
 17682  
 17683  // SetLoggingConfigurations sets the LoggingConfigurations field's value.
 17684  func (s *ListLoggingConfigurationsOutput) SetLoggingConfigurations(v []*LoggingConfiguration) *ListLoggingConfigurationsOutput {
 17685  	s.LoggingConfigurations = v
 17686  	return s
 17687  }
 17688  
 17689  // SetNextMarker sets the NextMarker field's value.
 17690  func (s *ListLoggingConfigurationsOutput) SetNextMarker(v string) *ListLoggingConfigurationsOutput {
 17691  	s.NextMarker = &v
 17692  	return s
 17693  }
 17694  
 17695  type ListRateBasedRulesInput struct {
 17696  	_ struct{} `type:"structure"`
 17697  
 17698  	// Specifies the number of Rules that you want AWS WAF to return for this request.
 17699  	// If you have more Rules than the number that you specify for Limit, the response
 17700  	// includes a NextMarker value that you can use to get another batch of Rules.
 17701  	Limit *int64 `type:"integer"`
 17702  
 17703  	// If you specify a value for Limit and you have more Rules than the value of
 17704  	// Limit, AWS WAF returns a NextMarker value in the response that allows you
 17705  	// to list another group of Rules. For the second and subsequent ListRateBasedRules
 17706  	// requests, specify the value of NextMarker from the previous response to get
 17707  	// information about another batch of Rules.
 17708  	NextMarker *string `min:"1" type:"string"`
 17709  }
 17710  
 17711  // String returns the string representation.
 17712  //
 17713  // API parameter values that are decorated as "sensitive" in the API will not
 17714  // be included in the string output. The member name will be present, but the
 17715  // value will be replaced with "sensitive".
 17716  func (s ListRateBasedRulesInput) String() string {
 17717  	return awsutil.Prettify(s)
 17718  }
 17719  
 17720  // GoString returns the string representation.
 17721  //
 17722  // API parameter values that are decorated as "sensitive" in the API will not
 17723  // be included in the string output. The member name will be present, but the
 17724  // value will be replaced with "sensitive".
 17725  func (s ListRateBasedRulesInput) GoString() string {
 17726  	return s.String()
 17727  }
 17728  
 17729  // Validate inspects the fields of the type to determine if they are valid.
 17730  func (s *ListRateBasedRulesInput) Validate() error {
 17731  	invalidParams := request.ErrInvalidParams{Context: "ListRateBasedRulesInput"}
 17732  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 17733  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 17734  	}
 17735  
 17736  	if invalidParams.Len() > 0 {
 17737  		return invalidParams
 17738  	}
 17739  	return nil
 17740  }
 17741  
 17742  // SetLimit sets the Limit field's value.
 17743  func (s *ListRateBasedRulesInput) SetLimit(v int64) *ListRateBasedRulesInput {
 17744  	s.Limit = &v
 17745  	return s
 17746  }
 17747  
 17748  // SetNextMarker sets the NextMarker field's value.
 17749  func (s *ListRateBasedRulesInput) SetNextMarker(v string) *ListRateBasedRulesInput {
 17750  	s.NextMarker = &v
 17751  	return s
 17752  }
 17753  
 17754  type ListRateBasedRulesOutput struct {
 17755  	_ struct{} `type:"structure"`
 17756  
 17757  	// If you have more Rules than the number that you specified for Limit in the
 17758  	// request, the response includes a NextMarker value. To list more Rules, submit
 17759  	// another ListRateBasedRules request, and specify the NextMarker value from
 17760  	// the response in the NextMarker value in the next request.
 17761  	NextMarker *string `min:"1" type:"string"`
 17762  
 17763  	// An array of RuleSummary objects.
 17764  	Rules []*RuleSummary `type:"list"`
 17765  }
 17766  
 17767  // String returns the string representation.
 17768  //
 17769  // API parameter values that are decorated as "sensitive" in the API will not
 17770  // be included in the string output. The member name will be present, but the
 17771  // value will be replaced with "sensitive".
 17772  func (s ListRateBasedRulesOutput) String() string {
 17773  	return awsutil.Prettify(s)
 17774  }
 17775  
 17776  // GoString returns the string representation.
 17777  //
 17778  // API parameter values that are decorated as "sensitive" in the API will not
 17779  // be included in the string output. The member name will be present, but the
 17780  // value will be replaced with "sensitive".
 17781  func (s ListRateBasedRulesOutput) GoString() string {
 17782  	return s.String()
 17783  }
 17784  
 17785  // SetNextMarker sets the NextMarker field's value.
 17786  func (s *ListRateBasedRulesOutput) SetNextMarker(v string) *ListRateBasedRulesOutput {
 17787  	s.NextMarker = &v
 17788  	return s
 17789  }
 17790  
 17791  // SetRules sets the Rules field's value.
 17792  func (s *ListRateBasedRulesOutput) SetRules(v []*RuleSummary) *ListRateBasedRulesOutput {
 17793  	s.Rules = v
 17794  	return s
 17795  }
 17796  
 17797  type ListRegexMatchSetsInput struct {
 17798  	_ struct{} `type:"structure"`
 17799  
 17800  	// Specifies the number of RegexMatchSet objects that you want AWS WAF to return
 17801  	// for this request. If you have more RegexMatchSet objects than the number
 17802  	// you specify for Limit, the response includes a NextMarker value that you
 17803  	// can use to get another batch of RegexMatchSet objects.
 17804  	Limit *int64 `type:"integer"`
 17805  
 17806  	// If you specify a value for Limit and you have more RegexMatchSet objects
 17807  	// than the value of Limit, AWS WAF returns a NextMarker value in the response
 17808  	// that allows you to list another group of ByteMatchSets. For the second and
 17809  	// subsequent ListRegexMatchSets requests, specify the value of NextMarker from
 17810  	// the previous response to get information about another batch of RegexMatchSet
 17811  	// objects.
 17812  	NextMarker *string `min:"1" type:"string"`
 17813  }
 17814  
 17815  // String returns the string representation.
 17816  //
 17817  // API parameter values that are decorated as "sensitive" in the API will not
 17818  // be included in the string output. The member name will be present, but the
 17819  // value will be replaced with "sensitive".
 17820  func (s ListRegexMatchSetsInput) String() string {
 17821  	return awsutil.Prettify(s)
 17822  }
 17823  
 17824  // GoString returns the string representation.
 17825  //
 17826  // API parameter values that are decorated as "sensitive" in the API will not
 17827  // be included in the string output. The member name will be present, but the
 17828  // value will be replaced with "sensitive".
 17829  func (s ListRegexMatchSetsInput) GoString() string {
 17830  	return s.String()
 17831  }
 17832  
 17833  // Validate inspects the fields of the type to determine if they are valid.
 17834  func (s *ListRegexMatchSetsInput) Validate() error {
 17835  	invalidParams := request.ErrInvalidParams{Context: "ListRegexMatchSetsInput"}
 17836  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 17837  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 17838  	}
 17839  
 17840  	if invalidParams.Len() > 0 {
 17841  		return invalidParams
 17842  	}
 17843  	return nil
 17844  }
 17845  
 17846  // SetLimit sets the Limit field's value.
 17847  func (s *ListRegexMatchSetsInput) SetLimit(v int64) *ListRegexMatchSetsInput {
 17848  	s.Limit = &v
 17849  	return s
 17850  }
 17851  
 17852  // SetNextMarker sets the NextMarker field's value.
 17853  func (s *ListRegexMatchSetsInput) SetNextMarker(v string) *ListRegexMatchSetsInput {
 17854  	s.NextMarker = &v
 17855  	return s
 17856  }
 17857  
 17858  type ListRegexMatchSetsOutput struct {
 17859  	_ struct{} `type:"structure"`
 17860  
 17861  	// If you have more RegexMatchSet objects than the number that you specified
 17862  	// for Limit in the request, the response includes a NextMarker value. To list
 17863  	// more RegexMatchSet objects, submit another ListRegexMatchSets request, and
 17864  	// specify the NextMarker value from the response in the NextMarker value in
 17865  	// the next request.
 17866  	NextMarker *string `min:"1" type:"string"`
 17867  
 17868  	// An array of RegexMatchSetSummary objects.
 17869  	RegexMatchSets []*RegexMatchSetSummary `type:"list"`
 17870  }
 17871  
 17872  // String returns the string representation.
 17873  //
 17874  // API parameter values that are decorated as "sensitive" in the API will not
 17875  // be included in the string output. The member name will be present, but the
 17876  // value will be replaced with "sensitive".
 17877  func (s ListRegexMatchSetsOutput) String() string {
 17878  	return awsutil.Prettify(s)
 17879  }
 17880  
 17881  // GoString returns the string representation.
 17882  //
 17883  // API parameter values that are decorated as "sensitive" in the API will not
 17884  // be included in the string output. The member name will be present, but the
 17885  // value will be replaced with "sensitive".
 17886  func (s ListRegexMatchSetsOutput) GoString() string {
 17887  	return s.String()
 17888  }
 17889  
 17890  // SetNextMarker sets the NextMarker field's value.
 17891  func (s *ListRegexMatchSetsOutput) SetNextMarker(v string) *ListRegexMatchSetsOutput {
 17892  	s.NextMarker = &v
 17893  	return s
 17894  }
 17895  
 17896  // SetRegexMatchSets sets the RegexMatchSets field's value.
 17897  func (s *ListRegexMatchSetsOutput) SetRegexMatchSets(v []*RegexMatchSetSummary) *ListRegexMatchSetsOutput {
 17898  	s.RegexMatchSets = v
 17899  	return s
 17900  }
 17901  
 17902  type ListRegexPatternSetsInput struct {
 17903  	_ struct{} `type:"structure"`
 17904  
 17905  	// Specifies the number of RegexPatternSet objects that you want AWS WAF to
 17906  	// return for this request. If you have more RegexPatternSet objects than the
 17907  	// number you specify for Limit, the response includes a NextMarker value that
 17908  	// you can use to get another batch of RegexPatternSet objects.
 17909  	Limit *int64 `type:"integer"`
 17910  
 17911  	// If you specify a value for Limit and you have more RegexPatternSet objects
 17912  	// than the value of Limit, AWS WAF returns a NextMarker value in the response
 17913  	// that allows you to list another group of RegexPatternSet objects. For the
 17914  	// second and subsequent ListRegexPatternSets requests, specify the value of
 17915  	// NextMarker from the previous response to get information about another batch
 17916  	// of RegexPatternSet objects.
 17917  	NextMarker *string `min:"1" type:"string"`
 17918  }
 17919  
 17920  // String returns the string representation.
 17921  //
 17922  // API parameter values that are decorated as "sensitive" in the API will not
 17923  // be included in the string output. The member name will be present, but the
 17924  // value will be replaced with "sensitive".
 17925  func (s ListRegexPatternSetsInput) String() string {
 17926  	return awsutil.Prettify(s)
 17927  }
 17928  
 17929  // GoString returns the string representation.
 17930  //
 17931  // API parameter values that are decorated as "sensitive" in the API will not
 17932  // be included in the string output. The member name will be present, but the
 17933  // value will be replaced with "sensitive".
 17934  func (s ListRegexPatternSetsInput) GoString() string {
 17935  	return s.String()
 17936  }
 17937  
 17938  // Validate inspects the fields of the type to determine if they are valid.
 17939  func (s *ListRegexPatternSetsInput) Validate() error {
 17940  	invalidParams := request.ErrInvalidParams{Context: "ListRegexPatternSetsInput"}
 17941  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 17942  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 17943  	}
 17944  
 17945  	if invalidParams.Len() > 0 {
 17946  		return invalidParams
 17947  	}
 17948  	return nil
 17949  }
 17950  
 17951  // SetLimit sets the Limit field's value.
 17952  func (s *ListRegexPatternSetsInput) SetLimit(v int64) *ListRegexPatternSetsInput {
 17953  	s.Limit = &v
 17954  	return s
 17955  }
 17956  
 17957  // SetNextMarker sets the NextMarker field's value.
 17958  func (s *ListRegexPatternSetsInput) SetNextMarker(v string) *ListRegexPatternSetsInput {
 17959  	s.NextMarker = &v
 17960  	return s
 17961  }
 17962  
 17963  type ListRegexPatternSetsOutput struct {
 17964  	_ struct{} `type:"structure"`
 17965  
 17966  	// If you have more RegexPatternSet objects than the number that you specified
 17967  	// for Limit in the request, the response includes a NextMarker value. To list
 17968  	// more RegexPatternSet objects, submit another ListRegexPatternSets request,
 17969  	// and specify the NextMarker value from the response in the NextMarker value
 17970  	// in the next request.
 17971  	NextMarker *string `min:"1" type:"string"`
 17972  
 17973  	// An array of RegexPatternSetSummary objects.
 17974  	RegexPatternSets []*RegexPatternSetSummary `type:"list"`
 17975  }
 17976  
 17977  // String returns the string representation.
 17978  //
 17979  // API parameter values that are decorated as "sensitive" in the API will not
 17980  // be included in the string output. The member name will be present, but the
 17981  // value will be replaced with "sensitive".
 17982  func (s ListRegexPatternSetsOutput) String() string {
 17983  	return awsutil.Prettify(s)
 17984  }
 17985  
 17986  // GoString returns the string representation.
 17987  //
 17988  // API parameter values that are decorated as "sensitive" in the API will not
 17989  // be included in the string output. The member name will be present, but the
 17990  // value will be replaced with "sensitive".
 17991  func (s ListRegexPatternSetsOutput) GoString() string {
 17992  	return s.String()
 17993  }
 17994  
 17995  // SetNextMarker sets the NextMarker field's value.
 17996  func (s *ListRegexPatternSetsOutput) SetNextMarker(v string) *ListRegexPatternSetsOutput {
 17997  	s.NextMarker = &v
 17998  	return s
 17999  }
 18000  
 18001  // SetRegexPatternSets sets the RegexPatternSets field's value.
 18002  func (s *ListRegexPatternSetsOutput) SetRegexPatternSets(v []*RegexPatternSetSummary) *ListRegexPatternSetsOutput {
 18003  	s.RegexPatternSets = v
 18004  	return s
 18005  }
 18006  
 18007  type ListRuleGroupsInput struct {
 18008  	_ struct{} `type:"structure"`
 18009  
 18010  	// Specifies the number of RuleGroups that you want AWS WAF to return for this
 18011  	// request. If you have more RuleGroups than the number that you specify for
 18012  	// Limit, the response includes a NextMarker value that you can use to get another
 18013  	// batch of RuleGroups.
 18014  	Limit *int64 `type:"integer"`
 18015  
 18016  	// If you specify a value for Limit and you have more RuleGroups than the value
 18017  	// of Limit, AWS WAF returns a NextMarker value in the response that allows
 18018  	// you to list another group of RuleGroups. For the second and subsequent ListRuleGroups
 18019  	// requests, specify the value of NextMarker from the previous response to get
 18020  	// information about another batch of RuleGroups.
 18021  	NextMarker *string `min:"1" type:"string"`
 18022  }
 18023  
 18024  // String returns the string representation.
 18025  //
 18026  // API parameter values that are decorated as "sensitive" in the API will not
 18027  // be included in the string output. The member name will be present, but the
 18028  // value will be replaced with "sensitive".
 18029  func (s ListRuleGroupsInput) String() string {
 18030  	return awsutil.Prettify(s)
 18031  }
 18032  
 18033  // GoString returns the string representation.
 18034  //
 18035  // API parameter values that are decorated as "sensitive" in the API will not
 18036  // be included in the string output. The member name will be present, but the
 18037  // value will be replaced with "sensitive".
 18038  func (s ListRuleGroupsInput) GoString() string {
 18039  	return s.String()
 18040  }
 18041  
 18042  // Validate inspects the fields of the type to determine if they are valid.
 18043  func (s *ListRuleGroupsInput) Validate() error {
 18044  	invalidParams := request.ErrInvalidParams{Context: "ListRuleGroupsInput"}
 18045  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 18046  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 18047  	}
 18048  
 18049  	if invalidParams.Len() > 0 {
 18050  		return invalidParams
 18051  	}
 18052  	return nil
 18053  }
 18054  
 18055  // SetLimit sets the Limit field's value.
 18056  func (s *ListRuleGroupsInput) SetLimit(v int64) *ListRuleGroupsInput {
 18057  	s.Limit = &v
 18058  	return s
 18059  }
 18060  
 18061  // SetNextMarker sets the NextMarker field's value.
 18062  func (s *ListRuleGroupsInput) SetNextMarker(v string) *ListRuleGroupsInput {
 18063  	s.NextMarker = &v
 18064  	return s
 18065  }
 18066  
 18067  type ListRuleGroupsOutput struct {
 18068  	_ struct{} `type:"structure"`
 18069  
 18070  	// If you have more RuleGroups than the number that you specified for Limit
 18071  	// in the request, the response includes a NextMarker value. To list more RuleGroups,
 18072  	// submit another ListRuleGroups request, and specify the NextMarker value from
 18073  	// the response in the NextMarker value in the next request.
 18074  	NextMarker *string `min:"1" type:"string"`
 18075  
 18076  	// An array of RuleGroup objects.
 18077  	RuleGroups []*RuleGroupSummary `type:"list"`
 18078  }
 18079  
 18080  // String returns the string representation.
 18081  //
 18082  // API parameter values that are decorated as "sensitive" in the API will not
 18083  // be included in the string output. The member name will be present, but the
 18084  // value will be replaced with "sensitive".
 18085  func (s ListRuleGroupsOutput) String() string {
 18086  	return awsutil.Prettify(s)
 18087  }
 18088  
 18089  // GoString returns the string representation.
 18090  //
 18091  // API parameter values that are decorated as "sensitive" in the API will not
 18092  // be included in the string output. The member name will be present, but the
 18093  // value will be replaced with "sensitive".
 18094  func (s ListRuleGroupsOutput) GoString() string {
 18095  	return s.String()
 18096  }
 18097  
 18098  // SetNextMarker sets the NextMarker field's value.
 18099  func (s *ListRuleGroupsOutput) SetNextMarker(v string) *ListRuleGroupsOutput {
 18100  	s.NextMarker = &v
 18101  	return s
 18102  }
 18103  
 18104  // SetRuleGroups sets the RuleGroups field's value.
 18105  func (s *ListRuleGroupsOutput) SetRuleGroups(v []*RuleGroupSummary) *ListRuleGroupsOutput {
 18106  	s.RuleGroups = v
 18107  	return s
 18108  }
 18109  
 18110  type ListRulesInput struct {
 18111  	_ struct{} `type:"structure"`
 18112  
 18113  	// Specifies the number of Rules that you want AWS WAF to return for this request.
 18114  	// If you have more Rules than the number that you specify for Limit, the response
 18115  	// includes a NextMarker value that you can use to get another batch of Rules.
 18116  	Limit *int64 `type:"integer"`
 18117  
 18118  	// If you specify a value for Limit and you have more Rules than the value of
 18119  	// Limit, AWS WAF returns a NextMarker value in the response that allows you
 18120  	// to list another group of Rules. For the second and subsequent ListRules requests,
 18121  	// specify the value of NextMarker from the previous response to get information
 18122  	// about another batch of Rules.
 18123  	NextMarker *string `min:"1" type:"string"`
 18124  }
 18125  
 18126  // String returns the string representation.
 18127  //
 18128  // API parameter values that are decorated as "sensitive" in the API will not
 18129  // be included in the string output. The member name will be present, but the
 18130  // value will be replaced with "sensitive".
 18131  func (s ListRulesInput) String() string {
 18132  	return awsutil.Prettify(s)
 18133  }
 18134  
 18135  // GoString returns the string representation.
 18136  //
 18137  // API parameter values that are decorated as "sensitive" in the API will not
 18138  // be included in the string output. The member name will be present, but the
 18139  // value will be replaced with "sensitive".
 18140  func (s ListRulesInput) GoString() string {
 18141  	return s.String()
 18142  }
 18143  
 18144  // Validate inspects the fields of the type to determine if they are valid.
 18145  func (s *ListRulesInput) Validate() error {
 18146  	invalidParams := request.ErrInvalidParams{Context: "ListRulesInput"}
 18147  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 18148  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 18149  	}
 18150  
 18151  	if invalidParams.Len() > 0 {
 18152  		return invalidParams
 18153  	}
 18154  	return nil
 18155  }
 18156  
 18157  // SetLimit sets the Limit field's value.
 18158  func (s *ListRulesInput) SetLimit(v int64) *ListRulesInput {
 18159  	s.Limit = &v
 18160  	return s
 18161  }
 18162  
 18163  // SetNextMarker sets the NextMarker field's value.
 18164  func (s *ListRulesInput) SetNextMarker(v string) *ListRulesInput {
 18165  	s.NextMarker = &v
 18166  	return s
 18167  }
 18168  
 18169  type ListRulesOutput struct {
 18170  	_ struct{} `type:"structure"`
 18171  
 18172  	// If you have more Rules than the number that you specified for Limit in the
 18173  	// request, the response includes a NextMarker value. To list more Rules, submit
 18174  	// another ListRules request, and specify the NextMarker value from the response
 18175  	// in the NextMarker value in the next request.
 18176  	NextMarker *string `min:"1" type:"string"`
 18177  
 18178  	// An array of RuleSummary objects.
 18179  	Rules []*RuleSummary `type:"list"`
 18180  }
 18181  
 18182  // String returns the string representation.
 18183  //
 18184  // API parameter values that are decorated as "sensitive" in the API will not
 18185  // be included in the string output. The member name will be present, but the
 18186  // value will be replaced with "sensitive".
 18187  func (s ListRulesOutput) String() string {
 18188  	return awsutil.Prettify(s)
 18189  }
 18190  
 18191  // GoString returns the string representation.
 18192  //
 18193  // API parameter values that are decorated as "sensitive" in the API will not
 18194  // be included in the string output. The member name will be present, but the
 18195  // value will be replaced with "sensitive".
 18196  func (s ListRulesOutput) GoString() string {
 18197  	return s.String()
 18198  }
 18199  
 18200  // SetNextMarker sets the NextMarker field's value.
 18201  func (s *ListRulesOutput) SetNextMarker(v string) *ListRulesOutput {
 18202  	s.NextMarker = &v
 18203  	return s
 18204  }
 18205  
 18206  // SetRules sets the Rules field's value.
 18207  func (s *ListRulesOutput) SetRules(v []*RuleSummary) *ListRulesOutput {
 18208  	s.Rules = v
 18209  	return s
 18210  }
 18211  
 18212  type ListSizeConstraintSetsInput struct {
 18213  	_ struct{} `type:"structure"`
 18214  
 18215  	// Specifies the number of SizeConstraintSet objects that you want AWS WAF to
 18216  	// return for this request. If you have more SizeConstraintSets objects than
 18217  	// the number you specify for Limit, the response includes a NextMarker value
 18218  	// that you can use to get another batch of SizeConstraintSet objects.
 18219  	Limit *int64 `type:"integer"`
 18220  
 18221  	// If you specify a value for Limit and you have more SizeConstraintSets than
 18222  	// the value of Limit, AWS WAF returns a NextMarker value in the response that
 18223  	// allows you to list another group of SizeConstraintSets. For the second and
 18224  	// subsequent ListSizeConstraintSets requests, specify the value of NextMarker
 18225  	// from the previous response to get information about another batch of SizeConstraintSets.
 18226  	NextMarker *string `min:"1" type:"string"`
 18227  }
 18228  
 18229  // String returns the string representation.
 18230  //
 18231  // API parameter values that are decorated as "sensitive" in the API will not
 18232  // be included in the string output. The member name will be present, but the
 18233  // value will be replaced with "sensitive".
 18234  func (s ListSizeConstraintSetsInput) String() string {
 18235  	return awsutil.Prettify(s)
 18236  }
 18237  
 18238  // GoString returns the string representation.
 18239  //
 18240  // API parameter values that are decorated as "sensitive" in the API will not
 18241  // be included in the string output. The member name will be present, but the
 18242  // value will be replaced with "sensitive".
 18243  func (s ListSizeConstraintSetsInput) GoString() string {
 18244  	return s.String()
 18245  }
 18246  
 18247  // Validate inspects the fields of the type to determine if they are valid.
 18248  func (s *ListSizeConstraintSetsInput) Validate() error {
 18249  	invalidParams := request.ErrInvalidParams{Context: "ListSizeConstraintSetsInput"}
 18250  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 18251  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 18252  	}
 18253  
 18254  	if invalidParams.Len() > 0 {
 18255  		return invalidParams
 18256  	}
 18257  	return nil
 18258  }
 18259  
 18260  // SetLimit sets the Limit field's value.
 18261  func (s *ListSizeConstraintSetsInput) SetLimit(v int64) *ListSizeConstraintSetsInput {
 18262  	s.Limit = &v
 18263  	return s
 18264  }
 18265  
 18266  // SetNextMarker sets the NextMarker field's value.
 18267  func (s *ListSizeConstraintSetsInput) SetNextMarker(v string) *ListSizeConstraintSetsInput {
 18268  	s.NextMarker = &v
 18269  	return s
 18270  }
 18271  
 18272  type ListSizeConstraintSetsOutput struct {
 18273  	_ struct{} `type:"structure"`
 18274  
 18275  	// If you have more SizeConstraintSet objects than the number that you specified
 18276  	// for Limit in the request, the response includes a NextMarker value. To list
 18277  	// more SizeConstraintSet objects, submit another ListSizeConstraintSets request,
 18278  	// and specify the NextMarker value from the response in the NextMarker value
 18279  	// in the next request.
 18280  	NextMarker *string `min:"1" type:"string"`
 18281  
 18282  	// An array of SizeConstraintSetSummary objects.
 18283  	SizeConstraintSets []*SizeConstraintSetSummary `type:"list"`
 18284  }
 18285  
 18286  // String returns the string representation.
 18287  //
 18288  // API parameter values that are decorated as "sensitive" in the API will not
 18289  // be included in the string output. The member name will be present, but the
 18290  // value will be replaced with "sensitive".
 18291  func (s ListSizeConstraintSetsOutput) String() string {
 18292  	return awsutil.Prettify(s)
 18293  }
 18294  
 18295  // GoString returns the string representation.
 18296  //
 18297  // API parameter values that are decorated as "sensitive" in the API will not
 18298  // be included in the string output. The member name will be present, but the
 18299  // value will be replaced with "sensitive".
 18300  func (s ListSizeConstraintSetsOutput) GoString() string {
 18301  	return s.String()
 18302  }
 18303  
 18304  // SetNextMarker sets the NextMarker field's value.
 18305  func (s *ListSizeConstraintSetsOutput) SetNextMarker(v string) *ListSizeConstraintSetsOutput {
 18306  	s.NextMarker = &v
 18307  	return s
 18308  }
 18309  
 18310  // SetSizeConstraintSets sets the SizeConstraintSets field's value.
 18311  func (s *ListSizeConstraintSetsOutput) SetSizeConstraintSets(v []*SizeConstraintSetSummary) *ListSizeConstraintSetsOutput {
 18312  	s.SizeConstraintSets = v
 18313  	return s
 18314  }
 18315  
 18316  // A request to list the SqlInjectionMatchSet objects created by the current
 18317  // AWS account.
 18318  type ListSqlInjectionMatchSetsInput struct {
 18319  	_ struct{} `type:"structure"`
 18320  
 18321  	// Specifies the number of SqlInjectionMatchSet objects that you want AWS WAF
 18322  	// to return for this request. If you have more SqlInjectionMatchSet objects
 18323  	// than the number you specify for Limit, the response includes a NextMarker
 18324  	// value that you can use to get another batch of Rules.
 18325  	Limit *int64 `type:"integer"`
 18326  
 18327  	// If you specify a value for Limit and you have more SqlInjectionMatchSet objects
 18328  	// than the value of Limit, AWS WAF returns a NextMarker value in the response
 18329  	// that allows you to list another group of SqlInjectionMatchSets. For the second
 18330  	// and subsequent ListSqlInjectionMatchSets requests, specify the value of NextMarker
 18331  	// from the previous response to get information about another batch of SqlInjectionMatchSets.
 18332  	NextMarker *string `min:"1" type:"string"`
 18333  }
 18334  
 18335  // String returns the string representation.
 18336  //
 18337  // API parameter values that are decorated as "sensitive" in the API will not
 18338  // be included in the string output. The member name will be present, but the
 18339  // value will be replaced with "sensitive".
 18340  func (s ListSqlInjectionMatchSetsInput) String() string {
 18341  	return awsutil.Prettify(s)
 18342  }
 18343  
 18344  // GoString returns the string representation.
 18345  //
 18346  // API parameter values that are decorated as "sensitive" in the API will not
 18347  // be included in the string output. The member name will be present, but the
 18348  // value will be replaced with "sensitive".
 18349  func (s ListSqlInjectionMatchSetsInput) GoString() string {
 18350  	return s.String()
 18351  }
 18352  
 18353  // Validate inspects the fields of the type to determine if they are valid.
 18354  func (s *ListSqlInjectionMatchSetsInput) Validate() error {
 18355  	invalidParams := request.ErrInvalidParams{Context: "ListSqlInjectionMatchSetsInput"}
 18356  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 18357  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 18358  	}
 18359  
 18360  	if invalidParams.Len() > 0 {
 18361  		return invalidParams
 18362  	}
 18363  	return nil
 18364  }
 18365  
 18366  // SetLimit sets the Limit field's value.
 18367  func (s *ListSqlInjectionMatchSetsInput) SetLimit(v int64) *ListSqlInjectionMatchSetsInput {
 18368  	s.Limit = &v
 18369  	return s
 18370  }
 18371  
 18372  // SetNextMarker sets the NextMarker field's value.
 18373  func (s *ListSqlInjectionMatchSetsInput) SetNextMarker(v string) *ListSqlInjectionMatchSetsInput {
 18374  	s.NextMarker = &v
 18375  	return s
 18376  }
 18377  
 18378  // The response to a ListSqlInjectionMatchSets request.
 18379  type ListSqlInjectionMatchSetsOutput struct {
 18380  	_ struct{} `type:"structure"`
 18381  
 18382  	// If you have more SqlInjectionMatchSet objects than the number that you specified
 18383  	// for Limit in the request, the response includes a NextMarker value. To list
 18384  	// more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets
 18385  	// request, and specify the NextMarker value from the response in the NextMarker
 18386  	// value in the next request.
 18387  	NextMarker *string `min:"1" type:"string"`
 18388  
 18389  	// An array of SqlInjectionMatchSetSummary objects.
 18390  	SqlInjectionMatchSets []*SqlInjectionMatchSetSummary `type:"list"`
 18391  }
 18392  
 18393  // String returns the string representation.
 18394  //
 18395  // API parameter values that are decorated as "sensitive" in the API will not
 18396  // be included in the string output. The member name will be present, but the
 18397  // value will be replaced with "sensitive".
 18398  func (s ListSqlInjectionMatchSetsOutput) String() string {
 18399  	return awsutil.Prettify(s)
 18400  }
 18401  
 18402  // GoString returns the string representation.
 18403  //
 18404  // API parameter values that are decorated as "sensitive" in the API will not
 18405  // be included in the string output. The member name will be present, but the
 18406  // value will be replaced with "sensitive".
 18407  func (s ListSqlInjectionMatchSetsOutput) GoString() string {
 18408  	return s.String()
 18409  }
 18410  
 18411  // SetNextMarker sets the NextMarker field's value.
 18412  func (s *ListSqlInjectionMatchSetsOutput) SetNextMarker(v string) *ListSqlInjectionMatchSetsOutput {
 18413  	s.NextMarker = &v
 18414  	return s
 18415  }
 18416  
 18417  // SetSqlInjectionMatchSets sets the SqlInjectionMatchSets field's value.
 18418  func (s *ListSqlInjectionMatchSetsOutput) SetSqlInjectionMatchSets(v []*SqlInjectionMatchSetSummary) *ListSqlInjectionMatchSetsOutput {
 18419  	s.SqlInjectionMatchSets = v
 18420  	return s
 18421  }
 18422  
 18423  type ListSubscribedRuleGroupsInput struct {
 18424  	_ struct{} `type:"structure"`
 18425  
 18426  	// Specifies the number of subscribed rule groups that you want AWS WAF to return
 18427  	// for this request. If you have more objects than the number you specify for
 18428  	// Limit, the response includes a NextMarker value that you can use to get another
 18429  	// batch of objects.
 18430  	Limit *int64 `type:"integer"`
 18431  
 18432  	// If you specify a value for Limit and you have more ByteMatchSetssubscribed
 18433  	// rule groups than the value of Limit, AWS WAF returns a NextMarker value in
 18434  	// the response that allows you to list another group of subscribed rule groups.
 18435  	// For the second and subsequent ListSubscribedRuleGroupsRequest requests, specify
 18436  	// the value of NextMarker from the previous response to get information about
 18437  	// another batch of subscribed rule groups.
 18438  	NextMarker *string `min:"1" type:"string"`
 18439  }
 18440  
 18441  // String returns the string representation.
 18442  //
 18443  // API parameter values that are decorated as "sensitive" in the API will not
 18444  // be included in the string output. The member name will be present, but the
 18445  // value will be replaced with "sensitive".
 18446  func (s ListSubscribedRuleGroupsInput) String() string {
 18447  	return awsutil.Prettify(s)
 18448  }
 18449  
 18450  // GoString returns the string representation.
 18451  //
 18452  // API parameter values that are decorated as "sensitive" in the API will not
 18453  // be included in the string output. The member name will be present, but the
 18454  // value will be replaced with "sensitive".
 18455  func (s ListSubscribedRuleGroupsInput) GoString() string {
 18456  	return s.String()
 18457  }
 18458  
 18459  // Validate inspects the fields of the type to determine if they are valid.
 18460  func (s *ListSubscribedRuleGroupsInput) Validate() error {
 18461  	invalidParams := request.ErrInvalidParams{Context: "ListSubscribedRuleGroupsInput"}
 18462  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 18463  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 18464  	}
 18465  
 18466  	if invalidParams.Len() > 0 {
 18467  		return invalidParams
 18468  	}
 18469  	return nil
 18470  }
 18471  
 18472  // SetLimit sets the Limit field's value.
 18473  func (s *ListSubscribedRuleGroupsInput) SetLimit(v int64) *ListSubscribedRuleGroupsInput {
 18474  	s.Limit = &v
 18475  	return s
 18476  }
 18477  
 18478  // SetNextMarker sets the NextMarker field's value.
 18479  func (s *ListSubscribedRuleGroupsInput) SetNextMarker(v string) *ListSubscribedRuleGroupsInput {
 18480  	s.NextMarker = &v
 18481  	return s
 18482  }
 18483  
 18484  type ListSubscribedRuleGroupsOutput struct {
 18485  	_ struct{} `type:"structure"`
 18486  
 18487  	// If you have more objects than the number that you specified for Limit in
 18488  	// the request, the response includes a NextMarker value. To list more objects,
 18489  	// submit another ListSubscribedRuleGroups request, and specify the NextMarker
 18490  	// value from the response in the NextMarker value in the next request.
 18491  	NextMarker *string `min:"1" type:"string"`
 18492  
 18493  	// An array of RuleGroup objects.
 18494  	RuleGroups []*SubscribedRuleGroupSummary `type:"list"`
 18495  }
 18496  
 18497  // String returns the string representation.
 18498  //
 18499  // API parameter values that are decorated as "sensitive" in the API will not
 18500  // be included in the string output. The member name will be present, but the
 18501  // value will be replaced with "sensitive".
 18502  func (s ListSubscribedRuleGroupsOutput) String() string {
 18503  	return awsutil.Prettify(s)
 18504  }
 18505  
 18506  // GoString returns the string representation.
 18507  //
 18508  // API parameter values that are decorated as "sensitive" in the API will not
 18509  // be included in the string output. The member name will be present, but the
 18510  // value will be replaced with "sensitive".
 18511  func (s ListSubscribedRuleGroupsOutput) GoString() string {
 18512  	return s.String()
 18513  }
 18514  
 18515  // SetNextMarker sets the NextMarker field's value.
 18516  func (s *ListSubscribedRuleGroupsOutput) SetNextMarker(v string) *ListSubscribedRuleGroupsOutput {
 18517  	s.NextMarker = &v
 18518  	return s
 18519  }
 18520  
 18521  // SetRuleGroups sets the RuleGroups field's value.
 18522  func (s *ListSubscribedRuleGroupsOutput) SetRuleGroups(v []*SubscribedRuleGroupSummary) *ListSubscribedRuleGroupsOutput {
 18523  	s.RuleGroups = v
 18524  	return s
 18525  }
 18526  
 18527  type ListTagsForResourceInput struct {
 18528  	_ struct{} `type:"structure"`
 18529  
 18530  	Limit *int64 `type:"integer"`
 18531  
 18532  	NextMarker *string `min:"1" type:"string"`
 18533  
 18534  	// ResourceARN is a required field
 18535  	ResourceARN *string `min:"1" type:"string" required:"true"`
 18536  }
 18537  
 18538  // String returns the string representation.
 18539  //
 18540  // API parameter values that are decorated as "sensitive" in the API will not
 18541  // be included in the string output. The member name will be present, but the
 18542  // value will be replaced with "sensitive".
 18543  func (s ListTagsForResourceInput) String() string {
 18544  	return awsutil.Prettify(s)
 18545  }
 18546  
 18547  // GoString returns the string representation.
 18548  //
 18549  // API parameter values that are decorated as "sensitive" in the API will not
 18550  // be included in the string output. The member name will be present, but the
 18551  // value will be replaced with "sensitive".
 18552  func (s ListTagsForResourceInput) GoString() string {
 18553  	return s.String()
 18554  }
 18555  
 18556  // Validate inspects the fields of the type to determine if they are valid.
 18557  func (s *ListTagsForResourceInput) Validate() error {
 18558  	invalidParams := request.ErrInvalidParams{Context: "ListTagsForResourceInput"}
 18559  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 18560  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 18561  	}
 18562  	if s.ResourceARN == nil {
 18563  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 18564  	}
 18565  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
 18566  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
 18567  	}
 18568  
 18569  	if invalidParams.Len() > 0 {
 18570  		return invalidParams
 18571  	}
 18572  	return nil
 18573  }
 18574  
 18575  // SetLimit sets the Limit field's value.
 18576  func (s *ListTagsForResourceInput) SetLimit(v int64) *ListTagsForResourceInput {
 18577  	s.Limit = &v
 18578  	return s
 18579  }
 18580  
 18581  // SetNextMarker sets the NextMarker field's value.
 18582  func (s *ListTagsForResourceInput) SetNextMarker(v string) *ListTagsForResourceInput {
 18583  	s.NextMarker = &v
 18584  	return s
 18585  }
 18586  
 18587  // SetResourceARN sets the ResourceARN field's value.
 18588  func (s *ListTagsForResourceInput) SetResourceARN(v string) *ListTagsForResourceInput {
 18589  	s.ResourceARN = &v
 18590  	return s
 18591  }
 18592  
 18593  type ListTagsForResourceOutput struct {
 18594  	_ struct{} `type:"structure"`
 18595  
 18596  	NextMarker *string `min:"1" type:"string"`
 18597  
 18598  	//
 18599  	// This is AWS WAF Classic documentation. For more information, see AWS WAF
 18600  	// Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 18601  	// in the developer guide.
 18602  	//
 18603  	// For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 18604  	// WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 18605  	// With the latest version, AWS WAF has a single set of endpoints for regional
 18606  	// and global use.
 18607  	//
 18608  	// Information for a tag associated with an AWS resource. Tags are key:value
 18609  	// pairs that you can use to categorize and manage your resources, for purposes
 18610  	// like billing. For example, you might set the tag key to "customer" and the
 18611  	// value to the customer name or ID. You can specify one or more tags to add
 18612  	// to each AWS resource, up to 50 tags for a resource.
 18613  	//
 18614  	// Tagging is only available through the API, SDKs, and CLI. You can't manage
 18615  	// or view tags through the AWS WAF Classic console. You can tag the AWS resources
 18616  	// that you manage through AWS WAF Classic: web ACLs, rule groups, and rules.
 18617  	TagInfoForResource *TagInfoForResource `type:"structure"`
 18618  }
 18619  
 18620  // String returns the string representation.
 18621  //
 18622  // API parameter values that are decorated as "sensitive" in the API will not
 18623  // be included in the string output. The member name will be present, but the
 18624  // value will be replaced with "sensitive".
 18625  func (s ListTagsForResourceOutput) String() string {
 18626  	return awsutil.Prettify(s)
 18627  }
 18628  
 18629  // GoString returns the string representation.
 18630  //
 18631  // API parameter values that are decorated as "sensitive" in the API will not
 18632  // be included in the string output. The member name will be present, but the
 18633  // value will be replaced with "sensitive".
 18634  func (s ListTagsForResourceOutput) GoString() string {
 18635  	return s.String()
 18636  }
 18637  
 18638  // SetNextMarker sets the NextMarker field's value.
 18639  func (s *ListTagsForResourceOutput) SetNextMarker(v string) *ListTagsForResourceOutput {
 18640  	s.NextMarker = &v
 18641  	return s
 18642  }
 18643  
 18644  // SetTagInfoForResource sets the TagInfoForResource field's value.
 18645  func (s *ListTagsForResourceOutput) SetTagInfoForResource(v *TagInfoForResource) *ListTagsForResourceOutput {
 18646  	s.TagInfoForResource = v
 18647  	return s
 18648  }
 18649  
 18650  type ListWebACLsInput struct {
 18651  	_ struct{} `type:"structure"`
 18652  
 18653  	// Specifies the number of WebACL objects that you want AWS WAF to return for
 18654  	// this request. If you have more WebACL objects than the number that you specify
 18655  	// for Limit, the response includes a NextMarker value that you can use to get
 18656  	// another batch of WebACL objects.
 18657  	Limit *int64 `type:"integer"`
 18658  
 18659  	// If you specify a value for Limit and you have more WebACL objects than the
 18660  	// number that you specify for Limit, AWS WAF returns a NextMarker value in
 18661  	// the response that allows you to list another group of WebACL objects. For
 18662  	// the second and subsequent ListWebACLs requests, specify the value of NextMarker
 18663  	// from the previous response to get information about another batch of WebACL
 18664  	// objects.
 18665  	NextMarker *string `min:"1" type:"string"`
 18666  }
 18667  
 18668  // String returns the string representation.
 18669  //
 18670  // API parameter values that are decorated as "sensitive" in the API will not
 18671  // be included in the string output. The member name will be present, but the
 18672  // value will be replaced with "sensitive".
 18673  func (s ListWebACLsInput) String() string {
 18674  	return awsutil.Prettify(s)
 18675  }
 18676  
 18677  // GoString returns the string representation.
 18678  //
 18679  // API parameter values that are decorated as "sensitive" in the API will not
 18680  // be included in the string output. The member name will be present, but the
 18681  // value will be replaced with "sensitive".
 18682  func (s ListWebACLsInput) GoString() string {
 18683  	return s.String()
 18684  }
 18685  
 18686  // Validate inspects the fields of the type to determine if they are valid.
 18687  func (s *ListWebACLsInput) Validate() error {
 18688  	invalidParams := request.ErrInvalidParams{Context: "ListWebACLsInput"}
 18689  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 18690  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 18691  	}
 18692  
 18693  	if invalidParams.Len() > 0 {
 18694  		return invalidParams
 18695  	}
 18696  	return nil
 18697  }
 18698  
 18699  // SetLimit sets the Limit field's value.
 18700  func (s *ListWebACLsInput) SetLimit(v int64) *ListWebACLsInput {
 18701  	s.Limit = &v
 18702  	return s
 18703  }
 18704  
 18705  // SetNextMarker sets the NextMarker field's value.
 18706  func (s *ListWebACLsInput) SetNextMarker(v string) *ListWebACLsInput {
 18707  	s.NextMarker = &v
 18708  	return s
 18709  }
 18710  
 18711  type ListWebACLsOutput struct {
 18712  	_ struct{} `type:"structure"`
 18713  
 18714  	// If you have more WebACL objects than the number that you specified for Limit
 18715  	// in the request, the response includes a NextMarker value. To list more WebACL
 18716  	// objects, submit another ListWebACLs request, and specify the NextMarker value
 18717  	// from the response in the NextMarker value in the next request.
 18718  	NextMarker *string `min:"1" type:"string"`
 18719  
 18720  	// An array of WebACLSummary objects.
 18721  	WebACLs []*WebACLSummary `type:"list"`
 18722  }
 18723  
 18724  // String returns the string representation.
 18725  //
 18726  // API parameter values that are decorated as "sensitive" in the API will not
 18727  // be included in the string output. The member name will be present, but the
 18728  // value will be replaced with "sensitive".
 18729  func (s ListWebACLsOutput) String() string {
 18730  	return awsutil.Prettify(s)
 18731  }
 18732  
 18733  // GoString returns the string representation.
 18734  //
 18735  // API parameter values that are decorated as "sensitive" in the API will not
 18736  // be included in the string output. The member name will be present, but the
 18737  // value will be replaced with "sensitive".
 18738  func (s ListWebACLsOutput) GoString() string {
 18739  	return s.String()
 18740  }
 18741  
 18742  // SetNextMarker sets the NextMarker field's value.
 18743  func (s *ListWebACLsOutput) SetNextMarker(v string) *ListWebACLsOutput {
 18744  	s.NextMarker = &v
 18745  	return s
 18746  }
 18747  
 18748  // SetWebACLs sets the WebACLs field's value.
 18749  func (s *ListWebACLsOutput) SetWebACLs(v []*WebACLSummary) *ListWebACLsOutput {
 18750  	s.WebACLs = v
 18751  	return s
 18752  }
 18753  
 18754  // A request to list the XssMatchSet objects created by the current AWS account.
 18755  type ListXssMatchSetsInput struct {
 18756  	_ struct{} `type:"structure"`
 18757  
 18758  	// Specifies the number of XssMatchSet objects that you want AWS WAF to return
 18759  	// for this request. If you have more XssMatchSet objects than the number you
 18760  	// specify for Limit, the response includes a NextMarker value that you can
 18761  	// use to get another batch of Rules.
 18762  	Limit *int64 `type:"integer"`
 18763  
 18764  	// If you specify a value for Limit and you have more XssMatchSet objects than
 18765  	// the value of Limit, AWS WAF returns a NextMarker value in the response that
 18766  	// allows you to list another group of XssMatchSets. For the second and subsequent
 18767  	// ListXssMatchSets requests, specify the value of NextMarker from the previous
 18768  	// response to get information about another batch of XssMatchSets.
 18769  	NextMarker *string `min:"1" type:"string"`
 18770  }
 18771  
 18772  // String returns the string representation.
 18773  //
 18774  // API parameter values that are decorated as "sensitive" in the API will not
 18775  // be included in the string output. The member name will be present, but the
 18776  // value will be replaced with "sensitive".
 18777  func (s ListXssMatchSetsInput) String() string {
 18778  	return awsutil.Prettify(s)
 18779  }
 18780  
 18781  // GoString returns the string representation.
 18782  //
 18783  // API parameter values that are decorated as "sensitive" in the API will not
 18784  // be included in the string output. The member name will be present, but the
 18785  // value will be replaced with "sensitive".
 18786  func (s ListXssMatchSetsInput) GoString() string {
 18787  	return s.String()
 18788  }
 18789  
 18790  // Validate inspects the fields of the type to determine if they are valid.
 18791  func (s *ListXssMatchSetsInput) Validate() error {
 18792  	invalidParams := request.ErrInvalidParams{Context: "ListXssMatchSetsInput"}
 18793  	if s.NextMarker != nil && len(*s.NextMarker) < 1 {
 18794  		invalidParams.Add(request.NewErrParamMinLen("NextMarker", 1))
 18795  	}
 18796  
 18797  	if invalidParams.Len() > 0 {
 18798  		return invalidParams
 18799  	}
 18800  	return nil
 18801  }
 18802  
 18803  // SetLimit sets the Limit field's value.
 18804  func (s *ListXssMatchSetsInput) SetLimit(v int64) *ListXssMatchSetsInput {
 18805  	s.Limit = &v
 18806  	return s
 18807  }
 18808  
 18809  // SetNextMarker sets the NextMarker field's value.
 18810  func (s *ListXssMatchSetsInput) SetNextMarker(v string) *ListXssMatchSetsInput {
 18811  	s.NextMarker = &v
 18812  	return s
 18813  }
 18814  
 18815  // The response to a ListXssMatchSets request.
 18816  type ListXssMatchSetsOutput struct {
 18817  	_ struct{} `type:"structure"`
 18818  
 18819  	// If you have more XssMatchSet objects than the number that you specified for
 18820  	// Limit in the request, the response includes a NextMarker value. To list more
 18821  	// XssMatchSet objects, submit another ListXssMatchSets request, and specify
 18822  	// the NextMarker value from the response in the NextMarker value in the next
 18823  	// request.
 18824  	NextMarker *string `min:"1" type:"string"`
 18825  
 18826  	// An array of XssMatchSetSummary objects.
 18827  	XssMatchSets []*XssMatchSetSummary `type:"list"`
 18828  }
 18829  
 18830  // String returns the string representation.
 18831  //
 18832  // API parameter values that are decorated as "sensitive" in the API will not
 18833  // be included in the string output. The member name will be present, but the
 18834  // value will be replaced with "sensitive".
 18835  func (s ListXssMatchSetsOutput) String() string {
 18836  	return awsutil.Prettify(s)
 18837  }
 18838  
 18839  // GoString returns the string representation.
 18840  //
 18841  // API parameter values that are decorated as "sensitive" in the API will not
 18842  // be included in the string output. The member name will be present, but the
 18843  // value will be replaced with "sensitive".
 18844  func (s ListXssMatchSetsOutput) GoString() string {
 18845  	return s.String()
 18846  }
 18847  
 18848  // SetNextMarker sets the NextMarker field's value.
 18849  func (s *ListXssMatchSetsOutput) SetNextMarker(v string) *ListXssMatchSetsOutput {
 18850  	s.NextMarker = &v
 18851  	return s
 18852  }
 18853  
 18854  // SetXssMatchSets sets the XssMatchSets field's value.
 18855  func (s *ListXssMatchSetsOutput) SetXssMatchSets(v []*XssMatchSetSummary) *ListXssMatchSetsOutput {
 18856  	s.XssMatchSets = v
 18857  	return s
 18858  }
 18859  
 18860  //
 18861  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 18862  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 18863  // in the developer guide.
 18864  //
 18865  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 18866  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 18867  // With the latest version, AWS WAF has a single set of endpoints for regional
 18868  // and global use.
 18869  //
 18870  // The Amazon Kinesis Data Firehose, RedactedFields information, and the web
 18871  // ACL Amazon Resource Name (ARN).
 18872  type LoggingConfiguration struct {
 18873  	_ struct{} `type:"structure"`
 18874  
 18875  	// An array of Amazon Kinesis Data Firehose ARNs.
 18876  	//
 18877  	// LogDestinationConfigs is a required field
 18878  	LogDestinationConfigs []*string `min:"1" type:"list" required:"true"`
 18879  
 18880  	// The parts of the request that you want redacted from the logs. For example,
 18881  	// if you redact the cookie field, the cookie field in the firehose will be
 18882  	// xxx.
 18883  	RedactedFields []*FieldToMatch `type:"list"`
 18884  
 18885  	// The Amazon Resource Name (ARN) of the web ACL that you want to associate
 18886  	// with LogDestinationConfigs.
 18887  	//
 18888  	// ResourceArn is a required field
 18889  	ResourceArn *string `min:"1" type:"string" required:"true"`
 18890  }
 18891  
 18892  // String returns the string representation.
 18893  //
 18894  // API parameter values that are decorated as "sensitive" in the API will not
 18895  // be included in the string output. The member name will be present, but the
 18896  // value will be replaced with "sensitive".
 18897  func (s LoggingConfiguration) String() string {
 18898  	return awsutil.Prettify(s)
 18899  }
 18900  
 18901  // GoString returns the string representation.
 18902  //
 18903  // API parameter values that are decorated as "sensitive" in the API will not
 18904  // be included in the string output. The member name will be present, but the
 18905  // value will be replaced with "sensitive".
 18906  func (s LoggingConfiguration) GoString() string {
 18907  	return s.String()
 18908  }
 18909  
 18910  // Validate inspects the fields of the type to determine if they are valid.
 18911  func (s *LoggingConfiguration) Validate() error {
 18912  	invalidParams := request.ErrInvalidParams{Context: "LoggingConfiguration"}
 18913  	if s.LogDestinationConfigs == nil {
 18914  		invalidParams.Add(request.NewErrParamRequired("LogDestinationConfigs"))
 18915  	}
 18916  	if s.LogDestinationConfigs != nil && len(s.LogDestinationConfigs) < 1 {
 18917  		invalidParams.Add(request.NewErrParamMinLen("LogDestinationConfigs", 1))
 18918  	}
 18919  	if s.ResourceArn == nil {
 18920  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 18921  	}
 18922  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 18923  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 18924  	}
 18925  	if s.RedactedFields != nil {
 18926  		for i, v := range s.RedactedFields {
 18927  			if v == nil {
 18928  				continue
 18929  			}
 18930  			if err := v.Validate(); err != nil {
 18931  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "RedactedFields", i), err.(request.ErrInvalidParams))
 18932  			}
 18933  		}
 18934  	}
 18935  
 18936  	if invalidParams.Len() > 0 {
 18937  		return invalidParams
 18938  	}
 18939  	return nil
 18940  }
 18941  
 18942  // SetLogDestinationConfigs sets the LogDestinationConfigs field's value.
 18943  func (s *LoggingConfiguration) SetLogDestinationConfigs(v []*string) *LoggingConfiguration {
 18944  	s.LogDestinationConfigs = v
 18945  	return s
 18946  }
 18947  
 18948  // SetRedactedFields sets the RedactedFields field's value.
 18949  func (s *LoggingConfiguration) SetRedactedFields(v []*FieldToMatch) *LoggingConfiguration {
 18950  	s.RedactedFields = v
 18951  	return s
 18952  }
 18953  
 18954  // SetResourceArn sets the ResourceArn field's value.
 18955  func (s *LoggingConfiguration) SetResourceArn(v string) *LoggingConfiguration {
 18956  	s.ResourceArn = &v
 18957  	return s
 18958  }
 18959  
 18960  // The operation failed because you tried to delete an object that isn't empty.
 18961  // For example:
 18962  //
 18963  //    * You tried to delete a WebACL that still contains one or more Rule objects.
 18964  //
 18965  //    * You tried to delete a Rule that still contains one or more ByteMatchSet
 18966  //    objects or other predicates.
 18967  //
 18968  //    * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
 18969  //    objects.
 18970  //
 18971  //    * You tried to delete an IPSet that references one or more IP addresses.
 18972  type NonEmptyEntityException struct {
 18973  	_            struct{}                  `type:"structure"`
 18974  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 18975  
 18976  	Message_ *string `locationName:"message" type:"string"`
 18977  }
 18978  
 18979  // String returns the string representation.
 18980  //
 18981  // API parameter values that are decorated as "sensitive" in the API will not
 18982  // be included in the string output. The member name will be present, but the
 18983  // value will be replaced with "sensitive".
 18984  func (s NonEmptyEntityException) String() string {
 18985  	return awsutil.Prettify(s)
 18986  }
 18987  
 18988  // GoString returns the string representation.
 18989  //
 18990  // API parameter values that are decorated as "sensitive" in the API will not
 18991  // be included in the string output. The member name will be present, but the
 18992  // value will be replaced with "sensitive".
 18993  func (s NonEmptyEntityException) GoString() string {
 18994  	return s.String()
 18995  }
 18996  
 18997  func newErrorNonEmptyEntityException(v protocol.ResponseMetadata) error {
 18998  	return &NonEmptyEntityException{
 18999  		RespMetadata: v,
 19000  	}
 19001  }
 19002  
 19003  // Code returns the exception type name.
 19004  func (s *NonEmptyEntityException) Code() string {
 19005  	return "WAFNonEmptyEntityException"
 19006  }
 19007  
 19008  // Message returns the exception's message.
 19009  func (s *NonEmptyEntityException) Message() string {
 19010  	if s.Message_ != nil {
 19011  		return *s.Message_
 19012  	}
 19013  	return ""
 19014  }
 19015  
 19016  // OrigErr always returns nil, satisfies awserr.Error interface.
 19017  func (s *NonEmptyEntityException) OrigErr() error {
 19018  	return nil
 19019  }
 19020  
 19021  func (s *NonEmptyEntityException) Error() string {
 19022  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19023  }
 19024  
 19025  // Status code returns the HTTP status code for the request's response error.
 19026  func (s *NonEmptyEntityException) StatusCode() int {
 19027  	return s.RespMetadata.StatusCode
 19028  }
 19029  
 19030  // RequestID returns the service's response RequestID for request.
 19031  func (s *NonEmptyEntityException) RequestID() string {
 19032  	return s.RespMetadata.RequestID
 19033  }
 19034  
 19035  // The operation failed because you tried to add an object to or delete an object
 19036  // from another object that doesn't exist. For example:
 19037  //
 19038  //    * You tried to add a Rule to or delete a Rule from a WebACL that doesn't
 19039  //    exist.
 19040  //
 19041  //    * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule
 19042  //    that doesn't exist.
 19043  //
 19044  //    * You tried to add an IP address to or delete an IP address from an IPSet
 19045  //    that doesn't exist.
 19046  //
 19047  //    * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from
 19048  //    a ByteMatchSet that doesn't exist.
 19049  type NonexistentContainerException struct {
 19050  	_            struct{}                  `type:"structure"`
 19051  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19052  
 19053  	Message_ *string `locationName:"message" type:"string"`
 19054  }
 19055  
 19056  // String returns the string representation.
 19057  //
 19058  // API parameter values that are decorated as "sensitive" in the API will not
 19059  // be included in the string output. The member name will be present, but the
 19060  // value will be replaced with "sensitive".
 19061  func (s NonexistentContainerException) String() string {
 19062  	return awsutil.Prettify(s)
 19063  }
 19064  
 19065  // GoString returns the string representation.
 19066  //
 19067  // API parameter values that are decorated as "sensitive" in the API will not
 19068  // be included in the string output. The member name will be present, but the
 19069  // value will be replaced with "sensitive".
 19070  func (s NonexistentContainerException) GoString() string {
 19071  	return s.String()
 19072  }
 19073  
 19074  func newErrorNonexistentContainerException(v protocol.ResponseMetadata) error {
 19075  	return &NonexistentContainerException{
 19076  		RespMetadata: v,
 19077  	}
 19078  }
 19079  
 19080  // Code returns the exception type name.
 19081  func (s *NonexistentContainerException) Code() string {
 19082  	return "WAFNonexistentContainerException"
 19083  }
 19084  
 19085  // Message returns the exception's message.
 19086  func (s *NonexistentContainerException) Message() string {
 19087  	if s.Message_ != nil {
 19088  		return *s.Message_
 19089  	}
 19090  	return ""
 19091  }
 19092  
 19093  // OrigErr always returns nil, satisfies awserr.Error interface.
 19094  func (s *NonexistentContainerException) OrigErr() error {
 19095  	return nil
 19096  }
 19097  
 19098  func (s *NonexistentContainerException) Error() string {
 19099  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19100  }
 19101  
 19102  // Status code returns the HTTP status code for the request's response error.
 19103  func (s *NonexistentContainerException) StatusCode() int {
 19104  	return s.RespMetadata.StatusCode
 19105  }
 19106  
 19107  // RequestID returns the service's response RequestID for request.
 19108  func (s *NonexistentContainerException) RequestID() string {
 19109  	return s.RespMetadata.RequestID
 19110  }
 19111  
 19112  // The operation failed because the referenced object doesn't exist.
 19113  type NonexistentItemException struct {
 19114  	_            struct{}                  `type:"structure"`
 19115  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19116  
 19117  	Message_ *string `locationName:"message" type:"string"`
 19118  }
 19119  
 19120  // String returns the string representation.
 19121  //
 19122  // API parameter values that are decorated as "sensitive" in the API will not
 19123  // be included in the string output. The member name will be present, but the
 19124  // value will be replaced with "sensitive".
 19125  func (s NonexistentItemException) String() string {
 19126  	return awsutil.Prettify(s)
 19127  }
 19128  
 19129  // GoString returns the string representation.
 19130  //
 19131  // API parameter values that are decorated as "sensitive" in the API will not
 19132  // be included in the string output. The member name will be present, but the
 19133  // value will be replaced with "sensitive".
 19134  func (s NonexistentItemException) GoString() string {
 19135  	return s.String()
 19136  }
 19137  
 19138  func newErrorNonexistentItemException(v protocol.ResponseMetadata) error {
 19139  	return &NonexistentItemException{
 19140  		RespMetadata: v,
 19141  	}
 19142  }
 19143  
 19144  // Code returns the exception type name.
 19145  func (s *NonexistentItemException) Code() string {
 19146  	return "WAFNonexistentItemException"
 19147  }
 19148  
 19149  // Message returns the exception's message.
 19150  func (s *NonexistentItemException) Message() string {
 19151  	if s.Message_ != nil {
 19152  		return *s.Message_
 19153  	}
 19154  	return ""
 19155  }
 19156  
 19157  // OrigErr always returns nil, satisfies awserr.Error interface.
 19158  func (s *NonexistentItemException) OrigErr() error {
 19159  	return nil
 19160  }
 19161  
 19162  func (s *NonexistentItemException) Error() string {
 19163  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19164  }
 19165  
 19166  // Status code returns the HTTP status code for the request's response error.
 19167  func (s *NonexistentItemException) StatusCode() int {
 19168  	return s.RespMetadata.StatusCode
 19169  }
 19170  
 19171  // RequestID returns the service's response RequestID for request.
 19172  func (s *NonexistentItemException) RequestID() string {
 19173  	return s.RespMetadata.RequestID
 19174  }
 19175  
 19176  //
 19177  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 19178  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 19179  // in the developer guide.
 19180  //
 19181  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 19182  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 19183  // With the latest version, AWS WAF has a single set of endpoints for regional
 19184  // and global use.
 19185  //
 19186  // Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet,
 19187  // GeoMatchSet, and SizeConstraintSet objects that you want to add to a Rule
 19188  // and, for each object, indicates whether you want to negate the settings,
 19189  // for example, requests that do NOT originate from the IP address 192.0.2.44.
 19190  type Predicate struct {
 19191  	_ struct{} `type:"structure"`
 19192  
 19193  	// A unique identifier for a predicate in a Rule, such as ByteMatchSetId or
 19194  	// IPSetId. The ID is returned by the corresponding Create or List command.
 19195  	//
 19196  	// DataId is a required field
 19197  	DataId *string `min:"1" type:"string" required:"true"`
 19198  
 19199  	// Set Negated to False if you want AWS WAF to allow, block, or count requests
 19200  	// based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet,
 19201  	// XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example,
 19202  	// if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block
 19203  	// requests based on that IP address.
 19204  	//
 19205  	// Set Negated to True if you want AWS WAF to allow or block a request based
 19206  	// on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet,
 19207  	// XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example,
 19208  	// if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block,
 19209  	// or count requests based on all IP addresses except 192.0.2.44.
 19210  	//
 19211  	// Negated is a required field
 19212  	Negated *bool `type:"boolean" required:"true"`
 19213  
 19214  	// The type of predicate in a Rule, such as ByteMatch or IPSet.
 19215  	//
 19216  	// Type is a required field
 19217  	Type *string `type:"string" required:"true" enum:"PredicateType"`
 19218  }
 19219  
 19220  // String returns the string representation.
 19221  //
 19222  // API parameter values that are decorated as "sensitive" in the API will not
 19223  // be included in the string output. The member name will be present, but the
 19224  // value will be replaced with "sensitive".
 19225  func (s Predicate) String() string {
 19226  	return awsutil.Prettify(s)
 19227  }
 19228  
 19229  // GoString returns the string representation.
 19230  //
 19231  // API parameter values that are decorated as "sensitive" in the API will not
 19232  // be included in the string output. The member name will be present, but the
 19233  // value will be replaced with "sensitive".
 19234  func (s Predicate) GoString() string {
 19235  	return s.String()
 19236  }
 19237  
 19238  // Validate inspects the fields of the type to determine if they are valid.
 19239  func (s *Predicate) Validate() error {
 19240  	invalidParams := request.ErrInvalidParams{Context: "Predicate"}
 19241  	if s.DataId == nil {
 19242  		invalidParams.Add(request.NewErrParamRequired("DataId"))
 19243  	}
 19244  	if s.DataId != nil && len(*s.DataId) < 1 {
 19245  		invalidParams.Add(request.NewErrParamMinLen("DataId", 1))
 19246  	}
 19247  	if s.Negated == nil {
 19248  		invalidParams.Add(request.NewErrParamRequired("Negated"))
 19249  	}
 19250  	if s.Type == nil {
 19251  		invalidParams.Add(request.NewErrParamRequired("Type"))
 19252  	}
 19253  
 19254  	if invalidParams.Len() > 0 {
 19255  		return invalidParams
 19256  	}
 19257  	return nil
 19258  }
 19259  
 19260  // SetDataId sets the DataId field's value.
 19261  func (s *Predicate) SetDataId(v string) *Predicate {
 19262  	s.DataId = &v
 19263  	return s
 19264  }
 19265  
 19266  // SetNegated sets the Negated field's value.
 19267  func (s *Predicate) SetNegated(v bool) *Predicate {
 19268  	s.Negated = &v
 19269  	return s
 19270  }
 19271  
 19272  // SetType sets the Type field's value.
 19273  func (s *Predicate) SetType(v string) *Predicate {
 19274  	s.Type = &v
 19275  	return s
 19276  }
 19277  
 19278  type PutLoggingConfigurationInput struct {
 19279  	_ struct{} `type:"structure"`
 19280  
 19281  	// The Amazon Kinesis Data Firehose that contains the inspected traffic information,
 19282  	// the redacted fields details, and the Amazon Resource Name (ARN) of the web
 19283  	// ACL to monitor.
 19284  	//
 19285  	// When specifying Type in RedactedFields, you must use one of the following
 19286  	// values: URI, QUERY_STRING, HEADER, or METHOD.
 19287  	//
 19288  	// LoggingConfiguration is a required field
 19289  	LoggingConfiguration *LoggingConfiguration `type:"structure" required:"true"`
 19290  }
 19291  
 19292  // String returns the string representation.
 19293  //
 19294  // API parameter values that are decorated as "sensitive" in the API will not
 19295  // be included in the string output. The member name will be present, but the
 19296  // value will be replaced with "sensitive".
 19297  func (s PutLoggingConfigurationInput) String() string {
 19298  	return awsutil.Prettify(s)
 19299  }
 19300  
 19301  // GoString returns the string representation.
 19302  //
 19303  // API parameter values that are decorated as "sensitive" in the API will not
 19304  // be included in the string output. The member name will be present, but the
 19305  // value will be replaced with "sensitive".
 19306  func (s PutLoggingConfigurationInput) GoString() string {
 19307  	return s.String()
 19308  }
 19309  
 19310  // Validate inspects the fields of the type to determine if they are valid.
 19311  func (s *PutLoggingConfigurationInput) Validate() error {
 19312  	invalidParams := request.ErrInvalidParams{Context: "PutLoggingConfigurationInput"}
 19313  	if s.LoggingConfiguration == nil {
 19314  		invalidParams.Add(request.NewErrParamRequired("LoggingConfiguration"))
 19315  	}
 19316  	if s.LoggingConfiguration != nil {
 19317  		if err := s.LoggingConfiguration.Validate(); err != nil {
 19318  			invalidParams.AddNested("LoggingConfiguration", err.(request.ErrInvalidParams))
 19319  		}
 19320  	}
 19321  
 19322  	if invalidParams.Len() > 0 {
 19323  		return invalidParams
 19324  	}
 19325  	return nil
 19326  }
 19327  
 19328  // SetLoggingConfiguration sets the LoggingConfiguration field's value.
 19329  func (s *PutLoggingConfigurationInput) SetLoggingConfiguration(v *LoggingConfiguration) *PutLoggingConfigurationInput {
 19330  	s.LoggingConfiguration = v
 19331  	return s
 19332  }
 19333  
 19334  type PutLoggingConfigurationOutput struct {
 19335  	_ struct{} `type:"structure"`
 19336  
 19337  	// The LoggingConfiguration that you submitted in the request.
 19338  	LoggingConfiguration *LoggingConfiguration `type:"structure"`
 19339  }
 19340  
 19341  // String returns the string representation.
 19342  //
 19343  // API parameter values that are decorated as "sensitive" in the API will not
 19344  // be included in the string output. The member name will be present, but the
 19345  // value will be replaced with "sensitive".
 19346  func (s PutLoggingConfigurationOutput) String() string {
 19347  	return awsutil.Prettify(s)
 19348  }
 19349  
 19350  // GoString returns the string representation.
 19351  //
 19352  // API parameter values that are decorated as "sensitive" in the API will not
 19353  // be included in the string output. The member name will be present, but the
 19354  // value will be replaced with "sensitive".
 19355  func (s PutLoggingConfigurationOutput) GoString() string {
 19356  	return s.String()
 19357  }
 19358  
 19359  // SetLoggingConfiguration sets the LoggingConfiguration field's value.
 19360  func (s *PutLoggingConfigurationOutput) SetLoggingConfiguration(v *LoggingConfiguration) *PutLoggingConfigurationOutput {
 19361  	s.LoggingConfiguration = v
 19362  	return s
 19363  }
 19364  
 19365  type PutPermissionPolicyInput struct {
 19366  	_ struct{} `type:"structure"`
 19367  
 19368  	// The policy to attach to the specified RuleGroup.
 19369  	//
 19370  	// Policy is a required field
 19371  	Policy *string `min:"1" type:"string" required:"true"`
 19372  
 19373  	// The Amazon Resource Name (ARN) of the RuleGroup to which you want to attach
 19374  	// the policy.
 19375  	//
 19376  	// ResourceArn is a required field
 19377  	ResourceArn *string `min:"1" type:"string" required:"true"`
 19378  }
 19379  
 19380  // String returns the string representation.
 19381  //
 19382  // API parameter values that are decorated as "sensitive" in the API will not
 19383  // be included in the string output. The member name will be present, but the
 19384  // value will be replaced with "sensitive".
 19385  func (s PutPermissionPolicyInput) String() string {
 19386  	return awsutil.Prettify(s)
 19387  }
 19388  
 19389  // GoString returns the string representation.
 19390  //
 19391  // API parameter values that are decorated as "sensitive" in the API will not
 19392  // be included in the string output. The member name will be present, but the
 19393  // value will be replaced with "sensitive".
 19394  func (s PutPermissionPolicyInput) GoString() string {
 19395  	return s.String()
 19396  }
 19397  
 19398  // Validate inspects the fields of the type to determine if they are valid.
 19399  func (s *PutPermissionPolicyInput) Validate() error {
 19400  	invalidParams := request.ErrInvalidParams{Context: "PutPermissionPolicyInput"}
 19401  	if s.Policy == nil {
 19402  		invalidParams.Add(request.NewErrParamRequired("Policy"))
 19403  	}
 19404  	if s.Policy != nil && len(*s.Policy) < 1 {
 19405  		invalidParams.Add(request.NewErrParamMinLen("Policy", 1))
 19406  	}
 19407  	if s.ResourceArn == nil {
 19408  		invalidParams.Add(request.NewErrParamRequired("ResourceArn"))
 19409  	}
 19410  	if s.ResourceArn != nil && len(*s.ResourceArn) < 1 {
 19411  		invalidParams.Add(request.NewErrParamMinLen("ResourceArn", 1))
 19412  	}
 19413  
 19414  	if invalidParams.Len() > 0 {
 19415  		return invalidParams
 19416  	}
 19417  	return nil
 19418  }
 19419  
 19420  // SetPolicy sets the Policy field's value.
 19421  func (s *PutPermissionPolicyInput) SetPolicy(v string) *PutPermissionPolicyInput {
 19422  	s.Policy = &v
 19423  	return s
 19424  }
 19425  
 19426  // SetResourceArn sets the ResourceArn field's value.
 19427  func (s *PutPermissionPolicyInput) SetResourceArn(v string) *PutPermissionPolicyInput {
 19428  	s.ResourceArn = &v
 19429  	return s
 19430  }
 19431  
 19432  type PutPermissionPolicyOutput struct {
 19433  	_ struct{} `type:"structure"`
 19434  }
 19435  
 19436  // String returns the string representation.
 19437  //
 19438  // API parameter values that are decorated as "sensitive" in the API will not
 19439  // be included in the string output. The member name will be present, but the
 19440  // value will be replaced with "sensitive".
 19441  func (s PutPermissionPolicyOutput) String() string {
 19442  	return awsutil.Prettify(s)
 19443  }
 19444  
 19445  // GoString returns the string representation.
 19446  //
 19447  // API parameter values that are decorated as "sensitive" in the API will not
 19448  // be included in the string output. The member name will be present, but the
 19449  // value will be replaced with "sensitive".
 19450  func (s PutPermissionPolicyOutput) GoString() string {
 19451  	return s.String()
 19452  }
 19453  
 19454  //
 19455  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 19456  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 19457  // in the developer guide.
 19458  //
 19459  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 19460  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 19461  // With the latest version, AWS WAF has a single set of endpoints for regional
 19462  // and global use.
 19463  //
 19464  // A RateBasedRule is identical to a regular Rule, with one addition: a RateBasedRule
 19465  // counts the number of requests that arrive from a specified IP address every
 19466  // five minutes. For example, based on recent requests that you've seen from
 19467  // an attacker, you might create a RateBasedRule that includes the following
 19468  // conditions:
 19469  //
 19470  //    * The requests come from 192.0.2.44.
 19471  //
 19472  //    * They contain the value BadBot in the User-Agent header.
 19473  //
 19474  // In the rule, you also define the rate limit as 1,000.
 19475  //
 19476  // Requests that meet both of these conditions and exceed 1,000 requests every
 19477  // five minutes trigger the rule's action (block or count), which is defined
 19478  // in the web ACL.
 19479  type RateBasedRule struct {
 19480  	_ struct{} `type:"structure"`
 19481  
 19482  	// The Predicates object contains one Predicate element for each ByteMatchSet,
 19483  	// IPSet, or SqlInjectionMatchSet object that you want to include in a RateBasedRule.
 19484  	//
 19485  	// MatchPredicates is a required field
 19486  	MatchPredicates []*Predicate `type:"list" required:"true"`
 19487  
 19488  	// A friendly name or description for the metrics for a RateBasedRule. The name
 19489  	// can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length
 19490  	// 128 and minimum length one. It can't contain whitespace or metric names reserved
 19491  	// for AWS WAF, including "All" and "Default_Action." You can't change the name
 19492  	// of the metric after you create the RateBasedRule.
 19493  	MetricName *string `min:"1" type:"string"`
 19494  
 19495  	// A friendly name or description for a RateBasedRule. You can't change the
 19496  	// name of a RateBasedRule after you create it.
 19497  	Name *string `min:"1" type:"string"`
 19498  
 19499  	// The field that AWS WAF uses to determine if requests are likely arriving
 19500  	// from single source and thus subject to rate monitoring. The only valid value
 19501  	// for RateKey is IP. IP indicates that requests arriving from the same IP address
 19502  	// are subject to the RateLimit that is specified in the RateBasedRule.
 19503  	//
 19504  	// RateKey is a required field
 19505  	RateKey *string `type:"string" required:"true" enum:"RateKey"`
 19506  
 19507  	// The maximum number of requests, which have an identical value in the field
 19508  	// specified by the RateKey, allowed in a five-minute period. If the number
 19509  	// of requests exceeds the RateLimit and the other predicates specified in the
 19510  	// rule are also met, AWS WAF triggers the action that is specified for this
 19511  	// rule.
 19512  	//
 19513  	// RateLimit is a required field
 19514  	RateLimit *int64 `min:"100" type:"long" required:"true"`
 19515  
 19516  	// A unique identifier for a RateBasedRule. You use RuleId to get more information
 19517  	// about a RateBasedRule (see GetRateBasedRule), update a RateBasedRule (see
 19518  	// UpdateRateBasedRule), insert a RateBasedRule into a WebACL or delete one
 19519  	// from a WebACL (see UpdateWebACL), or delete a RateBasedRule from AWS WAF
 19520  	// (see DeleteRateBasedRule).
 19521  	//
 19522  	// RuleId is a required field
 19523  	RuleId *string `min:"1" type:"string" required:"true"`
 19524  }
 19525  
 19526  // String returns the string representation.
 19527  //
 19528  // API parameter values that are decorated as "sensitive" in the API will not
 19529  // be included in the string output. The member name will be present, but the
 19530  // value will be replaced with "sensitive".
 19531  func (s RateBasedRule) String() string {
 19532  	return awsutil.Prettify(s)
 19533  }
 19534  
 19535  // GoString returns the string representation.
 19536  //
 19537  // API parameter values that are decorated as "sensitive" in the API will not
 19538  // be included in the string output. The member name will be present, but the
 19539  // value will be replaced with "sensitive".
 19540  func (s RateBasedRule) GoString() string {
 19541  	return s.String()
 19542  }
 19543  
 19544  // SetMatchPredicates sets the MatchPredicates field's value.
 19545  func (s *RateBasedRule) SetMatchPredicates(v []*Predicate) *RateBasedRule {
 19546  	s.MatchPredicates = v
 19547  	return s
 19548  }
 19549  
 19550  // SetMetricName sets the MetricName field's value.
 19551  func (s *RateBasedRule) SetMetricName(v string) *RateBasedRule {
 19552  	s.MetricName = &v
 19553  	return s
 19554  }
 19555  
 19556  // SetName sets the Name field's value.
 19557  func (s *RateBasedRule) SetName(v string) *RateBasedRule {
 19558  	s.Name = &v
 19559  	return s
 19560  }
 19561  
 19562  // SetRateKey sets the RateKey field's value.
 19563  func (s *RateBasedRule) SetRateKey(v string) *RateBasedRule {
 19564  	s.RateKey = &v
 19565  	return s
 19566  }
 19567  
 19568  // SetRateLimit sets the RateLimit field's value.
 19569  func (s *RateBasedRule) SetRateLimit(v int64) *RateBasedRule {
 19570  	s.RateLimit = &v
 19571  	return s
 19572  }
 19573  
 19574  // SetRuleId sets the RuleId field's value.
 19575  func (s *RateBasedRule) SetRuleId(v string) *RateBasedRule {
 19576  	s.RuleId = &v
 19577  	return s
 19578  }
 19579  
 19580  // The operation failed because you tried to delete an object that is still
 19581  // in use. For example:
 19582  //
 19583  //    * You tried to delete a ByteMatchSet that is still referenced by a Rule.
 19584  //
 19585  //    * You tried to delete a Rule that is still referenced by a WebACL.
 19586  type ReferencedItemException struct {
 19587  	_            struct{}                  `type:"structure"`
 19588  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 19589  
 19590  	Message_ *string `locationName:"message" type:"string"`
 19591  }
 19592  
 19593  // String returns the string representation.
 19594  //
 19595  // API parameter values that are decorated as "sensitive" in the API will not
 19596  // be included in the string output. The member name will be present, but the
 19597  // value will be replaced with "sensitive".
 19598  func (s ReferencedItemException) String() string {
 19599  	return awsutil.Prettify(s)
 19600  }
 19601  
 19602  // GoString returns the string representation.
 19603  //
 19604  // API parameter values that are decorated as "sensitive" in the API will not
 19605  // be included in the string output. The member name will be present, but the
 19606  // value will be replaced with "sensitive".
 19607  func (s ReferencedItemException) GoString() string {
 19608  	return s.String()
 19609  }
 19610  
 19611  func newErrorReferencedItemException(v protocol.ResponseMetadata) error {
 19612  	return &ReferencedItemException{
 19613  		RespMetadata: v,
 19614  	}
 19615  }
 19616  
 19617  // Code returns the exception type name.
 19618  func (s *ReferencedItemException) Code() string {
 19619  	return "WAFReferencedItemException"
 19620  }
 19621  
 19622  // Message returns the exception's message.
 19623  func (s *ReferencedItemException) Message() string {
 19624  	if s.Message_ != nil {
 19625  		return *s.Message_
 19626  	}
 19627  	return ""
 19628  }
 19629  
 19630  // OrigErr always returns nil, satisfies awserr.Error interface.
 19631  func (s *ReferencedItemException) OrigErr() error {
 19632  	return nil
 19633  }
 19634  
 19635  func (s *ReferencedItemException) Error() string {
 19636  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 19637  }
 19638  
 19639  // Status code returns the HTTP status code for the request's response error.
 19640  func (s *ReferencedItemException) StatusCode() int {
 19641  	return s.RespMetadata.StatusCode
 19642  }
 19643  
 19644  // RequestID returns the service's response RequestID for request.
 19645  func (s *ReferencedItemException) RequestID() string {
 19646  	return s.RespMetadata.RequestID
 19647  }
 19648  
 19649  //
 19650  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 19651  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 19652  // in the developer guide.
 19653  //
 19654  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 19655  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 19656  // With the latest version, AWS WAF has a single set of endpoints for regional
 19657  // and global use.
 19658  //
 19659  // In a GetRegexMatchSet request, RegexMatchSet is a complex type that contains
 19660  // the RegexMatchSetId and Name of a RegexMatchSet, and the values that you
 19661  // specified when you updated the RegexMatchSet.
 19662  //
 19663  // The values are contained in a RegexMatchTuple object, which specify the parts
 19664  // of web requests that you want AWS WAF to inspect and the values that you
 19665  // want AWS WAF to search for. If a RegexMatchSet contains more than one RegexMatchTuple
 19666  // object, a request needs to match the settings in only one ByteMatchTuple
 19667  // to be considered a match.
 19668  type RegexMatchSet struct {
 19669  	_ struct{} `type:"structure"`
 19670  
 19671  	// A friendly name or description of the RegexMatchSet. You can't change Name
 19672  	// after you create a RegexMatchSet.
 19673  	Name *string `min:"1" type:"string"`
 19674  
 19675  	// The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information
 19676  	// about a RegexMatchSet (see GetRegexMatchSet), update a RegexMatchSet (see
 19677  	// UpdateRegexMatchSet), insert a RegexMatchSet into a Rule or delete one from
 19678  	// a Rule (see UpdateRule), and delete a RegexMatchSet from AWS WAF (see DeleteRegexMatchSet).
 19679  	//
 19680  	// RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.
 19681  	RegexMatchSetId *string `min:"1" type:"string"`
 19682  
 19683  	// Contains an array of RegexMatchTuple objects. Each RegexMatchTuple object
 19684  	// contains:
 19685  	//
 19686  	//    * The part of a web request that you want AWS WAF to inspect, such as
 19687  	//    a query string or the value of the User-Agent header.
 19688  	//
 19689  	//    * The identifier of the pattern (a regular expression) that you want AWS
 19690  	//    WAF to look for. For more information, see RegexPatternSet.
 19691  	//
 19692  	//    * Whether to perform any conversions on the request, such as converting
 19693  	//    it to lowercase, before inspecting it for the specified string.
 19694  	RegexMatchTuples []*RegexMatchTuple `type:"list"`
 19695  }
 19696  
 19697  // String returns the string representation.
 19698  //
 19699  // API parameter values that are decorated as "sensitive" in the API will not
 19700  // be included in the string output. The member name will be present, but the
 19701  // value will be replaced with "sensitive".
 19702  func (s RegexMatchSet) String() string {
 19703  	return awsutil.Prettify(s)
 19704  }
 19705  
 19706  // GoString returns the string representation.
 19707  //
 19708  // API parameter values that are decorated as "sensitive" in the API will not
 19709  // be included in the string output. The member name will be present, but the
 19710  // value will be replaced with "sensitive".
 19711  func (s RegexMatchSet) GoString() string {
 19712  	return s.String()
 19713  }
 19714  
 19715  // SetName sets the Name field's value.
 19716  func (s *RegexMatchSet) SetName(v string) *RegexMatchSet {
 19717  	s.Name = &v
 19718  	return s
 19719  }
 19720  
 19721  // SetRegexMatchSetId sets the RegexMatchSetId field's value.
 19722  func (s *RegexMatchSet) SetRegexMatchSetId(v string) *RegexMatchSet {
 19723  	s.RegexMatchSetId = &v
 19724  	return s
 19725  }
 19726  
 19727  // SetRegexMatchTuples sets the RegexMatchTuples field's value.
 19728  func (s *RegexMatchSet) SetRegexMatchTuples(v []*RegexMatchTuple) *RegexMatchSet {
 19729  	s.RegexMatchTuples = v
 19730  	return s
 19731  }
 19732  
 19733  //
 19734  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 19735  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 19736  // in the developer guide.
 19737  //
 19738  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 19739  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 19740  // With the latest version, AWS WAF has a single set of endpoints for regional
 19741  // and global use.
 19742  //
 19743  // Returned by ListRegexMatchSets. Each RegexMatchSetSummary object includes
 19744  // the Name and RegexMatchSetId for one RegexMatchSet.
 19745  type RegexMatchSetSummary struct {
 19746  	_ struct{} `type:"structure"`
 19747  
 19748  	// A friendly name or description of the RegexMatchSet. You can't change Name
 19749  	// after you create a RegexMatchSet.
 19750  	//
 19751  	// Name is a required field
 19752  	Name *string `min:"1" type:"string" required:"true"`
 19753  
 19754  	// The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information
 19755  	// about a RegexMatchSet, update a RegexMatchSet, remove a RegexMatchSet from
 19756  	// a Rule, and delete a RegexMatchSet from AWS WAF.
 19757  	//
 19758  	// RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.
 19759  	//
 19760  	// RegexMatchSetId is a required field
 19761  	RegexMatchSetId *string `min:"1" type:"string" required:"true"`
 19762  }
 19763  
 19764  // String returns the string representation.
 19765  //
 19766  // API parameter values that are decorated as "sensitive" in the API will not
 19767  // be included in the string output. The member name will be present, but the
 19768  // value will be replaced with "sensitive".
 19769  func (s RegexMatchSetSummary) String() string {
 19770  	return awsutil.Prettify(s)
 19771  }
 19772  
 19773  // GoString returns the string representation.
 19774  //
 19775  // API parameter values that are decorated as "sensitive" in the API will not
 19776  // be included in the string output. The member name will be present, but the
 19777  // value will be replaced with "sensitive".
 19778  func (s RegexMatchSetSummary) GoString() string {
 19779  	return s.String()
 19780  }
 19781  
 19782  // SetName sets the Name field's value.
 19783  func (s *RegexMatchSetSummary) SetName(v string) *RegexMatchSetSummary {
 19784  	s.Name = &v
 19785  	return s
 19786  }
 19787  
 19788  // SetRegexMatchSetId sets the RegexMatchSetId field's value.
 19789  func (s *RegexMatchSetSummary) SetRegexMatchSetId(v string) *RegexMatchSetSummary {
 19790  	s.RegexMatchSetId = &v
 19791  	return s
 19792  }
 19793  
 19794  //
 19795  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 19796  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 19797  // in the developer guide.
 19798  //
 19799  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 19800  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 19801  // With the latest version, AWS WAF has a single set of endpoints for regional
 19802  // and global use.
 19803  //
 19804  // In an UpdateRegexMatchSet request, RegexMatchSetUpdate specifies whether
 19805  // to insert or delete a RegexMatchTuple and includes the settings for the RegexMatchTuple.
 19806  type RegexMatchSetUpdate struct {
 19807  	_ struct{} `type:"structure"`
 19808  
 19809  	// Specifies whether to insert or delete a RegexMatchTuple.
 19810  	//
 19811  	// Action is a required field
 19812  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 19813  
 19814  	// Information about the part of a web request that you want AWS WAF to inspect
 19815  	// and the identifier of the regular expression (regex) pattern that you want
 19816  	// AWS WAF to search for. If you specify DELETE for the value of Action, the
 19817  	// RegexMatchTuple values must exactly match the values in the RegexMatchTuple
 19818  	// that you want to delete from the RegexMatchSet.
 19819  	//
 19820  	// RegexMatchTuple is a required field
 19821  	RegexMatchTuple *RegexMatchTuple `type:"structure" required:"true"`
 19822  }
 19823  
 19824  // String returns the string representation.
 19825  //
 19826  // API parameter values that are decorated as "sensitive" in the API will not
 19827  // be included in the string output. The member name will be present, but the
 19828  // value will be replaced with "sensitive".
 19829  func (s RegexMatchSetUpdate) String() string {
 19830  	return awsutil.Prettify(s)
 19831  }
 19832  
 19833  // GoString returns the string representation.
 19834  //
 19835  // API parameter values that are decorated as "sensitive" in the API will not
 19836  // be included in the string output. The member name will be present, but the
 19837  // value will be replaced with "sensitive".
 19838  func (s RegexMatchSetUpdate) GoString() string {
 19839  	return s.String()
 19840  }
 19841  
 19842  // Validate inspects the fields of the type to determine if they are valid.
 19843  func (s *RegexMatchSetUpdate) Validate() error {
 19844  	invalidParams := request.ErrInvalidParams{Context: "RegexMatchSetUpdate"}
 19845  	if s.Action == nil {
 19846  		invalidParams.Add(request.NewErrParamRequired("Action"))
 19847  	}
 19848  	if s.RegexMatchTuple == nil {
 19849  		invalidParams.Add(request.NewErrParamRequired("RegexMatchTuple"))
 19850  	}
 19851  	if s.RegexMatchTuple != nil {
 19852  		if err := s.RegexMatchTuple.Validate(); err != nil {
 19853  			invalidParams.AddNested("RegexMatchTuple", err.(request.ErrInvalidParams))
 19854  		}
 19855  	}
 19856  
 19857  	if invalidParams.Len() > 0 {
 19858  		return invalidParams
 19859  	}
 19860  	return nil
 19861  }
 19862  
 19863  // SetAction sets the Action field's value.
 19864  func (s *RegexMatchSetUpdate) SetAction(v string) *RegexMatchSetUpdate {
 19865  	s.Action = &v
 19866  	return s
 19867  }
 19868  
 19869  // SetRegexMatchTuple sets the RegexMatchTuple field's value.
 19870  func (s *RegexMatchSetUpdate) SetRegexMatchTuple(v *RegexMatchTuple) *RegexMatchSetUpdate {
 19871  	s.RegexMatchTuple = v
 19872  	return s
 19873  }
 19874  
 19875  //
 19876  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 19877  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 19878  // in the developer guide.
 19879  //
 19880  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 19881  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 19882  // With the latest version, AWS WAF has a single set of endpoints for regional
 19883  // and global use.
 19884  //
 19885  // The regular expression pattern that you want AWS WAF to search for in web
 19886  // requests, the location in requests that you want AWS WAF to search, and other
 19887  // settings. Each RegexMatchTuple object contains:
 19888  //
 19889  //    * The part of a web request that you want AWS WAF to inspect, such as
 19890  //    a query string or the value of the User-Agent header.
 19891  //
 19892  //    * The identifier of the pattern (a regular expression) that you want AWS
 19893  //    WAF to look for. For more information, see RegexPatternSet.
 19894  //
 19895  //    * Whether to perform any conversions on the request, such as converting
 19896  //    it to lowercase, before inspecting it for the specified string.
 19897  type RegexMatchTuple struct {
 19898  	_ struct{} `type:"structure"`
 19899  
 19900  	// Specifies where in a web request to look for the RegexPatternSet.
 19901  	//
 19902  	// FieldToMatch is a required field
 19903  	FieldToMatch *FieldToMatch `type:"structure" required:"true"`
 19904  
 19905  	// The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to
 19906  	// get information about a RegexPatternSet (see GetRegexPatternSet), update
 19907  	// a RegexPatternSet (see UpdateRegexPatternSet), insert a RegexPatternSet into
 19908  	// a RegexMatchSet or delete one from a RegexMatchSet (see UpdateRegexMatchSet),
 19909  	// and delete an RegexPatternSet from AWS WAF (see DeleteRegexPatternSet).
 19910  	//
 19911  	// RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.
 19912  	//
 19913  	// RegexPatternSetId is a required field
 19914  	RegexPatternSetId *string `min:"1" type:"string" required:"true"`
 19915  
 19916  	// Text transformations eliminate some of the unusual formatting that attackers
 19917  	// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,
 19918  	// AWS WAF performs the transformation on RegexPatternSet before inspecting
 19919  	// a request for a match.
 19920  	//
 19921  	// You can only specify a single type of TextTransformation.
 19922  	//
 19923  	// CMD_LINE
 19924  	//
 19925  	// When you're concerned that attackers are injecting an operating system commandline
 19926  	// command and using unusual formatting to disguise some or all of the command,
 19927  	// use this option to perform the following transformations:
 19928  	//
 19929  	//    * Delete the following characters: \ " ' ^
 19930  	//
 19931  	//    * Delete spaces before the following characters: / (
 19932  	//
 19933  	//    * Replace the following characters with a space: , ;
 19934  	//
 19935  	//    * Replace multiple spaces with one space
 19936  	//
 19937  	//    * Convert uppercase letters (A-Z) to lowercase (a-z)
 19938  	//
 19939  	// COMPRESS_WHITE_SPACE
 19940  	//
 19941  	// Use this option to replace the following characters with a space character
 19942  	// (decimal 32):
 19943  	//
 19944  	//    * \f, formfeed, decimal 12
 19945  	//
 19946  	//    * \t, tab, decimal 9
 19947  	//
 19948  	//    * \n, newline, decimal 10
 19949  	//
 19950  	//    * \r, carriage return, decimal 13
 19951  	//
 19952  	//    * \v, vertical tab, decimal 11
 19953  	//
 19954  	//    * non-breaking space, decimal 160
 19955  	//
 19956  	// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
 19957  	//
 19958  	// HTML_ENTITY_DECODE
 19959  	//
 19960  	// Use this option to replace HTML-encoded characters with unencoded characters.
 19961  	// HTML_ENTITY_DECODE performs the following operations:
 19962  	//
 19963  	//    * Replaces (ampersand)quot; with "
 19964  	//
 19965  	//    * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
 19966  	//
 19967  	//    * Replaces (ampersand)lt; with a "less than" symbol
 19968  	//
 19969  	//    * Replaces (ampersand)gt; with >
 19970  	//
 19971  	//    * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,
 19972  	//    with the corresponding characters
 19973  	//
 19974  	//    * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,
 19975  	//    with the corresponding characters
 19976  	//
 19977  	// LOWERCASE
 19978  	//
 19979  	// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
 19980  	//
 19981  	// URL_DECODE
 19982  	//
 19983  	// Use this option to decode a URL-encoded value.
 19984  	//
 19985  	// NONE
 19986  	//
 19987  	// Specify NONE if you don't want to perform any text transformations.
 19988  	//
 19989  	// TextTransformation is a required field
 19990  	TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
 19991  }
 19992  
 19993  // String returns the string representation.
 19994  //
 19995  // API parameter values that are decorated as "sensitive" in the API will not
 19996  // be included in the string output. The member name will be present, but the
 19997  // value will be replaced with "sensitive".
 19998  func (s RegexMatchTuple) String() string {
 19999  	return awsutil.Prettify(s)
 20000  }
 20001  
 20002  // GoString returns the string representation.
 20003  //
 20004  // API parameter values that are decorated as "sensitive" in the API will not
 20005  // be included in the string output. The member name will be present, but the
 20006  // value will be replaced with "sensitive".
 20007  func (s RegexMatchTuple) GoString() string {
 20008  	return s.String()
 20009  }
 20010  
 20011  // Validate inspects the fields of the type to determine if they are valid.
 20012  func (s *RegexMatchTuple) Validate() error {
 20013  	invalidParams := request.ErrInvalidParams{Context: "RegexMatchTuple"}
 20014  	if s.FieldToMatch == nil {
 20015  		invalidParams.Add(request.NewErrParamRequired("FieldToMatch"))
 20016  	}
 20017  	if s.RegexPatternSetId == nil {
 20018  		invalidParams.Add(request.NewErrParamRequired("RegexPatternSetId"))
 20019  	}
 20020  	if s.RegexPatternSetId != nil && len(*s.RegexPatternSetId) < 1 {
 20021  		invalidParams.Add(request.NewErrParamMinLen("RegexPatternSetId", 1))
 20022  	}
 20023  	if s.TextTransformation == nil {
 20024  		invalidParams.Add(request.NewErrParamRequired("TextTransformation"))
 20025  	}
 20026  	if s.FieldToMatch != nil {
 20027  		if err := s.FieldToMatch.Validate(); err != nil {
 20028  			invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams))
 20029  		}
 20030  	}
 20031  
 20032  	if invalidParams.Len() > 0 {
 20033  		return invalidParams
 20034  	}
 20035  	return nil
 20036  }
 20037  
 20038  // SetFieldToMatch sets the FieldToMatch field's value.
 20039  func (s *RegexMatchTuple) SetFieldToMatch(v *FieldToMatch) *RegexMatchTuple {
 20040  	s.FieldToMatch = v
 20041  	return s
 20042  }
 20043  
 20044  // SetRegexPatternSetId sets the RegexPatternSetId field's value.
 20045  func (s *RegexMatchTuple) SetRegexPatternSetId(v string) *RegexMatchTuple {
 20046  	s.RegexPatternSetId = &v
 20047  	return s
 20048  }
 20049  
 20050  // SetTextTransformation sets the TextTransformation field's value.
 20051  func (s *RegexMatchTuple) SetTextTransformation(v string) *RegexMatchTuple {
 20052  	s.TextTransformation = &v
 20053  	return s
 20054  }
 20055  
 20056  //
 20057  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20058  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20059  // in the developer guide.
 20060  //
 20061  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20062  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20063  // With the latest version, AWS WAF has a single set of endpoints for regional
 20064  // and global use.
 20065  //
 20066  // The RegexPatternSet specifies the regular expression (regex) pattern that
 20067  // you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure
 20068  // AWS WAF to reject those requests.
 20069  type RegexPatternSet struct {
 20070  	_ struct{} `type:"structure"`
 20071  
 20072  	// A friendly name or description of the RegexPatternSet. You can't change Name
 20073  	// after you create a RegexPatternSet.
 20074  	Name *string `min:"1" type:"string"`
 20075  
 20076  	// The identifier for the RegexPatternSet. You use RegexPatternSetId to get
 20077  	// information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet
 20078  	// from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF.
 20079  	//
 20080  	// RegexMatchSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.
 20081  	//
 20082  	// RegexPatternSetId is a required field
 20083  	RegexPatternSetId *string `min:"1" type:"string" required:"true"`
 20084  
 20085  	// Specifies the regular expression (regex) patterns that you want AWS WAF to
 20086  	// search for, such as B[a@]dB[o0]t.
 20087  	//
 20088  	// RegexPatternStrings is a required field
 20089  	RegexPatternStrings []*string `type:"list" required:"true"`
 20090  }
 20091  
 20092  // String returns the string representation.
 20093  //
 20094  // API parameter values that are decorated as "sensitive" in the API will not
 20095  // be included in the string output. The member name will be present, but the
 20096  // value will be replaced with "sensitive".
 20097  func (s RegexPatternSet) String() string {
 20098  	return awsutil.Prettify(s)
 20099  }
 20100  
 20101  // GoString returns the string representation.
 20102  //
 20103  // API parameter values that are decorated as "sensitive" in the API will not
 20104  // be included in the string output. The member name will be present, but the
 20105  // value will be replaced with "sensitive".
 20106  func (s RegexPatternSet) GoString() string {
 20107  	return s.String()
 20108  }
 20109  
 20110  // SetName sets the Name field's value.
 20111  func (s *RegexPatternSet) SetName(v string) *RegexPatternSet {
 20112  	s.Name = &v
 20113  	return s
 20114  }
 20115  
 20116  // SetRegexPatternSetId sets the RegexPatternSetId field's value.
 20117  func (s *RegexPatternSet) SetRegexPatternSetId(v string) *RegexPatternSet {
 20118  	s.RegexPatternSetId = &v
 20119  	return s
 20120  }
 20121  
 20122  // SetRegexPatternStrings sets the RegexPatternStrings field's value.
 20123  func (s *RegexPatternSet) SetRegexPatternStrings(v []*string) *RegexPatternSet {
 20124  	s.RegexPatternStrings = v
 20125  	return s
 20126  }
 20127  
 20128  //
 20129  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20130  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20131  // in the developer guide.
 20132  //
 20133  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20134  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20135  // With the latest version, AWS WAF has a single set of endpoints for regional
 20136  // and global use.
 20137  //
 20138  // Returned by ListRegexPatternSets. Each RegexPatternSetSummary object includes
 20139  // the Name and RegexPatternSetId for one RegexPatternSet.
 20140  type RegexPatternSetSummary struct {
 20141  	_ struct{} `type:"structure"`
 20142  
 20143  	// A friendly name or description of the RegexPatternSet. You can't change Name
 20144  	// after you create a RegexPatternSet.
 20145  	//
 20146  	// Name is a required field
 20147  	Name *string `min:"1" type:"string" required:"true"`
 20148  
 20149  	// The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to
 20150  	// get information about a RegexPatternSet, update a RegexPatternSet, remove
 20151  	// a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from
 20152  	// AWS WAF.
 20153  	//
 20154  	// RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.
 20155  	//
 20156  	// RegexPatternSetId is a required field
 20157  	RegexPatternSetId *string `min:"1" type:"string" required:"true"`
 20158  }
 20159  
 20160  // String returns the string representation.
 20161  //
 20162  // API parameter values that are decorated as "sensitive" in the API will not
 20163  // be included in the string output. The member name will be present, but the
 20164  // value will be replaced with "sensitive".
 20165  func (s RegexPatternSetSummary) String() string {
 20166  	return awsutil.Prettify(s)
 20167  }
 20168  
 20169  // GoString returns the string representation.
 20170  //
 20171  // API parameter values that are decorated as "sensitive" in the API will not
 20172  // be included in the string output. The member name will be present, but the
 20173  // value will be replaced with "sensitive".
 20174  func (s RegexPatternSetSummary) GoString() string {
 20175  	return s.String()
 20176  }
 20177  
 20178  // SetName sets the Name field's value.
 20179  func (s *RegexPatternSetSummary) SetName(v string) *RegexPatternSetSummary {
 20180  	s.Name = &v
 20181  	return s
 20182  }
 20183  
 20184  // SetRegexPatternSetId sets the RegexPatternSetId field's value.
 20185  func (s *RegexPatternSetSummary) SetRegexPatternSetId(v string) *RegexPatternSetSummary {
 20186  	s.RegexPatternSetId = &v
 20187  	return s
 20188  }
 20189  
 20190  //
 20191  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20192  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20193  // in the developer guide.
 20194  //
 20195  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20196  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20197  // With the latest version, AWS WAF has a single set of endpoints for regional
 20198  // and global use.
 20199  //
 20200  // In an UpdateRegexPatternSet request, RegexPatternSetUpdate specifies whether
 20201  // to insert or delete a RegexPatternString and includes the settings for the
 20202  // RegexPatternString.
 20203  type RegexPatternSetUpdate struct {
 20204  	_ struct{} `type:"structure"`
 20205  
 20206  	// Specifies whether to insert or delete a RegexPatternString.
 20207  	//
 20208  	// Action is a required field
 20209  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 20210  
 20211  	// Specifies the regular expression (regex) pattern that you want AWS WAF to
 20212  	// search for, such as B[a@]dB[o0]t.
 20213  	//
 20214  	// RegexPatternString is a required field
 20215  	RegexPatternString *string `min:"1" type:"string" required:"true"`
 20216  }
 20217  
 20218  // String returns the string representation.
 20219  //
 20220  // API parameter values that are decorated as "sensitive" in the API will not
 20221  // be included in the string output. The member name will be present, but the
 20222  // value will be replaced with "sensitive".
 20223  func (s RegexPatternSetUpdate) String() string {
 20224  	return awsutil.Prettify(s)
 20225  }
 20226  
 20227  // GoString returns the string representation.
 20228  //
 20229  // API parameter values that are decorated as "sensitive" in the API will not
 20230  // be included in the string output. The member name will be present, but the
 20231  // value will be replaced with "sensitive".
 20232  func (s RegexPatternSetUpdate) GoString() string {
 20233  	return s.String()
 20234  }
 20235  
 20236  // Validate inspects the fields of the type to determine if they are valid.
 20237  func (s *RegexPatternSetUpdate) Validate() error {
 20238  	invalidParams := request.ErrInvalidParams{Context: "RegexPatternSetUpdate"}
 20239  	if s.Action == nil {
 20240  		invalidParams.Add(request.NewErrParamRequired("Action"))
 20241  	}
 20242  	if s.RegexPatternString == nil {
 20243  		invalidParams.Add(request.NewErrParamRequired("RegexPatternString"))
 20244  	}
 20245  	if s.RegexPatternString != nil && len(*s.RegexPatternString) < 1 {
 20246  		invalidParams.Add(request.NewErrParamMinLen("RegexPatternString", 1))
 20247  	}
 20248  
 20249  	if invalidParams.Len() > 0 {
 20250  		return invalidParams
 20251  	}
 20252  	return nil
 20253  }
 20254  
 20255  // SetAction sets the Action field's value.
 20256  func (s *RegexPatternSetUpdate) SetAction(v string) *RegexPatternSetUpdate {
 20257  	s.Action = &v
 20258  	return s
 20259  }
 20260  
 20261  // SetRegexPatternString sets the RegexPatternString field's value.
 20262  func (s *RegexPatternSetUpdate) SetRegexPatternString(v string) *RegexPatternSetUpdate {
 20263  	s.RegexPatternString = &v
 20264  	return s
 20265  }
 20266  
 20267  //
 20268  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20269  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20270  // in the developer guide.
 20271  //
 20272  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20273  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20274  // With the latest version, AWS WAF has a single set of endpoints for regional
 20275  // and global use.
 20276  //
 20277  // A combination of ByteMatchSet, IPSet, and/or SqlInjectionMatchSet objects
 20278  // that identify the web requests that you want to allow, block, or count. For
 20279  // example, you might create a Rule that includes the following predicates:
 20280  //
 20281  //    * An IPSet that causes AWS WAF to search for web requests that originate
 20282  //    from the IP address 192.0.2.44
 20283  //
 20284  //    * A ByteMatchSet that causes AWS WAF to search for web requests for which
 20285  //    the value of the User-Agent header is BadBot.
 20286  //
 20287  // To match the settings in this Rule, a request must originate from 192.0.2.44
 20288  // AND include a User-Agent header for which the value is BadBot.
 20289  type Rule struct {
 20290  	_ struct{} `type:"structure"`
 20291  
 20292  	// A friendly name or description for the metrics for this Rule. The name can
 20293  	// contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length
 20294  	// 128 and minimum length one. It can't contain whitespace or metric names reserved
 20295  	// for AWS WAF, including "All" and "Default_Action." You can't change MetricName
 20296  	// after you create the Rule.
 20297  	MetricName *string `min:"1" type:"string"`
 20298  
 20299  	// The friendly name or description for the Rule. You can't change the name
 20300  	// of a Rule after you create it.
 20301  	Name *string `min:"1" type:"string"`
 20302  
 20303  	// The Predicates object contains one Predicate element for each ByteMatchSet,
 20304  	// IPSet, or SqlInjectionMatchSet object that you want to include in a Rule.
 20305  	//
 20306  	// Predicates is a required field
 20307  	Predicates []*Predicate `type:"list" required:"true"`
 20308  
 20309  	// A unique identifier for a Rule. You use RuleId to get more information about
 20310  	// a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into
 20311  	// a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a Rule
 20312  	// from AWS WAF (see DeleteRule).
 20313  	//
 20314  	// RuleId is returned by CreateRule and by ListRules.
 20315  	//
 20316  	// RuleId is a required field
 20317  	RuleId *string `min:"1" type:"string" required:"true"`
 20318  }
 20319  
 20320  // String returns the string representation.
 20321  //
 20322  // API parameter values that are decorated as "sensitive" in the API will not
 20323  // be included in the string output. The member name will be present, but the
 20324  // value will be replaced with "sensitive".
 20325  func (s Rule) String() string {
 20326  	return awsutil.Prettify(s)
 20327  }
 20328  
 20329  // GoString returns the string representation.
 20330  //
 20331  // API parameter values that are decorated as "sensitive" in the API will not
 20332  // be included in the string output. The member name will be present, but the
 20333  // value will be replaced with "sensitive".
 20334  func (s Rule) GoString() string {
 20335  	return s.String()
 20336  }
 20337  
 20338  // SetMetricName sets the MetricName field's value.
 20339  func (s *Rule) SetMetricName(v string) *Rule {
 20340  	s.MetricName = &v
 20341  	return s
 20342  }
 20343  
 20344  // SetName sets the Name field's value.
 20345  func (s *Rule) SetName(v string) *Rule {
 20346  	s.Name = &v
 20347  	return s
 20348  }
 20349  
 20350  // SetPredicates sets the Predicates field's value.
 20351  func (s *Rule) SetPredicates(v []*Predicate) *Rule {
 20352  	s.Predicates = v
 20353  	return s
 20354  }
 20355  
 20356  // SetRuleId sets the RuleId field's value.
 20357  func (s *Rule) SetRuleId(v string) *Rule {
 20358  	s.RuleId = &v
 20359  	return s
 20360  }
 20361  
 20362  //
 20363  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20364  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20365  // in the developer guide.
 20366  //
 20367  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20368  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20369  // With the latest version, AWS WAF has a single set of endpoints for regional
 20370  // and global use.
 20371  //
 20372  // A collection of predefined rules that you can add to a web ACL.
 20373  //
 20374  // Rule groups are subject to the following limits:
 20375  //
 20376  //    * Three rule groups per account. You can request an increase to this limit
 20377  //    by contacting customer support.
 20378  //
 20379  //    * One rule group per web ACL.
 20380  //
 20381  //    * Ten rules per rule group.
 20382  type RuleGroup struct {
 20383  	_ struct{} `type:"structure"`
 20384  
 20385  	// A friendly name or description for the metrics for this RuleGroup. The name
 20386  	// can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length
 20387  	// 128 and minimum length one. It can't contain whitespace or metric names reserved
 20388  	// for AWS WAF, including "All" and "Default_Action." You can't change the name
 20389  	// of the metric after you create the RuleGroup.
 20390  	MetricName *string `min:"1" type:"string"`
 20391  
 20392  	// The friendly name or description for the RuleGroup. You can't change the
 20393  	// name of a RuleGroup after you create it.
 20394  	Name *string `min:"1" type:"string"`
 20395  
 20396  	// A unique identifier for a RuleGroup. You use RuleGroupId to get more information
 20397  	// about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup),
 20398  	// insert a RuleGroup into a WebACL or delete a one from a WebACL (see UpdateWebACL),
 20399  	// or delete a RuleGroup from AWS WAF (see DeleteRuleGroup).
 20400  	//
 20401  	// RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.
 20402  	//
 20403  	// RuleGroupId is a required field
 20404  	RuleGroupId *string `min:"1" type:"string" required:"true"`
 20405  }
 20406  
 20407  // String returns the string representation.
 20408  //
 20409  // API parameter values that are decorated as "sensitive" in the API will not
 20410  // be included in the string output. The member name will be present, but the
 20411  // value will be replaced with "sensitive".
 20412  func (s RuleGroup) String() string {
 20413  	return awsutil.Prettify(s)
 20414  }
 20415  
 20416  // GoString returns the string representation.
 20417  //
 20418  // API parameter values that are decorated as "sensitive" in the API will not
 20419  // be included in the string output. The member name will be present, but the
 20420  // value will be replaced with "sensitive".
 20421  func (s RuleGroup) GoString() string {
 20422  	return s.String()
 20423  }
 20424  
 20425  // SetMetricName sets the MetricName field's value.
 20426  func (s *RuleGroup) SetMetricName(v string) *RuleGroup {
 20427  	s.MetricName = &v
 20428  	return s
 20429  }
 20430  
 20431  // SetName sets the Name field's value.
 20432  func (s *RuleGroup) SetName(v string) *RuleGroup {
 20433  	s.Name = &v
 20434  	return s
 20435  }
 20436  
 20437  // SetRuleGroupId sets the RuleGroupId field's value.
 20438  func (s *RuleGroup) SetRuleGroupId(v string) *RuleGroup {
 20439  	s.RuleGroupId = &v
 20440  	return s
 20441  }
 20442  
 20443  //
 20444  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20445  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20446  // in the developer guide.
 20447  //
 20448  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20449  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20450  // With the latest version, AWS WAF has a single set of endpoints for regional
 20451  // and global use.
 20452  //
 20453  // Contains the identifier and the friendly name or description of the RuleGroup.
 20454  type RuleGroupSummary struct {
 20455  	_ struct{} `type:"structure"`
 20456  
 20457  	// A friendly name or description of the RuleGroup. You can't change the name
 20458  	// of a RuleGroup after you create it.
 20459  	//
 20460  	// Name is a required field
 20461  	Name *string `min:"1" type:"string" required:"true"`
 20462  
 20463  	// A unique identifier for a RuleGroup. You use RuleGroupId to get more information
 20464  	// about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup),
 20465  	// insert a RuleGroup into a WebACL or delete one from a WebACL (see UpdateWebACL),
 20466  	// or delete a RuleGroup from AWS WAF (see DeleteRuleGroup).
 20467  	//
 20468  	// RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.
 20469  	//
 20470  	// RuleGroupId is a required field
 20471  	RuleGroupId *string `min:"1" type:"string" required:"true"`
 20472  }
 20473  
 20474  // String returns the string representation.
 20475  //
 20476  // API parameter values that are decorated as "sensitive" in the API will not
 20477  // be included in the string output. The member name will be present, but the
 20478  // value will be replaced with "sensitive".
 20479  func (s RuleGroupSummary) String() string {
 20480  	return awsutil.Prettify(s)
 20481  }
 20482  
 20483  // GoString returns the string representation.
 20484  //
 20485  // API parameter values that are decorated as "sensitive" in the API will not
 20486  // be included in the string output. The member name will be present, but the
 20487  // value will be replaced with "sensitive".
 20488  func (s RuleGroupSummary) GoString() string {
 20489  	return s.String()
 20490  }
 20491  
 20492  // SetName sets the Name field's value.
 20493  func (s *RuleGroupSummary) SetName(v string) *RuleGroupSummary {
 20494  	s.Name = &v
 20495  	return s
 20496  }
 20497  
 20498  // SetRuleGroupId sets the RuleGroupId field's value.
 20499  func (s *RuleGroupSummary) SetRuleGroupId(v string) *RuleGroupSummary {
 20500  	s.RuleGroupId = &v
 20501  	return s
 20502  }
 20503  
 20504  //
 20505  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20506  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20507  // in the developer guide.
 20508  //
 20509  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20510  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20511  // With the latest version, AWS WAF has a single set of endpoints for regional
 20512  // and global use.
 20513  //
 20514  // Specifies an ActivatedRule and indicates whether you want to add it to a
 20515  // RuleGroup or delete it from a RuleGroup.
 20516  type RuleGroupUpdate struct {
 20517  	_ struct{} `type:"structure"`
 20518  
 20519  	// Specify INSERT to add an ActivatedRule to a RuleGroup. Use DELETE to remove
 20520  	// an ActivatedRule from a RuleGroup.
 20521  	//
 20522  	// Action is a required field
 20523  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 20524  
 20525  	// The ActivatedRule object specifies a Rule that you want to insert or delete,
 20526  	// the priority of the Rule in the WebACL, and the action that you want AWS
 20527  	// WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT).
 20528  	//
 20529  	// ActivatedRule is a required field
 20530  	ActivatedRule *ActivatedRule `type:"structure" required:"true"`
 20531  }
 20532  
 20533  // String returns the string representation.
 20534  //
 20535  // API parameter values that are decorated as "sensitive" in the API will not
 20536  // be included in the string output. The member name will be present, but the
 20537  // value will be replaced with "sensitive".
 20538  func (s RuleGroupUpdate) String() string {
 20539  	return awsutil.Prettify(s)
 20540  }
 20541  
 20542  // GoString returns the string representation.
 20543  //
 20544  // API parameter values that are decorated as "sensitive" in the API will not
 20545  // be included in the string output. The member name will be present, but the
 20546  // value will be replaced with "sensitive".
 20547  func (s RuleGroupUpdate) GoString() string {
 20548  	return s.String()
 20549  }
 20550  
 20551  // Validate inspects the fields of the type to determine if they are valid.
 20552  func (s *RuleGroupUpdate) Validate() error {
 20553  	invalidParams := request.ErrInvalidParams{Context: "RuleGroupUpdate"}
 20554  	if s.Action == nil {
 20555  		invalidParams.Add(request.NewErrParamRequired("Action"))
 20556  	}
 20557  	if s.ActivatedRule == nil {
 20558  		invalidParams.Add(request.NewErrParamRequired("ActivatedRule"))
 20559  	}
 20560  	if s.ActivatedRule != nil {
 20561  		if err := s.ActivatedRule.Validate(); err != nil {
 20562  			invalidParams.AddNested("ActivatedRule", err.(request.ErrInvalidParams))
 20563  		}
 20564  	}
 20565  
 20566  	if invalidParams.Len() > 0 {
 20567  		return invalidParams
 20568  	}
 20569  	return nil
 20570  }
 20571  
 20572  // SetAction sets the Action field's value.
 20573  func (s *RuleGroupUpdate) SetAction(v string) *RuleGroupUpdate {
 20574  	s.Action = &v
 20575  	return s
 20576  }
 20577  
 20578  // SetActivatedRule sets the ActivatedRule field's value.
 20579  func (s *RuleGroupUpdate) SetActivatedRule(v *ActivatedRule) *RuleGroupUpdate {
 20580  	s.ActivatedRule = v
 20581  	return s
 20582  }
 20583  
 20584  //
 20585  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20586  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20587  // in the developer guide.
 20588  //
 20589  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20590  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20591  // With the latest version, AWS WAF has a single set of endpoints for regional
 20592  // and global use.
 20593  //
 20594  // Contains the identifier and the friendly name or description of the Rule.
 20595  type RuleSummary struct {
 20596  	_ struct{} `type:"structure"`
 20597  
 20598  	// A friendly name or description of the Rule. You can't change the name of
 20599  	// a Rule after you create it.
 20600  	//
 20601  	// Name is a required field
 20602  	Name *string `min:"1" type:"string" required:"true"`
 20603  
 20604  	// A unique identifier for a Rule. You use RuleId to get more information about
 20605  	// a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into
 20606  	// a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a Rule
 20607  	// from AWS WAF (see DeleteRule).
 20608  	//
 20609  	// RuleId is returned by CreateRule and by ListRules.
 20610  	//
 20611  	// RuleId is a required field
 20612  	RuleId *string `min:"1" type:"string" required:"true"`
 20613  }
 20614  
 20615  // String returns the string representation.
 20616  //
 20617  // API parameter values that are decorated as "sensitive" in the API will not
 20618  // be included in the string output. The member name will be present, but the
 20619  // value will be replaced with "sensitive".
 20620  func (s RuleSummary) String() string {
 20621  	return awsutil.Prettify(s)
 20622  }
 20623  
 20624  // GoString returns the string representation.
 20625  //
 20626  // API parameter values that are decorated as "sensitive" in the API will not
 20627  // be included in the string output. The member name will be present, but the
 20628  // value will be replaced with "sensitive".
 20629  func (s RuleSummary) GoString() string {
 20630  	return s.String()
 20631  }
 20632  
 20633  // SetName sets the Name field's value.
 20634  func (s *RuleSummary) SetName(v string) *RuleSummary {
 20635  	s.Name = &v
 20636  	return s
 20637  }
 20638  
 20639  // SetRuleId sets the RuleId field's value.
 20640  func (s *RuleSummary) SetRuleId(v string) *RuleSummary {
 20641  	s.RuleId = &v
 20642  	return s
 20643  }
 20644  
 20645  //
 20646  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20647  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20648  // in the developer guide.
 20649  //
 20650  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20651  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20652  // With the latest version, AWS WAF has a single set of endpoints for regional
 20653  // and global use.
 20654  //
 20655  // Specifies a Predicate (such as an IPSet) and indicates whether you want to
 20656  // add it to a Rule or delete it from a Rule.
 20657  type RuleUpdate struct {
 20658  	_ struct{} `type:"structure"`
 20659  
 20660  	// Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate
 20661  	// from a Rule.
 20662  	//
 20663  	// Action is a required field
 20664  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 20665  
 20666  	// The ID of the Predicate (such as an IPSet) that you want to add to a Rule.
 20667  	//
 20668  	// Predicate is a required field
 20669  	Predicate *Predicate `type:"structure" required:"true"`
 20670  }
 20671  
 20672  // String returns the string representation.
 20673  //
 20674  // API parameter values that are decorated as "sensitive" in the API will not
 20675  // be included in the string output. The member name will be present, but the
 20676  // value will be replaced with "sensitive".
 20677  func (s RuleUpdate) String() string {
 20678  	return awsutil.Prettify(s)
 20679  }
 20680  
 20681  // GoString returns the string representation.
 20682  //
 20683  // API parameter values that are decorated as "sensitive" in the API will not
 20684  // be included in the string output. The member name will be present, but the
 20685  // value will be replaced with "sensitive".
 20686  func (s RuleUpdate) GoString() string {
 20687  	return s.String()
 20688  }
 20689  
 20690  // Validate inspects the fields of the type to determine if they are valid.
 20691  func (s *RuleUpdate) Validate() error {
 20692  	invalidParams := request.ErrInvalidParams{Context: "RuleUpdate"}
 20693  	if s.Action == nil {
 20694  		invalidParams.Add(request.NewErrParamRequired("Action"))
 20695  	}
 20696  	if s.Predicate == nil {
 20697  		invalidParams.Add(request.NewErrParamRequired("Predicate"))
 20698  	}
 20699  	if s.Predicate != nil {
 20700  		if err := s.Predicate.Validate(); err != nil {
 20701  			invalidParams.AddNested("Predicate", err.(request.ErrInvalidParams))
 20702  		}
 20703  	}
 20704  
 20705  	if invalidParams.Len() > 0 {
 20706  		return invalidParams
 20707  	}
 20708  	return nil
 20709  }
 20710  
 20711  // SetAction sets the Action field's value.
 20712  func (s *RuleUpdate) SetAction(v string) *RuleUpdate {
 20713  	s.Action = &v
 20714  	return s
 20715  }
 20716  
 20717  // SetPredicate sets the Predicate field's value.
 20718  func (s *RuleUpdate) SetPredicate(v *Predicate) *RuleUpdate {
 20719  	s.Predicate = v
 20720  	return s
 20721  }
 20722  
 20723  //
 20724  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20725  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20726  // in the developer guide.
 20727  //
 20728  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20729  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20730  // With the latest version, AWS WAF has a single set of endpoints for regional
 20731  // and global use.
 20732  //
 20733  // The response from a GetSampledRequests request includes a SampledHTTPRequests
 20734  // complex type that appears as SampledRequests in the response syntax. SampledHTTPRequests
 20735  // contains one SampledHTTPRequest object for each web request that is returned
 20736  // by GetSampledRequests.
 20737  type SampledHTTPRequest struct {
 20738  	_ struct{} `type:"structure"`
 20739  
 20740  	// The action for the Rule that the request matched: ALLOW, BLOCK, or COUNT.
 20741  	Action *string `type:"string"`
 20742  
 20743  	// A complex type that contains detailed information about the request.
 20744  	//
 20745  	// Request is a required field
 20746  	Request *HTTPRequest `type:"structure" required:"true"`
 20747  
 20748  	// This value is returned if the GetSampledRequests request specifies the ID
 20749  	// of a RuleGroup rather than the ID of an individual rule. RuleWithinRuleGroup
 20750  	// is the rule within the specified RuleGroup that matched the request listed
 20751  	// in the response.
 20752  	RuleWithinRuleGroup *string `min:"1" type:"string"`
 20753  
 20754  	// The time at which AWS WAF received the request from your AWS resource, in
 20755  	// Unix time format (in seconds).
 20756  	Timestamp *time.Time `type:"timestamp"`
 20757  
 20758  	// A value that indicates how one result in the response relates proportionally
 20759  	// to other results in the response. A result that has a weight of 2 represents
 20760  	// roughly twice as many CloudFront web requests as a result that has a weight
 20761  	// of 1.
 20762  	//
 20763  	// Weight is a required field
 20764  	Weight *int64 `type:"long" required:"true"`
 20765  }
 20766  
 20767  // String returns the string representation.
 20768  //
 20769  // API parameter values that are decorated as "sensitive" in the API will not
 20770  // be included in the string output. The member name will be present, but the
 20771  // value will be replaced with "sensitive".
 20772  func (s SampledHTTPRequest) String() string {
 20773  	return awsutil.Prettify(s)
 20774  }
 20775  
 20776  // GoString returns the string representation.
 20777  //
 20778  // API parameter values that are decorated as "sensitive" in the API will not
 20779  // be included in the string output. The member name will be present, but the
 20780  // value will be replaced with "sensitive".
 20781  func (s SampledHTTPRequest) GoString() string {
 20782  	return s.String()
 20783  }
 20784  
 20785  // SetAction sets the Action field's value.
 20786  func (s *SampledHTTPRequest) SetAction(v string) *SampledHTTPRequest {
 20787  	s.Action = &v
 20788  	return s
 20789  }
 20790  
 20791  // SetRequest sets the Request field's value.
 20792  func (s *SampledHTTPRequest) SetRequest(v *HTTPRequest) *SampledHTTPRequest {
 20793  	s.Request = v
 20794  	return s
 20795  }
 20796  
 20797  // SetRuleWithinRuleGroup sets the RuleWithinRuleGroup field's value.
 20798  func (s *SampledHTTPRequest) SetRuleWithinRuleGroup(v string) *SampledHTTPRequest {
 20799  	s.RuleWithinRuleGroup = &v
 20800  	return s
 20801  }
 20802  
 20803  // SetTimestamp sets the Timestamp field's value.
 20804  func (s *SampledHTTPRequest) SetTimestamp(v time.Time) *SampledHTTPRequest {
 20805  	s.Timestamp = &v
 20806  	return s
 20807  }
 20808  
 20809  // SetWeight sets the Weight field's value.
 20810  func (s *SampledHTTPRequest) SetWeight(v int64) *SampledHTTPRequest {
 20811  	s.Weight = &v
 20812  	return s
 20813  }
 20814  
 20815  // AWS WAF is not able to access the service linked role. This can be caused
 20816  // by a previous PutLoggingConfiguration request, which can lock the service
 20817  // linked role for about 20 seconds. Please try your request again. The service
 20818  // linked role can also be locked by a previous DeleteServiceLinkedRole request,
 20819  // which can lock the role for 15 minutes or more. If you recently made a DeleteServiceLinkedRole,
 20820  // wait at least 15 minutes and try the request again. If you receive this same
 20821  // exception again, you will have to wait additional time until the role is
 20822  // unlocked.
 20823  type ServiceLinkedRoleErrorException struct {
 20824  	_            struct{}                  `type:"structure"`
 20825  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 20826  
 20827  	Message_ *string `locationName:"message" type:"string"`
 20828  }
 20829  
 20830  // String returns the string representation.
 20831  //
 20832  // API parameter values that are decorated as "sensitive" in the API will not
 20833  // be included in the string output. The member name will be present, but the
 20834  // value will be replaced with "sensitive".
 20835  func (s ServiceLinkedRoleErrorException) String() string {
 20836  	return awsutil.Prettify(s)
 20837  }
 20838  
 20839  // GoString returns the string representation.
 20840  //
 20841  // API parameter values that are decorated as "sensitive" in the API will not
 20842  // be included in the string output. The member name will be present, but the
 20843  // value will be replaced with "sensitive".
 20844  func (s ServiceLinkedRoleErrorException) GoString() string {
 20845  	return s.String()
 20846  }
 20847  
 20848  func newErrorServiceLinkedRoleErrorException(v protocol.ResponseMetadata) error {
 20849  	return &ServiceLinkedRoleErrorException{
 20850  		RespMetadata: v,
 20851  	}
 20852  }
 20853  
 20854  // Code returns the exception type name.
 20855  func (s *ServiceLinkedRoleErrorException) Code() string {
 20856  	return "WAFServiceLinkedRoleErrorException"
 20857  }
 20858  
 20859  // Message returns the exception's message.
 20860  func (s *ServiceLinkedRoleErrorException) Message() string {
 20861  	if s.Message_ != nil {
 20862  		return *s.Message_
 20863  	}
 20864  	return ""
 20865  }
 20866  
 20867  // OrigErr always returns nil, satisfies awserr.Error interface.
 20868  func (s *ServiceLinkedRoleErrorException) OrigErr() error {
 20869  	return nil
 20870  }
 20871  
 20872  func (s *ServiceLinkedRoleErrorException) Error() string {
 20873  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 20874  }
 20875  
 20876  // Status code returns the HTTP status code for the request's response error.
 20877  func (s *ServiceLinkedRoleErrorException) StatusCode() int {
 20878  	return s.RespMetadata.StatusCode
 20879  }
 20880  
 20881  // RequestID returns the service's response RequestID for request.
 20882  func (s *ServiceLinkedRoleErrorException) RequestID() string {
 20883  	return s.RespMetadata.RequestID
 20884  }
 20885  
 20886  //
 20887  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 20888  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 20889  // in the developer guide.
 20890  //
 20891  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 20892  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 20893  // With the latest version, AWS WAF has a single set of endpoints for regional
 20894  // and global use.
 20895  //
 20896  // Specifies a constraint on the size of a part of the web request. AWS WAF
 20897  // uses the Size, ComparisonOperator, and FieldToMatch to build an expression
 20898  // in the form of "Size ComparisonOperator size in bytes of FieldToMatch". If
 20899  // that expression is true, the SizeConstraint is considered to match.
 20900  type SizeConstraint struct {
 20901  	_ struct{} `type:"structure"`
 20902  
 20903  	// The type of comparison you want AWS WAF to perform. AWS WAF uses this in
 20904  	// combination with the provided Size and FieldToMatch to build an expression
 20905  	// in the form of "Size ComparisonOperator size in bytes of FieldToMatch". If
 20906  	// that expression is true, the SizeConstraint is considered to match.
 20907  	//
 20908  	// EQ: Used to test if the Size is equal to the size of the FieldToMatch
 20909  	//
 20910  	// NE: Used to test if the Size is not equal to the size of the FieldToMatch
 20911  	//
 20912  	// LE: Used to test if the Size is less than or equal to the size of the FieldToMatch
 20913  	//
 20914  	// LT: Used to test if the Size is strictly less than the size of the FieldToMatch
 20915  	//
 20916  	// GE: Used to test if the Size is greater than or equal to the size of the
 20917  	// FieldToMatch
 20918  	//
 20919  	// GT: Used to test if the Size is strictly greater than the size of the FieldToMatch
 20920  	//
 20921  	// ComparisonOperator is a required field
 20922  	ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
 20923  
 20924  	// Specifies where in a web request to look for the size constraint.
 20925  	//
 20926  	// FieldToMatch is a required field
 20927  	FieldToMatch *FieldToMatch `type:"structure" required:"true"`
 20928  
 20929  	// The size in bytes that you want AWS WAF to compare against the size of the
 20930  	// specified FieldToMatch. AWS WAF uses this in combination with ComparisonOperator
 20931  	// and FieldToMatch to build an expression in the form of "Size ComparisonOperator
 20932  	// size in bytes of FieldToMatch". If that expression is true, the SizeConstraint
 20933  	// is considered to match.
 20934  	//
 20935  	// Valid values for size are 0 - 21474836480 bytes (0 - 20 GB).
 20936  	//
 20937  	// If you specify URI for the value of Type, the / in the URI counts as one
 20938  	// character. For example, the URI /logo.jpg is nine characters long.
 20939  	//
 20940  	// Size is a required field
 20941  	Size *int64 `type:"long" required:"true"`
 20942  
 20943  	// Text transformations eliminate some of the unusual formatting that attackers
 20944  	// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,
 20945  	// AWS WAF performs the transformation on FieldToMatch before inspecting it
 20946  	// for a match.
 20947  	//
 20948  	// You can only specify a single type of TextTransformation.
 20949  	//
 20950  	// Note that if you choose BODY for the value of Type, you must choose NONE
 20951  	// for TextTransformation because CloudFront forwards only the first 8192 bytes
 20952  	// for inspection.
 20953  	//
 20954  	// NONE
 20955  	//
 20956  	// Specify NONE if you don't want to perform any text transformations.
 20957  	//
 20958  	// CMD_LINE
 20959  	//
 20960  	// When you're concerned that attackers are injecting an operating system command
 20961  	// line command and using unusual formatting to disguise some or all of the
 20962  	// command, use this option to perform the following transformations:
 20963  	//
 20964  	//    * Delete the following characters: \ " ' ^
 20965  	//
 20966  	//    * Delete spaces before the following characters: / (
 20967  	//
 20968  	//    * Replace the following characters with a space: , ;
 20969  	//
 20970  	//    * Replace multiple spaces with one space
 20971  	//
 20972  	//    * Convert uppercase letters (A-Z) to lowercase (a-z)
 20973  	//
 20974  	// COMPRESS_WHITE_SPACE
 20975  	//
 20976  	// Use this option to replace the following characters with a space character
 20977  	// (decimal 32):
 20978  	//
 20979  	//    * \f, formfeed, decimal 12
 20980  	//
 20981  	//    * \t, tab, decimal 9
 20982  	//
 20983  	//    * \n, newline, decimal 10
 20984  	//
 20985  	//    * \r, carriage return, decimal 13
 20986  	//
 20987  	//    * \v, vertical tab, decimal 11
 20988  	//
 20989  	//    * non-breaking space, decimal 160
 20990  	//
 20991  	// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
 20992  	//
 20993  	// HTML_ENTITY_DECODE
 20994  	//
 20995  	// Use this option to replace HTML-encoded characters with unencoded characters.
 20996  	// HTML_ENTITY_DECODE performs the following operations:
 20997  	//
 20998  	//    * Replaces (ampersand)quot; with "
 20999  	//
 21000  	//    * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
 21001  	//
 21002  	//    * Replaces (ampersand)lt; with a "less than" symbol
 21003  	//
 21004  	//    * Replaces (ampersand)gt; with >
 21005  	//
 21006  	//    * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,
 21007  	//    with the corresponding characters
 21008  	//
 21009  	//    * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,
 21010  	//    with the corresponding characters
 21011  	//
 21012  	// LOWERCASE
 21013  	//
 21014  	// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
 21015  	//
 21016  	// URL_DECODE
 21017  	//
 21018  	// Use this option to decode a URL-encoded value.
 21019  	//
 21020  	// TextTransformation is a required field
 21021  	TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
 21022  }
 21023  
 21024  // String returns the string representation.
 21025  //
 21026  // API parameter values that are decorated as "sensitive" in the API will not
 21027  // be included in the string output. The member name will be present, but the
 21028  // value will be replaced with "sensitive".
 21029  func (s SizeConstraint) String() string {
 21030  	return awsutil.Prettify(s)
 21031  }
 21032  
 21033  // GoString returns the string representation.
 21034  //
 21035  // API parameter values that are decorated as "sensitive" in the API will not
 21036  // be included in the string output. The member name will be present, but the
 21037  // value will be replaced with "sensitive".
 21038  func (s SizeConstraint) GoString() string {
 21039  	return s.String()
 21040  }
 21041  
 21042  // Validate inspects the fields of the type to determine if they are valid.
 21043  func (s *SizeConstraint) Validate() error {
 21044  	invalidParams := request.ErrInvalidParams{Context: "SizeConstraint"}
 21045  	if s.ComparisonOperator == nil {
 21046  		invalidParams.Add(request.NewErrParamRequired("ComparisonOperator"))
 21047  	}
 21048  	if s.FieldToMatch == nil {
 21049  		invalidParams.Add(request.NewErrParamRequired("FieldToMatch"))
 21050  	}
 21051  	if s.Size == nil {
 21052  		invalidParams.Add(request.NewErrParamRequired("Size"))
 21053  	}
 21054  	if s.TextTransformation == nil {
 21055  		invalidParams.Add(request.NewErrParamRequired("TextTransformation"))
 21056  	}
 21057  	if s.FieldToMatch != nil {
 21058  		if err := s.FieldToMatch.Validate(); err != nil {
 21059  			invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams))
 21060  		}
 21061  	}
 21062  
 21063  	if invalidParams.Len() > 0 {
 21064  		return invalidParams
 21065  	}
 21066  	return nil
 21067  }
 21068  
 21069  // SetComparisonOperator sets the ComparisonOperator field's value.
 21070  func (s *SizeConstraint) SetComparisonOperator(v string) *SizeConstraint {
 21071  	s.ComparisonOperator = &v
 21072  	return s
 21073  }
 21074  
 21075  // SetFieldToMatch sets the FieldToMatch field's value.
 21076  func (s *SizeConstraint) SetFieldToMatch(v *FieldToMatch) *SizeConstraint {
 21077  	s.FieldToMatch = v
 21078  	return s
 21079  }
 21080  
 21081  // SetSize sets the Size field's value.
 21082  func (s *SizeConstraint) SetSize(v int64) *SizeConstraint {
 21083  	s.Size = &v
 21084  	return s
 21085  }
 21086  
 21087  // SetTextTransformation sets the TextTransformation field's value.
 21088  func (s *SizeConstraint) SetTextTransformation(v string) *SizeConstraint {
 21089  	s.TextTransformation = &v
 21090  	return s
 21091  }
 21092  
 21093  //
 21094  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21095  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21096  // in the developer guide.
 21097  //
 21098  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21099  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21100  // With the latest version, AWS WAF has a single set of endpoints for regional
 21101  // and global use.
 21102  //
 21103  // A complex type that contains SizeConstraint objects, which specify the parts
 21104  // of web requests that you want AWS WAF to inspect the size of. If a SizeConstraintSet
 21105  // contains more than one SizeConstraint object, a request only needs to match
 21106  // one constraint to be considered a match.
 21107  type SizeConstraintSet struct {
 21108  	_ struct{} `type:"structure"`
 21109  
 21110  	// The name, if any, of the SizeConstraintSet.
 21111  	Name *string `min:"1" type:"string"`
 21112  
 21113  	// A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId
 21114  	// to get information about a SizeConstraintSet (see GetSizeConstraintSet),
 21115  	// update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet
 21116  	// into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet
 21117  	// from AWS WAF (see DeleteSizeConstraintSet).
 21118  	//
 21119  	// SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.
 21120  	//
 21121  	// SizeConstraintSetId is a required field
 21122  	SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
 21123  
 21124  	// Specifies the parts of web requests that you want to inspect the size of.
 21125  	//
 21126  	// SizeConstraints is a required field
 21127  	SizeConstraints []*SizeConstraint `type:"list" required:"true"`
 21128  }
 21129  
 21130  // String returns the string representation.
 21131  //
 21132  // API parameter values that are decorated as "sensitive" in the API will not
 21133  // be included in the string output. The member name will be present, but the
 21134  // value will be replaced with "sensitive".
 21135  func (s SizeConstraintSet) String() string {
 21136  	return awsutil.Prettify(s)
 21137  }
 21138  
 21139  // GoString returns the string representation.
 21140  //
 21141  // API parameter values that are decorated as "sensitive" in the API will not
 21142  // be included in the string output. The member name will be present, but the
 21143  // value will be replaced with "sensitive".
 21144  func (s SizeConstraintSet) GoString() string {
 21145  	return s.String()
 21146  }
 21147  
 21148  // SetName sets the Name field's value.
 21149  func (s *SizeConstraintSet) SetName(v string) *SizeConstraintSet {
 21150  	s.Name = &v
 21151  	return s
 21152  }
 21153  
 21154  // SetSizeConstraintSetId sets the SizeConstraintSetId field's value.
 21155  func (s *SizeConstraintSet) SetSizeConstraintSetId(v string) *SizeConstraintSet {
 21156  	s.SizeConstraintSetId = &v
 21157  	return s
 21158  }
 21159  
 21160  // SetSizeConstraints sets the SizeConstraints field's value.
 21161  func (s *SizeConstraintSet) SetSizeConstraints(v []*SizeConstraint) *SizeConstraintSet {
 21162  	s.SizeConstraints = v
 21163  	return s
 21164  }
 21165  
 21166  //
 21167  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21168  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21169  // in the developer guide.
 21170  //
 21171  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21172  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21173  // With the latest version, AWS WAF has a single set of endpoints for regional
 21174  // and global use.
 21175  //
 21176  // The Id and Name of a SizeConstraintSet.
 21177  type SizeConstraintSetSummary struct {
 21178  	_ struct{} `type:"structure"`
 21179  
 21180  	// The name of the SizeConstraintSet, if any.
 21181  	//
 21182  	// Name is a required field
 21183  	Name *string `min:"1" type:"string" required:"true"`
 21184  
 21185  	// A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId
 21186  	// to get information about a SizeConstraintSet (see GetSizeConstraintSet),
 21187  	// update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet
 21188  	// into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet
 21189  	// from AWS WAF (see DeleteSizeConstraintSet).
 21190  	//
 21191  	// SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.
 21192  	//
 21193  	// SizeConstraintSetId is a required field
 21194  	SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
 21195  }
 21196  
 21197  // String returns the string representation.
 21198  //
 21199  // API parameter values that are decorated as "sensitive" in the API will not
 21200  // be included in the string output. The member name will be present, but the
 21201  // value will be replaced with "sensitive".
 21202  func (s SizeConstraintSetSummary) String() string {
 21203  	return awsutil.Prettify(s)
 21204  }
 21205  
 21206  // GoString returns the string representation.
 21207  //
 21208  // API parameter values that are decorated as "sensitive" in the API will not
 21209  // be included in the string output. The member name will be present, but the
 21210  // value will be replaced with "sensitive".
 21211  func (s SizeConstraintSetSummary) GoString() string {
 21212  	return s.String()
 21213  }
 21214  
 21215  // SetName sets the Name field's value.
 21216  func (s *SizeConstraintSetSummary) SetName(v string) *SizeConstraintSetSummary {
 21217  	s.Name = &v
 21218  	return s
 21219  }
 21220  
 21221  // SetSizeConstraintSetId sets the SizeConstraintSetId field's value.
 21222  func (s *SizeConstraintSetSummary) SetSizeConstraintSetId(v string) *SizeConstraintSetSummary {
 21223  	s.SizeConstraintSetId = &v
 21224  	return s
 21225  }
 21226  
 21227  //
 21228  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21229  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21230  // in the developer guide.
 21231  //
 21232  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21233  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21234  // With the latest version, AWS WAF has a single set of endpoints for regional
 21235  // and global use.
 21236  //
 21237  // Specifies the part of a web request that you want to inspect the size of
 21238  // and indicates whether you want to add the specification to a SizeConstraintSet
 21239  // or delete it from a SizeConstraintSet.
 21240  type SizeConstraintSetUpdate struct {
 21241  	_ struct{} `type:"structure"`
 21242  
 21243  	// Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use
 21244  	// DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet.
 21245  	//
 21246  	// Action is a required field
 21247  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 21248  
 21249  	// Specifies a constraint on the size of a part of the web request. AWS WAF
 21250  	// uses the Size, ComparisonOperator, and FieldToMatch to build an expression
 21251  	// in the form of "Size ComparisonOperator size in bytes of FieldToMatch". If
 21252  	// that expression is true, the SizeConstraint is considered to match.
 21253  	//
 21254  	// SizeConstraint is a required field
 21255  	SizeConstraint *SizeConstraint `type:"structure" required:"true"`
 21256  }
 21257  
 21258  // String returns the string representation.
 21259  //
 21260  // API parameter values that are decorated as "sensitive" in the API will not
 21261  // be included in the string output. The member name will be present, but the
 21262  // value will be replaced with "sensitive".
 21263  func (s SizeConstraintSetUpdate) String() string {
 21264  	return awsutil.Prettify(s)
 21265  }
 21266  
 21267  // GoString returns the string representation.
 21268  //
 21269  // API parameter values that are decorated as "sensitive" in the API will not
 21270  // be included in the string output. The member name will be present, but the
 21271  // value will be replaced with "sensitive".
 21272  func (s SizeConstraintSetUpdate) GoString() string {
 21273  	return s.String()
 21274  }
 21275  
 21276  // Validate inspects the fields of the type to determine if they are valid.
 21277  func (s *SizeConstraintSetUpdate) Validate() error {
 21278  	invalidParams := request.ErrInvalidParams{Context: "SizeConstraintSetUpdate"}
 21279  	if s.Action == nil {
 21280  		invalidParams.Add(request.NewErrParamRequired("Action"))
 21281  	}
 21282  	if s.SizeConstraint == nil {
 21283  		invalidParams.Add(request.NewErrParamRequired("SizeConstraint"))
 21284  	}
 21285  	if s.SizeConstraint != nil {
 21286  		if err := s.SizeConstraint.Validate(); err != nil {
 21287  			invalidParams.AddNested("SizeConstraint", err.(request.ErrInvalidParams))
 21288  		}
 21289  	}
 21290  
 21291  	if invalidParams.Len() > 0 {
 21292  		return invalidParams
 21293  	}
 21294  	return nil
 21295  }
 21296  
 21297  // SetAction sets the Action field's value.
 21298  func (s *SizeConstraintSetUpdate) SetAction(v string) *SizeConstraintSetUpdate {
 21299  	s.Action = &v
 21300  	return s
 21301  }
 21302  
 21303  // SetSizeConstraint sets the SizeConstraint field's value.
 21304  func (s *SizeConstraintSetUpdate) SetSizeConstraint(v *SizeConstraint) *SizeConstraintSetUpdate {
 21305  	s.SizeConstraint = v
 21306  	return s
 21307  }
 21308  
 21309  //
 21310  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21311  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21312  // in the developer guide.
 21313  //
 21314  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21315  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21316  // With the latest version, AWS WAF has a single set of endpoints for regional
 21317  // and global use.
 21318  //
 21319  // A complex type that contains SqlInjectionMatchTuple objects, which specify
 21320  // the parts of web requests that you want AWS WAF to inspect for snippets of
 21321  // malicious SQL code and, if you want AWS WAF to inspect a header, the name
 21322  // of the header. If a SqlInjectionMatchSet contains more than one SqlInjectionMatchTuple
 21323  // object, a request needs to include snippets of SQL code in only one of the
 21324  // specified parts of the request to be considered a match.
 21325  type SqlInjectionMatchSet struct {
 21326  	_ struct{} `type:"structure"`
 21327  
 21328  	// The name, if any, of the SqlInjectionMatchSet.
 21329  	Name *string `min:"1" type:"string"`
 21330  
 21331  	// A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId
 21332  	// to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet),
 21333  	// update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a
 21334  	// SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule),
 21335  	// and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet).
 21336  	//
 21337  	// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.
 21338  	//
 21339  	// SqlInjectionMatchSetId is a required field
 21340  	SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
 21341  
 21342  	// Specifies the parts of web requests that you want to inspect for snippets
 21343  	// of malicious SQL code.
 21344  	//
 21345  	// SqlInjectionMatchTuples is a required field
 21346  	SqlInjectionMatchTuples []*SqlInjectionMatchTuple `type:"list" required:"true"`
 21347  }
 21348  
 21349  // String returns the string representation.
 21350  //
 21351  // API parameter values that are decorated as "sensitive" in the API will not
 21352  // be included in the string output. The member name will be present, but the
 21353  // value will be replaced with "sensitive".
 21354  func (s SqlInjectionMatchSet) String() string {
 21355  	return awsutil.Prettify(s)
 21356  }
 21357  
 21358  // GoString returns the string representation.
 21359  //
 21360  // API parameter values that are decorated as "sensitive" in the API will not
 21361  // be included in the string output. The member name will be present, but the
 21362  // value will be replaced with "sensitive".
 21363  func (s SqlInjectionMatchSet) GoString() string {
 21364  	return s.String()
 21365  }
 21366  
 21367  // SetName sets the Name field's value.
 21368  func (s *SqlInjectionMatchSet) SetName(v string) *SqlInjectionMatchSet {
 21369  	s.Name = &v
 21370  	return s
 21371  }
 21372  
 21373  // SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value.
 21374  func (s *SqlInjectionMatchSet) SetSqlInjectionMatchSetId(v string) *SqlInjectionMatchSet {
 21375  	s.SqlInjectionMatchSetId = &v
 21376  	return s
 21377  }
 21378  
 21379  // SetSqlInjectionMatchTuples sets the SqlInjectionMatchTuples field's value.
 21380  func (s *SqlInjectionMatchSet) SetSqlInjectionMatchTuples(v []*SqlInjectionMatchTuple) *SqlInjectionMatchSet {
 21381  	s.SqlInjectionMatchTuples = v
 21382  	return s
 21383  }
 21384  
 21385  //
 21386  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21387  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21388  // in the developer guide.
 21389  //
 21390  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21391  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21392  // With the latest version, AWS WAF has a single set of endpoints for regional
 21393  // and global use.
 21394  //
 21395  // The Id and Name of a SqlInjectionMatchSet.
 21396  type SqlInjectionMatchSetSummary struct {
 21397  	_ struct{} `type:"structure"`
 21398  
 21399  	// The name of the SqlInjectionMatchSet, if any, specified by Id.
 21400  	//
 21401  	// Name is a required field
 21402  	Name *string `min:"1" type:"string" required:"true"`
 21403  
 21404  	// A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId
 21405  	// to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet),
 21406  	// update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a
 21407  	// SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule),
 21408  	// and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet).
 21409  	//
 21410  	// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.
 21411  	//
 21412  	// SqlInjectionMatchSetId is a required field
 21413  	SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
 21414  }
 21415  
 21416  // String returns the string representation.
 21417  //
 21418  // API parameter values that are decorated as "sensitive" in the API will not
 21419  // be included in the string output. The member name will be present, but the
 21420  // value will be replaced with "sensitive".
 21421  func (s SqlInjectionMatchSetSummary) String() string {
 21422  	return awsutil.Prettify(s)
 21423  }
 21424  
 21425  // GoString returns the string representation.
 21426  //
 21427  // API parameter values that are decorated as "sensitive" in the API will not
 21428  // be included in the string output. The member name will be present, but the
 21429  // value will be replaced with "sensitive".
 21430  func (s SqlInjectionMatchSetSummary) GoString() string {
 21431  	return s.String()
 21432  }
 21433  
 21434  // SetName sets the Name field's value.
 21435  func (s *SqlInjectionMatchSetSummary) SetName(v string) *SqlInjectionMatchSetSummary {
 21436  	s.Name = &v
 21437  	return s
 21438  }
 21439  
 21440  // SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value.
 21441  func (s *SqlInjectionMatchSetSummary) SetSqlInjectionMatchSetId(v string) *SqlInjectionMatchSetSummary {
 21442  	s.SqlInjectionMatchSetId = &v
 21443  	return s
 21444  }
 21445  
 21446  //
 21447  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21448  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21449  // in the developer guide.
 21450  //
 21451  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21452  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21453  // With the latest version, AWS WAF has a single set of endpoints for regional
 21454  // and global use.
 21455  //
 21456  // Specifies the part of a web request that you want to inspect for snippets
 21457  // of malicious SQL code and indicates whether you want to add the specification
 21458  // to a SqlInjectionMatchSet or delete it from a SqlInjectionMatchSet.
 21459  type SqlInjectionMatchSetUpdate struct {
 21460  	_ struct{} `type:"structure"`
 21461  
 21462  	// Specify INSERT to add a SqlInjectionMatchSetUpdate to a SqlInjectionMatchSet.
 21463  	// Use DELETE to remove a SqlInjectionMatchSetUpdate from a SqlInjectionMatchSet.
 21464  	//
 21465  	// Action is a required field
 21466  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 21467  
 21468  	// Specifies the part of a web request that you want AWS WAF to inspect for
 21469  	// snippets of malicious SQL code and, if you want AWS WAF to inspect a header,
 21470  	// the name of the header.
 21471  	//
 21472  	// SqlInjectionMatchTuple is a required field
 21473  	SqlInjectionMatchTuple *SqlInjectionMatchTuple `type:"structure" required:"true"`
 21474  }
 21475  
 21476  // String returns the string representation.
 21477  //
 21478  // API parameter values that are decorated as "sensitive" in the API will not
 21479  // be included in the string output. The member name will be present, but the
 21480  // value will be replaced with "sensitive".
 21481  func (s SqlInjectionMatchSetUpdate) String() string {
 21482  	return awsutil.Prettify(s)
 21483  }
 21484  
 21485  // GoString returns the string representation.
 21486  //
 21487  // API parameter values that are decorated as "sensitive" in the API will not
 21488  // be included in the string output. The member name will be present, but the
 21489  // value will be replaced with "sensitive".
 21490  func (s SqlInjectionMatchSetUpdate) GoString() string {
 21491  	return s.String()
 21492  }
 21493  
 21494  // Validate inspects the fields of the type to determine if they are valid.
 21495  func (s *SqlInjectionMatchSetUpdate) Validate() error {
 21496  	invalidParams := request.ErrInvalidParams{Context: "SqlInjectionMatchSetUpdate"}
 21497  	if s.Action == nil {
 21498  		invalidParams.Add(request.NewErrParamRequired("Action"))
 21499  	}
 21500  	if s.SqlInjectionMatchTuple == nil {
 21501  		invalidParams.Add(request.NewErrParamRequired("SqlInjectionMatchTuple"))
 21502  	}
 21503  	if s.SqlInjectionMatchTuple != nil {
 21504  		if err := s.SqlInjectionMatchTuple.Validate(); err != nil {
 21505  			invalidParams.AddNested("SqlInjectionMatchTuple", err.(request.ErrInvalidParams))
 21506  		}
 21507  	}
 21508  
 21509  	if invalidParams.Len() > 0 {
 21510  		return invalidParams
 21511  	}
 21512  	return nil
 21513  }
 21514  
 21515  // SetAction sets the Action field's value.
 21516  func (s *SqlInjectionMatchSetUpdate) SetAction(v string) *SqlInjectionMatchSetUpdate {
 21517  	s.Action = &v
 21518  	return s
 21519  }
 21520  
 21521  // SetSqlInjectionMatchTuple sets the SqlInjectionMatchTuple field's value.
 21522  func (s *SqlInjectionMatchSetUpdate) SetSqlInjectionMatchTuple(v *SqlInjectionMatchTuple) *SqlInjectionMatchSetUpdate {
 21523  	s.SqlInjectionMatchTuple = v
 21524  	return s
 21525  }
 21526  
 21527  //
 21528  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21529  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21530  // in the developer guide.
 21531  //
 21532  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21533  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21534  // With the latest version, AWS WAF has a single set of endpoints for regional
 21535  // and global use.
 21536  //
 21537  // Specifies the part of a web request that you want AWS WAF to inspect for
 21538  // snippets of malicious SQL code and, if you want AWS WAF to inspect a header,
 21539  // the name of the header.
 21540  type SqlInjectionMatchTuple struct {
 21541  	_ struct{} `type:"structure"`
 21542  
 21543  	// Specifies where in a web request to look for snippets of malicious SQL code.
 21544  	//
 21545  	// FieldToMatch is a required field
 21546  	FieldToMatch *FieldToMatch `type:"structure" required:"true"`
 21547  
 21548  	// Text transformations eliminate some of the unusual formatting that attackers
 21549  	// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,
 21550  	// AWS WAF performs the transformation on FieldToMatch before inspecting it
 21551  	// for a match.
 21552  	//
 21553  	// You can only specify a single type of TextTransformation.
 21554  	//
 21555  	// CMD_LINE
 21556  	//
 21557  	// When you're concerned that attackers are injecting an operating system command
 21558  	// line command and using unusual formatting to disguise some or all of the
 21559  	// command, use this option to perform the following transformations:
 21560  	//
 21561  	//    * Delete the following characters: \ " ' ^
 21562  	//
 21563  	//    * Delete spaces before the following characters: / (
 21564  	//
 21565  	//    * Replace the following characters with a space: , ;
 21566  	//
 21567  	//    * Replace multiple spaces with one space
 21568  	//
 21569  	//    * Convert uppercase letters (A-Z) to lowercase (a-z)
 21570  	//
 21571  	// COMPRESS_WHITE_SPACE
 21572  	//
 21573  	// Use this option to replace the following characters with a space character
 21574  	// (decimal 32):
 21575  	//
 21576  	//    * \f, formfeed, decimal 12
 21577  	//
 21578  	//    * \t, tab, decimal 9
 21579  	//
 21580  	//    * \n, newline, decimal 10
 21581  	//
 21582  	//    * \r, carriage return, decimal 13
 21583  	//
 21584  	//    * \v, vertical tab, decimal 11
 21585  	//
 21586  	//    * non-breaking space, decimal 160
 21587  	//
 21588  	// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
 21589  	//
 21590  	// HTML_ENTITY_DECODE
 21591  	//
 21592  	// Use this option to replace HTML-encoded characters with unencoded characters.
 21593  	// HTML_ENTITY_DECODE performs the following operations:
 21594  	//
 21595  	//    * Replaces (ampersand)quot; with "
 21596  	//
 21597  	//    * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
 21598  	//
 21599  	//    * Replaces (ampersand)lt; with a "less than" symbol
 21600  	//
 21601  	//    * Replaces (ampersand)gt; with >
 21602  	//
 21603  	//    * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,
 21604  	//    with the corresponding characters
 21605  	//
 21606  	//    * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,
 21607  	//    with the corresponding characters
 21608  	//
 21609  	// LOWERCASE
 21610  	//
 21611  	// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
 21612  	//
 21613  	// URL_DECODE
 21614  	//
 21615  	// Use this option to decode a URL-encoded value.
 21616  	//
 21617  	// NONE
 21618  	//
 21619  	// Specify NONE if you don't want to perform any text transformations.
 21620  	//
 21621  	// TextTransformation is a required field
 21622  	TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
 21623  }
 21624  
 21625  // String returns the string representation.
 21626  //
 21627  // API parameter values that are decorated as "sensitive" in the API will not
 21628  // be included in the string output. The member name will be present, but the
 21629  // value will be replaced with "sensitive".
 21630  func (s SqlInjectionMatchTuple) String() string {
 21631  	return awsutil.Prettify(s)
 21632  }
 21633  
 21634  // GoString returns the string representation.
 21635  //
 21636  // API parameter values that are decorated as "sensitive" in the API will not
 21637  // be included in the string output. The member name will be present, but the
 21638  // value will be replaced with "sensitive".
 21639  func (s SqlInjectionMatchTuple) GoString() string {
 21640  	return s.String()
 21641  }
 21642  
 21643  // Validate inspects the fields of the type to determine if they are valid.
 21644  func (s *SqlInjectionMatchTuple) Validate() error {
 21645  	invalidParams := request.ErrInvalidParams{Context: "SqlInjectionMatchTuple"}
 21646  	if s.FieldToMatch == nil {
 21647  		invalidParams.Add(request.NewErrParamRequired("FieldToMatch"))
 21648  	}
 21649  	if s.TextTransformation == nil {
 21650  		invalidParams.Add(request.NewErrParamRequired("TextTransformation"))
 21651  	}
 21652  	if s.FieldToMatch != nil {
 21653  		if err := s.FieldToMatch.Validate(); err != nil {
 21654  			invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams))
 21655  		}
 21656  	}
 21657  
 21658  	if invalidParams.Len() > 0 {
 21659  		return invalidParams
 21660  	}
 21661  	return nil
 21662  }
 21663  
 21664  // SetFieldToMatch sets the FieldToMatch field's value.
 21665  func (s *SqlInjectionMatchTuple) SetFieldToMatch(v *FieldToMatch) *SqlInjectionMatchTuple {
 21666  	s.FieldToMatch = v
 21667  	return s
 21668  }
 21669  
 21670  // SetTextTransformation sets the TextTransformation field's value.
 21671  func (s *SqlInjectionMatchTuple) SetTextTransformation(v string) *SqlInjectionMatchTuple {
 21672  	s.TextTransformation = &v
 21673  	return s
 21674  }
 21675  
 21676  // The operation failed because you tried to create, update, or delete an object
 21677  // by using a change token that has already been used.
 21678  type StaleDataException struct {
 21679  	_            struct{}                  `type:"structure"`
 21680  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21681  
 21682  	Message_ *string `locationName:"message" type:"string"`
 21683  }
 21684  
 21685  // String returns the string representation.
 21686  //
 21687  // API parameter values that are decorated as "sensitive" in the API will not
 21688  // be included in the string output. The member name will be present, but the
 21689  // value will be replaced with "sensitive".
 21690  func (s StaleDataException) String() string {
 21691  	return awsutil.Prettify(s)
 21692  }
 21693  
 21694  // GoString returns the string representation.
 21695  //
 21696  // API parameter values that are decorated as "sensitive" in the API will not
 21697  // be included in the string output. The member name will be present, but the
 21698  // value will be replaced with "sensitive".
 21699  func (s StaleDataException) GoString() string {
 21700  	return s.String()
 21701  }
 21702  
 21703  func newErrorStaleDataException(v protocol.ResponseMetadata) error {
 21704  	return &StaleDataException{
 21705  		RespMetadata: v,
 21706  	}
 21707  }
 21708  
 21709  // Code returns the exception type name.
 21710  func (s *StaleDataException) Code() string {
 21711  	return "WAFStaleDataException"
 21712  }
 21713  
 21714  // Message returns the exception's message.
 21715  func (s *StaleDataException) Message() string {
 21716  	if s.Message_ != nil {
 21717  		return *s.Message_
 21718  	}
 21719  	return ""
 21720  }
 21721  
 21722  // OrigErr always returns nil, satisfies awserr.Error interface.
 21723  func (s *StaleDataException) OrigErr() error {
 21724  	return nil
 21725  }
 21726  
 21727  func (s *StaleDataException) Error() string {
 21728  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21729  }
 21730  
 21731  // Status code returns the HTTP status code for the request's response error.
 21732  func (s *StaleDataException) StatusCode() int {
 21733  	return s.RespMetadata.StatusCode
 21734  }
 21735  
 21736  // RequestID returns the service's response RequestID for request.
 21737  func (s *StaleDataException) RequestID() string {
 21738  	return s.RespMetadata.RequestID
 21739  }
 21740  
 21741  //
 21742  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21743  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21744  // in the developer guide.
 21745  //
 21746  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21747  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21748  // With the latest version, AWS WAF has a single set of endpoints for regional
 21749  // and global use.
 21750  //
 21751  // A summary of the rule groups you are subscribed to.
 21752  type SubscribedRuleGroupSummary struct {
 21753  	_ struct{} `type:"structure"`
 21754  
 21755  	// A friendly name or description for the metrics for this RuleGroup. The name
 21756  	// can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length
 21757  	// 128 and minimum length one. It can't contain whitespace or metric names reserved
 21758  	// for AWS WAF, including "All" and "Default_Action." You can't change the name
 21759  	// of the metric after you create the RuleGroup.
 21760  	//
 21761  	// MetricName is a required field
 21762  	MetricName *string `min:"1" type:"string" required:"true"`
 21763  
 21764  	// A friendly name or description of the RuleGroup. You can't change the name
 21765  	// of a RuleGroup after you create it.
 21766  	//
 21767  	// Name is a required field
 21768  	Name *string `min:"1" type:"string" required:"true"`
 21769  
 21770  	// A unique identifier for a RuleGroup.
 21771  	//
 21772  	// RuleGroupId is a required field
 21773  	RuleGroupId *string `min:"1" type:"string" required:"true"`
 21774  }
 21775  
 21776  // String returns the string representation.
 21777  //
 21778  // API parameter values that are decorated as "sensitive" in the API will not
 21779  // be included in the string output. The member name will be present, but the
 21780  // value will be replaced with "sensitive".
 21781  func (s SubscribedRuleGroupSummary) String() string {
 21782  	return awsutil.Prettify(s)
 21783  }
 21784  
 21785  // GoString returns the string representation.
 21786  //
 21787  // API parameter values that are decorated as "sensitive" in the API will not
 21788  // be included in the string output. The member name will be present, but the
 21789  // value will be replaced with "sensitive".
 21790  func (s SubscribedRuleGroupSummary) GoString() string {
 21791  	return s.String()
 21792  }
 21793  
 21794  // SetMetricName sets the MetricName field's value.
 21795  func (s *SubscribedRuleGroupSummary) SetMetricName(v string) *SubscribedRuleGroupSummary {
 21796  	s.MetricName = &v
 21797  	return s
 21798  }
 21799  
 21800  // SetName sets the Name field's value.
 21801  func (s *SubscribedRuleGroupSummary) SetName(v string) *SubscribedRuleGroupSummary {
 21802  	s.Name = &v
 21803  	return s
 21804  }
 21805  
 21806  // SetRuleGroupId sets the RuleGroupId field's value.
 21807  func (s *SubscribedRuleGroupSummary) SetRuleGroupId(v string) *SubscribedRuleGroupSummary {
 21808  	s.RuleGroupId = &v
 21809  	return s
 21810  }
 21811  
 21812  // The specified subscription does not exist.
 21813  type SubscriptionNotFoundException struct {
 21814  	_            struct{}                  `type:"structure"`
 21815  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 21816  
 21817  	Message_ *string `locationName:"message" type:"string"`
 21818  }
 21819  
 21820  // String returns the string representation.
 21821  //
 21822  // API parameter values that are decorated as "sensitive" in the API will not
 21823  // be included in the string output. The member name will be present, but the
 21824  // value will be replaced with "sensitive".
 21825  func (s SubscriptionNotFoundException) String() string {
 21826  	return awsutil.Prettify(s)
 21827  }
 21828  
 21829  // GoString returns the string representation.
 21830  //
 21831  // API parameter values that are decorated as "sensitive" in the API will not
 21832  // be included in the string output. The member name will be present, but the
 21833  // value will be replaced with "sensitive".
 21834  func (s SubscriptionNotFoundException) GoString() string {
 21835  	return s.String()
 21836  }
 21837  
 21838  func newErrorSubscriptionNotFoundException(v protocol.ResponseMetadata) error {
 21839  	return &SubscriptionNotFoundException{
 21840  		RespMetadata: v,
 21841  	}
 21842  }
 21843  
 21844  // Code returns the exception type name.
 21845  func (s *SubscriptionNotFoundException) Code() string {
 21846  	return "WAFSubscriptionNotFoundException"
 21847  }
 21848  
 21849  // Message returns the exception's message.
 21850  func (s *SubscriptionNotFoundException) Message() string {
 21851  	if s.Message_ != nil {
 21852  		return *s.Message_
 21853  	}
 21854  	return ""
 21855  }
 21856  
 21857  // OrigErr always returns nil, satisfies awserr.Error interface.
 21858  func (s *SubscriptionNotFoundException) OrigErr() error {
 21859  	return nil
 21860  }
 21861  
 21862  func (s *SubscriptionNotFoundException) Error() string {
 21863  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 21864  }
 21865  
 21866  // Status code returns the HTTP status code for the request's response error.
 21867  func (s *SubscriptionNotFoundException) StatusCode() int {
 21868  	return s.RespMetadata.StatusCode
 21869  }
 21870  
 21871  // RequestID returns the service's response RequestID for request.
 21872  func (s *SubscriptionNotFoundException) RequestID() string {
 21873  	return s.RespMetadata.RequestID
 21874  }
 21875  
 21876  //
 21877  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21878  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21879  // in the developer guide.
 21880  //
 21881  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21882  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21883  // With the latest version, AWS WAF has a single set of endpoints for regional
 21884  // and global use.
 21885  //
 21886  // A tag associated with an AWS resource. Tags are key:value pairs that you
 21887  // can use to categorize and manage your resources, for purposes like billing.
 21888  // For example, you might set the tag key to "customer" and the value to the
 21889  // customer name or ID. You can specify one or more tags to add to each AWS
 21890  // resource, up to 50 tags for a resource.
 21891  //
 21892  // Tagging is only available through the API, SDKs, and CLI. You can't manage
 21893  // or view tags through the AWS WAF Classic console. You can tag the AWS resources
 21894  // that you manage through AWS WAF Classic: web ACLs, rule groups, and rules.
 21895  type Tag struct {
 21896  	_ struct{} `type:"structure"`
 21897  
 21898  	// Key is a required field
 21899  	Key *string `min:"1" type:"string" required:"true"`
 21900  
 21901  	// Value is a required field
 21902  	Value *string `type:"string" required:"true"`
 21903  }
 21904  
 21905  // String returns the string representation.
 21906  //
 21907  // API parameter values that are decorated as "sensitive" in the API will not
 21908  // be included in the string output. The member name will be present, but the
 21909  // value will be replaced with "sensitive".
 21910  func (s Tag) String() string {
 21911  	return awsutil.Prettify(s)
 21912  }
 21913  
 21914  // GoString returns the string representation.
 21915  //
 21916  // API parameter values that are decorated as "sensitive" in the API will not
 21917  // be included in the string output. The member name will be present, but the
 21918  // value will be replaced with "sensitive".
 21919  func (s Tag) GoString() string {
 21920  	return s.String()
 21921  }
 21922  
 21923  // Validate inspects the fields of the type to determine if they are valid.
 21924  func (s *Tag) Validate() error {
 21925  	invalidParams := request.ErrInvalidParams{Context: "Tag"}
 21926  	if s.Key == nil {
 21927  		invalidParams.Add(request.NewErrParamRequired("Key"))
 21928  	}
 21929  	if s.Key != nil && len(*s.Key) < 1 {
 21930  		invalidParams.Add(request.NewErrParamMinLen("Key", 1))
 21931  	}
 21932  	if s.Value == nil {
 21933  		invalidParams.Add(request.NewErrParamRequired("Value"))
 21934  	}
 21935  
 21936  	if invalidParams.Len() > 0 {
 21937  		return invalidParams
 21938  	}
 21939  	return nil
 21940  }
 21941  
 21942  // SetKey sets the Key field's value.
 21943  func (s *Tag) SetKey(v string) *Tag {
 21944  	s.Key = &v
 21945  	return s
 21946  }
 21947  
 21948  // SetValue sets the Value field's value.
 21949  func (s *Tag) SetValue(v string) *Tag {
 21950  	s.Value = &v
 21951  	return s
 21952  }
 21953  
 21954  //
 21955  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 21956  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 21957  // in the developer guide.
 21958  //
 21959  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 21960  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 21961  // With the latest version, AWS WAF has a single set of endpoints for regional
 21962  // and global use.
 21963  //
 21964  // Information for a tag associated with an AWS resource. Tags are key:value
 21965  // pairs that you can use to categorize and manage your resources, for purposes
 21966  // like billing. For example, you might set the tag key to "customer" and the
 21967  // value to the customer name or ID. You can specify one or more tags to add
 21968  // to each AWS resource, up to 50 tags for a resource.
 21969  //
 21970  // Tagging is only available through the API, SDKs, and CLI. You can't manage
 21971  // or view tags through the AWS WAF Classic console. You can tag the AWS resources
 21972  // that you manage through AWS WAF Classic: web ACLs, rule groups, and rules.
 21973  type TagInfoForResource struct {
 21974  	_ struct{} `type:"structure"`
 21975  
 21976  	ResourceARN *string `min:"1" type:"string"`
 21977  
 21978  	TagList []*Tag `min:"1" type:"list"`
 21979  }
 21980  
 21981  // String returns the string representation.
 21982  //
 21983  // API parameter values that are decorated as "sensitive" in the API will not
 21984  // be included in the string output. The member name will be present, but the
 21985  // value will be replaced with "sensitive".
 21986  func (s TagInfoForResource) String() string {
 21987  	return awsutil.Prettify(s)
 21988  }
 21989  
 21990  // GoString returns the string representation.
 21991  //
 21992  // API parameter values that are decorated as "sensitive" in the API will not
 21993  // be included in the string output. The member name will be present, but the
 21994  // value will be replaced with "sensitive".
 21995  func (s TagInfoForResource) GoString() string {
 21996  	return s.String()
 21997  }
 21998  
 21999  // SetResourceARN sets the ResourceARN field's value.
 22000  func (s *TagInfoForResource) SetResourceARN(v string) *TagInfoForResource {
 22001  	s.ResourceARN = &v
 22002  	return s
 22003  }
 22004  
 22005  // SetTagList sets the TagList field's value.
 22006  func (s *TagInfoForResource) SetTagList(v []*Tag) *TagInfoForResource {
 22007  	s.TagList = v
 22008  	return s
 22009  }
 22010  
 22011  type TagOperationException struct {
 22012  	_            struct{}                  `type:"structure"`
 22013  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22014  
 22015  	Message_ *string `locationName:"message" type:"string"`
 22016  }
 22017  
 22018  // String returns the string representation.
 22019  //
 22020  // API parameter values that are decorated as "sensitive" in the API will not
 22021  // be included in the string output. The member name will be present, but the
 22022  // value will be replaced with "sensitive".
 22023  func (s TagOperationException) String() string {
 22024  	return awsutil.Prettify(s)
 22025  }
 22026  
 22027  // GoString returns the string representation.
 22028  //
 22029  // API parameter values that are decorated as "sensitive" in the API will not
 22030  // be included in the string output. The member name will be present, but the
 22031  // value will be replaced with "sensitive".
 22032  func (s TagOperationException) GoString() string {
 22033  	return s.String()
 22034  }
 22035  
 22036  func newErrorTagOperationException(v protocol.ResponseMetadata) error {
 22037  	return &TagOperationException{
 22038  		RespMetadata: v,
 22039  	}
 22040  }
 22041  
 22042  // Code returns the exception type name.
 22043  func (s *TagOperationException) Code() string {
 22044  	return "WAFTagOperationException"
 22045  }
 22046  
 22047  // Message returns the exception's message.
 22048  func (s *TagOperationException) Message() string {
 22049  	if s.Message_ != nil {
 22050  		return *s.Message_
 22051  	}
 22052  	return ""
 22053  }
 22054  
 22055  // OrigErr always returns nil, satisfies awserr.Error interface.
 22056  func (s *TagOperationException) OrigErr() error {
 22057  	return nil
 22058  }
 22059  
 22060  func (s *TagOperationException) Error() string {
 22061  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22062  }
 22063  
 22064  // Status code returns the HTTP status code for the request's response error.
 22065  func (s *TagOperationException) StatusCode() int {
 22066  	return s.RespMetadata.StatusCode
 22067  }
 22068  
 22069  // RequestID returns the service's response RequestID for request.
 22070  func (s *TagOperationException) RequestID() string {
 22071  	return s.RespMetadata.RequestID
 22072  }
 22073  
 22074  type TagOperationInternalErrorException struct {
 22075  	_            struct{}                  `type:"structure"`
 22076  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 22077  
 22078  	Message_ *string `locationName:"message" type:"string"`
 22079  }
 22080  
 22081  // String returns the string representation.
 22082  //
 22083  // API parameter values that are decorated as "sensitive" in the API will not
 22084  // be included in the string output. The member name will be present, but the
 22085  // value will be replaced with "sensitive".
 22086  func (s TagOperationInternalErrorException) String() string {
 22087  	return awsutil.Prettify(s)
 22088  }
 22089  
 22090  // GoString returns the string representation.
 22091  //
 22092  // API parameter values that are decorated as "sensitive" in the API will not
 22093  // be included in the string output. The member name will be present, but the
 22094  // value will be replaced with "sensitive".
 22095  func (s TagOperationInternalErrorException) GoString() string {
 22096  	return s.String()
 22097  }
 22098  
 22099  func newErrorTagOperationInternalErrorException(v protocol.ResponseMetadata) error {
 22100  	return &TagOperationInternalErrorException{
 22101  		RespMetadata: v,
 22102  	}
 22103  }
 22104  
 22105  // Code returns the exception type name.
 22106  func (s *TagOperationInternalErrorException) Code() string {
 22107  	return "WAFTagOperationInternalErrorException"
 22108  }
 22109  
 22110  // Message returns the exception's message.
 22111  func (s *TagOperationInternalErrorException) Message() string {
 22112  	if s.Message_ != nil {
 22113  		return *s.Message_
 22114  	}
 22115  	return ""
 22116  }
 22117  
 22118  // OrigErr always returns nil, satisfies awserr.Error interface.
 22119  func (s *TagOperationInternalErrorException) OrigErr() error {
 22120  	return nil
 22121  }
 22122  
 22123  func (s *TagOperationInternalErrorException) Error() string {
 22124  	return fmt.Sprintf("%s: %s", s.Code(), s.Message())
 22125  }
 22126  
 22127  // Status code returns the HTTP status code for the request's response error.
 22128  func (s *TagOperationInternalErrorException) StatusCode() int {
 22129  	return s.RespMetadata.StatusCode
 22130  }
 22131  
 22132  // RequestID returns the service's response RequestID for request.
 22133  func (s *TagOperationInternalErrorException) RequestID() string {
 22134  	return s.RespMetadata.RequestID
 22135  }
 22136  
 22137  type TagResourceInput struct {
 22138  	_ struct{} `type:"structure"`
 22139  
 22140  	// ResourceARN is a required field
 22141  	ResourceARN *string `min:"1" type:"string" required:"true"`
 22142  
 22143  	// Tags is a required field
 22144  	Tags []*Tag `min:"1" type:"list" required:"true"`
 22145  }
 22146  
 22147  // String returns the string representation.
 22148  //
 22149  // API parameter values that are decorated as "sensitive" in the API will not
 22150  // be included in the string output. The member name will be present, but the
 22151  // value will be replaced with "sensitive".
 22152  func (s TagResourceInput) String() string {
 22153  	return awsutil.Prettify(s)
 22154  }
 22155  
 22156  // GoString returns the string representation.
 22157  //
 22158  // API parameter values that are decorated as "sensitive" in the API will not
 22159  // be included in the string output. The member name will be present, but the
 22160  // value will be replaced with "sensitive".
 22161  func (s TagResourceInput) GoString() string {
 22162  	return s.String()
 22163  }
 22164  
 22165  // Validate inspects the fields of the type to determine if they are valid.
 22166  func (s *TagResourceInput) Validate() error {
 22167  	invalidParams := request.ErrInvalidParams{Context: "TagResourceInput"}
 22168  	if s.ResourceARN == nil {
 22169  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 22170  	}
 22171  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
 22172  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
 22173  	}
 22174  	if s.Tags == nil {
 22175  		invalidParams.Add(request.NewErrParamRequired("Tags"))
 22176  	}
 22177  	if s.Tags != nil && len(s.Tags) < 1 {
 22178  		invalidParams.Add(request.NewErrParamMinLen("Tags", 1))
 22179  	}
 22180  	if s.Tags != nil {
 22181  		for i, v := range s.Tags {
 22182  			if v == nil {
 22183  				continue
 22184  			}
 22185  			if err := v.Validate(); err != nil {
 22186  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Tags", i), err.(request.ErrInvalidParams))
 22187  			}
 22188  		}
 22189  	}
 22190  
 22191  	if invalidParams.Len() > 0 {
 22192  		return invalidParams
 22193  	}
 22194  	return nil
 22195  }
 22196  
 22197  // SetResourceARN sets the ResourceARN field's value.
 22198  func (s *TagResourceInput) SetResourceARN(v string) *TagResourceInput {
 22199  	s.ResourceARN = &v
 22200  	return s
 22201  }
 22202  
 22203  // SetTags sets the Tags field's value.
 22204  func (s *TagResourceInput) SetTags(v []*Tag) *TagResourceInput {
 22205  	s.Tags = v
 22206  	return s
 22207  }
 22208  
 22209  type TagResourceOutput struct {
 22210  	_ struct{} `type:"structure"`
 22211  }
 22212  
 22213  // String returns the string representation.
 22214  //
 22215  // API parameter values that are decorated as "sensitive" in the API will not
 22216  // be included in the string output. The member name will be present, but the
 22217  // value will be replaced with "sensitive".
 22218  func (s TagResourceOutput) String() string {
 22219  	return awsutil.Prettify(s)
 22220  }
 22221  
 22222  // GoString returns the string representation.
 22223  //
 22224  // API parameter values that are decorated as "sensitive" in the API will not
 22225  // be included in the string output. The member name will be present, but the
 22226  // value will be replaced with "sensitive".
 22227  func (s TagResourceOutput) GoString() string {
 22228  	return s.String()
 22229  }
 22230  
 22231  //
 22232  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 22233  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 22234  // in the developer guide.
 22235  //
 22236  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 22237  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 22238  // With the latest version, AWS WAF has a single set of endpoints for regional
 22239  // and global use.
 22240  //
 22241  // In a GetSampledRequests request, the StartTime and EndTime objects specify
 22242  // the time range for which you want AWS WAF to return a sample of web requests.
 22243  //
 22244  // You must specify the times in Coordinated Universal Time (UTC) format. UTC
 22245  // format includes the special designator, Z. For example, "2016-09-27T14:50Z".
 22246  //
 22247  // In a GetSampledRequests response, the StartTime and EndTime objects specify
 22248  // the time range for which AWS WAF actually returned a sample of web requests.
 22249  // AWS WAF gets the specified number of requests from among the first 5,000
 22250  // requests that your AWS resource receives during the specified time period.
 22251  // If your resource receives more than 5,000 requests during that period, AWS
 22252  // WAF stops sampling after the 5,000th request. In that case, EndTime is the
 22253  // time that AWS WAF received the 5,000th request.
 22254  type TimeWindow struct {
 22255  	_ struct{} `type:"structure"`
 22256  
 22257  	// The end of the time range from which you want GetSampledRequests to return
 22258  	// a sample of the requests that your AWS resource received. You must specify
 22259  	// the date and time in Coordinated Universal Time (UTC) format. UTC format
 22260  	// includes the special designator, Z. For example, "2016-09-27T14:50Z". You
 22261  	// can specify any time range in the previous three hours.
 22262  	//
 22263  	// EndTime is a required field
 22264  	EndTime *time.Time `type:"timestamp" required:"true"`
 22265  
 22266  	// The beginning of the time range from which you want GetSampledRequests to
 22267  	// return a sample of the requests that your AWS resource received. You must
 22268  	// specify the date and time in Coordinated Universal Time (UTC) format. UTC
 22269  	// format includes the special designator, Z. For example, "2016-09-27T14:50Z".
 22270  	// You can specify any time range in the previous three hours.
 22271  	//
 22272  	// StartTime is a required field
 22273  	StartTime *time.Time `type:"timestamp" required:"true"`
 22274  }
 22275  
 22276  // String returns the string representation.
 22277  //
 22278  // API parameter values that are decorated as "sensitive" in the API will not
 22279  // be included in the string output. The member name will be present, but the
 22280  // value will be replaced with "sensitive".
 22281  func (s TimeWindow) String() string {
 22282  	return awsutil.Prettify(s)
 22283  }
 22284  
 22285  // GoString returns the string representation.
 22286  //
 22287  // API parameter values that are decorated as "sensitive" in the API will not
 22288  // be included in the string output. The member name will be present, but the
 22289  // value will be replaced with "sensitive".
 22290  func (s TimeWindow) GoString() string {
 22291  	return s.String()
 22292  }
 22293  
 22294  // Validate inspects the fields of the type to determine if they are valid.
 22295  func (s *TimeWindow) Validate() error {
 22296  	invalidParams := request.ErrInvalidParams{Context: "TimeWindow"}
 22297  	if s.EndTime == nil {
 22298  		invalidParams.Add(request.NewErrParamRequired("EndTime"))
 22299  	}
 22300  	if s.StartTime == nil {
 22301  		invalidParams.Add(request.NewErrParamRequired("StartTime"))
 22302  	}
 22303  
 22304  	if invalidParams.Len() > 0 {
 22305  		return invalidParams
 22306  	}
 22307  	return nil
 22308  }
 22309  
 22310  // SetEndTime sets the EndTime field's value.
 22311  func (s *TimeWindow) SetEndTime(v time.Time) *TimeWindow {
 22312  	s.EndTime = &v
 22313  	return s
 22314  }
 22315  
 22316  // SetStartTime sets the StartTime field's value.
 22317  func (s *TimeWindow) SetStartTime(v time.Time) *TimeWindow {
 22318  	s.StartTime = &v
 22319  	return s
 22320  }
 22321  
 22322  type UntagResourceInput struct {
 22323  	_ struct{} `type:"structure"`
 22324  
 22325  	// ResourceARN is a required field
 22326  	ResourceARN *string `min:"1" type:"string" required:"true"`
 22327  
 22328  	// TagKeys is a required field
 22329  	TagKeys []*string `min:"1" type:"list" required:"true"`
 22330  }
 22331  
 22332  // String returns the string representation.
 22333  //
 22334  // API parameter values that are decorated as "sensitive" in the API will not
 22335  // be included in the string output. The member name will be present, but the
 22336  // value will be replaced with "sensitive".
 22337  func (s UntagResourceInput) String() string {
 22338  	return awsutil.Prettify(s)
 22339  }
 22340  
 22341  // GoString returns the string representation.
 22342  //
 22343  // API parameter values that are decorated as "sensitive" in the API will not
 22344  // be included in the string output. The member name will be present, but the
 22345  // value will be replaced with "sensitive".
 22346  func (s UntagResourceInput) GoString() string {
 22347  	return s.String()
 22348  }
 22349  
 22350  // Validate inspects the fields of the type to determine if they are valid.
 22351  func (s *UntagResourceInput) Validate() error {
 22352  	invalidParams := request.ErrInvalidParams{Context: "UntagResourceInput"}
 22353  	if s.ResourceARN == nil {
 22354  		invalidParams.Add(request.NewErrParamRequired("ResourceARN"))
 22355  	}
 22356  	if s.ResourceARN != nil && len(*s.ResourceARN) < 1 {
 22357  		invalidParams.Add(request.NewErrParamMinLen("ResourceARN", 1))
 22358  	}
 22359  	if s.TagKeys == nil {
 22360  		invalidParams.Add(request.NewErrParamRequired("TagKeys"))
 22361  	}
 22362  	if s.TagKeys != nil && len(s.TagKeys) < 1 {
 22363  		invalidParams.Add(request.NewErrParamMinLen("TagKeys", 1))
 22364  	}
 22365  
 22366  	if invalidParams.Len() > 0 {
 22367  		return invalidParams
 22368  	}
 22369  	return nil
 22370  }
 22371  
 22372  // SetResourceARN sets the ResourceARN field's value.
 22373  func (s *UntagResourceInput) SetResourceARN(v string) *UntagResourceInput {
 22374  	s.ResourceARN = &v
 22375  	return s
 22376  }
 22377  
 22378  // SetTagKeys sets the TagKeys field's value.
 22379  func (s *UntagResourceInput) SetTagKeys(v []*string) *UntagResourceInput {
 22380  	s.TagKeys = v
 22381  	return s
 22382  }
 22383  
 22384  type UntagResourceOutput struct {
 22385  	_ struct{} `type:"structure"`
 22386  }
 22387  
 22388  // String returns the string representation.
 22389  //
 22390  // API parameter values that are decorated as "sensitive" in the API will not
 22391  // be included in the string output. The member name will be present, but the
 22392  // value will be replaced with "sensitive".
 22393  func (s UntagResourceOutput) String() string {
 22394  	return awsutil.Prettify(s)
 22395  }
 22396  
 22397  // GoString returns the string representation.
 22398  //
 22399  // API parameter values that are decorated as "sensitive" in the API will not
 22400  // be included in the string output. The member name will be present, but the
 22401  // value will be replaced with "sensitive".
 22402  func (s UntagResourceOutput) GoString() string {
 22403  	return s.String()
 22404  }
 22405  
 22406  type UpdateByteMatchSetInput struct {
 22407  	_ struct{} `type:"structure"`
 22408  
 22409  	// The ByteMatchSetId of the ByteMatchSet that you want to update. ByteMatchSetId
 22410  	// is returned by CreateByteMatchSet and by ListByteMatchSets.
 22411  	//
 22412  	// ByteMatchSetId is a required field
 22413  	ByteMatchSetId *string `min:"1" type:"string" required:"true"`
 22414  
 22415  	// The value returned by the most recent call to GetChangeToken.
 22416  	//
 22417  	// ChangeToken is a required field
 22418  	ChangeToken *string `min:"1" type:"string" required:"true"`
 22419  
 22420  	// An array of ByteMatchSetUpdate objects that you want to insert into or delete
 22421  	// from a ByteMatchSet. For more information, see the applicable data types:
 22422  	//
 22423  	//    * ByteMatchSetUpdate: Contains Action and ByteMatchTuple
 22424  	//
 22425  	//    * ByteMatchTuple: Contains FieldToMatch, PositionalConstraint, TargetString,
 22426  	//    and TextTransformation
 22427  	//
 22428  	//    * FieldToMatch: Contains Data and Type
 22429  	//
 22430  	// Updates is a required field
 22431  	Updates []*ByteMatchSetUpdate `min:"1" type:"list" required:"true"`
 22432  }
 22433  
 22434  // String returns the string representation.
 22435  //
 22436  // API parameter values that are decorated as "sensitive" in the API will not
 22437  // be included in the string output. The member name will be present, but the
 22438  // value will be replaced with "sensitive".
 22439  func (s UpdateByteMatchSetInput) String() string {
 22440  	return awsutil.Prettify(s)
 22441  }
 22442  
 22443  // GoString returns the string representation.
 22444  //
 22445  // API parameter values that are decorated as "sensitive" in the API will not
 22446  // be included in the string output. The member name will be present, but the
 22447  // value will be replaced with "sensitive".
 22448  func (s UpdateByteMatchSetInput) GoString() string {
 22449  	return s.String()
 22450  }
 22451  
 22452  // Validate inspects the fields of the type to determine if they are valid.
 22453  func (s *UpdateByteMatchSetInput) Validate() error {
 22454  	invalidParams := request.ErrInvalidParams{Context: "UpdateByteMatchSetInput"}
 22455  	if s.ByteMatchSetId == nil {
 22456  		invalidParams.Add(request.NewErrParamRequired("ByteMatchSetId"))
 22457  	}
 22458  	if s.ByteMatchSetId != nil && len(*s.ByteMatchSetId) < 1 {
 22459  		invalidParams.Add(request.NewErrParamMinLen("ByteMatchSetId", 1))
 22460  	}
 22461  	if s.ChangeToken == nil {
 22462  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 22463  	}
 22464  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 22465  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 22466  	}
 22467  	if s.Updates == nil {
 22468  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 22469  	}
 22470  	if s.Updates != nil && len(s.Updates) < 1 {
 22471  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 22472  	}
 22473  	if s.Updates != nil {
 22474  		for i, v := range s.Updates {
 22475  			if v == nil {
 22476  				continue
 22477  			}
 22478  			if err := v.Validate(); err != nil {
 22479  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 22480  			}
 22481  		}
 22482  	}
 22483  
 22484  	if invalidParams.Len() > 0 {
 22485  		return invalidParams
 22486  	}
 22487  	return nil
 22488  }
 22489  
 22490  // SetByteMatchSetId sets the ByteMatchSetId field's value.
 22491  func (s *UpdateByteMatchSetInput) SetByteMatchSetId(v string) *UpdateByteMatchSetInput {
 22492  	s.ByteMatchSetId = &v
 22493  	return s
 22494  }
 22495  
 22496  // SetChangeToken sets the ChangeToken field's value.
 22497  func (s *UpdateByteMatchSetInput) SetChangeToken(v string) *UpdateByteMatchSetInput {
 22498  	s.ChangeToken = &v
 22499  	return s
 22500  }
 22501  
 22502  // SetUpdates sets the Updates field's value.
 22503  func (s *UpdateByteMatchSetInput) SetUpdates(v []*ByteMatchSetUpdate) *UpdateByteMatchSetInput {
 22504  	s.Updates = v
 22505  	return s
 22506  }
 22507  
 22508  type UpdateByteMatchSetOutput struct {
 22509  	_ struct{} `type:"structure"`
 22510  
 22511  	// The ChangeToken that you used to submit the UpdateByteMatchSet request. You
 22512  	// can also use this value to query the status of the request. For more information,
 22513  	// see GetChangeTokenStatus.
 22514  	ChangeToken *string `min:"1" type:"string"`
 22515  }
 22516  
 22517  // String returns the string representation.
 22518  //
 22519  // API parameter values that are decorated as "sensitive" in the API will not
 22520  // be included in the string output. The member name will be present, but the
 22521  // value will be replaced with "sensitive".
 22522  func (s UpdateByteMatchSetOutput) String() string {
 22523  	return awsutil.Prettify(s)
 22524  }
 22525  
 22526  // GoString returns the string representation.
 22527  //
 22528  // API parameter values that are decorated as "sensitive" in the API will not
 22529  // be included in the string output. The member name will be present, but the
 22530  // value will be replaced with "sensitive".
 22531  func (s UpdateByteMatchSetOutput) GoString() string {
 22532  	return s.String()
 22533  }
 22534  
 22535  // SetChangeToken sets the ChangeToken field's value.
 22536  func (s *UpdateByteMatchSetOutput) SetChangeToken(v string) *UpdateByteMatchSetOutput {
 22537  	s.ChangeToken = &v
 22538  	return s
 22539  }
 22540  
 22541  type UpdateGeoMatchSetInput struct {
 22542  	_ struct{} `type:"structure"`
 22543  
 22544  	// The value returned by the most recent call to GetChangeToken.
 22545  	//
 22546  	// ChangeToken is a required field
 22547  	ChangeToken *string `min:"1" type:"string" required:"true"`
 22548  
 22549  	// The GeoMatchSetId of the GeoMatchSet that you want to update. GeoMatchSetId
 22550  	// is returned by CreateGeoMatchSet and by ListGeoMatchSets.
 22551  	//
 22552  	// GeoMatchSetId is a required field
 22553  	GeoMatchSetId *string `min:"1" type:"string" required:"true"`
 22554  
 22555  	// An array of GeoMatchSetUpdate objects that you want to insert into or delete
 22556  	// from an GeoMatchSet. For more information, see the applicable data types:
 22557  	//
 22558  	//    * GeoMatchSetUpdate: Contains Action and GeoMatchConstraint
 22559  	//
 22560  	//    * GeoMatchConstraint: Contains Type and Value You can have only one Type
 22561  	//    and Value per GeoMatchConstraint. To add multiple countries, include multiple
 22562  	//    GeoMatchSetUpdate objects in your request.
 22563  	//
 22564  	// Updates is a required field
 22565  	Updates []*GeoMatchSetUpdate `min:"1" type:"list" required:"true"`
 22566  }
 22567  
 22568  // String returns the string representation.
 22569  //
 22570  // API parameter values that are decorated as "sensitive" in the API will not
 22571  // be included in the string output. The member name will be present, but the
 22572  // value will be replaced with "sensitive".
 22573  func (s UpdateGeoMatchSetInput) String() string {
 22574  	return awsutil.Prettify(s)
 22575  }
 22576  
 22577  // GoString returns the string representation.
 22578  //
 22579  // API parameter values that are decorated as "sensitive" in the API will not
 22580  // be included in the string output. The member name will be present, but the
 22581  // value will be replaced with "sensitive".
 22582  func (s UpdateGeoMatchSetInput) GoString() string {
 22583  	return s.String()
 22584  }
 22585  
 22586  // Validate inspects the fields of the type to determine if they are valid.
 22587  func (s *UpdateGeoMatchSetInput) Validate() error {
 22588  	invalidParams := request.ErrInvalidParams{Context: "UpdateGeoMatchSetInput"}
 22589  	if s.ChangeToken == nil {
 22590  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 22591  	}
 22592  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 22593  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 22594  	}
 22595  	if s.GeoMatchSetId == nil {
 22596  		invalidParams.Add(request.NewErrParamRequired("GeoMatchSetId"))
 22597  	}
 22598  	if s.GeoMatchSetId != nil && len(*s.GeoMatchSetId) < 1 {
 22599  		invalidParams.Add(request.NewErrParamMinLen("GeoMatchSetId", 1))
 22600  	}
 22601  	if s.Updates == nil {
 22602  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 22603  	}
 22604  	if s.Updates != nil && len(s.Updates) < 1 {
 22605  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 22606  	}
 22607  	if s.Updates != nil {
 22608  		for i, v := range s.Updates {
 22609  			if v == nil {
 22610  				continue
 22611  			}
 22612  			if err := v.Validate(); err != nil {
 22613  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 22614  			}
 22615  		}
 22616  	}
 22617  
 22618  	if invalidParams.Len() > 0 {
 22619  		return invalidParams
 22620  	}
 22621  	return nil
 22622  }
 22623  
 22624  // SetChangeToken sets the ChangeToken field's value.
 22625  func (s *UpdateGeoMatchSetInput) SetChangeToken(v string) *UpdateGeoMatchSetInput {
 22626  	s.ChangeToken = &v
 22627  	return s
 22628  }
 22629  
 22630  // SetGeoMatchSetId sets the GeoMatchSetId field's value.
 22631  func (s *UpdateGeoMatchSetInput) SetGeoMatchSetId(v string) *UpdateGeoMatchSetInput {
 22632  	s.GeoMatchSetId = &v
 22633  	return s
 22634  }
 22635  
 22636  // SetUpdates sets the Updates field's value.
 22637  func (s *UpdateGeoMatchSetInput) SetUpdates(v []*GeoMatchSetUpdate) *UpdateGeoMatchSetInput {
 22638  	s.Updates = v
 22639  	return s
 22640  }
 22641  
 22642  type UpdateGeoMatchSetOutput struct {
 22643  	_ struct{} `type:"structure"`
 22644  
 22645  	// The ChangeToken that you used to submit the UpdateGeoMatchSet request. You
 22646  	// can also use this value to query the status of the request. For more information,
 22647  	// see GetChangeTokenStatus.
 22648  	ChangeToken *string `min:"1" type:"string"`
 22649  }
 22650  
 22651  // String returns the string representation.
 22652  //
 22653  // API parameter values that are decorated as "sensitive" in the API will not
 22654  // be included in the string output. The member name will be present, but the
 22655  // value will be replaced with "sensitive".
 22656  func (s UpdateGeoMatchSetOutput) String() string {
 22657  	return awsutil.Prettify(s)
 22658  }
 22659  
 22660  // GoString returns the string representation.
 22661  //
 22662  // API parameter values that are decorated as "sensitive" in the API will not
 22663  // be included in the string output. The member name will be present, but the
 22664  // value will be replaced with "sensitive".
 22665  func (s UpdateGeoMatchSetOutput) GoString() string {
 22666  	return s.String()
 22667  }
 22668  
 22669  // SetChangeToken sets the ChangeToken field's value.
 22670  func (s *UpdateGeoMatchSetOutput) SetChangeToken(v string) *UpdateGeoMatchSetOutput {
 22671  	s.ChangeToken = &v
 22672  	return s
 22673  }
 22674  
 22675  type UpdateIPSetInput struct {
 22676  	_ struct{} `type:"structure"`
 22677  
 22678  	// The value returned by the most recent call to GetChangeToken.
 22679  	//
 22680  	// ChangeToken is a required field
 22681  	ChangeToken *string `min:"1" type:"string" required:"true"`
 22682  
 22683  	// The IPSetId of the IPSet that you want to update. IPSetId is returned by
 22684  	// CreateIPSet and by ListIPSets.
 22685  	//
 22686  	// IPSetId is a required field
 22687  	IPSetId *string `min:"1" type:"string" required:"true"`
 22688  
 22689  	// An array of IPSetUpdate objects that you want to insert into or delete from
 22690  	// an IPSet. For more information, see the applicable data types:
 22691  	//
 22692  	//    * IPSetUpdate: Contains Action and IPSetDescriptor
 22693  	//
 22694  	//    * IPSetDescriptor: Contains Type and Value
 22695  	//
 22696  	// You can insert a maximum of 1000 addresses in a single request.
 22697  	//
 22698  	// Updates is a required field
 22699  	Updates []*IPSetUpdate `min:"1" type:"list" required:"true"`
 22700  }
 22701  
 22702  // String returns the string representation.
 22703  //
 22704  // API parameter values that are decorated as "sensitive" in the API will not
 22705  // be included in the string output. The member name will be present, but the
 22706  // value will be replaced with "sensitive".
 22707  func (s UpdateIPSetInput) String() string {
 22708  	return awsutil.Prettify(s)
 22709  }
 22710  
 22711  // GoString returns the string representation.
 22712  //
 22713  // API parameter values that are decorated as "sensitive" in the API will not
 22714  // be included in the string output. The member name will be present, but the
 22715  // value will be replaced with "sensitive".
 22716  func (s UpdateIPSetInput) GoString() string {
 22717  	return s.String()
 22718  }
 22719  
 22720  // Validate inspects the fields of the type to determine if they are valid.
 22721  func (s *UpdateIPSetInput) Validate() error {
 22722  	invalidParams := request.ErrInvalidParams{Context: "UpdateIPSetInput"}
 22723  	if s.ChangeToken == nil {
 22724  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 22725  	}
 22726  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 22727  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 22728  	}
 22729  	if s.IPSetId == nil {
 22730  		invalidParams.Add(request.NewErrParamRequired("IPSetId"))
 22731  	}
 22732  	if s.IPSetId != nil && len(*s.IPSetId) < 1 {
 22733  		invalidParams.Add(request.NewErrParamMinLen("IPSetId", 1))
 22734  	}
 22735  	if s.Updates == nil {
 22736  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 22737  	}
 22738  	if s.Updates != nil && len(s.Updates) < 1 {
 22739  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 22740  	}
 22741  	if s.Updates != nil {
 22742  		for i, v := range s.Updates {
 22743  			if v == nil {
 22744  				continue
 22745  			}
 22746  			if err := v.Validate(); err != nil {
 22747  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 22748  			}
 22749  		}
 22750  	}
 22751  
 22752  	if invalidParams.Len() > 0 {
 22753  		return invalidParams
 22754  	}
 22755  	return nil
 22756  }
 22757  
 22758  // SetChangeToken sets the ChangeToken field's value.
 22759  func (s *UpdateIPSetInput) SetChangeToken(v string) *UpdateIPSetInput {
 22760  	s.ChangeToken = &v
 22761  	return s
 22762  }
 22763  
 22764  // SetIPSetId sets the IPSetId field's value.
 22765  func (s *UpdateIPSetInput) SetIPSetId(v string) *UpdateIPSetInput {
 22766  	s.IPSetId = &v
 22767  	return s
 22768  }
 22769  
 22770  // SetUpdates sets the Updates field's value.
 22771  func (s *UpdateIPSetInput) SetUpdates(v []*IPSetUpdate) *UpdateIPSetInput {
 22772  	s.Updates = v
 22773  	return s
 22774  }
 22775  
 22776  type UpdateIPSetOutput struct {
 22777  	_ struct{} `type:"structure"`
 22778  
 22779  	// The ChangeToken that you used to submit the UpdateIPSet request. You can
 22780  	// also use this value to query the status of the request. For more information,
 22781  	// see GetChangeTokenStatus.
 22782  	ChangeToken *string `min:"1" type:"string"`
 22783  }
 22784  
 22785  // String returns the string representation.
 22786  //
 22787  // API parameter values that are decorated as "sensitive" in the API will not
 22788  // be included in the string output. The member name will be present, but the
 22789  // value will be replaced with "sensitive".
 22790  func (s UpdateIPSetOutput) String() string {
 22791  	return awsutil.Prettify(s)
 22792  }
 22793  
 22794  // GoString returns the string representation.
 22795  //
 22796  // API parameter values that are decorated as "sensitive" in the API will not
 22797  // be included in the string output. The member name will be present, but the
 22798  // value will be replaced with "sensitive".
 22799  func (s UpdateIPSetOutput) GoString() string {
 22800  	return s.String()
 22801  }
 22802  
 22803  // SetChangeToken sets the ChangeToken field's value.
 22804  func (s *UpdateIPSetOutput) SetChangeToken(v string) *UpdateIPSetOutput {
 22805  	s.ChangeToken = &v
 22806  	return s
 22807  }
 22808  
 22809  type UpdateRateBasedRuleInput struct {
 22810  	_ struct{} `type:"structure"`
 22811  
 22812  	// The value returned by the most recent call to GetChangeToken.
 22813  	//
 22814  	// ChangeToken is a required field
 22815  	ChangeToken *string `min:"1" type:"string" required:"true"`
 22816  
 22817  	// The maximum number of requests, which have an identical value in the field
 22818  	// specified by the RateKey, allowed in a five-minute period. If the number
 22819  	// of requests exceeds the RateLimit and the other predicates specified in the
 22820  	// rule are also met, AWS WAF triggers the action that is specified for this
 22821  	// rule.
 22822  	//
 22823  	// RateLimit is a required field
 22824  	RateLimit *int64 `min:"100" type:"long" required:"true"`
 22825  
 22826  	// The RuleId of the RateBasedRule that you want to update. RuleId is returned
 22827  	// by CreateRateBasedRule and by ListRateBasedRules.
 22828  	//
 22829  	// RuleId is a required field
 22830  	RuleId *string `min:"1" type:"string" required:"true"`
 22831  
 22832  	// An array of RuleUpdate objects that you want to insert into or delete from
 22833  	// a RateBasedRule.
 22834  	//
 22835  	// Updates is a required field
 22836  	Updates []*RuleUpdate `type:"list" required:"true"`
 22837  }
 22838  
 22839  // String returns the string representation.
 22840  //
 22841  // API parameter values that are decorated as "sensitive" in the API will not
 22842  // be included in the string output. The member name will be present, but the
 22843  // value will be replaced with "sensitive".
 22844  func (s UpdateRateBasedRuleInput) String() string {
 22845  	return awsutil.Prettify(s)
 22846  }
 22847  
 22848  // GoString returns the string representation.
 22849  //
 22850  // API parameter values that are decorated as "sensitive" in the API will not
 22851  // be included in the string output. The member name will be present, but the
 22852  // value will be replaced with "sensitive".
 22853  func (s UpdateRateBasedRuleInput) GoString() string {
 22854  	return s.String()
 22855  }
 22856  
 22857  // Validate inspects the fields of the type to determine if they are valid.
 22858  func (s *UpdateRateBasedRuleInput) Validate() error {
 22859  	invalidParams := request.ErrInvalidParams{Context: "UpdateRateBasedRuleInput"}
 22860  	if s.ChangeToken == nil {
 22861  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 22862  	}
 22863  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 22864  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 22865  	}
 22866  	if s.RateLimit == nil {
 22867  		invalidParams.Add(request.NewErrParamRequired("RateLimit"))
 22868  	}
 22869  	if s.RateLimit != nil && *s.RateLimit < 100 {
 22870  		invalidParams.Add(request.NewErrParamMinValue("RateLimit", 100))
 22871  	}
 22872  	if s.RuleId == nil {
 22873  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 22874  	}
 22875  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 22876  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 22877  	}
 22878  	if s.Updates == nil {
 22879  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 22880  	}
 22881  	if s.Updates != nil {
 22882  		for i, v := range s.Updates {
 22883  			if v == nil {
 22884  				continue
 22885  			}
 22886  			if err := v.Validate(); err != nil {
 22887  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 22888  			}
 22889  		}
 22890  	}
 22891  
 22892  	if invalidParams.Len() > 0 {
 22893  		return invalidParams
 22894  	}
 22895  	return nil
 22896  }
 22897  
 22898  // SetChangeToken sets the ChangeToken field's value.
 22899  func (s *UpdateRateBasedRuleInput) SetChangeToken(v string) *UpdateRateBasedRuleInput {
 22900  	s.ChangeToken = &v
 22901  	return s
 22902  }
 22903  
 22904  // SetRateLimit sets the RateLimit field's value.
 22905  func (s *UpdateRateBasedRuleInput) SetRateLimit(v int64) *UpdateRateBasedRuleInput {
 22906  	s.RateLimit = &v
 22907  	return s
 22908  }
 22909  
 22910  // SetRuleId sets the RuleId field's value.
 22911  func (s *UpdateRateBasedRuleInput) SetRuleId(v string) *UpdateRateBasedRuleInput {
 22912  	s.RuleId = &v
 22913  	return s
 22914  }
 22915  
 22916  // SetUpdates sets the Updates field's value.
 22917  func (s *UpdateRateBasedRuleInput) SetUpdates(v []*RuleUpdate) *UpdateRateBasedRuleInput {
 22918  	s.Updates = v
 22919  	return s
 22920  }
 22921  
 22922  type UpdateRateBasedRuleOutput struct {
 22923  	_ struct{} `type:"structure"`
 22924  
 22925  	// The ChangeToken that you used to submit the UpdateRateBasedRule request.
 22926  	// You can also use this value to query the status of the request. For more
 22927  	// information, see GetChangeTokenStatus.
 22928  	ChangeToken *string `min:"1" type:"string"`
 22929  }
 22930  
 22931  // String returns the string representation.
 22932  //
 22933  // API parameter values that are decorated as "sensitive" in the API will not
 22934  // be included in the string output. The member name will be present, but the
 22935  // value will be replaced with "sensitive".
 22936  func (s UpdateRateBasedRuleOutput) String() string {
 22937  	return awsutil.Prettify(s)
 22938  }
 22939  
 22940  // GoString returns the string representation.
 22941  //
 22942  // API parameter values that are decorated as "sensitive" in the API will not
 22943  // be included in the string output. The member name will be present, but the
 22944  // value will be replaced with "sensitive".
 22945  func (s UpdateRateBasedRuleOutput) GoString() string {
 22946  	return s.String()
 22947  }
 22948  
 22949  // SetChangeToken sets the ChangeToken field's value.
 22950  func (s *UpdateRateBasedRuleOutput) SetChangeToken(v string) *UpdateRateBasedRuleOutput {
 22951  	s.ChangeToken = &v
 22952  	return s
 22953  }
 22954  
 22955  type UpdateRegexMatchSetInput struct {
 22956  	_ struct{} `type:"structure"`
 22957  
 22958  	// The value returned by the most recent call to GetChangeToken.
 22959  	//
 22960  	// ChangeToken is a required field
 22961  	ChangeToken *string `min:"1" type:"string" required:"true"`
 22962  
 22963  	// The RegexMatchSetId of the RegexMatchSet that you want to update. RegexMatchSetId
 22964  	// is returned by CreateRegexMatchSet and by ListRegexMatchSets.
 22965  	//
 22966  	// RegexMatchSetId is a required field
 22967  	RegexMatchSetId *string `min:"1" type:"string" required:"true"`
 22968  
 22969  	// An array of RegexMatchSetUpdate objects that you want to insert into or delete
 22970  	// from a RegexMatchSet. For more information, see RegexMatchTuple.
 22971  	//
 22972  	// Updates is a required field
 22973  	Updates []*RegexMatchSetUpdate `min:"1" type:"list" required:"true"`
 22974  }
 22975  
 22976  // String returns the string representation.
 22977  //
 22978  // API parameter values that are decorated as "sensitive" in the API will not
 22979  // be included in the string output. The member name will be present, but the
 22980  // value will be replaced with "sensitive".
 22981  func (s UpdateRegexMatchSetInput) String() string {
 22982  	return awsutil.Prettify(s)
 22983  }
 22984  
 22985  // GoString returns the string representation.
 22986  //
 22987  // API parameter values that are decorated as "sensitive" in the API will not
 22988  // be included in the string output. The member name will be present, but the
 22989  // value will be replaced with "sensitive".
 22990  func (s UpdateRegexMatchSetInput) GoString() string {
 22991  	return s.String()
 22992  }
 22993  
 22994  // Validate inspects the fields of the type to determine if they are valid.
 22995  func (s *UpdateRegexMatchSetInput) Validate() error {
 22996  	invalidParams := request.ErrInvalidParams{Context: "UpdateRegexMatchSetInput"}
 22997  	if s.ChangeToken == nil {
 22998  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 22999  	}
 23000  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 23001  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 23002  	}
 23003  	if s.RegexMatchSetId == nil {
 23004  		invalidParams.Add(request.NewErrParamRequired("RegexMatchSetId"))
 23005  	}
 23006  	if s.RegexMatchSetId != nil && len(*s.RegexMatchSetId) < 1 {
 23007  		invalidParams.Add(request.NewErrParamMinLen("RegexMatchSetId", 1))
 23008  	}
 23009  	if s.Updates == nil {
 23010  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 23011  	}
 23012  	if s.Updates != nil && len(s.Updates) < 1 {
 23013  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 23014  	}
 23015  	if s.Updates != nil {
 23016  		for i, v := range s.Updates {
 23017  			if v == nil {
 23018  				continue
 23019  			}
 23020  			if err := v.Validate(); err != nil {
 23021  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 23022  			}
 23023  		}
 23024  	}
 23025  
 23026  	if invalidParams.Len() > 0 {
 23027  		return invalidParams
 23028  	}
 23029  	return nil
 23030  }
 23031  
 23032  // SetChangeToken sets the ChangeToken field's value.
 23033  func (s *UpdateRegexMatchSetInput) SetChangeToken(v string) *UpdateRegexMatchSetInput {
 23034  	s.ChangeToken = &v
 23035  	return s
 23036  }
 23037  
 23038  // SetRegexMatchSetId sets the RegexMatchSetId field's value.
 23039  func (s *UpdateRegexMatchSetInput) SetRegexMatchSetId(v string) *UpdateRegexMatchSetInput {
 23040  	s.RegexMatchSetId = &v
 23041  	return s
 23042  }
 23043  
 23044  // SetUpdates sets the Updates field's value.
 23045  func (s *UpdateRegexMatchSetInput) SetUpdates(v []*RegexMatchSetUpdate) *UpdateRegexMatchSetInput {
 23046  	s.Updates = v
 23047  	return s
 23048  }
 23049  
 23050  type UpdateRegexMatchSetOutput struct {
 23051  	_ struct{} `type:"structure"`
 23052  
 23053  	// The ChangeToken that you used to submit the UpdateRegexMatchSet request.
 23054  	// You can also use this value to query the status of the request. For more
 23055  	// information, see GetChangeTokenStatus.
 23056  	ChangeToken *string `min:"1" type:"string"`
 23057  }
 23058  
 23059  // String returns the string representation.
 23060  //
 23061  // API parameter values that are decorated as "sensitive" in the API will not
 23062  // be included in the string output. The member name will be present, but the
 23063  // value will be replaced with "sensitive".
 23064  func (s UpdateRegexMatchSetOutput) String() string {
 23065  	return awsutil.Prettify(s)
 23066  }
 23067  
 23068  // GoString returns the string representation.
 23069  //
 23070  // API parameter values that are decorated as "sensitive" in the API will not
 23071  // be included in the string output. The member name will be present, but the
 23072  // value will be replaced with "sensitive".
 23073  func (s UpdateRegexMatchSetOutput) GoString() string {
 23074  	return s.String()
 23075  }
 23076  
 23077  // SetChangeToken sets the ChangeToken field's value.
 23078  func (s *UpdateRegexMatchSetOutput) SetChangeToken(v string) *UpdateRegexMatchSetOutput {
 23079  	s.ChangeToken = &v
 23080  	return s
 23081  }
 23082  
 23083  type UpdateRegexPatternSetInput struct {
 23084  	_ struct{} `type:"structure"`
 23085  
 23086  	// The value returned by the most recent call to GetChangeToken.
 23087  	//
 23088  	// ChangeToken is a required field
 23089  	ChangeToken *string `min:"1" type:"string" required:"true"`
 23090  
 23091  	// The RegexPatternSetId of the RegexPatternSet that you want to update. RegexPatternSetId
 23092  	// is returned by CreateRegexPatternSet and by ListRegexPatternSets.
 23093  	//
 23094  	// RegexPatternSetId is a required field
 23095  	RegexPatternSetId *string `min:"1" type:"string" required:"true"`
 23096  
 23097  	// An array of RegexPatternSetUpdate objects that you want to insert into or
 23098  	// delete from a RegexPatternSet.
 23099  	//
 23100  	// Updates is a required field
 23101  	Updates []*RegexPatternSetUpdate `min:"1" type:"list" required:"true"`
 23102  }
 23103  
 23104  // String returns the string representation.
 23105  //
 23106  // API parameter values that are decorated as "sensitive" in the API will not
 23107  // be included in the string output. The member name will be present, but the
 23108  // value will be replaced with "sensitive".
 23109  func (s UpdateRegexPatternSetInput) String() string {
 23110  	return awsutil.Prettify(s)
 23111  }
 23112  
 23113  // GoString returns the string representation.
 23114  //
 23115  // API parameter values that are decorated as "sensitive" in the API will not
 23116  // be included in the string output. The member name will be present, but the
 23117  // value will be replaced with "sensitive".
 23118  func (s UpdateRegexPatternSetInput) GoString() string {
 23119  	return s.String()
 23120  }
 23121  
 23122  // Validate inspects the fields of the type to determine if they are valid.
 23123  func (s *UpdateRegexPatternSetInput) Validate() error {
 23124  	invalidParams := request.ErrInvalidParams{Context: "UpdateRegexPatternSetInput"}
 23125  	if s.ChangeToken == nil {
 23126  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 23127  	}
 23128  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 23129  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 23130  	}
 23131  	if s.RegexPatternSetId == nil {
 23132  		invalidParams.Add(request.NewErrParamRequired("RegexPatternSetId"))
 23133  	}
 23134  	if s.RegexPatternSetId != nil && len(*s.RegexPatternSetId) < 1 {
 23135  		invalidParams.Add(request.NewErrParamMinLen("RegexPatternSetId", 1))
 23136  	}
 23137  	if s.Updates == nil {
 23138  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 23139  	}
 23140  	if s.Updates != nil && len(s.Updates) < 1 {
 23141  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 23142  	}
 23143  	if s.Updates != nil {
 23144  		for i, v := range s.Updates {
 23145  			if v == nil {
 23146  				continue
 23147  			}
 23148  			if err := v.Validate(); err != nil {
 23149  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 23150  			}
 23151  		}
 23152  	}
 23153  
 23154  	if invalidParams.Len() > 0 {
 23155  		return invalidParams
 23156  	}
 23157  	return nil
 23158  }
 23159  
 23160  // SetChangeToken sets the ChangeToken field's value.
 23161  func (s *UpdateRegexPatternSetInput) SetChangeToken(v string) *UpdateRegexPatternSetInput {
 23162  	s.ChangeToken = &v
 23163  	return s
 23164  }
 23165  
 23166  // SetRegexPatternSetId sets the RegexPatternSetId field's value.
 23167  func (s *UpdateRegexPatternSetInput) SetRegexPatternSetId(v string) *UpdateRegexPatternSetInput {
 23168  	s.RegexPatternSetId = &v
 23169  	return s
 23170  }
 23171  
 23172  // SetUpdates sets the Updates field's value.
 23173  func (s *UpdateRegexPatternSetInput) SetUpdates(v []*RegexPatternSetUpdate) *UpdateRegexPatternSetInput {
 23174  	s.Updates = v
 23175  	return s
 23176  }
 23177  
 23178  type UpdateRegexPatternSetOutput struct {
 23179  	_ struct{} `type:"structure"`
 23180  
 23181  	// The ChangeToken that you used to submit the UpdateRegexPatternSet request.
 23182  	// You can also use this value to query the status of the request. For more
 23183  	// information, see GetChangeTokenStatus.
 23184  	ChangeToken *string `min:"1" type:"string"`
 23185  }
 23186  
 23187  // String returns the string representation.
 23188  //
 23189  // API parameter values that are decorated as "sensitive" in the API will not
 23190  // be included in the string output. The member name will be present, but the
 23191  // value will be replaced with "sensitive".
 23192  func (s UpdateRegexPatternSetOutput) String() string {
 23193  	return awsutil.Prettify(s)
 23194  }
 23195  
 23196  // GoString returns the string representation.
 23197  //
 23198  // API parameter values that are decorated as "sensitive" in the API will not
 23199  // be included in the string output. The member name will be present, but the
 23200  // value will be replaced with "sensitive".
 23201  func (s UpdateRegexPatternSetOutput) GoString() string {
 23202  	return s.String()
 23203  }
 23204  
 23205  // SetChangeToken sets the ChangeToken field's value.
 23206  func (s *UpdateRegexPatternSetOutput) SetChangeToken(v string) *UpdateRegexPatternSetOutput {
 23207  	s.ChangeToken = &v
 23208  	return s
 23209  }
 23210  
 23211  type UpdateRuleGroupInput struct {
 23212  	_ struct{} `type:"structure"`
 23213  
 23214  	// The value returned by the most recent call to GetChangeToken.
 23215  	//
 23216  	// ChangeToken is a required field
 23217  	ChangeToken *string `min:"1" type:"string" required:"true"`
 23218  
 23219  	// The RuleGroupId of the RuleGroup that you want to update. RuleGroupId is
 23220  	// returned by CreateRuleGroup and by ListRuleGroups.
 23221  	//
 23222  	// RuleGroupId is a required field
 23223  	RuleGroupId *string `min:"1" type:"string" required:"true"`
 23224  
 23225  	// An array of RuleGroupUpdate objects that you want to insert into or delete
 23226  	// from a RuleGroup.
 23227  	//
 23228  	// You can only insert REGULAR rules into a rule group.
 23229  	//
 23230  	// ActivatedRule|OverrideAction applies only when updating or adding a RuleGroup
 23231  	// to a WebACL. In this case you do not use ActivatedRule|Action. For all other
 23232  	// update requests, ActivatedRule|Action is used instead of ActivatedRule|OverrideAction.
 23233  	//
 23234  	// Updates is a required field
 23235  	Updates []*RuleGroupUpdate `min:"1" type:"list" required:"true"`
 23236  }
 23237  
 23238  // String returns the string representation.
 23239  //
 23240  // API parameter values that are decorated as "sensitive" in the API will not
 23241  // be included in the string output. The member name will be present, but the
 23242  // value will be replaced with "sensitive".
 23243  func (s UpdateRuleGroupInput) String() string {
 23244  	return awsutil.Prettify(s)
 23245  }
 23246  
 23247  // GoString returns the string representation.
 23248  //
 23249  // API parameter values that are decorated as "sensitive" in the API will not
 23250  // be included in the string output. The member name will be present, but the
 23251  // value will be replaced with "sensitive".
 23252  func (s UpdateRuleGroupInput) GoString() string {
 23253  	return s.String()
 23254  }
 23255  
 23256  // Validate inspects the fields of the type to determine if they are valid.
 23257  func (s *UpdateRuleGroupInput) Validate() error {
 23258  	invalidParams := request.ErrInvalidParams{Context: "UpdateRuleGroupInput"}
 23259  	if s.ChangeToken == nil {
 23260  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 23261  	}
 23262  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 23263  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 23264  	}
 23265  	if s.RuleGroupId == nil {
 23266  		invalidParams.Add(request.NewErrParamRequired("RuleGroupId"))
 23267  	}
 23268  	if s.RuleGroupId != nil && len(*s.RuleGroupId) < 1 {
 23269  		invalidParams.Add(request.NewErrParamMinLen("RuleGroupId", 1))
 23270  	}
 23271  	if s.Updates == nil {
 23272  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 23273  	}
 23274  	if s.Updates != nil && len(s.Updates) < 1 {
 23275  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 23276  	}
 23277  	if s.Updates != nil {
 23278  		for i, v := range s.Updates {
 23279  			if v == nil {
 23280  				continue
 23281  			}
 23282  			if err := v.Validate(); err != nil {
 23283  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 23284  			}
 23285  		}
 23286  	}
 23287  
 23288  	if invalidParams.Len() > 0 {
 23289  		return invalidParams
 23290  	}
 23291  	return nil
 23292  }
 23293  
 23294  // SetChangeToken sets the ChangeToken field's value.
 23295  func (s *UpdateRuleGroupInput) SetChangeToken(v string) *UpdateRuleGroupInput {
 23296  	s.ChangeToken = &v
 23297  	return s
 23298  }
 23299  
 23300  // SetRuleGroupId sets the RuleGroupId field's value.
 23301  func (s *UpdateRuleGroupInput) SetRuleGroupId(v string) *UpdateRuleGroupInput {
 23302  	s.RuleGroupId = &v
 23303  	return s
 23304  }
 23305  
 23306  // SetUpdates sets the Updates field's value.
 23307  func (s *UpdateRuleGroupInput) SetUpdates(v []*RuleGroupUpdate) *UpdateRuleGroupInput {
 23308  	s.Updates = v
 23309  	return s
 23310  }
 23311  
 23312  type UpdateRuleGroupOutput struct {
 23313  	_ struct{} `type:"structure"`
 23314  
 23315  	// The ChangeToken that you used to submit the UpdateRuleGroup request. You
 23316  	// can also use this value to query the status of the request. For more information,
 23317  	// see GetChangeTokenStatus.
 23318  	ChangeToken *string `min:"1" type:"string"`
 23319  }
 23320  
 23321  // String returns the string representation.
 23322  //
 23323  // API parameter values that are decorated as "sensitive" in the API will not
 23324  // be included in the string output. The member name will be present, but the
 23325  // value will be replaced with "sensitive".
 23326  func (s UpdateRuleGroupOutput) String() string {
 23327  	return awsutil.Prettify(s)
 23328  }
 23329  
 23330  // GoString returns the string representation.
 23331  //
 23332  // API parameter values that are decorated as "sensitive" in the API will not
 23333  // be included in the string output. The member name will be present, but the
 23334  // value will be replaced with "sensitive".
 23335  func (s UpdateRuleGroupOutput) GoString() string {
 23336  	return s.String()
 23337  }
 23338  
 23339  // SetChangeToken sets the ChangeToken field's value.
 23340  func (s *UpdateRuleGroupOutput) SetChangeToken(v string) *UpdateRuleGroupOutput {
 23341  	s.ChangeToken = &v
 23342  	return s
 23343  }
 23344  
 23345  type UpdateRuleInput struct {
 23346  	_ struct{} `type:"structure"`
 23347  
 23348  	// The value returned by the most recent call to GetChangeToken.
 23349  	//
 23350  	// ChangeToken is a required field
 23351  	ChangeToken *string `min:"1" type:"string" required:"true"`
 23352  
 23353  	// The RuleId of the Rule that you want to update. RuleId is returned by CreateRule
 23354  	// and by ListRules.
 23355  	//
 23356  	// RuleId is a required field
 23357  	RuleId *string `min:"1" type:"string" required:"true"`
 23358  
 23359  	// An array of RuleUpdate objects that you want to insert into or delete from
 23360  	// a Rule. For more information, see the applicable data types:
 23361  	//
 23362  	//    * RuleUpdate: Contains Action and Predicate
 23363  	//
 23364  	//    * Predicate: Contains DataId, Negated, and Type
 23365  	//
 23366  	//    * FieldToMatch: Contains Data and Type
 23367  	//
 23368  	// Updates is a required field
 23369  	Updates []*RuleUpdate `type:"list" required:"true"`
 23370  }
 23371  
 23372  // String returns the string representation.
 23373  //
 23374  // API parameter values that are decorated as "sensitive" in the API will not
 23375  // be included in the string output. The member name will be present, but the
 23376  // value will be replaced with "sensitive".
 23377  func (s UpdateRuleInput) String() string {
 23378  	return awsutil.Prettify(s)
 23379  }
 23380  
 23381  // GoString returns the string representation.
 23382  //
 23383  // API parameter values that are decorated as "sensitive" in the API will not
 23384  // be included in the string output. The member name will be present, but the
 23385  // value will be replaced with "sensitive".
 23386  func (s UpdateRuleInput) GoString() string {
 23387  	return s.String()
 23388  }
 23389  
 23390  // Validate inspects the fields of the type to determine if they are valid.
 23391  func (s *UpdateRuleInput) Validate() error {
 23392  	invalidParams := request.ErrInvalidParams{Context: "UpdateRuleInput"}
 23393  	if s.ChangeToken == nil {
 23394  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 23395  	}
 23396  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 23397  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 23398  	}
 23399  	if s.RuleId == nil {
 23400  		invalidParams.Add(request.NewErrParamRequired("RuleId"))
 23401  	}
 23402  	if s.RuleId != nil && len(*s.RuleId) < 1 {
 23403  		invalidParams.Add(request.NewErrParamMinLen("RuleId", 1))
 23404  	}
 23405  	if s.Updates == nil {
 23406  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 23407  	}
 23408  	if s.Updates != nil {
 23409  		for i, v := range s.Updates {
 23410  			if v == nil {
 23411  				continue
 23412  			}
 23413  			if err := v.Validate(); err != nil {
 23414  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 23415  			}
 23416  		}
 23417  	}
 23418  
 23419  	if invalidParams.Len() > 0 {
 23420  		return invalidParams
 23421  	}
 23422  	return nil
 23423  }
 23424  
 23425  // SetChangeToken sets the ChangeToken field's value.
 23426  func (s *UpdateRuleInput) SetChangeToken(v string) *UpdateRuleInput {
 23427  	s.ChangeToken = &v
 23428  	return s
 23429  }
 23430  
 23431  // SetRuleId sets the RuleId field's value.
 23432  func (s *UpdateRuleInput) SetRuleId(v string) *UpdateRuleInput {
 23433  	s.RuleId = &v
 23434  	return s
 23435  }
 23436  
 23437  // SetUpdates sets the Updates field's value.
 23438  func (s *UpdateRuleInput) SetUpdates(v []*RuleUpdate) *UpdateRuleInput {
 23439  	s.Updates = v
 23440  	return s
 23441  }
 23442  
 23443  type UpdateRuleOutput struct {
 23444  	_ struct{} `type:"structure"`
 23445  
 23446  	// The ChangeToken that you used to submit the UpdateRule request. You can also
 23447  	// use this value to query the status of the request. For more information,
 23448  	// see GetChangeTokenStatus.
 23449  	ChangeToken *string `min:"1" type:"string"`
 23450  }
 23451  
 23452  // String returns the string representation.
 23453  //
 23454  // API parameter values that are decorated as "sensitive" in the API will not
 23455  // be included in the string output. The member name will be present, but the
 23456  // value will be replaced with "sensitive".
 23457  func (s UpdateRuleOutput) String() string {
 23458  	return awsutil.Prettify(s)
 23459  }
 23460  
 23461  // GoString returns the string representation.
 23462  //
 23463  // API parameter values that are decorated as "sensitive" in the API will not
 23464  // be included in the string output. The member name will be present, but the
 23465  // value will be replaced with "sensitive".
 23466  func (s UpdateRuleOutput) GoString() string {
 23467  	return s.String()
 23468  }
 23469  
 23470  // SetChangeToken sets the ChangeToken field's value.
 23471  func (s *UpdateRuleOutput) SetChangeToken(v string) *UpdateRuleOutput {
 23472  	s.ChangeToken = &v
 23473  	return s
 23474  }
 23475  
 23476  type UpdateSizeConstraintSetInput struct {
 23477  	_ struct{} `type:"structure"`
 23478  
 23479  	// The value returned by the most recent call to GetChangeToken.
 23480  	//
 23481  	// ChangeToken is a required field
 23482  	ChangeToken *string `min:"1" type:"string" required:"true"`
 23483  
 23484  	// The SizeConstraintSetId of the SizeConstraintSet that you want to update.
 23485  	// SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.
 23486  	//
 23487  	// SizeConstraintSetId is a required field
 23488  	SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
 23489  
 23490  	// An array of SizeConstraintSetUpdate objects that you want to insert into
 23491  	// or delete from a SizeConstraintSet. For more information, see the applicable
 23492  	// data types:
 23493  	//
 23494  	//    * SizeConstraintSetUpdate: Contains Action and SizeConstraint
 23495  	//
 23496  	//    * SizeConstraint: Contains FieldToMatch, TextTransformation, ComparisonOperator,
 23497  	//    and Size
 23498  	//
 23499  	//    * FieldToMatch: Contains Data and Type
 23500  	//
 23501  	// Updates is a required field
 23502  	Updates []*SizeConstraintSetUpdate `min:"1" type:"list" required:"true"`
 23503  }
 23504  
 23505  // String returns the string representation.
 23506  //
 23507  // API parameter values that are decorated as "sensitive" in the API will not
 23508  // be included in the string output. The member name will be present, but the
 23509  // value will be replaced with "sensitive".
 23510  func (s UpdateSizeConstraintSetInput) String() string {
 23511  	return awsutil.Prettify(s)
 23512  }
 23513  
 23514  // GoString returns the string representation.
 23515  //
 23516  // API parameter values that are decorated as "sensitive" in the API will not
 23517  // be included in the string output. The member name will be present, but the
 23518  // value will be replaced with "sensitive".
 23519  func (s UpdateSizeConstraintSetInput) GoString() string {
 23520  	return s.String()
 23521  }
 23522  
 23523  // Validate inspects the fields of the type to determine if they are valid.
 23524  func (s *UpdateSizeConstraintSetInput) Validate() error {
 23525  	invalidParams := request.ErrInvalidParams{Context: "UpdateSizeConstraintSetInput"}
 23526  	if s.ChangeToken == nil {
 23527  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 23528  	}
 23529  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 23530  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 23531  	}
 23532  	if s.SizeConstraintSetId == nil {
 23533  		invalidParams.Add(request.NewErrParamRequired("SizeConstraintSetId"))
 23534  	}
 23535  	if s.SizeConstraintSetId != nil && len(*s.SizeConstraintSetId) < 1 {
 23536  		invalidParams.Add(request.NewErrParamMinLen("SizeConstraintSetId", 1))
 23537  	}
 23538  	if s.Updates == nil {
 23539  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 23540  	}
 23541  	if s.Updates != nil && len(s.Updates) < 1 {
 23542  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 23543  	}
 23544  	if s.Updates != nil {
 23545  		for i, v := range s.Updates {
 23546  			if v == nil {
 23547  				continue
 23548  			}
 23549  			if err := v.Validate(); err != nil {
 23550  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 23551  			}
 23552  		}
 23553  	}
 23554  
 23555  	if invalidParams.Len() > 0 {
 23556  		return invalidParams
 23557  	}
 23558  	return nil
 23559  }
 23560  
 23561  // SetChangeToken sets the ChangeToken field's value.
 23562  func (s *UpdateSizeConstraintSetInput) SetChangeToken(v string) *UpdateSizeConstraintSetInput {
 23563  	s.ChangeToken = &v
 23564  	return s
 23565  }
 23566  
 23567  // SetSizeConstraintSetId sets the SizeConstraintSetId field's value.
 23568  func (s *UpdateSizeConstraintSetInput) SetSizeConstraintSetId(v string) *UpdateSizeConstraintSetInput {
 23569  	s.SizeConstraintSetId = &v
 23570  	return s
 23571  }
 23572  
 23573  // SetUpdates sets the Updates field's value.
 23574  func (s *UpdateSizeConstraintSetInput) SetUpdates(v []*SizeConstraintSetUpdate) *UpdateSizeConstraintSetInput {
 23575  	s.Updates = v
 23576  	return s
 23577  }
 23578  
 23579  type UpdateSizeConstraintSetOutput struct {
 23580  	_ struct{} `type:"structure"`
 23581  
 23582  	// The ChangeToken that you used to submit the UpdateSizeConstraintSet request.
 23583  	// You can also use this value to query the status of the request. For more
 23584  	// information, see GetChangeTokenStatus.
 23585  	ChangeToken *string `min:"1" type:"string"`
 23586  }
 23587  
 23588  // String returns the string representation.
 23589  //
 23590  // API parameter values that are decorated as "sensitive" in the API will not
 23591  // be included in the string output. The member name will be present, but the
 23592  // value will be replaced with "sensitive".
 23593  func (s UpdateSizeConstraintSetOutput) String() string {
 23594  	return awsutil.Prettify(s)
 23595  }
 23596  
 23597  // GoString returns the string representation.
 23598  //
 23599  // API parameter values that are decorated as "sensitive" in the API will not
 23600  // be included in the string output. The member name will be present, but the
 23601  // value will be replaced with "sensitive".
 23602  func (s UpdateSizeConstraintSetOutput) GoString() string {
 23603  	return s.String()
 23604  }
 23605  
 23606  // SetChangeToken sets the ChangeToken field's value.
 23607  func (s *UpdateSizeConstraintSetOutput) SetChangeToken(v string) *UpdateSizeConstraintSetOutput {
 23608  	s.ChangeToken = &v
 23609  	return s
 23610  }
 23611  
 23612  // A request to update a SqlInjectionMatchSet.
 23613  type UpdateSqlInjectionMatchSetInput struct {
 23614  	_ struct{} `type:"structure"`
 23615  
 23616  	// The value returned by the most recent call to GetChangeToken.
 23617  	//
 23618  	// ChangeToken is a required field
 23619  	ChangeToken *string `min:"1" type:"string" required:"true"`
 23620  
 23621  	// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to update.
 23622  	// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.
 23623  	//
 23624  	// SqlInjectionMatchSetId is a required field
 23625  	SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
 23626  
 23627  	// An array of SqlInjectionMatchSetUpdate objects that you want to insert into
 23628  	// or delete from a SqlInjectionMatchSet. For more information, see the applicable
 23629  	// data types:
 23630  	//
 23631  	//    * SqlInjectionMatchSetUpdate: Contains Action and SqlInjectionMatchTuple
 23632  	//
 23633  	//    * SqlInjectionMatchTuple: Contains FieldToMatch and TextTransformation
 23634  	//
 23635  	//    * FieldToMatch: Contains Data and Type
 23636  	//
 23637  	// Updates is a required field
 23638  	Updates []*SqlInjectionMatchSetUpdate `min:"1" type:"list" required:"true"`
 23639  }
 23640  
 23641  // String returns the string representation.
 23642  //
 23643  // API parameter values that are decorated as "sensitive" in the API will not
 23644  // be included in the string output. The member name will be present, but the
 23645  // value will be replaced with "sensitive".
 23646  func (s UpdateSqlInjectionMatchSetInput) String() string {
 23647  	return awsutil.Prettify(s)
 23648  }
 23649  
 23650  // GoString returns the string representation.
 23651  //
 23652  // API parameter values that are decorated as "sensitive" in the API will not
 23653  // be included in the string output. The member name will be present, but the
 23654  // value will be replaced with "sensitive".
 23655  func (s UpdateSqlInjectionMatchSetInput) GoString() string {
 23656  	return s.String()
 23657  }
 23658  
 23659  // Validate inspects the fields of the type to determine if they are valid.
 23660  func (s *UpdateSqlInjectionMatchSetInput) Validate() error {
 23661  	invalidParams := request.ErrInvalidParams{Context: "UpdateSqlInjectionMatchSetInput"}
 23662  	if s.ChangeToken == nil {
 23663  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 23664  	}
 23665  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 23666  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 23667  	}
 23668  	if s.SqlInjectionMatchSetId == nil {
 23669  		invalidParams.Add(request.NewErrParamRequired("SqlInjectionMatchSetId"))
 23670  	}
 23671  	if s.SqlInjectionMatchSetId != nil && len(*s.SqlInjectionMatchSetId) < 1 {
 23672  		invalidParams.Add(request.NewErrParamMinLen("SqlInjectionMatchSetId", 1))
 23673  	}
 23674  	if s.Updates == nil {
 23675  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 23676  	}
 23677  	if s.Updates != nil && len(s.Updates) < 1 {
 23678  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 23679  	}
 23680  	if s.Updates != nil {
 23681  		for i, v := range s.Updates {
 23682  			if v == nil {
 23683  				continue
 23684  			}
 23685  			if err := v.Validate(); err != nil {
 23686  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 23687  			}
 23688  		}
 23689  	}
 23690  
 23691  	if invalidParams.Len() > 0 {
 23692  		return invalidParams
 23693  	}
 23694  	return nil
 23695  }
 23696  
 23697  // SetChangeToken sets the ChangeToken field's value.
 23698  func (s *UpdateSqlInjectionMatchSetInput) SetChangeToken(v string) *UpdateSqlInjectionMatchSetInput {
 23699  	s.ChangeToken = &v
 23700  	return s
 23701  }
 23702  
 23703  // SetSqlInjectionMatchSetId sets the SqlInjectionMatchSetId field's value.
 23704  func (s *UpdateSqlInjectionMatchSetInput) SetSqlInjectionMatchSetId(v string) *UpdateSqlInjectionMatchSetInput {
 23705  	s.SqlInjectionMatchSetId = &v
 23706  	return s
 23707  }
 23708  
 23709  // SetUpdates sets the Updates field's value.
 23710  func (s *UpdateSqlInjectionMatchSetInput) SetUpdates(v []*SqlInjectionMatchSetUpdate) *UpdateSqlInjectionMatchSetInput {
 23711  	s.Updates = v
 23712  	return s
 23713  }
 23714  
 23715  // The response to an UpdateSqlInjectionMatchSets request.
 23716  type UpdateSqlInjectionMatchSetOutput struct {
 23717  	_ struct{} `type:"structure"`
 23718  
 23719  	// The ChangeToken that you used to submit the UpdateSqlInjectionMatchSet request.
 23720  	// You can also use this value to query the status of the request. For more
 23721  	// information, see GetChangeTokenStatus.
 23722  	ChangeToken *string `min:"1" type:"string"`
 23723  }
 23724  
 23725  // String returns the string representation.
 23726  //
 23727  // API parameter values that are decorated as "sensitive" in the API will not
 23728  // be included in the string output. The member name will be present, but the
 23729  // value will be replaced with "sensitive".
 23730  func (s UpdateSqlInjectionMatchSetOutput) String() string {
 23731  	return awsutil.Prettify(s)
 23732  }
 23733  
 23734  // GoString returns the string representation.
 23735  //
 23736  // API parameter values that are decorated as "sensitive" in the API will not
 23737  // be included in the string output. The member name will be present, but the
 23738  // value will be replaced with "sensitive".
 23739  func (s UpdateSqlInjectionMatchSetOutput) GoString() string {
 23740  	return s.String()
 23741  }
 23742  
 23743  // SetChangeToken sets the ChangeToken field's value.
 23744  func (s *UpdateSqlInjectionMatchSetOutput) SetChangeToken(v string) *UpdateSqlInjectionMatchSetOutput {
 23745  	s.ChangeToken = &v
 23746  	return s
 23747  }
 23748  
 23749  type UpdateWebACLInput struct {
 23750  	_ struct{} `type:"structure"`
 23751  
 23752  	// The value returned by the most recent call to GetChangeToken.
 23753  	//
 23754  	// ChangeToken is a required field
 23755  	ChangeToken *string `min:"1" type:"string" required:"true"`
 23756  
 23757  	// A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs
 23758  	// the default action if a request doesn't match the criteria in any of the
 23759  	// rules in a web ACL.
 23760  	DefaultAction *WafAction `type:"structure"`
 23761  
 23762  	// An array of updates to make to the WebACL.
 23763  	//
 23764  	// An array of WebACLUpdate objects that you want to insert into or delete from
 23765  	// a WebACL. For more information, see the applicable data types:
 23766  	//
 23767  	//    * WebACLUpdate: Contains Action and ActivatedRule
 23768  	//
 23769  	//    * ActivatedRule: Contains Action, OverrideAction, Priority, RuleId, and
 23770  	//    Type. ActivatedRule|OverrideAction applies only when updating or adding
 23771  	//    a RuleGroup to a WebACL. In this case, you do not use ActivatedRule|Action.
 23772  	//    For all other update requests, ActivatedRule|Action is used instead of
 23773  	//    ActivatedRule|OverrideAction.
 23774  	//
 23775  	//    * WafAction: Contains Type
 23776  	Updates []*WebACLUpdate `type:"list"`
 23777  
 23778  	// The WebACLId of the WebACL that you want to update. WebACLId is returned
 23779  	// by CreateWebACL and by ListWebACLs.
 23780  	//
 23781  	// WebACLId is a required field
 23782  	WebACLId *string `min:"1" type:"string" required:"true"`
 23783  }
 23784  
 23785  // String returns the string representation.
 23786  //
 23787  // API parameter values that are decorated as "sensitive" in the API will not
 23788  // be included in the string output. The member name will be present, but the
 23789  // value will be replaced with "sensitive".
 23790  func (s UpdateWebACLInput) String() string {
 23791  	return awsutil.Prettify(s)
 23792  }
 23793  
 23794  // GoString returns the string representation.
 23795  //
 23796  // API parameter values that are decorated as "sensitive" in the API will not
 23797  // be included in the string output. The member name will be present, but the
 23798  // value will be replaced with "sensitive".
 23799  func (s UpdateWebACLInput) GoString() string {
 23800  	return s.String()
 23801  }
 23802  
 23803  // Validate inspects the fields of the type to determine if they are valid.
 23804  func (s *UpdateWebACLInput) Validate() error {
 23805  	invalidParams := request.ErrInvalidParams{Context: "UpdateWebACLInput"}
 23806  	if s.ChangeToken == nil {
 23807  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 23808  	}
 23809  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 23810  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 23811  	}
 23812  	if s.WebACLId == nil {
 23813  		invalidParams.Add(request.NewErrParamRequired("WebACLId"))
 23814  	}
 23815  	if s.WebACLId != nil && len(*s.WebACLId) < 1 {
 23816  		invalidParams.Add(request.NewErrParamMinLen("WebACLId", 1))
 23817  	}
 23818  	if s.DefaultAction != nil {
 23819  		if err := s.DefaultAction.Validate(); err != nil {
 23820  			invalidParams.AddNested("DefaultAction", err.(request.ErrInvalidParams))
 23821  		}
 23822  	}
 23823  	if s.Updates != nil {
 23824  		for i, v := range s.Updates {
 23825  			if v == nil {
 23826  				continue
 23827  			}
 23828  			if err := v.Validate(); err != nil {
 23829  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 23830  			}
 23831  		}
 23832  	}
 23833  
 23834  	if invalidParams.Len() > 0 {
 23835  		return invalidParams
 23836  	}
 23837  	return nil
 23838  }
 23839  
 23840  // SetChangeToken sets the ChangeToken field's value.
 23841  func (s *UpdateWebACLInput) SetChangeToken(v string) *UpdateWebACLInput {
 23842  	s.ChangeToken = &v
 23843  	return s
 23844  }
 23845  
 23846  // SetDefaultAction sets the DefaultAction field's value.
 23847  func (s *UpdateWebACLInput) SetDefaultAction(v *WafAction) *UpdateWebACLInput {
 23848  	s.DefaultAction = v
 23849  	return s
 23850  }
 23851  
 23852  // SetUpdates sets the Updates field's value.
 23853  func (s *UpdateWebACLInput) SetUpdates(v []*WebACLUpdate) *UpdateWebACLInput {
 23854  	s.Updates = v
 23855  	return s
 23856  }
 23857  
 23858  // SetWebACLId sets the WebACLId field's value.
 23859  func (s *UpdateWebACLInput) SetWebACLId(v string) *UpdateWebACLInput {
 23860  	s.WebACLId = &v
 23861  	return s
 23862  }
 23863  
 23864  type UpdateWebACLOutput struct {
 23865  	_ struct{} `type:"structure"`
 23866  
 23867  	// The ChangeToken that you used to submit the UpdateWebACL request. You can
 23868  	// also use this value to query the status of the request. For more information,
 23869  	// see GetChangeTokenStatus.
 23870  	ChangeToken *string `min:"1" type:"string"`
 23871  }
 23872  
 23873  // String returns the string representation.
 23874  //
 23875  // API parameter values that are decorated as "sensitive" in the API will not
 23876  // be included in the string output. The member name will be present, but the
 23877  // value will be replaced with "sensitive".
 23878  func (s UpdateWebACLOutput) String() string {
 23879  	return awsutil.Prettify(s)
 23880  }
 23881  
 23882  // GoString returns the string representation.
 23883  //
 23884  // API parameter values that are decorated as "sensitive" in the API will not
 23885  // be included in the string output. The member name will be present, but the
 23886  // value will be replaced with "sensitive".
 23887  func (s UpdateWebACLOutput) GoString() string {
 23888  	return s.String()
 23889  }
 23890  
 23891  // SetChangeToken sets the ChangeToken field's value.
 23892  func (s *UpdateWebACLOutput) SetChangeToken(v string) *UpdateWebACLOutput {
 23893  	s.ChangeToken = &v
 23894  	return s
 23895  }
 23896  
 23897  // A request to update an XssMatchSet.
 23898  type UpdateXssMatchSetInput struct {
 23899  	_ struct{} `type:"structure"`
 23900  
 23901  	// The value returned by the most recent call to GetChangeToken.
 23902  	//
 23903  	// ChangeToken is a required field
 23904  	ChangeToken *string `min:"1" type:"string" required:"true"`
 23905  
 23906  	// An array of XssMatchSetUpdate objects that you want to insert into or delete
 23907  	// from an XssMatchSet. For more information, see the applicable data types:
 23908  	//
 23909  	//    * XssMatchSetUpdate: Contains Action and XssMatchTuple
 23910  	//
 23911  	//    * XssMatchTuple: Contains FieldToMatch and TextTransformation
 23912  	//
 23913  	//    * FieldToMatch: Contains Data and Type
 23914  	//
 23915  	// Updates is a required field
 23916  	Updates []*XssMatchSetUpdate `min:"1" type:"list" required:"true"`
 23917  
 23918  	// The XssMatchSetId of the XssMatchSet that you want to update. XssMatchSetId
 23919  	// is returned by CreateXssMatchSet and by ListXssMatchSets.
 23920  	//
 23921  	// XssMatchSetId is a required field
 23922  	XssMatchSetId *string `min:"1" type:"string" required:"true"`
 23923  }
 23924  
 23925  // String returns the string representation.
 23926  //
 23927  // API parameter values that are decorated as "sensitive" in the API will not
 23928  // be included in the string output. The member name will be present, but the
 23929  // value will be replaced with "sensitive".
 23930  func (s UpdateXssMatchSetInput) String() string {
 23931  	return awsutil.Prettify(s)
 23932  }
 23933  
 23934  // GoString returns the string representation.
 23935  //
 23936  // API parameter values that are decorated as "sensitive" in the API will not
 23937  // be included in the string output. The member name will be present, but the
 23938  // value will be replaced with "sensitive".
 23939  func (s UpdateXssMatchSetInput) GoString() string {
 23940  	return s.String()
 23941  }
 23942  
 23943  // Validate inspects the fields of the type to determine if they are valid.
 23944  func (s *UpdateXssMatchSetInput) Validate() error {
 23945  	invalidParams := request.ErrInvalidParams{Context: "UpdateXssMatchSetInput"}
 23946  	if s.ChangeToken == nil {
 23947  		invalidParams.Add(request.NewErrParamRequired("ChangeToken"))
 23948  	}
 23949  	if s.ChangeToken != nil && len(*s.ChangeToken) < 1 {
 23950  		invalidParams.Add(request.NewErrParamMinLen("ChangeToken", 1))
 23951  	}
 23952  	if s.Updates == nil {
 23953  		invalidParams.Add(request.NewErrParamRequired("Updates"))
 23954  	}
 23955  	if s.Updates != nil && len(s.Updates) < 1 {
 23956  		invalidParams.Add(request.NewErrParamMinLen("Updates", 1))
 23957  	}
 23958  	if s.XssMatchSetId == nil {
 23959  		invalidParams.Add(request.NewErrParamRequired("XssMatchSetId"))
 23960  	}
 23961  	if s.XssMatchSetId != nil && len(*s.XssMatchSetId) < 1 {
 23962  		invalidParams.Add(request.NewErrParamMinLen("XssMatchSetId", 1))
 23963  	}
 23964  	if s.Updates != nil {
 23965  		for i, v := range s.Updates {
 23966  			if v == nil {
 23967  				continue
 23968  			}
 23969  			if err := v.Validate(); err != nil {
 23970  				invalidParams.AddNested(fmt.Sprintf("%s[%v]", "Updates", i), err.(request.ErrInvalidParams))
 23971  			}
 23972  		}
 23973  	}
 23974  
 23975  	if invalidParams.Len() > 0 {
 23976  		return invalidParams
 23977  	}
 23978  	return nil
 23979  }
 23980  
 23981  // SetChangeToken sets the ChangeToken field's value.
 23982  func (s *UpdateXssMatchSetInput) SetChangeToken(v string) *UpdateXssMatchSetInput {
 23983  	s.ChangeToken = &v
 23984  	return s
 23985  }
 23986  
 23987  // SetUpdates sets the Updates field's value.
 23988  func (s *UpdateXssMatchSetInput) SetUpdates(v []*XssMatchSetUpdate) *UpdateXssMatchSetInput {
 23989  	s.Updates = v
 23990  	return s
 23991  }
 23992  
 23993  // SetXssMatchSetId sets the XssMatchSetId field's value.
 23994  func (s *UpdateXssMatchSetInput) SetXssMatchSetId(v string) *UpdateXssMatchSetInput {
 23995  	s.XssMatchSetId = &v
 23996  	return s
 23997  }
 23998  
 23999  // The response to an UpdateXssMatchSets request.
 24000  type UpdateXssMatchSetOutput struct {
 24001  	_ struct{} `type:"structure"`
 24002  
 24003  	// The ChangeToken that you used to submit the UpdateXssMatchSet request. You
 24004  	// can also use this value to query the status of the request. For more information,
 24005  	// see GetChangeTokenStatus.
 24006  	ChangeToken *string `min:"1" type:"string"`
 24007  }
 24008  
 24009  // String returns the string representation.
 24010  //
 24011  // API parameter values that are decorated as "sensitive" in the API will not
 24012  // be included in the string output. The member name will be present, but the
 24013  // value will be replaced with "sensitive".
 24014  func (s UpdateXssMatchSetOutput) String() string {
 24015  	return awsutil.Prettify(s)
 24016  }
 24017  
 24018  // GoString returns the string representation.
 24019  //
 24020  // API parameter values that are decorated as "sensitive" in the API will not
 24021  // be included in the string output. The member name will be present, but the
 24022  // value will be replaced with "sensitive".
 24023  func (s UpdateXssMatchSetOutput) GoString() string {
 24024  	return s.String()
 24025  }
 24026  
 24027  // SetChangeToken sets the ChangeToken field's value.
 24028  func (s *UpdateXssMatchSetOutput) SetChangeToken(v string) *UpdateXssMatchSetOutput {
 24029  	s.ChangeToken = &v
 24030  	return s
 24031  }
 24032  
 24033  // The operation failed due to a problem with the migration. The failure cause
 24034  // is provided in the exception, in the MigrationErrorType:
 24035  //
 24036  //    * ENTITY_NOT_SUPPORTED - The web ACL has an unsupported entity but the
 24037  //    IgnoreUnsupportedType is not set to true.
 24038  //
 24039  //    * ENTITY_NOT_FOUND - The web ACL doesn't exist.
 24040  //
 24041  //    * S3_BUCKET_NO_PERMISSION - You don't have permission to perform the PutObject
 24042  //    action to the specified Amazon S3 bucket.
 24043  //
 24044  //    * S3_BUCKET_NOT_ACCESSIBLE - The bucket policy doesn't allow AWS WAF to
 24045  //    perform the PutObject action in the bucket.
 24046  //
 24047  //    * S3_BUCKET_NOT_FOUND - The S3 bucket doesn't exist.
 24048  //
 24049  //    * S3_BUCKET_INVALID_REGION - The S3 bucket is not in the same Region as
 24050  //    the web ACL.
 24051  //
 24052  //    * S3_INTERNAL_ERROR - AWS WAF failed to create the template in the S3
 24053  //    bucket for another reason.
 24054  type WAFEntityMigrationException struct {
 24055  	_            struct{}                  `type:"structure"`
 24056  	RespMetadata protocol.ResponseMetadata `json:"-" xml:"-"`
 24057  
 24058  	Message_ *string `locationName:"message" type:"string"`
 24059  
 24060  	MigrationErrorReason *string `type:"string"`
 24061  
 24062  	MigrationErrorType *string `type:"string" enum:"MigrationErrorType"`
 24063  }
 24064  
 24065  // String returns the string representation.
 24066  //
 24067  // API parameter values that are decorated as "sensitive" in the API will not
 24068  // be included in the string output. The member name will be present, but the
 24069  // value will be replaced with "sensitive".
 24070  func (s WAFEntityMigrationException) String() string {
 24071  	return awsutil.Prettify(s)
 24072  }
 24073  
 24074  // GoString returns the string representation.
 24075  //
 24076  // API parameter values that are decorated as "sensitive" in the API will not
 24077  // be included in the string output. The member name will be present, but the
 24078  // value will be replaced with "sensitive".
 24079  func (s WAFEntityMigrationException) GoString() string {
 24080  	return s.String()
 24081  }
 24082  
 24083  func newErrorWAFEntityMigrationException(v protocol.ResponseMetadata) error {
 24084  	return &WAFEntityMigrationException{
 24085  		RespMetadata: v,
 24086  	}
 24087  }
 24088  
 24089  // Code returns the exception type name.
 24090  func (s *WAFEntityMigrationException) Code() string {
 24091  	return "WAFEntityMigrationException"
 24092  }
 24093  
 24094  // Message returns the exception's message.
 24095  func (s *WAFEntityMigrationException) Message() string {
 24096  	if s.Message_ != nil {
 24097  		return *s.Message_
 24098  	}
 24099  	return ""
 24100  }
 24101  
 24102  // OrigErr always returns nil, satisfies awserr.Error interface.
 24103  func (s *WAFEntityMigrationException) OrigErr() error {
 24104  	return nil
 24105  }
 24106  
 24107  func (s *WAFEntityMigrationException) Error() string {
 24108  	return fmt.Sprintf("%s: %s\n%s", s.Code(), s.Message(), s.String())
 24109  }
 24110  
 24111  // Status code returns the HTTP status code for the request's response error.
 24112  func (s *WAFEntityMigrationException) StatusCode() int {
 24113  	return s.RespMetadata.StatusCode
 24114  }
 24115  
 24116  // RequestID returns the service's response RequestID for request.
 24117  func (s *WAFEntityMigrationException) RequestID() string {
 24118  	return s.RespMetadata.RequestID
 24119  }
 24120  
 24121  //
 24122  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24123  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24124  // in the developer guide.
 24125  //
 24126  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24127  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24128  // With the latest version, AWS WAF has a single set of endpoints for regional
 24129  // and global use.
 24130  //
 24131  // For the action that is associated with a rule in a WebACL, specifies the
 24132  // action that you want AWS WAF to perform when a web request matches all of
 24133  // the conditions in a rule. For the default action in a WebACL, specifies the
 24134  // action that you want AWS WAF to take when a web request doesn't match all
 24135  // of the conditions in any of the rules in a WebACL.
 24136  type WafAction struct {
 24137  	_ struct{} `type:"structure"`
 24138  
 24139  	// Specifies how you want AWS WAF to respond to requests that match the settings
 24140  	// in a Rule. Valid settings include the following:
 24141  	//
 24142  	//    * ALLOW: AWS WAF allows requests
 24143  	//
 24144  	//    * BLOCK: AWS WAF blocks requests
 24145  	//
 24146  	//    * COUNT: AWS WAF increments a counter of the requests that match all of
 24147  	//    the conditions in the rule. AWS WAF then continues to inspect the web
 24148  	//    request based on the remaining rules in the web ACL. You can't specify
 24149  	//    COUNT for the default action for a WebACL.
 24150  	//
 24151  	// Type is a required field
 24152  	Type *string `type:"string" required:"true" enum:"WafActionType"`
 24153  }
 24154  
 24155  // String returns the string representation.
 24156  //
 24157  // API parameter values that are decorated as "sensitive" in the API will not
 24158  // be included in the string output. The member name will be present, but the
 24159  // value will be replaced with "sensitive".
 24160  func (s WafAction) String() string {
 24161  	return awsutil.Prettify(s)
 24162  }
 24163  
 24164  // GoString returns the string representation.
 24165  //
 24166  // API parameter values that are decorated as "sensitive" in the API will not
 24167  // be included in the string output. The member name will be present, but the
 24168  // value will be replaced with "sensitive".
 24169  func (s WafAction) GoString() string {
 24170  	return s.String()
 24171  }
 24172  
 24173  // Validate inspects the fields of the type to determine if they are valid.
 24174  func (s *WafAction) Validate() error {
 24175  	invalidParams := request.ErrInvalidParams{Context: "WafAction"}
 24176  	if s.Type == nil {
 24177  		invalidParams.Add(request.NewErrParamRequired("Type"))
 24178  	}
 24179  
 24180  	if invalidParams.Len() > 0 {
 24181  		return invalidParams
 24182  	}
 24183  	return nil
 24184  }
 24185  
 24186  // SetType sets the Type field's value.
 24187  func (s *WafAction) SetType(v string) *WafAction {
 24188  	s.Type = &v
 24189  	return s
 24190  }
 24191  
 24192  //
 24193  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24194  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24195  // in the developer guide.
 24196  //
 24197  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24198  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24199  // With the latest version, AWS WAF has a single set of endpoints for regional
 24200  // and global use.
 24201  //
 24202  // The action to take if any rule within the RuleGroup matches a request.
 24203  type WafOverrideAction struct {
 24204  	_ struct{} `type:"structure"`
 24205  
 24206  	// COUNT overrides the action specified by the individual rule within a RuleGroup
 24207  	// . If set to NONE, the rule's action will take place.
 24208  	//
 24209  	// Type is a required field
 24210  	Type *string `type:"string" required:"true" enum:"WafOverrideActionType"`
 24211  }
 24212  
 24213  // String returns the string representation.
 24214  //
 24215  // API parameter values that are decorated as "sensitive" in the API will not
 24216  // be included in the string output. The member name will be present, but the
 24217  // value will be replaced with "sensitive".
 24218  func (s WafOverrideAction) String() string {
 24219  	return awsutil.Prettify(s)
 24220  }
 24221  
 24222  // GoString returns the string representation.
 24223  //
 24224  // API parameter values that are decorated as "sensitive" in the API will not
 24225  // be included in the string output. The member name will be present, but the
 24226  // value will be replaced with "sensitive".
 24227  func (s WafOverrideAction) GoString() string {
 24228  	return s.String()
 24229  }
 24230  
 24231  // Validate inspects the fields of the type to determine if they are valid.
 24232  func (s *WafOverrideAction) Validate() error {
 24233  	invalidParams := request.ErrInvalidParams{Context: "WafOverrideAction"}
 24234  	if s.Type == nil {
 24235  		invalidParams.Add(request.NewErrParamRequired("Type"))
 24236  	}
 24237  
 24238  	if invalidParams.Len() > 0 {
 24239  		return invalidParams
 24240  	}
 24241  	return nil
 24242  }
 24243  
 24244  // SetType sets the Type field's value.
 24245  func (s *WafOverrideAction) SetType(v string) *WafOverrideAction {
 24246  	s.Type = &v
 24247  	return s
 24248  }
 24249  
 24250  //
 24251  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24252  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24253  // in the developer guide.
 24254  //
 24255  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24256  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24257  // With the latest version, AWS WAF has a single set of endpoints for regional
 24258  // and global use.
 24259  //
 24260  // Contains the Rules that identify the requests that you want to allow, block,
 24261  // or count. In a WebACL, you also specify a default action (ALLOW or BLOCK),
 24262  // and the action for each Rule that you add to a WebACL, for example, block
 24263  // requests from specified IP addresses or block requests from specified referrers.
 24264  // You also associate the WebACL with a CloudFront distribution to identify
 24265  // the requests that you want AWS WAF to filter. If you add more than one Rule
 24266  // to a WebACL, a request needs to match only one of the specifications to be
 24267  // allowed, blocked, or counted. For more information, see UpdateWebACL.
 24268  type WebACL struct {
 24269  	_ struct{} `type:"structure"`
 24270  
 24271  	// The action to perform if none of the Rules contained in the WebACL match.
 24272  	// The action is specified by the WafAction object.
 24273  	//
 24274  	// DefaultAction is a required field
 24275  	DefaultAction *WafAction `type:"structure" required:"true"`
 24276  
 24277  	// A friendly name or description for the metrics for this WebACL. The name
 24278  	// can contain only alphanumeric characters (A-Z, a-z, 0-9), with maximum length
 24279  	// 128 and minimum length one. It can't contain whitespace or metric names reserved
 24280  	// for AWS WAF, including "All" and "Default_Action." You can't change MetricName
 24281  	// after you create the WebACL.
 24282  	MetricName *string `min:"1" type:"string"`
 24283  
 24284  	// A friendly name or description of the WebACL. You can't change the name of
 24285  	// a WebACL after you create it.
 24286  	Name *string `min:"1" type:"string"`
 24287  
 24288  	// An array that contains the action for each Rule in a WebACL, the priority
 24289  	// of the Rule, and the ID of the Rule.
 24290  	//
 24291  	// Rules is a required field
 24292  	Rules []*ActivatedRule `type:"list" required:"true"`
 24293  
 24294  	// Tha Amazon Resource Name (ARN) of the web ACL.
 24295  	WebACLArn *string `min:"1" type:"string"`
 24296  
 24297  	// A unique identifier for a WebACL. You use WebACLId to get information about
 24298  	// a WebACL (see GetWebACL), update a WebACL (see UpdateWebACL), and delete
 24299  	// a WebACL from AWS WAF (see DeleteWebACL).
 24300  	//
 24301  	// WebACLId is returned by CreateWebACL and by ListWebACLs.
 24302  	//
 24303  	// WebACLId is a required field
 24304  	WebACLId *string `min:"1" type:"string" required:"true"`
 24305  }
 24306  
 24307  // String returns the string representation.
 24308  //
 24309  // API parameter values that are decorated as "sensitive" in the API will not
 24310  // be included in the string output. The member name will be present, but the
 24311  // value will be replaced with "sensitive".
 24312  func (s WebACL) String() string {
 24313  	return awsutil.Prettify(s)
 24314  }
 24315  
 24316  // GoString returns the string representation.
 24317  //
 24318  // API parameter values that are decorated as "sensitive" in the API will not
 24319  // be included in the string output. The member name will be present, but the
 24320  // value will be replaced with "sensitive".
 24321  func (s WebACL) GoString() string {
 24322  	return s.String()
 24323  }
 24324  
 24325  // SetDefaultAction sets the DefaultAction field's value.
 24326  func (s *WebACL) SetDefaultAction(v *WafAction) *WebACL {
 24327  	s.DefaultAction = v
 24328  	return s
 24329  }
 24330  
 24331  // SetMetricName sets the MetricName field's value.
 24332  func (s *WebACL) SetMetricName(v string) *WebACL {
 24333  	s.MetricName = &v
 24334  	return s
 24335  }
 24336  
 24337  // SetName sets the Name field's value.
 24338  func (s *WebACL) SetName(v string) *WebACL {
 24339  	s.Name = &v
 24340  	return s
 24341  }
 24342  
 24343  // SetRules sets the Rules field's value.
 24344  func (s *WebACL) SetRules(v []*ActivatedRule) *WebACL {
 24345  	s.Rules = v
 24346  	return s
 24347  }
 24348  
 24349  // SetWebACLArn sets the WebACLArn field's value.
 24350  func (s *WebACL) SetWebACLArn(v string) *WebACL {
 24351  	s.WebACLArn = &v
 24352  	return s
 24353  }
 24354  
 24355  // SetWebACLId sets the WebACLId field's value.
 24356  func (s *WebACL) SetWebACLId(v string) *WebACL {
 24357  	s.WebACLId = &v
 24358  	return s
 24359  }
 24360  
 24361  //
 24362  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24363  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24364  // in the developer guide.
 24365  //
 24366  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24367  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24368  // With the latest version, AWS WAF has a single set of endpoints for regional
 24369  // and global use.
 24370  //
 24371  // Contains the identifier and the name or description of the WebACL.
 24372  type WebACLSummary struct {
 24373  	_ struct{} `type:"structure"`
 24374  
 24375  	// A friendly name or description of the WebACL. You can't change the name of
 24376  	// a WebACL after you create it.
 24377  	//
 24378  	// Name is a required field
 24379  	Name *string `min:"1" type:"string" required:"true"`
 24380  
 24381  	// A unique identifier for a WebACL. You use WebACLId to get information about
 24382  	// a WebACL (see GetWebACL), update a WebACL (see UpdateWebACL), and delete
 24383  	// a WebACL from AWS WAF (see DeleteWebACL).
 24384  	//
 24385  	// WebACLId is returned by CreateWebACL and by ListWebACLs.
 24386  	//
 24387  	// WebACLId is a required field
 24388  	WebACLId *string `min:"1" type:"string" required:"true"`
 24389  }
 24390  
 24391  // String returns the string representation.
 24392  //
 24393  // API parameter values that are decorated as "sensitive" in the API will not
 24394  // be included in the string output. The member name will be present, but the
 24395  // value will be replaced with "sensitive".
 24396  func (s WebACLSummary) String() string {
 24397  	return awsutil.Prettify(s)
 24398  }
 24399  
 24400  // GoString returns the string representation.
 24401  //
 24402  // API parameter values that are decorated as "sensitive" in the API will not
 24403  // be included in the string output. The member name will be present, but the
 24404  // value will be replaced with "sensitive".
 24405  func (s WebACLSummary) GoString() string {
 24406  	return s.String()
 24407  }
 24408  
 24409  // SetName sets the Name field's value.
 24410  func (s *WebACLSummary) SetName(v string) *WebACLSummary {
 24411  	s.Name = &v
 24412  	return s
 24413  }
 24414  
 24415  // SetWebACLId sets the WebACLId field's value.
 24416  func (s *WebACLSummary) SetWebACLId(v string) *WebACLSummary {
 24417  	s.WebACLId = &v
 24418  	return s
 24419  }
 24420  
 24421  //
 24422  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24423  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24424  // in the developer guide.
 24425  //
 24426  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24427  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24428  // With the latest version, AWS WAF has a single set of endpoints for regional
 24429  // and global use.
 24430  //
 24431  // Specifies whether to insert a Rule into or delete a Rule from a WebACL.
 24432  type WebACLUpdate struct {
 24433  	_ struct{} `type:"structure"`
 24434  
 24435  	// Specifies whether to insert a Rule into or delete a Rule from a WebACL.
 24436  	//
 24437  	// Action is a required field
 24438  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 24439  
 24440  	// The ActivatedRule object in an UpdateWebACL request specifies a Rule that
 24441  	// you want to insert or delete, the priority of the Rule in the WebACL, and
 24442  	// the action that you want AWS WAF to take when a web request matches the Rule
 24443  	// (ALLOW, BLOCK, or COUNT).
 24444  	//
 24445  	// ActivatedRule is a required field
 24446  	ActivatedRule *ActivatedRule `type:"structure" required:"true"`
 24447  }
 24448  
 24449  // String returns the string representation.
 24450  //
 24451  // API parameter values that are decorated as "sensitive" in the API will not
 24452  // be included in the string output. The member name will be present, but the
 24453  // value will be replaced with "sensitive".
 24454  func (s WebACLUpdate) String() string {
 24455  	return awsutil.Prettify(s)
 24456  }
 24457  
 24458  // GoString returns the string representation.
 24459  //
 24460  // API parameter values that are decorated as "sensitive" in the API will not
 24461  // be included in the string output. The member name will be present, but the
 24462  // value will be replaced with "sensitive".
 24463  func (s WebACLUpdate) GoString() string {
 24464  	return s.String()
 24465  }
 24466  
 24467  // Validate inspects the fields of the type to determine if they are valid.
 24468  func (s *WebACLUpdate) Validate() error {
 24469  	invalidParams := request.ErrInvalidParams{Context: "WebACLUpdate"}
 24470  	if s.Action == nil {
 24471  		invalidParams.Add(request.NewErrParamRequired("Action"))
 24472  	}
 24473  	if s.ActivatedRule == nil {
 24474  		invalidParams.Add(request.NewErrParamRequired("ActivatedRule"))
 24475  	}
 24476  	if s.ActivatedRule != nil {
 24477  		if err := s.ActivatedRule.Validate(); err != nil {
 24478  			invalidParams.AddNested("ActivatedRule", err.(request.ErrInvalidParams))
 24479  		}
 24480  	}
 24481  
 24482  	if invalidParams.Len() > 0 {
 24483  		return invalidParams
 24484  	}
 24485  	return nil
 24486  }
 24487  
 24488  // SetAction sets the Action field's value.
 24489  func (s *WebACLUpdate) SetAction(v string) *WebACLUpdate {
 24490  	s.Action = &v
 24491  	return s
 24492  }
 24493  
 24494  // SetActivatedRule sets the ActivatedRule field's value.
 24495  func (s *WebACLUpdate) SetActivatedRule(v *ActivatedRule) *WebACLUpdate {
 24496  	s.ActivatedRule = v
 24497  	return s
 24498  }
 24499  
 24500  //
 24501  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24502  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24503  // in the developer guide.
 24504  //
 24505  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24506  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24507  // With the latest version, AWS WAF has a single set of endpoints for regional
 24508  // and global use.
 24509  //
 24510  // A complex type that contains XssMatchTuple objects, which specify the parts
 24511  // of web requests that you want AWS WAF to inspect for cross-site scripting
 24512  // attacks and, if you want AWS WAF to inspect a header, the name of the header.
 24513  // If a XssMatchSet contains more than one XssMatchTuple object, a request needs
 24514  // to include cross-site scripting attacks in only one of the specified parts
 24515  // of the request to be considered a match.
 24516  type XssMatchSet struct {
 24517  	_ struct{} `type:"structure"`
 24518  
 24519  	// The name, if any, of the XssMatchSet.
 24520  	Name *string `min:"1" type:"string"`
 24521  
 24522  	// A unique identifier for an XssMatchSet. You use XssMatchSetId to get information
 24523  	// about an XssMatchSet (see GetXssMatchSet), update an XssMatchSet (see UpdateXssMatchSet),
 24524  	// insert an XssMatchSet into a Rule or delete one from a Rule (see UpdateRule),
 24525  	// and delete an XssMatchSet from AWS WAF (see DeleteXssMatchSet).
 24526  	//
 24527  	// XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets.
 24528  	//
 24529  	// XssMatchSetId is a required field
 24530  	XssMatchSetId *string `min:"1" type:"string" required:"true"`
 24531  
 24532  	// Specifies the parts of web requests that you want to inspect for cross-site
 24533  	// scripting attacks.
 24534  	//
 24535  	// XssMatchTuples is a required field
 24536  	XssMatchTuples []*XssMatchTuple `type:"list" required:"true"`
 24537  }
 24538  
 24539  // String returns the string representation.
 24540  //
 24541  // API parameter values that are decorated as "sensitive" in the API will not
 24542  // be included in the string output. The member name will be present, but the
 24543  // value will be replaced with "sensitive".
 24544  func (s XssMatchSet) String() string {
 24545  	return awsutil.Prettify(s)
 24546  }
 24547  
 24548  // GoString returns the string representation.
 24549  //
 24550  // API parameter values that are decorated as "sensitive" in the API will not
 24551  // be included in the string output. The member name will be present, but the
 24552  // value will be replaced with "sensitive".
 24553  func (s XssMatchSet) GoString() string {
 24554  	return s.String()
 24555  }
 24556  
 24557  // SetName sets the Name field's value.
 24558  func (s *XssMatchSet) SetName(v string) *XssMatchSet {
 24559  	s.Name = &v
 24560  	return s
 24561  }
 24562  
 24563  // SetXssMatchSetId sets the XssMatchSetId field's value.
 24564  func (s *XssMatchSet) SetXssMatchSetId(v string) *XssMatchSet {
 24565  	s.XssMatchSetId = &v
 24566  	return s
 24567  }
 24568  
 24569  // SetXssMatchTuples sets the XssMatchTuples field's value.
 24570  func (s *XssMatchSet) SetXssMatchTuples(v []*XssMatchTuple) *XssMatchSet {
 24571  	s.XssMatchTuples = v
 24572  	return s
 24573  }
 24574  
 24575  //
 24576  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24577  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24578  // in the developer guide.
 24579  //
 24580  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24581  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24582  // With the latest version, AWS WAF has a single set of endpoints for regional
 24583  // and global use.
 24584  //
 24585  // The Id and Name of an XssMatchSet.
 24586  type XssMatchSetSummary struct {
 24587  	_ struct{} `type:"structure"`
 24588  
 24589  	// The name of the XssMatchSet, if any, specified by Id.
 24590  	//
 24591  	// Name is a required field
 24592  	Name *string `min:"1" type:"string" required:"true"`
 24593  
 24594  	// A unique identifier for an XssMatchSet. You use XssMatchSetId to get information
 24595  	// about a XssMatchSet (see GetXssMatchSet), update an XssMatchSet (see UpdateXssMatchSet),
 24596  	// insert an XssMatchSet into a Rule or delete one from a Rule (see UpdateRule),
 24597  	// and delete an XssMatchSet from AWS WAF (see DeleteXssMatchSet).
 24598  	//
 24599  	// XssMatchSetId is returned by CreateXssMatchSet and by ListXssMatchSets.
 24600  	//
 24601  	// XssMatchSetId is a required field
 24602  	XssMatchSetId *string `min:"1" type:"string" required:"true"`
 24603  }
 24604  
 24605  // String returns the string representation.
 24606  //
 24607  // API parameter values that are decorated as "sensitive" in the API will not
 24608  // be included in the string output. The member name will be present, but the
 24609  // value will be replaced with "sensitive".
 24610  func (s XssMatchSetSummary) String() string {
 24611  	return awsutil.Prettify(s)
 24612  }
 24613  
 24614  // GoString returns the string representation.
 24615  //
 24616  // API parameter values that are decorated as "sensitive" in the API will not
 24617  // be included in the string output. The member name will be present, but the
 24618  // value will be replaced with "sensitive".
 24619  func (s XssMatchSetSummary) GoString() string {
 24620  	return s.String()
 24621  }
 24622  
 24623  // SetName sets the Name field's value.
 24624  func (s *XssMatchSetSummary) SetName(v string) *XssMatchSetSummary {
 24625  	s.Name = &v
 24626  	return s
 24627  }
 24628  
 24629  // SetXssMatchSetId sets the XssMatchSetId field's value.
 24630  func (s *XssMatchSetSummary) SetXssMatchSetId(v string) *XssMatchSetSummary {
 24631  	s.XssMatchSetId = &v
 24632  	return s
 24633  }
 24634  
 24635  //
 24636  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24637  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24638  // in the developer guide.
 24639  //
 24640  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24641  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24642  // With the latest version, AWS WAF has a single set of endpoints for regional
 24643  // and global use.
 24644  //
 24645  // Specifies the part of a web request that you want to inspect for cross-site
 24646  // scripting attacks and indicates whether you want to add the specification
 24647  // to an XssMatchSet or delete it from an XssMatchSet.
 24648  type XssMatchSetUpdate struct {
 24649  	_ struct{} `type:"structure"`
 24650  
 24651  	// Specify INSERT to add an XssMatchSetUpdate to an XssMatchSet. Use DELETE
 24652  	// to remove an XssMatchSetUpdate from an XssMatchSet.
 24653  	//
 24654  	// Action is a required field
 24655  	Action *string `type:"string" required:"true" enum:"ChangeAction"`
 24656  
 24657  	// Specifies the part of a web request that you want AWS WAF to inspect for
 24658  	// cross-site scripting attacks and, if you want AWS WAF to inspect a header,
 24659  	// the name of the header.
 24660  	//
 24661  	// XssMatchTuple is a required field
 24662  	XssMatchTuple *XssMatchTuple `type:"structure" required:"true"`
 24663  }
 24664  
 24665  // String returns the string representation.
 24666  //
 24667  // API parameter values that are decorated as "sensitive" in the API will not
 24668  // be included in the string output. The member name will be present, but the
 24669  // value will be replaced with "sensitive".
 24670  func (s XssMatchSetUpdate) String() string {
 24671  	return awsutil.Prettify(s)
 24672  }
 24673  
 24674  // GoString returns the string representation.
 24675  //
 24676  // API parameter values that are decorated as "sensitive" in the API will not
 24677  // be included in the string output. The member name will be present, but the
 24678  // value will be replaced with "sensitive".
 24679  func (s XssMatchSetUpdate) GoString() string {
 24680  	return s.String()
 24681  }
 24682  
 24683  // Validate inspects the fields of the type to determine if they are valid.
 24684  func (s *XssMatchSetUpdate) Validate() error {
 24685  	invalidParams := request.ErrInvalidParams{Context: "XssMatchSetUpdate"}
 24686  	if s.Action == nil {
 24687  		invalidParams.Add(request.NewErrParamRequired("Action"))
 24688  	}
 24689  	if s.XssMatchTuple == nil {
 24690  		invalidParams.Add(request.NewErrParamRequired("XssMatchTuple"))
 24691  	}
 24692  	if s.XssMatchTuple != nil {
 24693  		if err := s.XssMatchTuple.Validate(); err != nil {
 24694  			invalidParams.AddNested("XssMatchTuple", err.(request.ErrInvalidParams))
 24695  		}
 24696  	}
 24697  
 24698  	if invalidParams.Len() > 0 {
 24699  		return invalidParams
 24700  	}
 24701  	return nil
 24702  }
 24703  
 24704  // SetAction sets the Action field's value.
 24705  func (s *XssMatchSetUpdate) SetAction(v string) *XssMatchSetUpdate {
 24706  	s.Action = &v
 24707  	return s
 24708  }
 24709  
 24710  // SetXssMatchTuple sets the XssMatchTuple field's value.
 24711  func (s *XssMatchSetUpdate) SetXssMatchTuple(v *XssMatchTuple) *XssMatchSetUpdate {
 24712  	s.XssMatchTuple = v
 24713  	return s
 24714  }
 24715  
 24716  //
 24717  // This is AWS WAF Classic documentation. For more information, see AWS WAF
 24718  // Classic (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
 24719  // in the developer guide.
 24720  //
 24721  // For the latest version of AWS WAF, use the AWS WAFV2 API and see the AWS
 24722  // WAF Developer Guide (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html).
 24723  // With the latest version, AWS WAF has a single set of endpoints for regional
 24724  // and global use.
 24725  //
 24726  // Specifies the part of a web request that you want AWS WAF to inspect for
 24727  // cross-site scripting attacks and, if you want AWS WAF to inspect a header,
 24728  // the name of the header.
 24729  type XssMatchTuple struct {
 24730  	_ struct{} `type:"structure"`
 24731  
 24732  	// Specifies where in a web request to look for cross-site scripting attacks.
 24733  	//
 24734  	// FieldToMatch is a required field
 24735  	FieldToMatch *FieldToMatch `type:"structure" required:"true"`
 24736  
 24737  	// Text transformations eliminate some of the unusual formatting that attackers
 24738  	// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,
 24739  	// AWS WAF performs the transformation on FieldToMatch before inspecting it
 24740  	// for a match.
 24741  	//
 24742  	// You can only specify a single type of TextTransformation.
 24743  	//
 24744  	// CMD_LINE
 24745  	//
 24746  	// When you're concerned that attackers are injecting an operating system command
 24747  	// line command and using unusual formatting to disguise some or all of the
 24748  	// command, use this option to perform the following transformations:
 24749  	//
 24750  	//    * Delete the following characters: \ " ' ^
 24751  	//
 24752  	//    * Delete spaces before the following characters: / (
 24753  	//
 24754  	//    * Replace the following characters with a space: , ;
 24755  	//
 24756  	//    * Replace multiple spaces with one space
 24757  	//
 24758  	//    * Convert uppercase letters (A-Z) to lowercase (a-z)
 24759  	//
 24760  	// COMPRESS_WHITE_SPACE
 24761  	//
 24762  	// Use this option to replace the following characters with a space character
 24763  	// (decimal 32):
 24764  	//
 24765  	//    * \f, formfeed, decimal 12
 24766  	//
 24767  	//    * \t, tab, decimal 9
 24768  	//
 24769  	//    * \n, newline, decimal 10
 24770  	//
 24771  	//    * \r, carriage return, decimal 13
 24772  	//
 24773  	//    * \v, vertical tab, decimal 11
 24774  	//
 24775  	//    * non-breaking space, decimal 160
 24776  	//
 24777  	// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.
 24778  	//
 24779  	// HTML_ENTITY_DECODE
 24780  	//
 24781  	// Use this option to replace HTML-encoded characters with unencoded characters.
 24782  	// HTML_ENTITY_DECODE performs the following operations:
 24783  	//
 24784  	//    * Replaces (ampersand)quot; with "
 24785  	//
 24786  	//    * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160
 24787  	//
 24788  	//    * Replaces (ampersand)lt; with a "less than" symbol
 24789  	//
 24790  	//    * Replaces (ampersand)gt; with >
 24791  	//
 24792  	//    * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,
 24793  	//    with the corresponding characters
 24794  	//
 24795  	//    * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,
 24796  	//    with the corresponding characters
 24797  	//
 24798  	// LOWERCASE
 24799  	//
 24800  	// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).
 24801  	//
 24802  	// URL_DECODE
 24803  	//
 24804  	// Use this option to decode a URL-encoded value.
 24805  	//
 24806  	// NONE
 24807  	//
 24808  	// Specify NONE if you don't want to perform any text transformations.
 24809  	//
 24810  	// TextTransformation is a required field
 24811  	TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
 24812  }
 24813  
 24814  // String returns the string representation.
 24815  //
 24816  // API parameter values that are decorated as "sensitive" in the API will not
 24817  // be included in the string output. The member name will be present, but the
 24818  // value will be replaced with "sensitive".
 24819  func (s XssMatchTuple) String() string {
 24820  	return awsutil.Prettify(s)
 24821  }
 24822  
 24823  // GoString returns the string representation.
 24824  //
 24825  // API parameter values that are decorated as "sensitive" in the API will not
 24826  // be included in the string output. The member name will be present, but the
 24827  // value will be replaced with "sensitive".
 24828  func (s XssMatchTuple) GoString() string {
 24829  	return s.String()
 24830  }
 24831  
 24832  // Validate inspects the fields of the type to determine if they are valid.
 24833  func (s *XssMatchTuple) Validate() error {
 24834  	invalidParams := request.ErrInvalidParams{Context: "XssMatchTuple"}
 24835  	if s.FieldToMatch == nil {
 24836  		invalidParams.Add(request.NewErrParamRequired("FieldToMatch"))
 24837  	}
 24838  	if s.TextTransformation == nil {
 24839  		invalidParams.Add(request.NewErrParamRequired("TextTransformation"))
 24840  	}
 24841  	if s.FieldToMatch != nil {
 24842  		if err := s.FieldToMatch.Validate(); err != nil {
 24843  			invalidParams.AddNested("FieldToMatch", err.(request.ErrInvalidParams))
 24844  		}
 24845  	}
 24846  
 24847  	if invalidParams.Len() > 0 {
 24848  		return invalidParams
 24849  	}
 24850  	return nil
 24851  }
 24852  
 24853  // SetFieldToMatch sets the FieldToMatch field's value.
 24854  func (s *XssMatchTuple) SetFieldToMatch(v *FieldToMatch) *XssMatchTuple {
 24855  	s.FieldToMatch = v
 24856  	return s
 24857  }
 24858  
 24859  // SetTextTransformation sets the TextTransformation field's value.
 24860  func (s *XssMatchTuple) SetTextTransformation(v string) *XssMatchTuple {
 24861  	s.TextTransformation = &v
 24862  	return s
 24863  }
 24864  
 24865  const (
 24866  	// ChangeActionInsert is a ChangeAction enum value
 24867  	ChangeActionInsert = "INSERT"
 24868  
 24869  	// ChangeActionDelete is a ChangeAction enum value
 24870  	ChangeActionDelete = "DELETE"
 24871  )
 24872  
 24873  // ChangeAction_Values returns all elements of the ChangeAction enum
 24874  func ChangeAction_Values() []string {
 24875  	return []string{
 24876  		ChangeActionInsert,
 24877  		ChangeActionDelete,
 24878  	}
 24879  }
 24880  
 24881  const (
 24882  	// ChangeTokenStatusProvisioned is a ChangeTokenStatus enum value
 24883  	ChangeTokenStatusProvisioned = "PROVISIONED"
 24884  
 24885  	// ChangeTokenStatusPending is a ChangeTokenStatus enum value
 24886  	ChangeTokenStatusPending = "PENDING"
 24887  
 24888  	// ChangeTokenStatusInsync is a ChangeTokenStatus enum value
 24889  	ChangeTokenStatusInsync = "INSYNC"
 24890  )
 24891  
 24892  // ChangeTokenStatus_Values returns all elements of the ChangeTokenStatus enum
 24893  func ChangeTokenStatus_Values() []string {
 24894  	return []string{
 24895  		ChangeTokenStatusProvisioned,
 24896  		ChangeTokenStatusPending,
 24897  		ChangeTokenStatusInsync,
 24898  	}
 24899  }
 24900  
 24901  const (
 24902  	// ComparisonOperatorEq is a ComparisonOperator enum value
 24903  	ComparisonOperatorEq = "EQ"
 24904  
 24905  	// ComparisonOperatorNe is a ComparisonOperator enum value
 24906  	ComparisonOperatorNe = "NE"
 24907  
 24908  	// ComparisonOperatorLe is a ComparisonOperator enum value
 24909  	ComparisonOperatorLe = "LE"
 24910  
 24911  	// ComparisonOperatorLt is a ComparisonOperator enum value
 24912  	ComparisonOperatorLt = "LT"
 24913  
 24914  	// ComparisonOperatorGe is a ComparisonOperator enum value
 24915  	ComparisonOperatorGe = "GE"
 24916  
 24917  	// ComparisonOperatorGt is a ComparisonOperator enum value
 24918  	ComparisonOperatorGt = "GT"
 24919  )
 24920  
 24921  // ComparisonOperator_Values returns all elements of the ComparisonOperator enum
 24922  func ComparisonOperator_Values() []string {
 24923  	return []string{
 24924  		ComparisonOperatorEq,
 24925  		ComparisonOperatorNe,
 24926  		ComparisonOperatorLe,
 24927  		ComparisonOperatorLt,
 24928  		ComparisonOperatorGe,
 24929  		ComparisonOperatorGt,
 24930  	}
 24931  }
 24932  
 24933  const (
 24934  	// GeoMatchConstraintTypeCountry is a GeoMatchConstraintType enum value
 24935  	GeoMatchConstraintTypeCountry = "Country"
 24936  )
 24937  
 24938  // GeoMatchConstraintType_Values returns all elements of the GeoMatchConstraintType enum
 24939  func GeoMatchConstraintType_Values() []string {
 24940  	return []string{
 24941  		GeoMatchConstraintTypeCountry,
 24942  	}
 24943  }
 24944  
 24945  const (
 24946  	// GeoMatchConstraintValueAf is a GeoMatchConstraintValue enum value
 24947  	GeoMatchConstraintValueAf = "AF"
 24948  
 24949  	// GeoMatchConstraintValueAx is a GeoMatchConstraintValue enum value
 24950  	GeoMatchConstraintValueAx = "AX"
 24951  
 24952  	// GeoMatchConstraintValueAl is a GeoMatchConstraintValue enum value
 24953  	GeoMatchConstraintValueAl = "AL"
 24954  
 24955  	// GeoMatchConstraintValueDz is a GeoMatchConstraintValue enum value
 24956  	GeoMatchConstraintValueDz = "DZ"
 24957  
 24958  	// GeoMatchConstraintValueAs is a GeoMatchConstraintValue enum value
 24959  	GeoMatchConstraintValueAs = "AS"
 24960  
 24961  	// GeoMatchConstraintValueAd is a GeoMatchConstraintValue enum value
 24962  	GeoMatchConstraintValueAd = "AD"
 24963  
 24964  	// GeoMatchConstraintValueAo is a GeoMatchConstraintValue enum value
 24965  	GeoMatchConstraintValueAo = "AO"
 24966  
 24967  	// GeoMatchConstraintValueAi is a GeoMatchConstraintValue enum value
 24968  	GeoMatchConstraintValueAi = "AI"
 24969  
 24970  	// GeoMatchConstraintValueAq is a GeoMatchConstraintValue enum value
 24971  	GeoMatchConstraintValueAq = "AQ"
 24972  
 24973  	// GeoMatchConstraintValueAg is a GeoMatchConstraintValue enum value
 24974  	GeoMatchConstraintValueAg = "AG"
 24975  
 24976  	// GeoMatchConstraintValueAr is a GeoMatchConstraintValue enum value
 24977  	GeoMatchConstraintValueAr = "AR"
 24978  
 24979  	// GeoMatchConstraintValueAm is a GeoMatchConstraintValue enum value
 24980  	GeoMatchConstraintValueAm = "AM"
 24981  
 24982  	// GeoMatchConstraintValueAw is a GeoMatchConstraintValue enum value
 24983  	GeoMatchConstraintValueAw = "AW"
 24984  
 24985  	// GeoMatchConstraintValueAu is a GeoMatchConstraintValue enum value
 24986  	GeoMatchConstraintValueAu = "AU"
 24987  
 24988  	// GeoMatchConstraintValueAt is a GeoMatchConstraintValue enum value
 24989  	GeoMatchConstraintValueAt = "AT"
 24990  
 24991  	// GeoMatchConstraintValueAz is a GeoMatchConstraintValue enum value
 24992  	GeoMatchConstraintValueAz = "AZ"
 24993  
 24994  	// GeoMatchConstraintValueBs is a GeoMatchConstraintValue enum value
 24995  	GeoMatchConstraintValueBs = "BS"
 24996  
 24997  	// GeoMatchConstraintValueBh is a GeoMatchConstraintValue enum value
 24998  	GeoMatchConstraintValueBh = "BH"
 24999  
 25000  	// GeoMatchConstraintValueBd is a GeoMatchConstraintValue enum value
 25001  	GeoMatchConstraintValueBd = "BD"
 25002  
 25003  	// GeoMatchConstraintValueBb is a GeoMatchConstraintValue enum value
 25004  	GeoMatchConstraintValueBb = "BB"
 25005  
 25006  	// GeoMatchConstraintValueBy is a GeoMatchConstraintValue enum value
 25007  	GeoMatchConstraintValueBy = "BY"
 25008  
 25009  	// GeoMatchConstraintValueBe is a GeoMatchConstraintValue enum value
 25010  	GeoMatchConstraintValueBe = "BE"
 25011  
 25012  	// GeoMatchConstraintValueBz is a GeoMatchConstraintValue enum value
 25013  	GeoMatchConstraintValueBz = "BZ"
 25014  
 25015  	// GeoMatchConstraintValueBj is a GeoMatchConstraintValue enum value
 25016  	GeoMatchConstraintValueBj = "BJ"
 25017  
 25018  	// GeoMatchConstraintValueBm is a GeoMatchConstraintValue enum value
 25019  	GeoMatchConstraintValueBm = "BM"
 25020  
 25021  	// GeoMatchConstraintValueBt is a GeoMatchConstraintValue enum value
 25022  	GeoMatchConstraintValueBt = "BT"
 25023  
 25024  	// GeoMatchConstraintValueBo is a GeoMatchConstraintValue enum value
 25025  	GeoMatchConstraintValueBo = "BO"
 25026  
 25027  	// GeoMatchConstraintValueBq is a GeoMatchConstraintValue enum value
 25028  	GeoMatchConstraintValueBq = "BQ"
 25029  
 25030  	// GeoMatchConstraintValueBa is a GeoMatchConstraintValue enum value
 25031  	GeoMatchConstraintValueBa = "BA"
 25032  
 25033  	// GeoMatchConstraintValueBw is a GeoMatchConstraintValue enum value
 25034  	GeoMatchConstraintValueBw = "BW"
 25035  
 25036  	// GeoMatchConstraintValueBv is a GeoMatchConstraintValue enum value
 25037  	GeoMatchConstraintValueBv = "BV"
 25038  
 25039  	// GeoMatchConstraintValueBr is a GeoMatchConstraintValue enum value
 25040  	GeoMatchConstraintValueBr = "BR"
 25041  
 25042  	// GeoMatchConstraintValueIo is a GeoMatchConstraintValue enum value
 25043  	GeoMatchConstraintValueIo = "IO"
 25044  
 25045  	// GeoMatchConstraintValueBn is a GeoMatchConstraintValue enum value
 25046  	GeoMatchConstraintValueBn = "BN"
 25047  
 25048  	// GeoMatchConstraintValueBg is a GeoMatchConstraintValue enum value
 25049  	GeoMatchConstraintValueBg = "BG"
 25050  
 25051  	// GeoMatchConstraintValueBf is a GeoMatchConstraintValue enum value
 25052  	GeoMatchConstraintValueBf = "BF"
 25053  
 25054  	// GeoMatchConstraintValueBi is a GeoMatchConstraintValue enum value
 25055  	GeoMatchConstraintValueBi = "BI"
 25056  
 25057  	// GeoMatchConstraintValueKh is a GeoMatchConstraintValue enum value
 25058  	GeoMatchConstraintValueKh = "KH"
 25059  
 25060  	// GeoMatchConstraintValueCm is a GeoMatchConstraintValue enum value
 25061  	GeoMatchConstraintValueCm = "CM"
 25062  
 25063  	// GeoMatchConstraintValueCa is a GeoMatchConstraintValue enum value
 25064  	GeoMatchConstraintValueCa = "CA"
 25065  
 25066  	// GeoMatchConstraintValueCv is a GeoMatchConstraintValue enum value
 25067  	GeoMatchConstraintValueCv = "CV"
 25068  
 25069  	// GeoMatchConstraintValueKy is a GeoMatchConstraintValue enum value
 25070  	GeoMatchConstraintValueKy = "KY"
 25071  
 25072  	// GeoMatchConstraintValueCf is a GeoMatchConstraintValue enum value
 25073  	GeoMatchConstraintValueCf = "CF"
 25074  
 25075  	// GeoMatchConstraintValueTd is a GeoMatchConstraintValue enum value
 25076  	GeoMatchConstraintValueTd = "TD"
 25077  
 25078  	// GeoMatchConstraintValueCl is a GeoMatchConstraintValue enum value
 25079  	GeoMatchConstraintValueCl = "CL"
 25080  
 25081  	// GeoMatchConstraintValueCn is a GeoMatchConstraintValue enum value
 25082  	GeoMatchConstraintValueCn = "CN"
 25083  
 25084  	// GeoMatchConstraintValueCx is a GeoMatchConstraintValue enum value
 25085  	GeoMatchConstraintValueCx = "CX"
 25086  
 25087  	// GeoMatchConstraintValueCc is a GeoMatchConstraintValue enum value
 25088  	GeoMatchConstraintValueCc = "CC"
 25089  
 25090  	// GeoMatchConstraintValueCo is a GeoMatchConstraintValue enum value
 25091  	GeoMatchConstraintValueCo = "CO"
 25092  
 25093  	// GeoMatchConstraintValueKm is a GeoMatchConstraintValue enum value
 25094  	GeoMatchConstraintValueKm = "KM"
 25095  
 25096  	// GeoMatchConstraintValueCg is a GeoMatchConstraintValue enum value
 25097  	GeoMatchConstraintValueCg = "CG"
 25098  
 25099  	// GeoMatchConstraintValueCd is a GeoMatchConstraintValue enum value
 25100  	GeoMatchConstraintValueCd = "CD"
 25101  
 25102  	// GeoMatchConstraintValueCk is a GeoMatchConstraintValue enum value
 25103  	GeoMatchConstraintValueCk = "CK"
 25104  
 25105  	// GeoMatchConstraintValueCr is a GeoMatchConstraintValue enum value
 25106  	GeoMatchConstraintValueCr = "CR"
 25107  
 25108  	// GeoMatchConstraintValueCi is a GeoMatchConstraintValue enum value
 25109  	GeoMatchConstraintValueCi = "CI"
 25110  
 25111  	// GeoMatchConstraintValueHr is a GeoMatchConstraintValue enum value
 25112  	GeoMatchConstraintValueHr = "HR"
 25113  
 25114  	// GeoMatchConstraintValueCu is a GeoMatchConstraintValue enum value
 25115  	GeoMatchConstraintValueCu = "CU"
 25116  
 25117  	// GeoMatchConstraintValueCw is a GeoMatchConstraintValue enum value
 25118  	GeoMatchConstraintValueCw = "CW"
 25119  
 25120  	// GeoMatchConstraintValueCy is a GeoMatchConstraintValue enum value
 25121  	GeoMatchConstraintValueCy = "CY"
 25122  
 25123  	// GeoMatchConstraintValueCz is a GeoMatchConstraintValue enum value
 25124  	GeoMatchConstraintValueCz = "CZ"
 25125  
 25126  	// GeoMatchConstraintValueDk is a GeoMatchConstraintValue enum value
 25127  	GeoMatchConstraintValueDk = "DK"
 25128  
 25129  	// GeoMatchConstraintValueDj is a GeoMatchConstraintValue enum value
 25130  	GeoMatchConstraintValueDj = "DJ"
 25131  
 25132  	// GeoMatchConstraintValueDm is a GeoMatchConstraintValue enum value
 25133  	GeoMatchConstraintValueDm = "DM"
 25134  
 25135  	// GeoMatchConstraintValueDo is a GeoMatchConstraintValue enum value
 25136  	GeoMatchConstraintValueDo = "DO"
 25137  
 25138  	// GeoMatchConstraintValueEc is a GeoMatchConstraintValue enum value
 25139  	GeoMatchConstraintValueEc = "EC"
 25140  
 25141  	// GeoMatchConstraintValueEg is a GeoMatchConstraintValue enum value
 25142  	GeoMatchConstraintValueEg = "EG"
 25143  
 25144  	// GeoMatchConstraintValueSv is a GeoMatchConstraintValue enum value
 25145  	GeoMatchConstraintValueSv = "SV"
 25146  
 25147  	// GeoMatchConstraintValueGq is a GeoMatchConstraintValue enum value
 25148  	GeoMatchConstraintValueGq = "GQ"
 25149  
 25150  	// GeoMatchConstraintValueEr is a GeoMatchConstraintValue enum value
 25151  	GeoMatchConstraintValueEr = "ER"
 25152  
 25153  	// GeoMatchConstraintValueEe is a GeoMatchConstraintValue enum value
 25154  	GeoMatchConstraintValueEe = "EE"
 25155  
 25156  	// GeoMatchConstraintValueEt is a GeoMatchConstraintValue enum value
 25157  	GeoMatchConstraintValueEt = "ET"
 25158  
 25159  	// GeoMatchConstraintValueFk is a GeoMatchConstraintValue enum value
 25160  	GeoMatchConstraintValueFk = "FK"
 25161  
 25162  	// GeoMatchConstraintValueFo is a GeoMatchConstraintValue enum value
 25163  	GeoMatchConstraintValueFo = "FO"
 25164  
 25165  	// GeoMatchConstraintValueFj is a GeoMatchConstraintValue enum value
 25166  	GeoMatchConstraintValueFj = "FJ"
 25167  
 25168  	// GeoMatchConstraintValueFi is a GeoMatchConstraintValue enum value
 25169  	GeoMatchConstraintValueFi = "FI"
 25170  
 25171  	// GeoMatchConstraintValueFr is a GeoMatchConstraintValue enum value
 25172  	GeoMatchConstraintValueFr = "FR"
 25173  
 25174  	// GeoMatchConstraintValueGf is a GeoMatchConstraintValue enum value
 25175  	GeoMatchConstraintValueGf = "GF"
 25176  
 25177  	// GeoMatchConstraintValuePf is a GeoMatchConstraintValue enum value
 25178  	GeoMatchConstraintValuePf = "PF"
 25179  
 25180  	// GeoMatchConstraintValueTf is a GeoMatchConstraintValue enum value
 25181  	GeoMatchConstraintValueTf = "TF"
 25182  
 25183  	// GeoMatchConstraintValueGa is a GeoMatchConstraintValue enum value
 25184  	GeoMatchConstraintValueGa = "GA"
 25185  
 25186  	// GeoMatchConstraintValueGm is a GeoMatchConstraintValue enum value
 25187  	GeoMatchConstraintValueGm = "GM"
 25188  
 25189  	// GeoMatchConstraintValueGe is a GeoMatchConstraintValue enum value
 25190  	GeoMatchConstraintValueGe = "GE"
 25191  
 25192  	// GeoMatchConstraintValueDe is a GeoMatchConstraintValue enum value
 25193  	GeoMatchConstraintValueDe = "DE"
 25194  
 25195  	// GeoMatchConstraintValueGh is a GeoMatchConstraintValue enum value
 25196  	GeoMatchConstraintValueGh = "GH"
 25197  
 25198  	// GeoMatchConstraintValueGi is a GeoMatchConstraintValue enum value
 25199  	GeoMatchConstraintValueGi = "GI"
 25200  
 25201  	// GeoMatchConstraintValueGr is a GeoMatchConstraintValue enum value
 25202  	GeoMatchConstraintValueGr = "GR"
 25203  
 25204  	// GeoMatchConstraintValueGl is a GeoMatchConstraintValue enum value
 25205  	GeoMatchConstraintValueGl = "GL"
 25206  
 25207  	// GeoMatchConstraintValueGd is a GeoMatchConstraintValue enum value
 25208  	GeoMatchConstraintValueGd = "GD"
 25209  
 25210  	// GeoMatchConstraintValueGp is a GeoMatchConstraintValue enum value
 25211  	GeoMatchConstraintValueGp = "GP"
 25212  
 25213  	// GeoMatchConstraintValueGu is a GeoMatchConstraintValue enum value
 25214  	GeoMatchConstraintValueGu = "GU"
 25215  
 25216  	// GeoMatchConstraintValueGt is a GeoMatchConstraintValue enum value
 25217  	GeoMatchConstraintValueGt = "GT"
 25218  
 25219  	// GeoMatchConstraintValueGg is a GeoMatchConstraintValue enum value
 25220  	GeoMatchConstraintValueGg = "GG"
 25221  
 25222  	// GeoMatchConstraintValueGn is a GeoMatchConstraintValue enum value
 25223  	GeoMatchConstraintValueGn = "GN"
 25224  
 25225  	// GeoMatchConstraintValueGw is a GeoMatchConstraintValue enum value
 25226  	GeoMatchConstraintValueGw = "GW"
 25227  
 25228  	// GeoMatchConstraintValueGy is a GeoMatchConstraintValue enum value
 25229  	GeoMatchConstraintValueGy = "GY"
 25230  
 25231  	// GeoMatchConstraintValueHt is a GeoMatchConstraintValue enum value
 25232  	GeoMatchConstraintValueHt = "HT"
 25233  
 25234  	// GeoMatchConstraintValueHm is a GeoMatchConstraintValue enum value
 25235  	GeoMatchConstraintValueHm = "HM"
 25236  
 25237  	// GeoMatchConstraintValueVa is a GeoMatchConstraintValue enum value
 25238  	GeoMatchConstraintValueVa = "VA"
 25239  
 25240  	// GeoMatchConstraintValueHn is a GeoMatchConstraintValue enum value
 25241  	GeoMatchConstraintValueHn = "HN"
 25242  
 25243  	// GeoMatchConstraintValueHk is a GeoMatchConstraintValue enum value
 25244  	GeoMatchConstraintValueHk = "HK"
 25245  
 25246  	// GeoMatchConstraintValueHu is a GeoMatchConstraintValue enum value
 25247  	GeoMatchConstraintValueHu = "HU"
 25248  
 25249  	// GeoMatchConstraintValueIs is a GeoMatchConstraintValue enum value
 25250  	GeoMatchConstraintValueIs = "IS"
 25251  
 25252  	// GeoMatchConstraintValueIn is a GeoMatchConstraintValue enum value
 25253  	GeoMatchConstraintValueIn = "IN"
 25254  
 25255  	// GeoMatchConstraintValueId is a GeoMatchConstraintValue enum value
 25256  	GeoMatchConstraintValueId = "ID"
 25257  
 25258  	// GeoMatchConstraintValueIr is a GeoMatchConstraintValue enum value
 25259  	GeoMatchConstraintValueIr = "IR"
 25260  
 25261  	// GeoMatchConstraintValueIq is a GeoMatchConstraintValue enum value
 25262  	GeoMatchConstraintValueIq = "IQ"
 25263  
 25264  	// GeoMatchConstraintValueIe is a GeoMatchConstraintValue enum value
 25265  	GeoMatchConstraintValueIe = "IE"
 25266  
 25267  	// GeoMatchConstraintValueIm is a GeoMatchConstraintValue enum value
 25268  	GeoMatchConstraintValueIm = "IM"
 25269  
 25270  	// GeoMatchConstraintValueIl is a GeoMatchConstraintValue enum value
 25271  	GeoMatchConstraintValueIl = "IL"
 25272  
 25273  	// GeoMatchConstraintValueIt is a GeoMatchConstraintValue enum value
 25274  	GeoMatchConstraintValueIt = "IT"
 25275  
 25276  	// GeoMatchConstraintValueJm is a GeoMatchConstraintValue enum value
 25277  	GeoMatchConstraintValueJm = "JM"
 25278  
 25279  	// GeoMatchConstraintValueJp is a GeoMatchConstraintValue enum value
 25280  	GeoMatchConstraintValueJp = "JP"
 25281  
 25282  	// GeoMatchConstraintValueJe is a GeoMatchConstraintValue enum value
 25283  	GeoMatchConstraintValueJe = "JE"
 25284  
 25285  	// GeoMatchConstraintValueJo is a GeoMatchConstraintValue enum value
 25286  	GeoMatchConstraintValueJo = "JO"
 25287  
 25288  	// GeoMatchConstraintValueKz is a GeoMatchConstraintValue enum value
 25289  	GeoMatchConstraintValueKz = "KZ"
 25290  
 25291  	// GeoMatchConstraintValueKe is a GeoMatchConstraintValue enum value
 25292  	GeoMatchConstraintValueKe = "KE"
 25293  
 25294  	// GeoMatchConstraintValueKi is a GeoMatchConstraintValue enum value
 25295  	GeoMatchConstraintValueKi = "KI"
 25296  
 25297  	// GeoMatchConstraintValueKp is a GeoMatchConstraintValue enum value
 25298  	GeoMatchConstraintValueKp = "KP"
 25299  
 25300  	// GeoMatchConstraintValueKr is a GeoMatchConstraintValue enum value
 25301  	GeoMatchConstraintValueKr = "KR"
 25302  
 25303  	// GeoMatchConstraintValueKw is a GeoMatchConstraintValue enum value
 25304  	GeoMatchConstraintValueKw = "KW"
 25305  
 25306  	// GeoMatchConstraintValueKg is a GeoMatchConstraintValue enum value
 25307  	GeoMatchConstraintValueKg = "KG"
 25308  
 25309  	// GeoMatchConstraintValueLa is a GeoMatchConstraintValue enum value
 25310  	GeoMatchConstraintValueLa = "LA"
 25311  
 25312  	// GeoMatchConstraintValueLv is a GeoMatchConstraintValue enum value
 25313  	GeoMatchConstraintValueLv = "LV"
 25314  
 25315  	// GeoMatchConstraintValueLb is a GeoMatchConstraintValue enum value
 25316  	GeoMatchConstraintValueLb = "LB"
 25317  
 25318  	// GeoMatchConstraintValueLs is a GeoMatchConstraintValue enum value
 25319  	GeoMatchConstraintValueLs = "LS"
 25320  
 25321  	// GeoMatchConstraintValueLr is a GeoMatchConstraintValue enum value
 25322  	GeoMatchConstraintValueLr = "LR"
 25323  
 25324  	// GeoMatchConstraintValueLy is a GeoMatchConstraintValue enum value
 25325  	GeoMatchConstraintValueLy = "LY"
 25326  
 25327  	// GeoMatchConstraintValueLi is a GeoMatchConstraintValue enum value
 25328  	GeoMatchConstraintValueLi = "LI"
 25329  
 25330  	// GeoMatchConstraintValueLt is a GeoMatchConstraintValue enum value
 25331  	GeoMatchConstraintValueLt = "LT"
 25332  
 25333  	// GeoMatchConstraintValueLu is a GeoMatchConstraintValue enum value
 25334  	GeoMatchConstraintValueLu = "LU"
 25335  
 25336  	// GeoMatchConstraintValueMo is a GeoMatchConstraintValue enum value
 25337  	GeoMatchConstraintValueMo = "MO"
 25338  
 25339  	// GeoMatchConstraintValueMk is a GeoMatchConstraintValue enum value
 25340  	GeoMatchConstraintValueMk = "MK"
 25341  
 25342  	// GeoMatchConstraintValueMg is a GeoMatchConstraintValue enum value
 25343  	GeoMatchConstraintValueMg = "MG"
 25344  
 25345  	// GeoMatchConstraintValueMw is a GeoMatchConstraintValue enum value
 25346  	GeoMatchConstraintValueMw = "MW"
 25347  
 25348  	// GeoMatchConstraintValueMy is a GeoMatchConstraintValue enum value
 25349  	GeoMatchConstraintValueMy = "MY"
 25350  
 25351  	// GeoMatchConstraintValueMv is a GeoMatchConstraintValue enum value
 25352  	GeoMatchConstraintValueMv = "MV"
 25353  
 25354  	// GeoMatchConstraintValueMl is a GeoMatchConstraintValue enum value
 25355  	GeoMatchConstraintValueMl = "ML"
 25356  
 25357  	// GeoMatchConstraintValueMt is a GeoMatchConstraintValue enum value
 25358  	GeoMatchConstraintValueMt = "MT"
 25359  
 25360  	// GeoMatchConstraintValueMh is a GeoMatchConstraintValue enum value
 25361  	GeoMatchConstraintValueMh = "MH"
 25362  
 25363  	// GeoMatchConstraintValueMq is a GeoMatchConstraintValue enum value
 25364  	GeoMatchConstraintValueMq = "MQ"
 25365  
 25366  	// GeoMatchConstraintValueMr is a GeoMatchConstraintValue enum value
 25367  	GeoMatchConstraintValueMr = "MR"
 25368  
 25369  	// GeoMatchConstraintValueMu is a GeoMatchConstraintValue enum value
 25370  	GeoMatchConstraintValueMu = "MU"
 25371  
 25372  	// GeoMatchConstraintValueYt is a GeoMatchConstraintValue enum value
 25373  	GeoMatchConstraintValueYt = "YT"
 25374  
 25375  	// GeoMatchConstraintValueMx is a GeoMatchConstraintValue enum value
 25376  	GeoMatchConstraintValueMx = "MX"
 25377  
 25378  	// GeoMatchConstraintValueFm is a GeoMatchConstraintValue enum value
 25379  	GeoMatchConstraintValueFm = "FM"
 25380  
 25381  	// GeoMatchConstraintValueMd is a GeoMatchConstraintValue enum value
 25382  	GeoMatchConstraintValueMd = "MD"
 25383  
 25384  	// GeoMatchConstraintValueMc is a GeoMatchConstraintValue enum value
 25385  	GeoMatchConstraintValueMc = "MC"
 25386  
 25387  	// GeoMatchConstraintValueMn is a GeoMatchConstraintValue enum value
 25388  	GeoMatchConstraintValueMn = "MN"
 25389  
 25390  	// GeoMatchConstraintValueMe is a GeoMatchConstraintValue enum value
 25391  	GeoMatchConstraintValueMe = "ME"
 25392  
 25393  	// GeoMatchConstraintValueMs is a GeoMatchConstraintValue enum value
 25394  	GeoMatchConstraintValueMs = "MS"
 25395  
 25396  	// GeoMatchConstraintValueMa is a GeoMatchConstraintValue enum value
 25397  	GeoMatchConstraintValueMa = "MA"
 25398  
 25399  	// GeoMatchConstraintValueMz is a GeoMatchConstraintValue enum value
 25400  	GeoMatchConstraintValueMz = "MZ"
 25401  
 25402  	// GeoMatchConstraintValueMm is a GeoMatchConstraintValue enum value
 25403  	GeoMatchConstraintValueMm = "MM"
 25404  
 25405  	// GeoMatchConstraintValueNa is a GeoMatchConstraintValue enum value
 25406  	GeoMatchConstraintValueNa = "NA"
 25407  
 25408  	// GeoMatchConstraintValueNr is a GeoMatchConstraintValue enum value
 25409  	GeoMatchConstraintValueNr = "NR"
 25410  
 25411  	// GeoMatchConstraintValueNp is a GeoMatchConstraintValue enum value
 25412  	GeoMatchConstraintValueNp = "NP"
 25413  
 25414  	// GeoMatchConstraintValueNl is a GeoMatchConstraintValue enum value
 25415  	GeoMatchConstraintValueNl = "NL"
 25416  
 25417  	// GeoMatchConstraintValueNc is a GeoMatchConstraintValue enum value
 25418  	GeoMatchConstraintValueNc = "NC"
 25419  
 25420  	// GeoMatchConstraintValueNz is a GeoMatchConstraintValue enum value
 25421  	GeoMatchConstraintValueNz = "NZ"
 25422  
 25423  	// GeoMatchConstraintValueNi is a GeoMatchConstraintValue enum value
 25424  	GeoMatchConstraintValueNi = "NI"
 25425  
 25426  	// GeoMatchConstraintValueNe is a GeoMatchConstraintValue enum value
 25427  	GeoMatchConstraintValueNe = "NE"
 25428  
 25429  	// GeoMatchConstraintValueNg is a GeoMatchConstraintValue enum value
 25430  	GeoMatchConstraintValueNg = "NG"
 25431  
 25432  	// GeoMatchConstraintValueNu is a GeoMatchConstraintValue enum value
 25433  	GeoMatchConstraintValueNu = "NU"
 25434  
 25435  	// GeoMatchConstraintValueNf is a GeoMatchConstraintValue enum value
 25436  	GeoMatchConstraintValueNf = "NF"
 25437  
 25438  	// GeoMatchConstraintValueMp is a GeoMatchConstraintValue enum value
 25439  	GeoMatchConstraintValueMp = "MP"
 25440  
 25441  	// GeoMatchConstraintValueNo is a GeoMatchConstraintValue enum value
 25442  	GeoMatchConstraintValueNo = "NO"
 25443  
 25444  	// GeoMatchConstraintValueOm is a GeoMatchConstraintValue enum value
 25445  	GeoMatchConstraintValueOm = "OM"
 25446  
 25447  	// GeoMatchConstraintValuePk is a GeoMatchConstraintValue enum value
 25448  	GeoMatchConstraintValuePk = "PK"
 25449  
 25450  	// GeoMatchConstraintValuePw is a GeoMatchConstraintValue enum value
 25451  	GeoMatchConstraintValuePw = "PW"
 25452  
 25453  	// GeoMatchConstraintValuePs is a GeoMatchConstraintValue enum value
 25454  	GeoMatchConstraintValuePs = "PS"
 25455  
 25456  	// GeoMatchConstraintValuePa is a GeoMatchConstraintValue enum value
 25457  	GeoMatchConstraintValuePa = "PA"
 25458  
 25459  	// GeoMatchConstraintValuePg is a GeoMatchConstraintValue enum value
 25460  	GeoMatchConstraintValuePg = "PG"
 25461  
 25462  	// GeoMatchConstraintValuePy is a GeoMatchConstraintValue enum value
 25463  	GeoMatchConstraintValuePy = "PY"
 25464  
 25465  	// GeoMatchConstraintValuePe is a GeoMatchConstraintValue enum value
 25466  	GeoMatchConstraintValuePe = "PE"
 25467  
 25468  	// GeoMatchConstraintValuePh is a GeoMatchConstraintValue enum value
 25469  	GeoMatchConstraintValuePh = "PH"
 25470  
 25471  	// GeoMatchConstraintValuePn is a GeoMatchConstraintValue enum value
 25472  	GeoMatchConstraintValuePn = "PN"
 25473  
 25474  	// GeoMatchConstraintValuePl is a GeoMatchConstraintValue enum value
 25475  	GeoMatchConstraintValuePl = "PL"
 25476  
 25477  	// GeoMatchConstraintValuePt is a GeoMatchConstraintValue enum value
 25478  	GeoMatchConstraintValuePt = "PT"
 25479  
 25480  	// GeoMatchConstraintValuePr is a GeoMatchConstraintValue enum value
 25481  	GeoMatchConstraintValuePr = "PR"
 25482  
 25483  	// GeoMatchConstraintValueQa is a GeoMatchConstraintValue enum value
 25484  	GeoMatchConstraintValueQa = "QA"
 25485  
 25486  	// GeoMatchConstraintValueRe is a GeoMatchConstraintValue enum value
 25487  	GeoMatchConstraintValueRe = "RE"
 25488  
 25489  	// GeoMatchConstraintValueRo is a GeoMatchConstraintValue enum value
 25490  	GeoMatchConstraintValueRo = "RO"
 25491  
 25492  	// GeoMatchConstraintValueRu is a GeoMatchConstraintValue enum value
 25493  	GeoMatchConstraintValueRu = "RU"
 25494  
 25495  	// GeoMatchConstraintValueRw is a GeoMatchConstraintValue enum value
 25496  	GeoMatchConstraintValueRw = "RW"
 25497  
 25498  	// GeoMatchConstraintValueBl is a GeoMatchConstraintValue enum value
 25499  	GeoMatchConstraintValueBl = "BL"
 25500  
 25501  	// GeoMatchConstraintValueSh is a GeoMatchConstraintValue enum value
 25502  	GeoMatchConstraintValueSh = "SH"
 25503  
 25504  	// GeoMatchConstraintValueKn is a GeoMatchConstraintValue enum value
 25505  	GeoMatchConstraintValueKn = "KN"
 25506  
 25507  	// GeoMatchConstraintValueLc is a GeoMatchConstraintValue enum value
 25508  	GeoMatchConstraintValueLc = "LC"
 25509  
 25510  	// GeoMatchConstraintValueMf is a GeoMatchConstraintValue enum value
 25511  	GeoMatchConstraintValueMf = "MF"
 25512  
 25513  	// GeoMatchConstraintValuePm is a GeoMatchConstraintValue enum value
 25514  	GeoMatchConstraintValuePm = "PM"
 25515  
 25516  	// GeoMatchConstraintValueVc is a GeoMatchConstraintValue enum value
 25517  	GeoMatchConstraintValueVc = "VC"
 25518  
 25519  	// GeoMatchConstraintValueWs is a GeoMatchConstraintValue enum value
 25520  	GeoMatchConstraintValueWs = "WS"
 25521  
 25522  	// GeoMatchConstraintValueSm is a GeoMatchConstraintValue enum value
 25523  	GeoMatchConstraintValueSm = "SM"
 25524  
 25525  	// GeoMatchConstraintValueSt is a GeoMatchConstraintValue enum value
 25526  	GeoMatchConstraintValueSt = "ST"
 25527  
 25528  	// GeoMatchConstraintValueSa is a GeoMatchConstraintValue enum value
 25529  	GeoMatchConstraintValueSa = "SA"
 25530  
 25531  	// GeoMatchConstraintValueSn is a GeoMatchConstraintValue enum value
 25532  	GeoMatchConstraintValueSn = "SN"
 25533  
 25534  	// GeoMatchConstraintValueRs is a GeoMatchConstraintValue enum value
 25535  	GeoMatchConstraintValueRs = "RS"
 25536  
 25537  	// GeoMatchConstraintValueSc is a GeoMatchConstraintValue enum value
 25538  	GeoMatchConstraintValueSc = "SC"
 25539  
 25540  	// GeoMatchConstraintValueSl is a GeoMatchConstraintValue enum value
 25541  	GeoMatchConstraintValueSl = "SL"
 25542  
 25543  	// GeoMatchConstraintValueSg is a GeoMatchConstraintValue enum value
 25544  	GeoMatchConstraintValueSg = "SG"
 25545  
 25546  	// GeoMatchConstraintValueSx is a GeoMatchConstraintValue enum value
 25547  	GeoMatchConstraintValueSx = "SX"
 25548  
 25549  	// GeoMatchConstraintValueSk is a GeoMatchConstraintValue enum value
 25550  	GeoMatchConstraintValueSk = "SK"
 25551  
 25552  	// GeoMatchConstraintValueSi is a GeoMatchConstraintValue enum value
 25553  	GeoMatchConstraintValueSi = "SI"
 25554  
 25555  	// GeoMatchConstraintValueSb is a GeoMatchConstraintValue enum value
 25556  	GeoMatchConstraintValueSb = "SB"
 25557  
 25558  	// GeoMatchConstraintValueSo is a GeoMatchConstraintValue enum value
 25559  	GeoMatchConstraintValueSo = "SO"
 25560  
 25561  	// GeoMatchConstraintValueZa is a GeoMatchConstraintValue enum value
 25562  	GeoMatchConstraintValueZa = "ZA"
 25563  
 25564  	// GeoMatchConstraintValueGs is a GeoMatchConstraintValue enum value
 25565  	GeoMatchConstraintValueGs = "GS"
 25566  
 25567  	// GeoMatchConstraintValueSs is a GeoMatchConstraintValue enum value
 25568  	GeoMatchConstraintValueSs = "SS"
 25569  
 25570  	// GeoMatchConstraintValueEs is a GeoMatchConstraintValue enum value
 25571  	GeoMatchConstraintValueEs = "ES"
 25572  
 25573  	// GeoMatchConstraintValueLk is a GeoMatchConstraintValue enum value
 25574  	GeoMatchConstraintValueLk = "LK"
 25575  
 25576  	// GeoMatchConstraintValueSd is a GeoMatchConstraintValue enum value
 25577  	GeoMatchConstraintValueSd = "SD"
 25578  
 25579  	// GeoMatchConstraintValueSr is a GeoMatchConstraintValue enum value
 25580  	GeoMatchConstraintValueSr = "SR"
 25581  
 25582  	// GeoMatchConstraintValueSj is a GeoMatchConstraintValue enum value
 25583  	GeoMatchConstraintValueSj = "SJ"
 25584  
 25585  	// GeoMatchConstraintValueSz is a GeoMatchConstraintValue enum value
 25586  	GeoMatchConstraintValueSz = "SZ"
 25587  
 25588  	// GeoMatchConstraintValueSe is a GeoMatchConstraintValue enum value
 25589  	GeoMatchConstraintValueSe = "SE"
 25590  
 25591  	// GeoMatchConstraintValueCh is a GeoMatchConstraintValue enum value
 25592  	GeoMatchConstraintValueCh = "CH"
 25593  
 25594  	// GeoMatchConstraintValueSy is a GeoMatchConstraintValue enum value
 25595  	GeoMatchConstraintValueSy = "SY"
 25596  
 25597  	// GeoMatchConstraintValueTw is a GeoMatchConstraintValue enum value
 25598  	GeoMatchConstraintValueTw = "TW"
 25599  
 25600  	// GeoMatchConstraintValueTj is a GeoMatchConstraintValue enum value
 25601  	GeoMatchConstraintValueTj = "TJ"
 25602  
 25603  	// GeoMatchConstraintValueTz is a GeoMatchConstraintValue enum value
 25604  	GeoMatchConstraintValueTz = "TZ"
 25605  
 25606  	// GeoMatchConstraintValueTh is a GeoMatchConstraintValue enum value
 25607  	GeoMatchConstraintValueTh = "TH"
 25608  
 25609  	// GeoMatchConstraintValueTl is a GeoMatchConstraintValue enum value
 25610  	GeoMatchConstraintValueTl = "TL"
 25611  
 25612  	// GeoMatchConstraintValueTg is a GeoMatchConstraintValue enum value
 25613  	GeoMatchConstraintValueTg = "TG"
 25614  
 25615  	// GeoMatchConstraintValueTk is a GeoMatchConstraintValue enum value
 25616  	GeoMatchConstraintValueTk = "TK"
 25617  
 25618  	// GeoMatchConstraintValueTo is a GeoMatchConstraintValue enum value
 25619  	GeoMatchConstraintValueTo = "TO"
 25620  
 25621  	// GeoMatchConstraintValueTt is a GeoMatchConstraintValue enum value
 25622  	GeoMatchConstraintValueTt = "TT"
 25623  
 25624  	// GeoMatchConstraintValueTn is a GeoMatchConstraintValue enum value
 25625  	GeoMatchConstraintValueTn = "TN"
 25626  
 25627  	// GeoMatchConstraintValueTr is a GeoMatchConstraintValue enum value
 25628  	GeoMatchConstraintValueTr = "TR"
 25629  
 25630  	// GeoMatchConstraintValueTm is a GeoMatchConstraintValue enum value
 25631  	GeoMatchConstraintValueTm = "TM"
 25632  
 25633  	// GeoMatchConstraintValueTc is a GeoMatchConstraintValue enum value
 25634  	GeoMatchConstraintValueTc = "TC"
 25635  
 25636  	// GeoMatchConstraintValueTv is a GeoMatchConstraintValue enum value
 25637  	GeoMatchConstraintValueTv = "TV"
 25638  
 25639  	// GeoMatchConstraintValueUg is a GeoMatchConstraintValue enum value
 25640  	GeoMatchConstraintValueUg = "UG"
 25641  
 25642  	// GeoMatchConstraintValueUa is a GeoMatchConstraintValue enum value
 25643  	GeoMatchConstraintValueUa = "UA"
 25644  
 25645  	// GeoMatchConstraintValueAe is a GeoMatchConstraintValue enum value
 25646  	GeoMatchConstraintValueAe = "AE"
 25647  
 25648  	// GeoMatchConstraintValueGb is a GeoMatchConstraintValue enum value
 25649  	GeoMatchConstraintValueGb = "GB"
 25650  
 25651  	// GeoMatchConstraintValueUs is a GeoMatchConstraintValue enum value
 25652  	GeoMatchConstraintValueUs = "US"
 25653  
 25654  	// GeoMatchConstraintValueUm is a GeoMatchConstraintValue enum value
 25655  	GeoMatchConstraintValueUm = "UM"
 25656  
 25657  	// GeoMatchConstraintValueUy is a GeoMatchConstraintValue enum value
 25658  	GeoMatchConstraintValueUy = "UY"
 25659  
 25660  	// GeoMatchConstraintValueUz is a GeoMatchConstraintValue enum value
 25661  	GeoMatchConstraintValueUz = "UZ"
 25662  
 25663  	// GeoMatchConstraintValueVu is a GeoMatchConstraintValue enum value
 25664  	GeoMatchConstraintValueVu = "VU"
 25665  
 25666  	// GeoMatchConstraintValueVe is a GeoMatchConstraintValue enum value
 25667  	GeoMatchConstraintValueVe = "VE"
 25668  
 25669  	// GeoMatchConstraintValueVn is a GeoMatchConstraintValue enum value
 25670  	GeoMatchConstraintValueVn = "VN"
 25671  
 25672  	// GeoMatchConstraintValueVg is a GeoMatchConstraintValue enum value
 25673  	GeoMatchConstraintValueVg = "VG"
 25674  
 25675  	// GeoMatchConstraintValueVi is a GeoMatchConstraintValue enum value
 25676  	GeoMatchConstraintValueVi = "VI"
 25677  
 25678  	// GeoMatchConstraintValueWf is a GeoMatchConstraintValue enum value
 25679  	GeoMatchConstraintValueWf = "WF"
 25680  
 25681  	// GeoMatchConstraintValueEh is a GeoMatchConstraintValue enum value
 25682  	GeoMatchConstraintValueEh = "EH"
 25683  
 25684  	// GeoMatchConstraintValueYe is a GeoMatchConstraintValue enum value
 25685  	GeoMatchConstraintValueYe = "YE"
 25686  
 25687  	// GeoMatchConstraintValueZm is a GeoMatchConstraintValue enum value
 25688  	GeoMatchConstraintValueZm = "ZM"
 25689  
 25690  	// GeoMatchConstraintValueZw is a GeoMatchConstraintValue enum value
 25691  	GeoMatchConstraintValueZw = "ZW"
 25692  )
 25693  
 25694  // GeoMatchConstraintValue_Values returns all elements of the GeoMatchConstraintValue enum
 25695  func GeoMatchConstraintValue_Values() []string {
 25696  	return []string{
 25697  		GeoMatchConstraintValueAf,
 25698  		GeoMatchConstraintValueAx,
 25699  		GeoMatchConstraintValueAl,
 25700  		GeoMatchConstraintValueDz,
 25701  		GeoMatchConstraintValueAs,
 25702  		GeoMatchConstraintValueAd,
 25703  		GeoMatchConstraintValueAo,
 25704  		GeoMatchConstraintValueAi,
 25705  		GeoMatchConstraintValueAq,
 25706  		GeoMatchConstraintValueAg,
 25707  		GeoMatchConstraintValueAr,
 25708  		GeoMatchConstraintValueAm,
 25709  		GeoMatchConstraintValueAw,
 25710  		GeoMatchConstraintValueAu,
 25711  		GeoMatchConstraintValueAt,
 25712  		GeoMatchConstraintValueAz,
 25713  		GeoMatchConstraintValueBs,
 25714  		GeoMatchConstraintValueBh,
 25715  		GeoMatchConstraintValueBd,
 25716  		GeoMatchConstraintValueBb,
 25717  		GeoMatchConstraintValueBy,
 25718  		GeoMatchConstraintValueBe,
 25719  		GeoMatchConstraintValueBz,
 25720  		GeoMatchConstraintValueBj,
 25721  		GeoMatchConstraintValueBm,
 25722  		GeoMatchConstraintValueBt,
 25723  		GeoMatchConstraintValueBo,
 25724  		GeoMatchConstraintValueBq,
 25725  		GeoMatchConstraintValueBa,
 25726  		GeoMatchConstraintValueBw,
 25727  		GeoMatchConstraintValueBv,
 25728  		GeoMatchConstraintValueBr,
 25729  		GeoMatchConstraintValueIo,
 25730  		GeoMatchConstraintValueBn,
 25731  		GeoMatchConstraintValueBg,
 25732  		GeoMatchConstraintValueBf,
 25733  		GeoMatchConstraintValueBi,
 25734  		GeoMatchConstraintValueKh,
 25735  		GeoMatchConstraintValueCm,
 25736  		GeoMatchConstraintValueCa,
 25737  		GeoMatchConstraintValueCv,
 25738  		GeoMatchConstraintValueKy,
 25739  		GeoMatchConstraintValueCf,
 25740  		GeoMatchConstraintValueTd,
 25741  		GeoMatchConstraintValueCl,
 25742  		GeoMatchConstraintValueCn,
 25743  		GeoMatchConstraintValueCx,
 25744  		GeoMatchConstraintValueCc,
 25745  		GeoMatchConstraintValueCo,
 25746  		GeoMatchConstraintValueKm,
 25747  		GeoMatchConstraintValueCg,
 25748  		GeoMatchConstraintValueCd,
 25749  		GeoMatchConstraintValueCk,
 25750  		GeoMatchConstraintValueCr,
 25751  		GeoMatchConstraintValueCi,
 25752  		GeoMatchConstraintValueHr,
 25753  		GeoMatchConstraintValueCu,
 25754  		GeoMatchConstraintValueCw,
 25755  		GeoMatchConstraintValueCy,
 25756  		GeoMatchConstraintValueCz,
 25757  		GeoMatchConstraintValueDk,
 25758  		GeoMatchConstraintValueDj,
 25759  		GeoMatchConstraintValueDm,
 25760  		GeoMatchConstraintValueDo,
 25761  		GeoMatchConstraintValueEc,
 25762  		GeoMatchConstraintValueEg,
 25763  		GeoMatchConstraintValueSv,
 25764  		GeoMatchConstraintValueGq,
 25765  		GeoMatchConstraintValueEr,
 25766  		GeoMatchConstraintValueEe,
 25767  		GeoMatchConstraintValueEt,
 25768  		GeoMatchConstraintValueFk,
 25769  		GeoMatchConstraintValueFo,
 25770  		GeoMatchConstraintValueFj,
 25771  		GeoMatchConstraintValueFi,
 25772  		GeoMatchConstraintValueFr,
 25773  		GeoMatchConstraintValueGf,
 25774  		GeoMatchConstraintValuePf,
 25775  		GeoMatchConstraintValueTf,
 25776  		GeoMatchConstraintValueGa,
 25777  		GeoMatchConstraintValueGm,
 25778  		GeoMatchConstraintValueGe,
 25779  		GeoMatchConstraintValueDe,
 25780  		GeoMatchConstraintValueGh,
 25781  		GeoMatchConstraintValueGi,
 25782  		GeoMatchConstraintValueGr,
 25783  		GeoMatchConstraintValueGl,
 25784  		GeoMatchConstraintValueGd,
 25785  		GeoMatchConstraintValueGp,
 25786  		GeoMatchConstraintValueGu,
 25787  		GeoMatchConstraintValueGt,
 25788  		GeoMatchConstraintValueGg,
 25789  		GeoMatchConstraintValueGn,
 25790  		GeoMatchConstraintValueGw,
 25791  		GeoMatchConstraintValueGy,
 25792  		GeoMatchConstraintValueHt,
 25793  		GeoMatchConstraintValueHm,
 25794  		GeoMatchConstraintValueVa,
 25795  		GeoMatchConstraintValueHn,
 25796  		GeoMatchConstraintValueHk,
 25797  		GeoMatchConstraintValueHu,
 25798  		GeoMatchConstraintValueIs,
 25799  		GeoMatchConstraintValueIn,
 25800  		GeoMatchConstraintValueId,
 25801  		GeoMatchConstraintValueIr,
 25802  		GeoMatchConstraintValueIq,
 25803  		GeoMatchConstraintValueIe,
 25804  		GeoMatchConstraintValueIm,
 25805  		GeoMatchConstraintValueIl,
 25806  		GeoMatchConstraintValueIt,
 25807  		GeoMatchConstraintValueJm,
 25808  		GeoMatchConstraintValueJp,
 25809  		GeoMatchConstraintValueJe,
 25810  		GeoMatchConstraintValueJo,
 25811  		GeoMatchConstraintValueKz,
 25812  		GeoMatchConstraintValueKe,
 25813  		GeoMatchConstraintValueKi,
 25814  		GeoMatchConstraintValueKp,
 25815  		GeoMatchConstraintValueKr,
 25816  		GeoMatchConstraintValueKw,
 25817  		GeoMatchConstraintValueKg,
 25818  		GeoMatchConstraintValueLa,
 25819  		GeoMatchConstraintValueLv,
 25820  		GeoMatchConstraintValueLb,
 25821  		GeoMatchConstraintValueLs,
 25822  		GeoMatchConstraintValueLr,
 25823  		GeoMatchConstraintValueLy,
 25824  		GeoMatchConstraintValueLi,
 25825  		GeoMatchConstraintValueLt,
 25826  		GeoMatchConstraintValueLu,
 25827  		GeoMatchConstraintValueMo,
 25828  		GeoMatchConstraintValueMk,
 25829  		GeoMatchConstraintValueMg,
 25830  		GeoMatchConstraintValueMw,
 25831  		GeoMatchConstraintValueMy,
 25832  		GeoMatchConstraintValueMv,
 25833  		GeoMatchConstraintValueMl,
 25834  		GeoMatchConstraintValueMt,
 25835  		GeoMatchConstraintValueMh,
 25836  		GeoMatchConstraintValueMq,
 25837  		GeoMatchConstraintValueMr,
 25838  		GeoMatchConstraintValueMu,
 25839  		GeoMatchConstraintValueYt,
 25840  		GeoMatchConstraintValueMx,
 25841  		GeoMatchConstraintValueFm,
 25842  		GeoMatchConstraintValueMd,
 25843  		GeoMatchConstraintValueMc,
 25844  		GeoMatchConstraintValueMn,
 25845  		GeoMatchConstraintValueMe,
 25846  		GeoMatchConstraintValueMs,
 25847  		GeoMatchConstraintValueMa,
 25848  		GeoMatchConstraintValueMz,
 25849  		GeoMatchConstraintValueMm,
 25850  		GeoMatchConstraintValueNa,
 25851  		GeoMatchConstraintValueNr,
 25852  		GeoMatchConstraintValueNp,
 25853  		GeoMatchConstraintValueNl,
 25854  		GeoMatchConstraintValueNc,
 25855  		GeoMatchConstraintValueNz,
 25856  		GeoMatchConstraintValueNi,
 25857  		GeoMatchConstraintValueNe,
 25858  		GeoMatchConstraintValueNg,
 25859  		GeoMatchConstraintValueNu,
 25860  		GeoMatchConstraintValueNf,
 25861  		GeoMatchConstraintValueMp,
 25862  		GeoMatchConstraintValueNo,
 25863  		GeoMatchConstraintValueOm,
 25864  		GeoMatchConstraintValuePk,
 25865  		GeoMatchConstraintValuePw,
 25866  		GeoMatchConstraintValuePs,
 25867  		GeoMatchConstraintValuePa,
 25868  		GeoMatchConstraintValuePg,
 25869  		GeoMatchConstraintValuePy,
 25870  		GeoMatchConstraintValuePe,
 25871  		GeoMatchConstraintValuePh,
 25872  		GeoMatchConstraintValuePn,
 25873  		GeoMatchConstraintValuePl,
 25874  		GeoMatchConstraintValuePt,
 25875  		GeoMatchConstraintValuePr,
 25876  		GeoMatchConstraintValueQa,
 25877  		GeoMatchConstraintValueRe,
 25878  		GeoMatchConstraintValueRo,
 25879  		GeoMatchConstraintValueRu,
 25880  		GeoMatchConstraintValueRw,
 25881  		GeoMatchConstraintValueBl,
 25882  		GeoMatchConstraintValueSh,
 25883  		GeoMatchConstraintValueKn,
 25884  		GeoMatchConstraintValueLc,
 25885  		GeoMatchConstraintValueMf,
 25886  		GeoMatchConstraintValuePm,
 25887  		GeoMatchConstraintValueVc,
 25888  		GeoMatchConstraintValueWs,
 25889  		GeoMatchConstraintValueSm,
 25890  		GeoMatchConstraintValueSt,
 25891  		GeoMatchConstraintValueSa,
 25892  		GeoMatchConstraintValueSn,
 25893  		GeoMatchConstraintValueRs,
 25894  		GeoMatchConstraintValueSc,
 25895  		GeoMatchConstraintValueSl,
 25896  		GeoMatchConstraintValueSg,
 25897  		GeoMatchConstraintValueSx,
 25898  		GeoMatchConstraintValueSk,
 25899  		GeoMatchConstraintValueSi,
 25900  		GeoMatchConstraintValueSb,
 25901  		GeoMatchConstraintValueSo,
 25902  		GeoMatchConstraintValueZa,
 25903  		GeoMatchConstraintValueGs,
 25904  		GeoMatchConstraintValueSs,
 25905  		GeoMatchConstraintValueEs,
 25906  		GeoMatchConstraintValueLk,
 25907  		GeoMatchConstraintValueSd,
 25908  		GeoMatchConstraintValueSr,
 25909  		GeoMatchConstraintValueSj,
 25910  		GeoMatchConstraintValueSz,
 25911  		GeoMatchConstraintValueSe,
 25912  		GeoMatchConstraintValueCh,
 25913  		GeoMatchConstraintValueSy,
 25914  		GeoMatchConstraintValueTw,
 25915  		GeoMatchConstraintValueTj,
 25916  		GeoMatchConstraintValueTz,
 25917  		GeoMatchConstraintValueTh,
 25918  		GeoMatchConstraintValueTl,
 25919  		GeoMatchConstraintValueTg,
 25920  		GeoMatchConstraintValueTk,
 25921  		GeoMatchConstraintValueTo,
 25922  		GeoMatchConstraintValueTt,
 25923  		GeoMatchConstraintValueTn,
 25924  		GeoMatchConstraintValueTr,
 25925  		GeoMatchConstraintValueTm,
 25926  		GeoMatchConstraintValueTc,
 25927  		GeoMatchConstraintValueTv,
 25928  		GeoMatchConstraintValueUg,
 25929  		GeoMatchConstraintValueUa,
 25930  		GeoMatchConstraintValueAe,
 25931  		GeoMatchConstraintValueGb,
 25932  		GeoMatchConstraintValueUs,
 25933  		GeoMatchConstraintValueUm,
 25934  		GeoMatchConstraintValueUy,
 25935  		GeoMatchConstraintValueUz,
 25936  		GeoMatchConstraintValueVu,
 25937  		GeoMatchConstraintValueVe,
 25938  		GeoMatchConstraintValueVn,
 25939  		GeoMatchConstraintValueVg,
 25940  		GeoMatchConstraintValueVi,
 25941  		GeoMatchConstraintValueWf,
 25942  		GeoMatchConstraintValueEh,
 25943  		GeoMatchConstraintValueYe,
 25944  		GeoMatchConstraintValueZm,
 25945  		GeoMatchConstraintValueZw,
 25946  	}
 25947  }
 25948  
 25949  const (
 25950  	// IPSetDescriptorTypeIpv4 is a IPSetDescriptorType enum value
 25951  	IPSetDescriptorTypeIpv4 = "IPV4"
 25952  
 25953  	// IPSetDescriptorTypeIpv6 is a IPSetDescriptorType enum value
 25954  	IPSetDescriptorTypeIpv6 = "IPV6"
 25955  )
 25956  
 25957  // IPSetDescriptorType_Values returns all elements of the IPSetDescriptorType enum
 25958  func IPSetDescriptorType_Values() []string {
 25959  	return []string{
 25960  		IPSetDescriptorTypeIpv4,
 25961  		IPSetDescriptorTypeIpv6,
 25962  	}
 25963  }
 25964  
 25965  const (
 25966  	// MatchFieldTypeUri is a MatchFieldType enum value
 25967  	MatchFieldTypeUri = "URI"
 25968  
 25969  	// MatchFieldTypeQueryString is a MatchFieldType enum value
 25970  	MatchFieldTypeQueryString = "QUERY_STRING"
 25971  
 25972  	// MatchFieldTypeHeader is a MatchFieldType enum value
 25973  	MatchFieldTypeHeader = "HEADER"
 25974  
 25975  	// MatchFieldTypeMethod is a MatchFieldType enum value
 25976  	MatchFieldTypeMethod = "METHOD"
 25977  
 25978  	// MatchFieldTypeBody is a MatchFieldType enum value
 25979  	MatchFieldTypeBody = "BODY"
 25980  
 25981  	// MatchFieldTypeSingleQueryArg is a MatchFieldType enum value
 25982  	MatchFieldTypeSingleQueryArg = "SINGLE_QUERY_ARG"
 25983  
 25984  	// MatchFieldTypeAllQueryArgs is a MatchFieldType enum value
 25985  	MatchFieldTypeAllQueryArgs = "ALL_QUERY_ARGS"
 25986  )
 25987  
 25988  // MatchFieldType_Values returns all elements of the MatchFieldType enum
 25989  func MatchFieldType_Values() []string {
 25990  	return []string{
 25991  		MatchFieldTypeUri,
 25992  		MatchFieldTypeQueryString,
 25993  		MatchFieldTypeHeader,
 25994  		MatchFieldTypeMethod,
 25995  		MatchFieldTypeBody,
 25996  		MatchFieldTypeSingleQueryArg,
 25997  		MatchFieldTypeAllQueryArgs,
 25998  	}
 25999  }
 26000  
 26001  const (
 26002  	// MigrationErrorTypeEntityNotSupported is a MigrationErrorType enum value
 26003  	MigrationErrorTypeEntityNotSupported = "ENTITY_NOT_SUPPORTED"
 26004  
 26005  	// MigrationErrorTypeEntityNotFound is a MigrationErrorType enum value
 26006  	MigrationErrorTypeEntityNotFound = "ENTITY_NOT_FOUND"
 26007  
 26008  	// MigrationErrorTypeS3BucketNoPermission is a MigrationErrorType enum value
 26009  	MigrationErrorTypeS3BucketNoPermission = "S3_BUCKET_NO_PERMISSION"
 26010  
 26011  	// MigrationErrorTypeS3BucketNotAccessible is a MigrationErrorType enum value
 26012  	MigrationErrorTypeS3BucketNotAccessible = "S3_BUCKET_NOT_ACCESSIBLE"
 26013  
 26014  	// MigrationErrorTypeS3BucketNotFound is a MigrationErrorType enum value
 26015  	MigrationErrorTypeS3BucketNotFound = "S3_BUCKET_NOT_FOUND"
 26016  
 26017  	// MigrationErrorTypeS3BucketInvalidRegion is a MigrationErrorType enum value
 26018  	MigrationErrorTypeS3BucketInvalidRegion = "S3_BUCKET_INVALID_REGION"
 26019  
 26020  	// MigrationErrorTypeS3InternalError is a MigrationErrorType enum value
 26021  	MigrationErrorTypeS3InternalError = "S3_INTERNAL_ERROR"
 26022  )
 26023  
 26024  // MigrationErrorType_Values returns all elements of the MigrationErrorType enum
 26025  func MigrationErrorType_Values() []string {
 26026  	return []string{
 26027  		MigrationErrorTypeEntityNotSupported,
 26028  		MigrationErrorTypeEntityNotFound,
 26029  		MigrationErrorTypeS3BucketNoPermission,
 26030  		MigrationErrorTypeS3BucketNotAccessible,
 26031  		MigrationErrorTypeS3BucketNotFound,
 26032  		MigrationErrorTypeS3BucketInvalidRegion,
 26033  		MigrationErrorTypeS3InternalError,
 26034  	}
 26035  }
 26036  
 26037  const (
 26038  	// ParameterExceptionFieldChangeAction is a ParameterExceptionField enum value
 26039  	ParameterExceptionFieldChangeAction = "CHANGE_ACTION"
 26040  
 26041  	// ParameterExceptionFieldWafAction is a ParameterExceptionField enum value
 26042  	ParameterExceptionFieldWafAction = "WAF_ACTION"
 26043  
 26044  	// ParameterExceptionFieldWafOverrideAction is a ParameterExceptionField enum value
 26045  	ParameterExceptionFieldWafOverrideAction = "WAF_OVERRIDE_ACTION"
 26046  
 26047  	// ParameterExceptionFieldPredicateType is a ParameterExceptionField enum value
 26048  	ParameterExceptionFieldPredicateType = "PREDICATE_TYPE"
 26049  
 26050  	// ParameterExceptionFieldIpsetType is a ParameterExceptionField enum value
 26051  	ParameterExceptionFieldIpsetType = "IPSET_TYPE"
 26052  
 26053  	// ParameterExceptionFieldByteMatchFieldType is a ParameterExceptionField enum value
 26054  	ParameterExceptionFieldByteMatchFieldType = "BYTE_MATCH_FIELD_TYPE"
 26055  
 26056  	// ParameterExceptionFieldSqlInjectionMatchFieldType is a ParameterExceptionField enum value
 26057  	ParameterExceptionFieldSqlInjectionMatchFieldType = "SQL_INJECTION_MATCH_FIELD_TYPE"
 26058  
 26059  	// ParameterExceptionFieldByteMatchTextTransformation is a ParameterExceptionField enum value
 26060  	ParameterExceptionFieldByteMatchTextTransformation = "BYTE_MATCH_TEXT_TRANSFORMATION"
 26061  
 26062  	// ParameterExceptionFieldByteMatchPositionalConstraint is a ParameterExceptionField enum value
 26063  	ParameterExceptionFieldByteMatchPositionalConstraint = "BYTE_MATCH_POSITIONAL_CONSTRAINT"
 26064  
 26065  	// ParameterExceptionFieldSizeConstraintComparisonOperator is a ParameterExceptionField enum value
 26066  	ParameterExceptionFieldSizeConstraintComparisonOperator = "SIZE_CONSTRAINT_COMPARISON_OPERATOR"
 26067  
 26068  	// ParameterExceptionFieldGeoMatchLocationType is a ParameterExceptionField enum value
 26069  	ParameterExceptionFieldGeoMatchLocationType = "GEO_MATCH_LOCATION_TYPE"
 26070  
 26071  	// ParameterExceptionFieldGeoMatchLocationValue is a ParameterExceptionField enum value
 26072  	ParameterExceptionFieldGeoMatchLocationValue = "GEO_MATCH_LOCATION_VALUE"
 26073  
 26074  	// ParameterExceptionFieldRateKey is a ParameterExceptionField enum value
 26075  	ParameterExceptionFieldRateKey = "RATE_KEY"
 26076  
 26077  	// ParameterExceptionFieldRuleType is a ParameterExceptionField enum value
 26078  	ParameterExceptionFieldRuleType = "RULE_TYPE"
 26079  
 26080  	// ParameterExceptionFieldNextMarker is a ParameterExceptionField enum value
 26081  	ParameterExceptionFieldNextMarker = "NEXT_MARKER"
 26082  
 26083  	// ParameterExceptionFieldResourceArn is a ParameterExceptionField enum value
 26084  	ParameterExceptionFieldResourceArn = "RESOURCE_ARN"
 26085  
 26086  	// ParameterExceptionFieldTags is a ParameterExceptionField enum value
 26087  	ParameterExceptionFieldTags = "TAGS"
 26088  
 26089  	// ParameterExceptionFieldTagKeys is a ParameterExceptionField enum value
 26090  	ParameterExceptionFieldTagKeys = "TAG_KEYS"
 26091  )
 26092  
 26093  // ParameterExceptionField_Values returns all elements of the ParameterExceptionField enum
 26094  func ParameterExceptionField_Values() []string {
 26095  	return []string{
 26096  		ParameterExceptionFieldChangeAction,
 26097  		ParameterExceptionFieldWafAction,
 26098  		ParameterExceptionFieldWafOverrideAction,
 26099  		ParameterExceptionFieldPredicateType,
 26100  		ParameterExceptionFieldIpsetType,
 26101  		ParameterExceptionFieldByteMatchFieldType,
 26102  		ParameterExceptionFieldSqlInjectionMatchFieldType,
 26103  		ParameterExceptionFieldByteMatchTextTransformation,
 26104  		ParameterExceptionFieldByteMatchPositionalConstraint,
 26105  		ParameterExceptionFieldSizeConstraintComparisonOperator,
 26106  		ParameterExceptionFieldGeoMatchLocationType,
 26107  		ParameterExceptionFieldGeoMatchLocationValue,
 26108  		ParameterExceptionFieldRateKey,
 26109  		ParameterExceptionFieldRuleType,
 26110  		ParameterExceptionFieldNextMarker,
 26111  		ParameterExceptionFieldResourceArn,
 26112  		ParameterExceptionFieldTags,
 26113  		ParameterExceptionFieldTagKeys,
 26114  	}
 26115  }
 26116  
 26117  const (
 26118  	// ParameterExceptionReasonInvalidOption is a ParameterExceptionReason enum value
 26119  	ParameterExceptionReasonInvalidOption = "INVALID_OPTION"
 26120  
 26121  	// ParameterExceptionReasonIllegalCombination is a ParameterExceptionReason enum value
 26122  	ParameterExceptionReasonIllegalCombination = "ILLEGAL_COMBINATION"
 26123  
 26124  	// ParameterExceptionReasonIllegalArgument is a ParameterExceptionReason enum value
 26125  	ParameterExceptionReasonIllegalArgument = "ILLEGAL_ARGUMENT"
 26126  
 26127  	// ParameterExceptionReasonInvalidTagKey is a ParameterExceptionReason enum value
 26128  	ParameterExceptionReasonInvalidTagKey = "INVALID_TAG_KEY"
 26129  )
 26130  
 26131  // ParameterExceptionReason_Values returns all elements of the ParameterExceptionReason enum
 26132  func ParameterExceptionReason_Values() []string {
 26133  	return []string{
 26134  		ParameterExceptionReasonInvalidOption,
 26135  		ParameterExceptionReasonIllegalCombination,
 26136  		ParameterExceptionReasonIllegalArgument,
 26137  		ParameterExceptionReasonInvalidTagKey,
 26138  	}
 26139  }
 26140  
 26141  const (
 26142  	// PositionalConstraintExactly is a PositionalConstraint enum value
 26143  	PositionalConstraintExactly = "EXACTLY"
 26144  
 26145  	// PositionalConstraintStartsWith is a PositionalConstraint enum value
 26146  	PositionalConstraintStartsWith = "STARTS_WITH"
 26147  
 26148  	// PositionalConstraintEndsWith is a PositionalConstraint enum value
 26149  	PositionalConstraintEndsWith = "ENDS_WITH"
 26150  
 26151  	// PositionalConstraintContains is a PositionalConstraint enum value
 26152  	PositionalConstraintContains = "CONTAINS"
 26153  
 26154  	// PositionalConstraintContainsWord is a PositionalConstraint enum value
 26155  	PositionalConstraintContainsWord = "CONTAINS_WORD"
 26156  )
 26157  
 26158  // PositionalConstraint_Values returns all elements of the PositionalConstraint enum
 26159  func PositionalConstraint_Values() []string {
 26160  	return []string{
 26161  		PositionalConstraintExactly,
 26162  		PositionalConstraintStartsWith,
 26163  		PositionalConstraintEndsWith,
 26164  		PositionalConstraintContains,
 26165  		PositionalConstraintContainsWord,
 26166  	}
 26167  }
 26168  
 26169  const (
 26170  	// PredicateTypeIpmatch is a PredicateType enum value
 26171  	PredicateTypeIpmatch = "IPMatch"
 26172  
 26173  	// PredicateTypeByteMatch is a PredicateType enum value
 26174  	PredicateTypeByteMatch = "ByteMatch"
 26175  
 26176  	// PredicateTypeSqlInjectionMatch is a PredicateType enum value
 26177  	PredicateTypeSqlInjectionMatch = "SqlInjectionMatch"
 26178  
 26179  	// PredicateTypeGeoMatch is a PredicateType enum value
 26180  	PredicateTypeGeoMatch = "GeoMatch"
 26181  
 26182  	// PredicateTypeSizeConstraint is a PredicateType enum value
 26183  	PredicateTypeSizeConstraint = "SizeConstraint"
 26184  
 26185  	// PredicateTypeXssMatch is a PredicateType enum value
 26186  	PredicateTypeXssMatch = "XssMatch"
 26187  
 26188  	// PredicateTypeRegexMatch is a PredicateType enum value
 26189  	PredicateTypeRegexMatch = "RegexMatch"
 26190  )
 26191  
 26192  // PredicateType_Values returns all elements of the PredicateType enum
 26193  func PredicateType_Values() []string {
 26194  	return []string{
 26195  		PredicateTypeIpmatch,
 26196  		PredicateTypeByteMatch,
 26197  		PredicateTypeSqlInjectionMatch,
 26198  		PredicateTypeGeoMatch,
 26199  		PredicateTypeSizeConstraint,
 26200  		PredicateTypeXssMatch,
 26201  		PredicateTypeRegexMatch,
 26202  	}
 26203  }
 26204  
 26205  const (
 26206  	// RateKeyIp is a RateKey enum value
 26207  	RateKeyIp = "IP"
 26208  )
 26209  
 26210  // RateKey_Values returns all elements of the RateKey enum
 26211  func RateKey_Values() []string {
 26212  	return []string{
 26213  		RateKeyIp,
 26214  	}
 26215  }
 26216  
 26217  const (
 26218  	// TextTransformationNone is a TextTransformation enum value
 26219  	TextTransformationNone = "NONE"
 26220  
 26221  	// TextTransformationCompressWhiteSpace is a TextTransformation enum value
 26222  	TextTransformationCompressWhiteSpace = "COMPRESS_WHITE_SPACE"
 26223  
 26224  	// TextTransformationHtmlEntityDecode is a TextTransformation enum value
 26225  	TextTransformationHtmlEntityDecode = "HTML_ENTITY_DECODE"
 26226  
 26227  	// TextTransformationLowercase is a TextTransformation enum value
 26228  	TextTransformationLowercase = "LOWERCASE"
 26229  
 26230  	// TextTransformationCmdLine is a TextTransformation enum value
 26231  	TextTransformationCmdLine = "CMD_LINE"
 26232  
 26233  	// TextTransformationUrlDecode is a TextTransformation enum value
 26234  	TextTransformationUrlDecode = "URL_DECODE"
 26235  )
 26236  
 26237  // TextTransformation_Values returns all elements of the TextTransformation enum
 26238  func TextTransformation_Values() []string {
 26239  	return []string{
 26240  		TextTransformationNone,
 26241  		TextTransformationCompressWhiteSpace,
 26242  		TextTransformationHtmlEntityDecode,
 26243  		TextTransformationLowercase,
 26244  		TextTransformationCmdLine,
 26245  		TextTransformationUrlDecode,
 26246  	}
 26247  }
 26248  
 26249  const (
 26250  	// WafActionTypeBlock is a WafActionType enum value
 26251  	WafActionTypeBlock = "BLOCK"
 26252  
 26253  	// WafActionTypeAllow is a WafActionType enum value
 26254  	WafActionTypeAllow = "ALLOW"
 26255  
 26256  	// WafActionTypeCount is a WafActionType enum value
 26257  	WafActionTypeCount = "COUNT"
 26258  )
 26259  
 26260  // WafActionType_Values returns all elements of the WafActionType enum
 26261  func WafActionType_Values() []string {
 26262  	return []string{
 26263  		WafActionTypeBlock,
 26264  		WafActionTypeAllow,
 26265  		WafActionTypeCount,
 26266  	}
 26267  }
 26268  
 26269  const (
 26270  	// WafOverrideActionTypeNone is a WafOverrideActionType enum value
 26271  	WafOverrideActionTypeNone = "NONE"
 26272  
 26273  	// WafOverrideActionTypeCount is a WafOverrideActionType enum value
 26274  	WafOverrideActionTypeCount = "COUNT"
 26275  )
 26276  
 26277  // WafOverrideActionType_Values returns all elements of the WafOverrideActionType enum
 26278  func WafOverrideActionType_Values() []string {
 26279  	return []string{
 26280  		WafOverrideActionTypeNone,
 26281  		WafOverrideActionTypeCount,
 26282  	}
 26283  }
 26284  
 26285  const (
 26286  	// WafRuleTypeRegular is a WafRuleType enum value
 26287  	WafRuleTypeRegular = "REGULAR"
 26288  
 26289  	// WafRuleTypeRateBased is a WafRuleType enum value
 26290  	WafRuleTypeRateBased = "RATE_BASED"
 26291  
 26292  	// WafRuleTypeGroup is a WafRuleType enum value
 26293  	WafRuleTypeGroup = "GROUP"
 26294  )
 26295  
 26296  // WafRuleType_Values returns all elements of the WafRuleType enum
 26297  func WafRuleType_Values() []string {
 26298  	return []string{
 26299  		WafRuleTypeRegular,
 26300  		WafRuleTypeRateBased,
 26301  		WafRuleTypeGroup,
 26302  	}
 26303  }