Overview ▹

Overview ▾

Package waf provides the client and types for making API
requests to AWS WAF.

This is the AWS WAF API Reference for using AWS WAF with Amazon CloudFront.
The AWS WAF actions and data types listed in the reference are available
for protecting Amazon CloudFront distributions. You can use these actions
and data types via the endpoint waf.amazonaws.com. This guide is for developers
who need detailed information about the AWS WAF API actions, data types,
and errors. For detailed information about AWS WAF features and an overview
of how to use the AWS WAF API, see the AWS WAF Developer Guide (http://docs.aws.amazon.com/waf/latest/developerguide/).

Internal call graph ▹

Internal call graph ▾

In the call graph viewer below, each node
is a function belonging to this package
and its children are the functions it
calls—perhaps dynamically.

The root nodes are the entry points of the
package: functions that may be called from
outside the package.
There may be non-exported or anonymous
functions among them if they are called
dynamically from another package.

Click a node to visit that function's source code.
From there you can visit its callers by
clicking its declaring func
token.

Functions may be omitted if they were
determined to be unreachable in the
particular programs or tests that were
analyzed.

const (
// ErrCodeDisallowedNameException for service response error code// "DisallowedNameException".//// The name specified is invalid.ErrCodeDisallowedNameException = "DisallowedNameException"
// ErrCodeInternalErrorException for service response error code// "InternalErrorException".//// The operation failed because of a system problem, even though the request// was valid. Retry your request.ErrCodeInternalErrorException = "InternalErrorException"
// ErrCodeInvalidAccountException for service response error code// "InvalidAccountException".//// The operation failed because you tried to create, update, or delete an object// by using an invalid account identifier.ErrCodeInvalidAccountException = "InvalidAccountException"
// ErrCodeInvalidOperationException for service response error code// "InvalidOperationException".//// The operation failed because there was nothing to do. For example://// * You tried to remove a Rule from a WebACL, but the Rule isn't in the// specified WebACL.//// * You tried to remove an IP address from an IPSet, but the IP address// isn't in the specified IPSet.//// * You tried to remove a ByteMatchTuple from a ByteMatchSet, but the ByteMatchTuple// isn't in the specified WebACL.//// * You tried to add a Rule to a WebACL, but the Rule already exists in// the specified WebACL.//// * You tried to add an IP address to an IPSet, but the IP address already// exists in the specified IPSet.//// * You tried to add a ByteMatchTuple to a ByteMatchSet, but the ByteMatchTuple// already exists in the specified WebACL.ErrCodeInvalidOperationException = "InvalidOperationException"
// ErrCodeInvalidParameterException for service response error code// "InvalidParameterException".//// The operation failed because AWS WAF didn't recognize a parameter in the// request. For example://// * You specified an invalid parameter name.//// * You specified an invalid value.//// * You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)// using an action other than INSERT or DELETE.//// * You tried to create a WebACL with a DefaultActionType other than ALLOW,// BLOCK, or COUNT.//// * You tried to create a RateBasedRule with a RateKey value other than// IP.//// * You tried to update a WebACL with a WafActionType other than ALLOW,// BLOCK, or COUNT.//// * You tried to update a ByteMatchSet with a FieldToMatchType other than// HEADER, METHOD, QUERY_STRING, URI, or BODY.//// * You tried to update a ByteMatchSet with a Field of HEADER but no value// for Data.//// * Your request references an ARN that is malformed, or corresponds to// a resource with which a web ACL cannot be associated.ErrCodeInvalidParameterException = "InvalidParameterException"
// ErrCodeInvalidPermissionPolicyException for service response error code// "InvalidPermissionPolicyException".//// The operation failed because the specified policy is not in the proper format.//// The policy is subject to the following restrictions://// * You can attach only one policy with each PutPermissionPolicy request.//// * The policy must include an Effect, Action and Principal.//// * Effect must specify Allow.//// * The Action in the policy must be waf:UpdateWebACL or waf-regional:UpdateWebACL.// Any extra or wildcard actions in the policy will be rejected.//// * The policy cannot include a Resource parameter.//// * The ARN in the request must be a valid WAF RuleGroup ARN and the RuleGroup// must exist in the same region.//// * The user making the request must be the owner of the RuleGroup.//// * Your policy must be composed using IAM Policy version 2012-10-17.ErrCodeInvalidPermissionPolicyException = "InvalidPermissionPolicyException"
// ErrCodeInvalidRegexPatternException for service response error code// "InvalidRegexPatternException".//// The regular expression (regex) you specified in RegexPatternString is invalid.ErrCodeInvalidRegexPatternException = "InvalidRegexPatternException"
// ErrCodeLimitsExceededException for service response error code// "LimitsExceededException".//// The operation exceeds a resource limit, for example, the maximum number of// WebACL objects that you can create for an AWS account. For more information,// see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)// in the AWS WAF Developer Guide.ErrCodeLimitsExceededException = "LimitsExceededException"
// ErrCodeNonEmptyEntityException for service response error code// "NonEmptyEntityException".//// The operation failed because you tried to delete an object that isn't empty.// For example://// * You tried to delete a WebACL that still contains one or more Rule objects.//// * You tried to delete a Rule that still contains one or more ByteMatchSet// objects or other predicates.//// * You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple// objects.//// * You tried to delete an IPSet that references one or more IP addresses.ErrCodeNonEmptyEntityException = "NonEmptyEntityException"
// ErrCodeNonexistentContainerException for service response error code// "NonexistentContainerException".//// The operation failed because you tried to add an object to or delete an object// from another object that doesn't exist. For example://// * You tried to add a Rule to or delete a Rule from a WebACL that doesn't// exist.//// * You tried to add a ByteMatchSet to or delete a ByteMatchSet from a Rule// that doesn't exist.//// * You tried to add an IP address to or delete an IP address from an IPSet// that doesn't exist.//// * You tried to add a ByteMatchTuple to or delete a ByteMatchTuple from// a ByteMatchSet that doesn't exist.ErrCodeNonexistentContainerException = "NonexistentContainerException"
// ErrCodeNonexistentItemException for service response error code// "NonexistentItemException".//// The operation failed because the referenced object doesn't exist.ErrCodeNonexistentItemException = "NonexistentItemException"
// ErrCodeReferencedItemException for service response error code// "ReferencedItemException".//// The operation failed because you tried to delete an object that is still// in use. For example://// * You tried to delete a ByteMatchSet that is still referenced by a Rule.//// * You tried to delete a Rule that is still referenced by a WebACL.ErrCodeReferencedItemException = "ReferencedItemException"
// ErrCodeStaleDataException for service response error code// "StaleDataException".//// The operation failed because you tried to create, update, or delete an object// by using a change token that has already been used.ErrCodeStaleDataException = "StaleDataException"
// ErrCodeSubscriptionNotFoundException for service response error code// "SubscriptionNotFoundException".//// The specified subscription does not exist.ErrCodeSubscriptionNotFoundException = "SubscriptionNotFoundException"
)

type ActivatedRule struct {
// Specifies the action that CloudFront or AWS WAF takes when a web request// matches the conditions in the Rule. Valid values for Action include the following://// * ALLOW: CloudFront responds with the requested object.//// * BLOCK: CloudFront responds with an HTTP 403 (Forbidden) status code.//// * COUNT: AWS WAF increments a counter of requests that match the conditions// in the rule and then continues to inspect the web request based on the// remaining rules in the web ACL.//// ActivatedRule|OverrideAction applies only when updating or adding a RuleGroup// to a WebACL. In this case you do not use ActivatedRule|Action. For all other// update requests, ActivatedRule|Action is used instead of ActivatedRule|OverrideAction.
Action *WafAction `type:"structure"`
// Use the OverrideAction to test your RuleGroup.//// Any rule in a RuleGroup can potentially block a request. If you set the OverrideAction// to None, the RuleGroup will block a request if any individual rule in the// RuleGroup matches the request and is configured to block that request. However// if you first want to test the RuleGroup, set the OverrideAction to Count.// The RuleGroup will then override any block action specified by individual// rules contained within the group. Instead of blocking matching requests,// those requests will be counted. You can view a record of counted requests// using GetSampledRequests.//// ActivatedRule|OverrideAction applies only when updating or adding a RuleGroup// to a WebACL. In this case you do not use ActivatedRule|Action. For all other// update requests, ActivatedRule|Action is used instead of ActivatedRule|OverrideAction.
OverrideAction *WafOverrideAction `type:"structure"`
// Specifies the order in which the Rules in a WebACL are evaluated. Rules with// a lower value for Priority are evaluated before Rules with a higher value.// The value must be a unique integer. If you add multiple Rules to a WebACL,// the values don't need to be consecutive.//// Priority is a required field
Priority *int64 `type:"integer" required:"true"`
// The RuleId for a Rule. You use RuleId to get more information about a Rule// (see GetRule), update a Rule (see UpdateRule), insert a Rule into a WebACL// or delete a one from a WebACL (see UpdateWebACL), or delete a Rule from AWS// WAF (see DeleteRule).//// RuleId is returned by CreateRule and by ListRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// The rule type, either REGULAR, as defined by Rule, RATE_BASED, as defined// by RateBasedRule, or GROUP, as defined by RuleGroup. The default is REGULAR.// Although this field is optional, be aware that if you try to add a RATE_BASED// rule to a web ACL without setting the type, the UpdateWebACL request will// fail because the request tries to add a REGULAR rule with the specified ID,// which does not exist.
Type *string `type:"string" enum:"WafRuleType"`
// contains filtered or unexported fields
}

The ActivatedRule object in an UpdateWebACL request specifies a Rule that
you want to insert or delete, the priority of the Rule in the WebACL, and
the action that you want AWS WAF to take when a web request matches the Rule
(ALLOW, BLOCK, or COUNT).

To specify whether to insert or delete a Rule, use the Action parameter in
the WebACLUpdate data type.

type ByteMatchSet struct {
// The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information// about a ByteMatchSet (see GetByteMatchSet), update a ByteMatchSet (see UpdateByteMatchSet),// insert a ByteMatchSet into a Rule or delete one from a Rule (see UpdateRule),// and delete a ByteMatchSet from AWS WAF (see DeleteByteMatchSet).//// ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.//// ByteMatchSetId is a required field
ByteMatchSetId *string `min:"1" type:"string" required:"true"`
// Specifies the bytes (typically a string that corresponds with ASCII characters)// that you want AWS WAF to search for in web requests, the location in requests// that you want AWS WAF to search, and other settings.//// ByteMatchTuples is a required field
ByteMatchTuples []*ByteMatchTuple `type:"list" required:"true"`
// A friendly name or description of the ByteMatchSet. You can't change Name// after you create a ByteMatchSet.
Name *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

In a GetByteMatchSet request, ByteMatchSet is a complex type that contains
the ByteMatchSetId and Name of a ByteMatchSet, and the values that you specified
when you updated the ByteMatchSet.

A complex type that contains ByteMatchTuple objects, which specify the parts
of web requests that you want AWS WAF to inspect and the values that you
want AWS WAF to search for. If a ByteMatchSet contains more than one ByteMatchTuple
object, a request needs to match the settings in only one ByteMatchTuple
to be considered a match.

type ByteMatchSetSummary struct {
// The ByteMatchSetId for a ByteMatchSet. You use ByteMatchSetId to get information// about a ByteMatchSet, update a ByteMatchSet, remove a ByteMatchSet from a// Rule, and delete a ByteMatchSet from AWS WAF.//// ByteMatchSetId is returned by CreateByteMatchSet and by ListByteMatchSets.//// ByteMatchSetId is a required field
ByteMatchSetId *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the ByteMatchSet. You can't change Name// after you create a ByteMatchSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

Returned by ListByteMatchSets. Each ByteMatchSetSummary object includes the
Name and ByteMatchSetId for one ByteMatchSet.

type ByteMatchSetUpdate struct {
// Specifies whether to insert or delete a ByteMatchTuple.//// Action is a required field
Action *string `type:"string" required:"true" enum:"ChangeAction"`
// Information about the part of a web request that you want AWS WAF to inspect// and the value that you want AWS WAF to search for. If you specify DELETE// for the value of Action, the ByteMatchTuple values must exactly match the// values in the ByteMatchTuple that you want to delete from the ByteMatchSet.//// ByteMatchTuple is a required field
ByteMatchTuple *ByteMatchTuple `type:"structure" required:"true"`
// contains filtered or unexported fields
}

In an UpdateByteMatchSet request, ByteMatchSetUpdate specifies whether to
insert or delete a ByteMatchTuple and includes the settings for the ByteMatchTuple.

type ByteMatchTuple struct {
// The part of a web request that you want AWS WAF to search, such as a specified// header or a query string. For more information, see FieldToMatch.//// FieldToMatch is a required field
FieldToMatch *FieldToMatch `type:"structure" required:"true"`
// Within the portion of a web request that you want to search (for example,// in the query string, if any), specify where you want AWS WAF to search. Valid// values include the following://// CONTAINS//// The specified part of the web request must include the value of TargetString,// but the location doesn't matter.//// CONTAINS_WORD//// The specified part of the web request must include the value of TargetString,// and TargetString must contain only alphanumeric characters or underscore// (A-Z, a-z, 0-9, or _). In addition, TargetString must be a word, which means// one of the following://// * TargetString exactly matches the value of the specified part of the// web request, such as the value of a header.//// * TargetString is at the beginning of the specified part of the web request// and is followed by a character other than an alphanumeric character or// underscore (_), for example, BadBot;.//// * TargetString is at the end of the specified part of the web request// and is preceded by a character other than an alphanumeric character or// underscore (_), for example, ;BadBot.//// * TargetString is in the middle of the specified part of the web request// and is preceded and followed by characters other than alphanumeric characters// or underscore (_), for example, -BadBot;.//// EXACTLY//// The value of the specified part of the web request must exactly match the// value of TargetString.//// STARTS_WITH//// The value of TargetString must appear at the beginning of the specified part// of the web request.//// ENDS_WITH//// The value of TargetString must appear at the end of the specified part of// the web request.//// PositionalConstraint is a required field
PositionalConstraint *string `type:"string" required:"true" enum:"PositionalConstraint"`
// The value that you want AWS WAF to search for. AWS WAF searches for the specified// string in the part of web requests that you specified in FieldToMatch. The// maximum length of the value is 50 bytes.//// Valid values depend on the values that you specified for FieldToMatch://// * HEADER: The value that you want AWS WAF to search for in the request// header that you specified in FieldToMatch, for example, the value of the// User-Agent or Referer header.//// * METHOD: The HTTP method, which indicates the type of operation specified// in the request. CloudFront supports the following methods: DELETE, GET,// HEAD, OPTIONS, PATCH, POST, and PUT.//// * QUERY_STRING: The value that you want AWS WAF to search for in the query// string, which is the part of a URL that appears after a ? character.//// * URI: The value that you want AWS WAF to search for in the part of a// URL that identifies a resource, for example, /images/daily-ad.jpg.//// * BODY: The part of a request that contains any additional data that you// want to send to your web server as the HTTP request body, such as data// from a form. The request body immediately follows the request headers.// Note that only the first 8192 bytes of the request body are forwarded// to AWS WAF for inspection. To allow or block requests based on the length// of the body, you can create a size constraint set. For more information,// see CreateSizeConstraintSet.//// If TargetString includes alphabetic characters A-Z and a-z, note that the// value is case sensitive.//// If you're using the AWS WAF API//// Specify a base64-encoded version of the value. The maximum length of the// value before you base64-encode it is 50 bytes.//// For example, suppose the value of Type is HEADER and the value of Data is// User-Agent. If you want to search the User-Agent header for the value BadBot,// you base64-encode BadBot using MIME base64 encoding and include the resulting// value, QmFkQm90, in the value of TargetString.//// If you're using the AWS CLI or one of the AWS SDKs//// The value that you want AWS WAF to search for. The SDK automatically base64// encodes the value.//// TargetString is automatically base64 encoded/decoded by the SDK.//// TargetString is a required field
TargetString []byte `type:"blob" required:"true"`
// Text transformations eliminate some of the unusual formatting that attackers// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,// AWS WAF performs the transformation on TargetString before inspecting a request// for a match.//// CMD_LINE//// When you're concerned that attackers are injecting an operating system commandline// command and using unusual formatting to disguise some or all of the command,// use this option to perform the following transformations://// * Delete the following characters: \ " ' ^//// * Delete spaces before the following characters: / (//// * Replace the following characters with a space: , ;//// * Replace multiple spaces with one space//// * Convert uppercase letters (A-Z) to lowercase (a-z)//// COMPRESS_WHITE_SPACE//// Use this option to replace the following characters with a space character// (decimal 32)://// * \f, formfeed, decimal 12//// * \t, tab, decimal 9//// * \n, newline, decimal 10//// * \r, carriage return, decimal 13//// * \v, vertical tab, decimal 11//// * non-breaking space, decimal 160//// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.//// HTML_ENTITY_DECODE//// Use this option to replace HTML-encoded characters with unencoded characters.// HTML_ENTITY_DECODE performs the following operations://// * Replaces (ampersand)quot; with "//// * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160//// * Replaces (ampersand)lt; with a "less than" symbol//// * Replaces (ampersand)gt; with >//// * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,// with the corresponding characters//// * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,// with the corresponding characters//// LOWERCASE//// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).//// URL_DECODE//// Use this option to decode a URL-encoded value.//// NONE//// Specify NONE if you don't want to perform any text transformations.//// TextTransformation is a required field
TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
// contains filtered or unexported fields
}

The bytes (typically a string that corresponds with ASCII characters) that
you want AWS WAF to search for in web requests, the location in requests
that you want AWS WAF to search, and other settings.

type CreateByteMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the ByteMatchSet. You can't change Name// after you create a ByteMatchSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateByteMatchSetOutput struct {
// A ByteMatchSet that contains no ByteMatchTuple objects.
ByteMatchSet *ByteMatchSet `type:"structure"`
// The ChangeToken that you used to submit the CreateByteMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type CreateGeoMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the GeoMatchSet. You can't change Name// after you create the GeoMatchSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateGeoMatchSetOutput struct {
// The ChangeToken that you used to submit the CreateGeoMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// The GeoMatchSet returned in the CreateGeoMatchSet response. The GeoMatchSet// contains no GeoMatchConstraints.
GeoMatchSet *GeoMatchSet `type:"structure"`
// contains filtered or unexported fields
}

type CreateIPSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the IPSet. You can't change Name after// you create the IPSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateIPSetOutput struct {
// The ChangeToken that you used to submit the CreateIPSet request. You can// also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// The IPSet returned in the CreateIPSet response.
IPSet *IPSet `type:"structure"`
// contains filtered or unexported fields
}

type CreateRateBasedRuleInput struct {
// The ChangeToken that you used to submit the CreateRateBasedRule request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description for the metrics for this RateBasedRule. The// name can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't// contain whitespace. You can't change the name of the metric after you create// the RateBasedRule.//// MetricName is a required field
MetricName *string `type:"string" required:"true"`
// A friendly name or description of the RateBasedRule. You can't change the// name of a RateBasedRule after you create it.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// The field that AWS WAF uses to determine if requests are likely arriving// from a single source and thus subject to rate monitoring. The only valid// value for RateKey is IP. IP indicates that requests that arrive from the// same IP address are subject to the RateLimit that is specified in the RateBasedRule.//// RateKey is a required field
RateKey *string `type:"string" required:"true" enum:"RateKey"`
// The maximum number of requests, which have an identical value in the field// that is specified by RateKey, allowed in a five-minute period. If the number// of requests exceeds the RateLimit and the other predicates specified in the// rule are also met, AWS WAF triggers the action that is specified for this// rule.//// RateLimit is a required field
RateLimit *int64 `min:"2000" type:"long" required:"true"`
// contains filtered or unexported fields
}

type CreateRateBasedRuleOutput struct {
// The ChangeToken that you used to submit the CreateRateBasedRule request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// The RateBasedRule that is returned in the CreateRateBasedRule response.
Rule *RateBasedRule `type:"structure"`
// contains filtered or unexported fields
}

type CreateRegexMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the RegexMatchSet. You can't change Name// after you create a RegexMatchSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateRegexMatchSetOutput struct {
// The ChangeToken that you used to submit the CreateRegexMatchSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// A RegexMatchSet that contains no RegexMatchTuple objects.
RegexMatchSet *RegexMatchSet `type:"structure"`
// contains filtered or unexported fields
}

type CreateRegexPatternSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the RegexPatternSet. You can't change Name// after you create a RegexPatternSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateRegexPatternSetOutput struct {
// The ChangeToken that you used to submit the CreateRegexPatternSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// A RegexPatternSet that contains no objects.
RegexPatternSet *RegexPatternSet `type:"structure"`
// contains filtered or unexported fields
}

type CreateRuleGroupInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description for the metrics for this RuleGroup. The name// can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't// contain whitespace. You can't change the name of the metric after you create// the RuleGroup.//// MetricName is a required field
MetricName *string `type:"string" required:"true"`
// A friendly name or description of the RuleGroup. You can't change Name after// you create a RuleGroup.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateRuleGroupOutput struct {
// The ChangeToken that you used to submit the CreateRuleGroup request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// An empty RuleGroup.
RuleGroup *RuleGroup `type:"structure"`
// contains filtered or unexported fields
}

type CreateRuleInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description for the metrics for this Rule. The name can// contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain// whitespace. You can't change the name of the metric after you create the// Rule.//// MetricName is a required field
MetricName *string `type:"string" required:"true"`
// A friendly name or description of the Rule. You can't change the name of// a Rule after you create it.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateRuleOutput struct {
// The ChangeToken that you used to submit the CreateRule request. You can also// use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// The Rule returned in the CreateRule response.
Rule *Rule `type:"structure"`
// contains filtered or unexported fields
}

type CreateSizeConstraintSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the SizeConstraintSet. You can't change// Name after you create a SizeConstraintSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateSizeConstraintSetOutput struct {
// The ChangeToken that you used to submit the CreateSizeConstraintSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// A SizeConstraintSet that contains no SizeConstraint objects.
SizeConstraintSet *SizeConstraintSet `type:"structure"`
// contains filtered or unexported fields
}

type CreateSqlInjectionMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description for the SqlInjectionMatchSet that you're creating.// You can't change Name after you create the SqlInjectionMatchSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateSqlInjectionMatchSetOutput struct {
// The ChangeToken that you used to submit the CreateSqlInjectionMatchSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// A SqlInjectionMatchSet.
SqlInjectionMatchSet *SqlInjectionMatchSet `type:"structure"`
// contains filtered or unexported fields
}

type CreateWebACLInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The action that you want AWS WAF to take when a request doesn't match the// criteria specified in any of the Rule objects that are associated with the// WebACL.//// DefaultAction is a required field
DefaultAction *WafAction `type:"structure" required:"true"`
// A friendly name or description for the metrics for this WebACL. The name// can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't// contain whitespace. You can't change MetricName after you create the WebACL.//// MetricName is a required field
MetricName *string `type:"string" required:"true"`
// A friendly name or description of the WebACL. You can't change Name after// you create the WebACL.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateWebACLOutput struct {
// The ChangeToken that you used to submit the CreateWebACL request. You can// also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// The WebACL returned in the CreateWebACL response.
WebACL *WebACL `type:"structure"`
// contains filtered or unexported fields
}

type CreateXssMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A friendly name or description for the XssMatchSet that you're creating.// You can't change Name after you create the XssMatchSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type CreateXssMatchSetOutput struct {
// The ChangeToken that you used to submit the CreateXssMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// An XssMatchSet.
XssMatchSet *XssMatchSet `type:"structure"`
// contains filtered or unexported fields
}

type DeleteByteMatchSetInput struct {
// The ByteMatchSetId of the ByteMatchSet that you want to delete. ByteMatchSetId// is returned by CreateByteMatchSet and by ListByteMatchSets.//// ByteMatchSetId is a required field
ByteMatchSetId *string `min:"1" type:"string" required:"true"`
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteByteMatchSetOutput struct {
// The ChangeToken that you used to submit the DeleteByteMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteGeoMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The GeoMatchSetID of the GeoMatchSet that you want to delete. GeoMatchSetId// is returned by CreateGeoMatchSet and by ListGeoMatchSets.//// GeoMatchSetId is a required field
GeoMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteGeoMatchSetOutput struct {
// The ChangeToken that you used to submit the DeleteGeoMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteIPSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The IPSetId of the IPSet that you want to delete. IPSetId is returned by// CreateIPSet and by ListIPSets.//// IPSetId is a required field
IPSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteIPSetOutput struct {
// The ChangeToken that you used to submit the DeleteIPSet request. You can// also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeletePermissionPolicyInput struct {
// The Amazon Resource Name (ARN) of the RuleGroup from which you want to delete// the policy.//// The user making the request must be the owner of the RuleGroup.//// ResourceArn is a required field
ResourceArn *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteRateBasedRuleInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RuleId of the RateBasedRule that you want to delete. RuleId is returned// by CreateRateBasedRule and by ListRateBasedRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteRateBasedRuleOutput struct {
// The ChangeToken that you used to submit the DeleteRateBasedRule request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteRegexMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RegexMatchSetId of the RegexMatchSet that you want to delete. RegexMatchSetId// is returned by CreateRegexMatchSet and by ListRegexMatchSets.//// RegexMatchSetId is a required field
RegexMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteRegexMatchSetOutput struct {
// The ChangeToken that you used to submit the DeleteRegexMatchSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteRegexPatternSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RegexPatternSetId of the RegexPatternSet that you want to delete. RegexPatternSetId// is returned by CreateRegexPatternSet and by ListRegexPatternSets.//// RegexPatternSetId is a required field
RegexPatternSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteRegexPatternSetOutput struct {
// The ChangeToken that you used to submit the DeleteRegexPatternSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteRuleGroupInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RuleGroupId of the RuleGroup that you want to delete. RuleGroupId is// returned by CreateRuleGroup and by ListRuleGroups.//// RuleGroupId is a required field
RuleGroupId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteRuleGroupOutput struct {
// The ChangeToken that you used to submit the DeleteRuleGroup request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteRuleInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RuleId of the Rule that you want to delete. RuleId is returned by CreateRule// and by ListRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteRuleOutput struct {
// The ChangeToken that you used to submit the DeleteRule request. You can also// use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteSizeConstraintSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The SizeConstraintSetId of the SizeConstraintSet that you want to delete.// SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.//// SizeConstraintSetId is a required field
SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteSizeConstraintSetOutput struct {
// The ChangeToken that you used to submit the DeleteSizeConstraintSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteSqlInjectionMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to delete.// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.//// SqlInjectionMatchSetId is a required field
SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteSqlInjectionMatchSetOutput struct {
// The ChangeToken that you used to submit the DeleteSqlInjectionMatchSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

The response to a request to delete a SqlInjectionMatchSet from AWS WAF.

type DeleteWebACLInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The WebACLId of the WebACL that you want to delete. WebACLId is returned// by CreateWebACL and by ListWebACLs.//// WebACLId is a required field
WebACLId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteWebACLOutput struct {
// The ChangeToken that you used to submit the DeleteWebACL request. You can// also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type DeleteXssMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The XssMatchSetId of the XssMatchSet that you want to delete. XssMatchSetId// is returned by CreateXssMatchSet and by ListXssMatchSets.//// XssMatchSetId is a required field
XssMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type DeleteXssMatchSetOutput struct {
// The ChangeToken that you used to submit the DeleteXssMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type FieldToMatch struct {
// When the value of Type is HEADER, enter the name of the header that you want// AWS WAF to search, for example, User-Agent or Referer. If the value of Type// is any other value, omit Data.//// The name of the header is not case sensitive.
Data *string `type:"string"`
// The part of the web request that you want AWS WAF to search for a specified// string. Parts of a request that you can search include the following://// * HEADER: A specified request header, for example, the value of the User-Agent// or Referer header. If you choose HEADER for the type, specify the name// of the header in Data.//// * METHOD: The HTTP method, which indicated the type of operation that// the request is asking the origin to perform. Amazon CloudFront supports// the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT.//// * QUERY_STRING: A query string, which is the part of a URL that appears// after a ? character, if any.//// * URI: The part of a web request that identifies a resource, for example,// /images/daily-ad.jpg.//// * BODY: The part of a request that contains any additional data that you// want to send to your web server as the HTTP request body, such as data// from a form. The request body immediately follows the request headers.// Note that only the first 8192 bytes of the request body are forwarded// to AWS WAF for inspection. To allow or block requests based on the length// of the body, you can create a size constraint set. For more information,// see CreateSizeConstraintSet.//// Type is a required field
Type *string `type:"string" required:"true" enum:"MatchFieldType"`
// contains filtered or unexported fields
}

type GeoMatchConstraint struct {
// The type of geographical area you want AWS WAF to search for. Currently Country// is the only valid value.//// Type is a required field
Type *string `type:"string" required:"true" enum:"GeoMatchConstraintType"`
// The country that you want AWS WAF to search for.//// Value is a required field
Value *string `type:"string" required:"true" enum:"GeoMatchConstraintValue"`
// contains filtered or unexported fields
}

The country from which web requests originate that you want AWS WAF to search
for.

type GeoMatchSet struct {
// An array of GeoMatchConstraint objects, which contain the country that you// want AWS WAF to search for.//// GeoMatchConstraints is a required field
GeoMatchConstraints []*GeoMatchConstraint `type:"list" required:"true"`
// The GeoMatchSetId for an GeoMatchSet. You use GeoMatchSetId to get information// about a GeoMatchSet (see GeoMatchSet), update a GeoMatchSet (see UpdateGeoMatchSet),// insert a GeoMatchSet into a Rule or delete one from a Rule (see UpdateRule),// and delete a GeoMatchSet from AWS WAF (see DeleteGeoMatchSet).//// GeoMatchSetId is returned by CreateGeoMatchSet and by ListGeoMatchSets.//// GeoMatchSetId is a required field
GeoMatchSetId *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the GeoMatchSet. You can't change the name// of an GeoMatchSet after you create it.
Name *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type GeoMatchSetSummary struct {
// The GeoMatchSetId for an GeoMatchSet. You can use GeoMatchSetId in a GetGeoMatchSet// request to get detailed information about an GeoMatchSet.//// GeoMatchSetId is a required field
GeoMatchSetId *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the GeoMatchSet. You can't change the name// of an GeoMatchSet after you create it.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GeoMatchSetUpdate struct {
// Specifies whether to insert or delete a country with UpdateGeoMatchSet.//// Action is a required field
Action *string `type:"string" required:"true" enum:"ChangeAction"`
// The country from which web requests originate that you want AWS WAF to search// for.//// GeoMatchConstraint is a required field
GeoMatchConstraint *GeoMatchConstraint `type:"structure" required:"true"`
// contains filtered or unexported fields
}

Specifies the type of update to perform to an GeoMatchSet with UpdateGeoMatchSet.

type GetByteMatchSetInput struct {
// The ByteMatchSetId of the ByteMatchSet that you want to get. ByteMatchSetId// is returned by CreateByteMatchSet and by ListByteMatchSets.//// ByteMatchSetId is a required field
ByteMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetChangeTokenOutput struct {
// The ChangeToken that you used in the request. Use this value in a GetChangeTokenStatus// request to get the current status of the request.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type GetChangeTokenStatusInput struct {
// The change token for which you want to get the status. This change token// was previously returned in the GetChangeToken response.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetGeoMatchSetInput struct {
// The GeoMatchSetId of the GeoMatchSet that you want to get. GeoMatchSetId// is returned by CreateGeoMatchSet and by ListGeoMatchSets.//// GeoMatchSetId is a required field
GeoMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetGeoMatchSetOutput struct {
// Information about the GeoMatchSet that you specified in the GetGeoMatchSet// request. This includes the Type, which for a GeoMatchContraint is always// Country, as well as the Value, which is the identifier for a specific country.
GeoMatchSet *GeoMatchSet `type:"structure"`
// contains filtered or unexported fields
}

type GetIPSetInput struct {
// The IPSetId of the IPSet that you want to get. IPSetId is returned by CreateIPSet// and by ListIPSets.//// IPSetId is a required field
IPSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetPermissionPolicyInput struct {
// The Amazon Resource Name (ARN) of the RuleGroup for which you want to get// the policy.//// ResourceArn is a required field
ResourceArn *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetRateBasedRuleInput struct {
// The RuleId of the RateBasedRule that you want to get. RuleId is returned// by CreateRateBasedRule and by ListRateBasedRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetRateBasedRuleManagedKeysInput struct {
// A null value and not currently used. Do not include this in your request.
NextMarker *string `min:"1" type:"string"`
// The RuleId of the RateBasedRule for which you want to get a list of ManagedKeys.// RuleId is returned by CreateRateBasedRule and by ListRateBasedRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetRegexMatchSetInput struct {
// The RegexMatchSetId of the RegexMatchSet that you want to get. RegexMatchSetId// is returned by CreateRegexMatchSet and by ListRegexMatchSets.//// RegexMatchSetId is a required field
RegexMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetRegexMatchSetOutput struct {
// Information about the RegexMatchSet that you specified in the GetRegexMatchSet// request. For more information, see RegexMatchTuple.
RegexMatchSet *RegexMatchSet `type:"structure"`
// contains filtered or unexported fields
}

type GetRegexPatternSetInput struct {
// The RegexPatternSetId of the RegexPatternSet that you want to get. RegexPatternSetId// is returned by CreateRegexPatternSet and by ListRegexPatternSets.//// RegexPatternSetId is a required field
RegexPatternSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetRegexPatternSetOutput struct {
// Information about the RegexPatternSet that you specified in the GetRegexPatternSet// request, including the identifier of the pattern set and the regular expression// patterns you want AWS WAF to search for.
RegexPatternSet *RegexPatternSet `type:"structure"`
// contains filtered or unexported fields
}

type GetRuleGroupInput struct {
// The RuleGroupId of the RuleGroup that you want to get. RuleGroupId is returned// by CreateRuleGroup and by ListRuleGroups.//// RuleGroupId is a required field
RuleGroupId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetRuleInput struct {
// The RuleId of the Rule that you want to get. RuleId is returned by CreateRule// and by ListRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetSampledRequestsInput struct {
// The number of requests that you want AWS WAF to return from among the first// 5,000 requests that your AWS resource received during the time range. If// your resource received fewer requests than the value of MaxItems, GetSampledRequests// returns information about all of them.//// MaxItems is a required field
MaxItems *int64 `min:"1" type:"long" required:"true"`
// RuleId is one of three values://// * The RuleId of the Rule or the RuleGroupId of the RuleGroup for which// you want GetSampledRequests to return a sample of requests.//// * Default_Action, which causes GetSampledRequests to return a sample of// the requests that didn't match any of the rules in the specified WebACL.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// The start date and time and the end date and time of the range for which// you want GetSampledRequests to return a sample of requests. Specify the date// and time in the following format: "2016-09-27T14:50Z". You can specify any// time range in the previous three hours.//// TimeWindow is a required field
TimeWindow *TimeWindow `type:"structure" required:"true"`
// The WebACLId of the WebACL for which you want GetSampledRequests to return// a sample of requests.//// WebAclId is a required field
WebAclId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetSampledRequestsOutput struct {
// The total number of requests from which GetSampledRequests got a sample of// MaxItems requests. If PopulationSize is less than MaxItems, the sample includes// every request that your AWS resource received during the specified time range.
PopulationSize *int64 `type:"long"`
// A complex type that contains detailed information about each of the requests// in the sample.
SampledRequests []*SampledHTTPRequest `type:"list"`
// Usually, TimeWindow is the time range that you specified in the GetSampledRequests// request. However, if your AWS resource received more than 5,000 requests// during the time range that you specified in the request, GetSampledRequests// returns the time range for the first 5,000 requests.
TimeWindow *TimeWindow `type:"structure"`
// contains filtered or unexported fields
}

type GetSizeConstraintSetInput struct {
// The SizeConstraintSetId of the SizeConstraintSet that you want to get. SizeConstraintSetId// is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.//// SizeConstraintSetId is a required field
SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetSqlInjectionMatchSetInput struct {
// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to get.// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.//// SqlInjectionMatchSetId is a required field
SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetWebACLInput struct {
// The WebACLId of the WebACL that you want to get. WebACLId is returned by// CreateWebACL and by ListWebACLs.//// WebACLId is a required field
WebACLId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type GetXssMatchSetInput struct {
// The XssMatchSetId of the XssMatchSet that you want to get. XssMatchSetId// is returned by CreateXssMatchSet and by ListXssMatchSets.//// XssMatchSetId is a required field
XssMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type HTTPHeader struct {
// The name of one of the headers in the sampled web request.
Name *string `type:"string"`
// The value of one of the headers in the sampled web request.
Value *string `type:"string"`
// contains filtered or unexported fields
}

The response from a GetSampledRequests request includes an HTTPHeader complex
type that appears as Headers in the response syntax. HTTPHeader contains
the names and values of all of the headers that appear in one of the web
requests that were returned by GetSampledRequests.

type HTTPRequest struct {
// The IP address that the request originated from. If the WebACL is associated// with a CloudFront distribution, this is the value of one of the following// fields in CloudFront access logs://// * c-ip, if the viewer did not use an HTTP proxy or a load balancer to// send the request//// * x-forwarded-for, if the viewer did use an HTTP proxy or a load balancer// to send the request
ClientIP *string `type:"string"`
// The two-letter country code for the country that the request originated from.// For a current list of country codes, see the Wikipedia entry ISO 3166-1 alpha-2// (https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2).
Country *string `type:"string"`
// The HTTP version specified in the sampled web request, for example, HTTP/1.1.
HTTPVersion *string `type:"string"`
// A complex type that contains two values for each header in the sampled web// request: the name of the header and the value of the header.
Headers []*HTTPHeader `type:"list"`
// The HTTP method specified in the sampled web request. CloudFront supports// the following methods: DELETE, GET, HEAD, OPTIONS, PATCH, POST, and PUT.
Method *string `type:"string"`
// The part of a web request that identifies the resource, for example, /images/daily-ad.jpg.
URI *string `type:"string"`
// contains filtered or unexported fields
}

The response from a GetSampledRequests request includes an HTTPRequest complex
type that appears as Request in the response syntax. HTTPRequest contains
information about one of the web requests that were returned by GetSampledRequests.

type IPSet struct {
// The IP address type (IPV4 or IPV6) and the IP address range (in CIDR notation)// that web requests originate from. If the WebACL is associated with a CloudFront// distribution and the viewer did not use an HTTP proxy or a load balancer// to send the request, this is the value of the c-ip field in the CloudFront// access logs.//// IPSetDescriptors is a required field
IPSetDescriptors []*IPSetDescriptor `type:"list" required:"true"`
// The IPSetId for an IPSet. You use IPSetId to get information about an IPSet// (see GetIPSet), update an IPSet (see UpdateIPSet), insert an IPSet into a// Rule or delete one from a Rule (see UpdateRule), and delete an IPSet from// AWS WAF (see DeleteIPSet).//// IPSetId is returned by CreateIPSet and by ListIPSets.//// IPSetId is a required field
IPSetId *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the IPSet. You can't change the name of// an IPSet after you create it.
Name *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

To specify an individual IP address, you specify the four-part IP address
followed by a /32, for example, 192.0.2.0/31. To block a range of IP addresses,
you can specify a /128, /64, /56, /48, /32, /24, /16, or /8 CIDR. For more
information about CIDR notation, see the Wikipedia entry Classless Inter-Domain
Routing (https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing).

type IPSetSummary struct {
// The IPSetId for an IPSet. You can use IPSetId in a GetIPSet request to get// detailed information about an IPSet.//// IPSetId is a required field
IPSetId *string `min:"1" type:"string" required:"true"`
// A friendly name or description of the IPSet. You can't change the name of// an IPSet after you create it.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type ListActivatedRulesInRuleGroupInput struct {
// Specifies the number of ActivatedRules that you want AWS WAF to return for// this request. If you have more ActivatedRules than the number that you specify// for Limit, the response includes a NextMarker value that you can use to get// another batch of ActivatedRules.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more ActivatedRules than the// value of Limit, AWS WAF returns a NextMarker value in the response that allows// you to list another group of ActivatedRules. For the second and subsequent// ListActivatedRulesInRuleGroup requests, specify the value of NextMarker from// the previous response to get information about another batch of ActivatedRules.
NextMarker *string `min:"1" type:"string"`
// The RuleGroupId of the RuleGroup for which you want to get a list of ActivatedRule// objects.
RuleGroupId *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListActivatedRulesInRuleGroupOutput struct {
// An array of ActivatedRules objects.
ActivatedRules []*ActivatedRule `type:"list"`
// If you have more ActivatedRules than the number that you specified for Limit// in the request, the response includes a NextMarker value. To list more ActivatedRules,// submit another ListActivatedRulesInRuleGroup request, and specify the NextMarker// value from the response in the NextMarker value in the next request.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListByteMatchSetsInput struct {
// Specifies the number of ByteMatchSet objects that you want AWS WAF to return// for this request. If you have more ByteMatchSets objects than the number// you specify for Limit, the response includes a NextMarker value that you// can use to get another batch of ByteMatchSet objects.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more ByteMatchSets than the// value of Limit, AWS WAF returns a NextMarker value in the response that allows// you to list another group of ByteMatchSets. For the second and subsequent// ListByteMatchSets requests, specify the value of NextMarker from the previous// response to get information about another batch of ByteMatchSets.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListByteMatchSetsOutput struct {
// An array of ByteMatchSetSummary objects.
ByteMatchSets []*ByteMatchSetSummary `type:"list"`
// If you have more ByteMatchSet objects than the number that you specified// for Limit in the request, the response includes a NextMarker value. To list// more ByteMatchSet objects, submit another ListByteMatchSets request, and// specify the NextMarker value from the response in the NextMarker value in// the next request.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListGeoMatchSetsInput struct {
// Specifies the number of GeoMatchSet objects that you want AWS WAF to return// for this request. If you have more GeoMatchSet objects than the number you// specify for Limit, the response includes a NextMarker value that you can// use to get another batch of GeoMatchSet objects.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more GeoMatchSets than the// value of Limit, AWS WAF returns a NextMarker value in the response that allows// you to list another group of GeoMatchSet objects. For the second and subsequent// ListGeoMatchSets requests, specify the value of NextMarker from the previous// response to get information about another batch of GeoMatchSet objects.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListGeoMatchSetsOutput struct {
// An array of GeoMatchSetSummary objects.
GeoMatchSets []*GeoMatchSetSummary `type:"list"`
// If you have more GeoMatchSet objects than the number that you specified for// Limit in the request, the response includes a NextMarker value. To list more// GeoMatchSet objects, submit another ListGeoMatchSets request, and specify// the NextMarker value from the response in the NextMarker value in the next// request.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListIPSetsInput struct {
// Specifies the number of IPSet objects that you want AWS WAF to return for// this request. If you have more IPSet objects than the number you specify// for Limit, the response includes a NextMarker value that you can use to get// another batch of IPSet objects.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more IPSets than the value// of Limit, AWS WAF returns a NextMarker value in the response that allows// you to list another group of IPSets. For the second and subsequent ListIPSets// requests, specify the value of NextMarker from the previous response to get// information about another batch of IPSets.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListIPSetsOutput struct {
// An array of IPSetSummary objects.
IPSets []*IPSetSummary `type:"list"`
// If you have more IPSet objects than the number that you specified for Limit// in the request, the response includes a NextMarker value. To list more IPSet// objects, submit another ListIPSets request, and specify the NextMarker value// from the response in the NextMarker value in the next request.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListRateBasedRulesInput struct {
// Specifies the number of Rules that you want AWS WAF to return for this request.// If you have more Rules than the number that you specify for Limit, the response// includes a NextMarker value that you can use to get another batch of Rules.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more Rules than the value of// Limit, AWS WAF returns a NextMarker value in the response that allows you// to list another group of Rules. For the second and subsequent ListRateBasedRules// requests, specify the value of NextMarker from the previous response to get// information about another batch of Rules.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListRateBasedRulesOutput struct {
// If you have more Rules than the number that you specified for Limit in the// request, the response includes a NextMarker value. To list more Rules, submit// another ListRateBasedRules request, and specify the NextMarker value from// the response in the NextMarker value in the next request.
NextMarker *string `min:"1" type:"string"`
// An array of RuleSummary objects.
Rules []*RuleSummary `type:"list"`
// contains filtered or unexported fields
}

type ListRegexMatchSetsInput struct {
// Specifies the number of RegexMatchSet objects that you want AWS WAF to return// for this request. If you have more RegexMatchSet objects than the number// you specify for Limit, the response includes a NextMarker value that you// can use to get another batch of RegexMatchSet objects.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more RegexMatchSet objects// than the value of Limit, AWS WAF returns a NextMarker value in the response// that allows you to list another group of ByteMatchSets. For the second and// subsequent ListRegexMatchSets requests, specify the value of NextMarker from// the previous response to get information about another batch of RegexMatchSet// objects.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListRegexMatchSetsOutput struct {
// If you have more RegexMatchSet objects than the number that you specified// for Limit in the request, the response includes a NextMarker value. To list// more RegexMatchSet objects, submit another ListRegexMatchSets request, and// specify the NextMarker value from the response in the NextMarker value in// the next request.
NextMarker *string `min:"1" type:"string"`
// An array of RegexMatchSetSummary objects.
RegexMatchSets []*RegexMatchSetSummary `type:"list"`
// contains filtered or unexported fields
}

type ListRegexPatternSetsInput struct {
// Specifies the number of RegexPatternSet objects that you want AWS WAF to// return for this request. If you have more RegexPatternSet objects than the// number you specify for Limit, the response includes a NextMarker value that// you can use to get another batch of RegexPatternSet objects.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more RegexPatternSet objects// than the value of Limit, AWS WAF returns a NextMarker value in the response// that allows you to list another group of RegexPatternSet objects. For the// second and subsequent ListRegexPatternSets requests, specify the value of// NextMarker from the previous response to get information about another batch// of RegexPatternSet objects.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListRegexPatternSetsOutput struct {
// If you have more RegexPatternSet objects than the number that you specified// for Limit in the request, the response includes a NextMarker value. To list// more RegexPatternSet objects, submit another ListRegexPatternSets request,// and specify the NextMarker value from the response in the NextMarker value// in the next request.
NextMarker *string `min:"1" type:"string"`
// An array of RegexPatternSetSummary objects.
RegexPatternSets []*RegexPatternSetSummary `type:"list"`
// contains filtered or unexported fields
}

type ListRuleGroupsInput struct {
// Specifies the number of RuleGroups that you want AWS WAF to return for this// request. If you have more RuleGroups than the number that you specify for// Limit, the response includes a NextMarker value that you can use to get another// batch of RuleGroups.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more RuleGroups than the value// of Limit, AWS WAF returns a NextMarker value in the response that allows// you to list another group of RuleGroups. For the second and subsequent ListRuleGroups// requests, specify the value of NextMarker from the previous response to get// information about another batch of RuleGroups.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListRuleGroupsOutput struct {
// If you have more RuleGroups than the number that you specified for Limit// in the request, the response includes a NextMarker value. To list more RuleGroups,// submit another ListRuleGroups request, and specify the NextMarker value from// the response in the NextMarker value in the next request.
NextMarker *string `min:"1" type:"string"`
// An array of RuleGroup objects.
RuleGroups []*RuleGroupSummary `type:"list"`
// contains filtered or unexported fields
}

type ListRulesInput struct {
// Specifies the number of Rules that you want AWS WAF to return for this request.// If you have more Rules than the number that you specify for Limit, the response// includes a NextMarker value that you can use to get another batch of Rules.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more Rules than the value of// Limit, AWS WAF returns a NextMarker value in the response that allows you// to list another group of Rules. For the second and subsequent ListRules requests,// specify the value of NextMarker from the previous response to get information// about another batch of Rules.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListRulesOutput struct {
// If you have more Rules than the number that you specified for Limit in the// request, the response includes a NextMarker value. To list more Rules, submit// another ListRules request, and specify the NextMarker value from the response// in the NextMarker value in the next request.
NextMarker *string `min:"1" type:"string"`
// An array of RuleSummary objects.
Rules []*RuleSummary `type:"list"`
// contains filtered or unexported fields
}

type ListSizeConstraintSetsInput struct {
// Specifies the number of SizeConstraintSet objects that you want AWS WAF to// return for this request. If you have more SizeConstraintSets objects than// the number you specify for Limit, the response includes a NextMarker value// that you can use to get another batch of SizeConstraintSet objects.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more SizeConstraintSets than// the value of Limit, AWS WAF returns a NextMarker value in the response that// allows you to list another group of SizeConstraintSets. For the second and// subsequent ListSizeConstraintSets requests, specify the value of NextMarker// from the previous response to get information about another batch of SizeConstraintSets.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListSizeConstraintSetsOutput struct {
// If you have more SizeConstraintSet objects than the number that you specified// for Limit in the request, the response includes a NextMarker value. To list// more SizeConstraintSet objects, submit another ListSizeConstraintSets request,// and specify the NextMarker value from the response in the NextMarker value// in the next request.
NextMarker *string `min:"1" type:"string"`
// An array of SizeConstraintSetSummary objects.
SizeConstraintSets []*SizeConstraintSetSummary `type:"list"`
// contains filtered or unexported fields
}

type ListSqlInjectionMatchSetsInput struct {
// Specifies the number of SqlInjectionMatchSet objects that you want AWS WAF// to return for this request. If you have more SqlInjectionMatchSet objects// than the number you specify for Limit, the response includes a NextMarker// value that you can use to get another batch of Rules.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more SqlInjectionMatchSet objects// than the value of Limit, AWS WAF returns a NextMarker value in the response// that allows you to list another group of SqlInjectionMatchSets. For the second// and subsequent ListSqlInjectionMatchSets requests, specify the value of NextMarker// from the previous response to get information about another batch of SqlInjectionMatchSets.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

A request to list the SqlInjectionMatchSet objects created by the current
AWS account.

type ListSqlInjectionMatchSetsOutput struct {
// If you have more SqlInjectionMatchSet objects than the number that you specified// for Limit in the request, the response includes a NextMarker value. To list// more SqlInjectionMatchSet objects, submit another ListSqlInjectionMatchSets// request, and specify the NextMarker value from the response in the NextMarker// value in the next request.
NextMarker *string `min:"1" type:"string"`
// An array of SqlInjectionMatchSetSummary objects.
SqlInjectionMatchSets []*SqlInjectionMatchSetSummary `type:"list"`
// contains filtered or unexported fields
}

type ListSubscribedRuleGroupsInput struct {
// Specifies the number of subscribed rule groups that you want AWS WAF to return// for this request. If you have more objects than the number you specify for// Limit, the response includes a NextMarker value that you can use to get another// batch of objects.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more ByteMatchSetssubscribed// rule groups than the value of Limit, AWS WAF returns a NextMarker value in// the response that allows you to list another group of subscribed rule groups.// For the second and subsequent ListSubscribedRuleGroupsRequest requests, specify// the value of NextMarker from the previous response to get information about// another batch of subscribed rule groups.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListSubscribedRuleGroupsOutput struct {
// If you have more objects than the number that you specified for Limit in// the request, the response includes a NextMarker value. To list more objects,// submit another ListSubscribedRuleGroups request, and specify the NextMarker// value from the response in the NextMarker value in the next request.
NextMarker *string `min:"1" type:"string"`
// An array of RuleGroup objects.
RuleGroups []*SubscribedRuleGroupSummary `type:"list"`
// contains filtered or unexported fields
}

type ListWebACLsInput struct {
// Specifies the number of WebACL objects that you want AWS WAF to return for// this request. If you have more WebACL objects than the number that you specify// for Limit, the response includes a NextMarker value that you can use to get// another batch of WebACL objects.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more WebACL objects than the// number that you specify for Limit, AWS WAF returns a NextMarker value in// the response that allows you to list another group of WebACL objects. For// the second and subsequent ListWebACLs requests, specify the value of NextMarker// from the previous response to get information about another batch of WebACL// objects.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type ListWebACLsOutput struct {
// If you have more WebACL objects than the number that you specified for Limit// in the request, the response includes a NextMarker value. To list more WebACL// objects, submit another ListWebACLs request, and specify the NextMarker value// from the response in the NextMarker value in the next request.
NextMarker *string `min:"1" type:"string"`
// An array of WebACLSummary objects.
WebACLs []*WebACLSummary `type:"list"`
// contains filtered or unexported fields
}

type ListXssMatchSetsInput struct {
// Specifies the number of XssMatchSet objects that you want AWS WAF to return// for this request. If you have more XssMatchSet objects than the number you// specify for Limit, the response includes a NextMarker value that you can// use to get another batch of Rules.
Limit *int64 `type:"integer"`
// If you specify a value for Limit and you have more XssMatchSet objects than// the value of Limit, AWS WAF returns a NextMarker value in the response that// allows you to list another group of XssMatchSets. For the second and subsequent// ListXssMatchSets requests, specify the value of NextMarker from the previous// response to get information about another batch of XssMatchSets.
NextMarker *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

A request to list the XssMatchSet objects created by the current AWS account.

type ListXssMatchSetsOutput struct {
// If you have more XssMatchSet objects than the number that you specified for// Limit in the request, the response includes a NextMarker value. To list more// XssMatchSet objects, submit another ListXssMatchSets request, and specify// the NextMarker value from the response in the NextMarker value in the next// request.
NextMarker *string `min:"1" type:"string"`
// An array of XssMatchSetSummary objects.
XssMatchSets []*XssMatchSetSummary `type:"list"`
// contains filtered or unexported fields
}

type Predicate struct {
// A unique identifier for a predicate in a Rule, such as ByteMatchSetId or// IPSetId. The ID is returned by the corresponding Create or List command.//// DataId is a required field
DataId *string `min:"1" type:"string" required:"true"`
// Set Negated to False if you want AWS WAF to allow, block, or count requests// based on the settings in the specified ByteMatchSet, IPSet, SqlInjectionMatchSet,// XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example,// if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow or block// requests based on that IP address.//// Set Negated to True if you want AWS WAF to allow or block a request based// on the negation of the settings in the ByteMatchSet, IPSet, SqlInjectionMatchSet,// XssMatchSet, RegexMatchSet, GeoMatchSet, or SizeConstraintSet. For example,// if an IPSet includes the IP address 192.0.2.44, AWS WAF will allow, block,// or count requests based on all IP addresses except192.0.2.44.//// Negated is a required field
Negated *bool `type:"boolean" required:"true"`
// The type of predicate in a Rule, such as ByteMatchSet or IPSet.//// Type is a required field
Type *string `type:"string" required:"true" enum:"PredicateType"`
// contains filtered or unexported fields
}

Specifies the ByteMatchSet, IPSet, SqlInjectionMatchSet, XssMatchSet, RegexMatchSet,
GeoMatchSet, and SizeConstraintSet objects that you want to add to a Rule
and, for each object, indicates whether you want to negate the settings,
for example, requests that do NOT originate from the IP address 192.0.2.44.

type PutPermissionPolicyInput struct {
// The policy to attach to the specified RuleGroup.//// Policy is a required field
Policy *string `min:"1" type:"string" required:"true"`
// The Amazon Resource Name (ARN) of the RuleGroup to which you want to attach// the policy.//// ResourceArn is a required field
ResourceArn *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type RateBasedRule struct {
// The Predicates object contains one Predicate element for each ByteMatchSet,// IPSet, or SqlInjectionMatchSet object that you want to include in a RateBasedRule.//// MatchPredicates is a required field
MatchPredicates []*Predicate `type:"list" required:"true"`
// A friendly name or description for the metrics for a RateBasedRule. The name// can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't// contain whitespace. You can't change the name of the metric after you create// the RateBasedRule.
MetricName *string `type:"string"`
// A friendly name or description for a RateBasedRule. You can't change the// name of a RateBasedRule after you create it.
Name *string `min:"1" type:"string"`
// The field that AWS WAF uses to determine if requests are likely arriving// from single source and thus subject to rate monitoring. The only valid value// for RateKey is IP. IP indicates that requests arriving from the same IP address// are subject to the RateLimit that is specified in the RateBasedRule.//// RateKey is a required field
RateKey *string `type:"string" required:"true" enum:"RateKey"`
// The maximum number of requests, which have an identical value in the field// specified by the RateKey, allowed in a five-minute period. If the number// of requests exceeds the RateLimit and the other predicates specified in the// rule are also met, AWS WAF triggers the action that is specified for this// rule.//// RateLimit is a required field
RateLimit *int64 `min:"2000" type:"long" required:"true"`
// A unique identifier for a RateBasedRule. You use RuleId to get more information// about a RateBasedRule (see GetRateBasedRule), update a RateBasedRule (see// UpdateRateBasedRule), insert a RateBasedRule into a WebACL or delete one// from a WebACL (see UpdateWebACL), or delete a RateBasedRule from AWS WAF// (see DeleteRateBasedRule).//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

A RateBasedRule is identical to a regular Rule, with one addition: a RateBasedRule
counts the number of requests that arrive from a specified IP address every
five minutes. For example, based on recent requests that you've seen from
an attacker, you might create a RateBasedRule that includes the following
conditions:

* The requests come from 192.0.2.44.
* They contain the value BadBot in the User-Agent header.

In the rule, you also define the rate limit as 15,000.

Requests that meet both of these conditions and exceed 15,000 requests every
five minutes trigger the rule's action (block or count), which is defined
in the web ACL.

type RegexMatchSet struct {
// A friendly name or description of the RegexMatchSet. You can't change Name// after you create a RegexMatchSet.
Name *string `min:"1" type:"string"`
// The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information// about a RegexMatchSet (see GetRegexMatchSet), update a RegexMatchSet (see// UpdateRegexMatchSet), insert a RegexMatchSet into a Rule or delete one from// a Rule (see UpdateRule), and delete a RegexMatchSet from AWS WAF (see DeleteRegexMatchSet).//// RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.
RegexMatchSetId *string `min:"1" type:"string"`
// Contains an array of RegexMatchTuple objects. Each RegexMatchTuple object// contains://// * The part of a web request that you want AWS WAF to inspect, such as// a query string or the value of the User-Agent header.//// * The identifier of the pattern (a regular expression) that you want AWS// WAF to look for. For more information, see RegexPatternSet.//// * Whether to perform any conversions on the request, such as converting// it to lowercase, before inspecting it for the specified string.
RegexMatchTuples []*RegexMatchTuple `type:"list"`
// contains filtered or unexported fields
}

In a GetRegexMatchSet request, RegexMatchSet is a complex type that contains
the RegexMatchSetId and Name of a RegexMatchSet, and the values that you
specified when you updated the RegexMatchSet.

The values are contained in a RegexMatchTuple object, which specify the parts
of web requests that you want AWS WAF to inspect and the values that you
want AWS WAF to search for. If a RegexMatchSet contains more than one RegexMatchTuple
object, a request needs to match the settings in only one ByteMatchTuple
to be considered a match.

type RegexMatchSetSummary struct {
// A friendly name or description of the RegexMatchSet. You can't change Name// after you create a RegexMatchSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// The RegexMatchSetId for a RegexMatchSet. You use RegexMatchSetId to get information// about a RegexMatchSet, update a RegexMatchSet, remove a RegexMatchSet from// a Rule, and delete a RegexMatchSet from AWS WAF.//// RegexMatchSetId is returned by CreateRegexMatchSet and by ListRegexMatchSets.//// RegexMatchSetId is a required field
RegexMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

Returned by ListRegexMatchSets. Each RegexMatchSetSummary object includes
the Name and RegexMatchSetId for one RegexMatchSet.

type RegexMatchSetUpdate struct {
// Specifies whether to insert or delete a RegexMatchTuple.//// Action is a required field
Action *string `type:"string" required:"true" enum:"ChangeAction"`
// Information about the part of a web request that you want AWS WAF to inspect// and the identifier of the regular expression (regex) pattern that you want// AWS WAF to search for. If you specify DELETE for the value of Action, the// RegexMatchTuple values must exactly match the values in the RegexMatchTuple// that you want to delete from the RegexMatchSet.//// RegexMatchTuple is a required field
RegexMatchTuple *RegexMatchTuple `type:"structure" required:"true"`
// contains filtered or unexported fields
}

In an UpdateRegexMatchSet request, RegexMatchSetUpdate specifies whether
to insert or delete a RegexMatchTuple and includes the settings for the RegexMatchTuple.

type RegexMatchTuple struct {
// Specifies where in a web request to look for the RegexPatternSet.//// FieldToMatch is a required field
FieldToMatch *FieldToMatch `type:"structure" required:"true"`
// The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to// get information about a RegexPatternSet (see GetRegexPatternSet), update// a RegexPatternSet (see UpdateRegexPatternSet), insert a RegexPatternSet into// a RegexMatchSet or delete one from a RegexMatchSet (see UpdateRegexMatchSet),// and delete an RegexPatternSet from AWS WAF (see DeleteRegexPatternSet).//// RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.//// RegexPatternSetId is a required field
RegexPatternSetId *string `min:"1" type:"string" required:"true"`
// Text transformations eliminate some of the unusual formatting that attackers// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,// AWS WAF performs the transformation on RegexPatternSet before inspecting// a request for a match.//// CMD_LINE//// When you're concerned that attackers are injecting an operating system commandline// command and using unusual formatting to disguise some or all of the command,// use this option to perform the following transformations://// * Delete the following characters: \ " ' ^//// * Delete spaces before the following characters: / (//// * Replace the following characters with a space: , ;//// * Replace multiple spaces with one space//// * Convert uppercase letters (A-Z) to lowercase (a-z)//// COMPRESS_WHITE_SPACE//// Use this option to replace the following characters with a space character// (decimal 32)://// * \f, formfeed, decimal 12//// * \t, tab, decimal 9//// * \n, newline, decimal 10//// * \r, carriage return, decimal 13//// * \v, vertical tab, decimal 11//// * non-breaking space, decimal 160//// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.//// HTML_ENTITY_DECODE//// Use this option to replace HTML-encoded characters with unencoded characters.// HTML_ENTITY_DECODE performs the following operations://// * Replaces (ampersand)quot; with "//// * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160//// * Replaces (ampersand)lt; with a "less than" symbol//// * Replaces (ampersand)gt; with >//// * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,// with the corresponding characters//// * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,// with the corresponding characters//// LOWERCASE//// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).//// URL_DECODE//// Use this option to decode a URL-encoded value.//// NONE//// Specify NONE if you don't want to perform any text transformations.//// TextTransformation is a required field
TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
// contains filtered or unexported fields
}

The regular expression pattern that you want AWS WAF to search for in web
requests, the location in requests that you want AWS WAF to search, and other
settings. Each RegexMatchTuple object contains:

* The part of a web request that you want AWS WAF to inspect, such as
a query string or the value of the User-Agent header.
* The identifier of the pattern (a regular expression) that you want AWS
WAF to look for. For more information, see RegexPatternSet.
* Whether to perform any conversions on the request, such as converting
it to lowercase, before inspecting it for the specified string.

type RegexPatternSet struct {
// A friendly name or description of the RegexPatternSet. You can't change Name// after you create a RegexPatternSet.
Name *string `min:"1" type:"string"`
// The identifier for the RegexPatternSet. You use RegexPatternSetId to get// information about a RegexPatternSet, update a RegexPatternSet, remove a RegexPatternSet// from a RegexMatchSet, and delete a RegexPatternSet from AWS WAF.//// RegexMatchSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.//// RegexPatternSetId is a required field
RegexPatternSetId *string `min:"1" type:"string" required:"true"`
// Specifies the regular expression (regex) patterns that you want AWS WAF to// search for, such as B[a@]dB[o0]t.//// RegexPatternStrings is a required field
RegexPatternStrings []*string `type:"list" required:"true"`
// contains filtered or unexported fields
}

The RegexPatternSet specifies the regular expression (regex) pattern that
you want AWS WAF to search for, such as B[a@]dB[o0]t. You can then configure
AWS WAF to reject those requests.

type RegexPatternSetSummary struct {
// A friendly name or description of the RegexPatternSet. You can't change Name// after you create a RegexPatternSet.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// The RegexPatternSetId for a RegexPatternSet. You use RegexPatternSetId to// get information about a RegexPatternSet, update a RegexPatternSet, remove// a RegexPatternSet from a RegexMatchSet, and delete a RegexPatternSet from// AWS WAF.//// RegexPatternSetId is returned by CreateRegexPatternSet and by ListRegexPatternSets.//// RegexPatternSetId is a required field
RegexPatternSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

Returned by ListRegexPatternSets. Each RegexPatternSetSummary object includes
the Name and RegexPatternSetId for one RegexPatternSet.

type Rule struct {
// A friendly name or description for the metrics for this Rule. The name can// contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't contain// whitespace. You can't change MetricName after you create the Rule.
MetricName *string `type:"string"`
// The friendly name or description for the Rule. You can't change the name// of a Rule after you create it.
Name *string `min:"1" type:"string"`
// The Predicates object contains one Predicate element for each ByteMatchSet,// IPSet, or SqlInjectionMatchSet object that you want to include in a Rule.//// Predicates is a required field
Predicates []*Predicate `type:"list" required:"true"`
// A unique identifier for a Rule. You use RuleId to get more information about// a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into// a WebACL or delete a one from a WebACL (see UpdateWebACL), or delete a Rule// from AWS WAF (see DeleteRule).//// RuleId is returned by CreateRule and by ListRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

A combination of ByteMatchSet, IPSet, and/or SqlInjectionMatchSet objects
that identify the web requests that you want to allow, block, or count. For
example, you might create a Rule that includes the following predicates:

* An IPSet that causes AWS WAF to search for web requests that originate
from the IP address 192.0.2.44
* A ByteMatchSet that causes AWS WAF to search for web requests for which
the value of the User-Agent header is BadBot.

To match the settings in this Rule, a request must originate from 192.0.2.44
AND include a User-Agent header for which the value is BadBot.

type RuleGroup struct {
// A friendly name or description for the metrics for this RuleGroup. The name// can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't// contain whitespace. You can't change the name of the metric after you create// the RuleGroup.
MetricName *string `type:"string"`
// The friendly name or description for the RuleGroup. You can't change the// name of a RuleGroup after you create it.
Name *string `min:"1" type:"string"`
// A unique identifier for a RuleGroup. You use RuleGroupId to get more information// about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup),// insert a RuleGroup into a WebACL or delete a one from a WebACL (see UpdateWebACL),// or delete a RuleGroup from AWS WAF (see DeleteRuleGroup).//// RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.//// RuleGroupId is a required field
RuleGroupId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

A collection of predefined rules that you can add to a web ACL.

Rule groups are subject to the following limits:

* Three rule groups per account. You can request an increase to this limit
by contacting customer support.
* One rule group per web ACL.
* Ten rules per rule group.

type RuleGroupSummary struct {
// A friendly name or description of the RuleGroup. You can't change the name// of a RuleGroup after you create it.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// A unique identifier for a RuleGroup. You use RuleGroupId to get more information// about a RuleGroup (see GetRuleGroup), update a RuleGroup (see UpdateRuleGroup),// insert a RuleGroup into a WebACL or delete one from a WebACL (see UpdateWebACL),// or delete a RuleGroup from AWS WAF (see DeleteRuleGroup).//// RuleGroupId is returned by CreateRuleGroup and by ListRuleGroups.//// RuleGroupId is a required field
RuleGroupId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

Contains the identifier and the friendly name or description of the RuleGroup.

type RuleGroupUpdate struct {
// Specify INSERT to add an ActivatedRule to a RuleGroup. Use DELETE to remove// an ActivatedRule from a RuleGroup.//// Action is a required field
Action *string `type:"string" required:"true" enum:"ChangeAction"`
// The ActivatedRule object specifies a Rule that you want to insert or delete,// the priority of the Rule in the WebACL, and the action that you want AWS// WAF to take when a web request matches the Rule (ALLOW, BLOCK, or COUNT).//// ActivatedRule is a required field
ActivatedRule *ActivatedRule `type:"structure" required:"true"`
// contains filtered or unexported fields
}

Specifies an ActivatedRule and indicates whether you want to add it to a
RuleGroup or delete it from a RuleGroup.

type RuleSummary struct {
// A friendly name or description of the Rule. You can't change the name of// a Rule after you create it.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// A unique identifier for a Rule. You use RuleId to get more information about// a Rule (see GetRule), update a Rule (see UpdateRule), insert a Rule into// a WebACL or delete one from a WebACL (see UpdateWebACL), or delete a Rule// from AWS WAF (see DeleteRule).//// RuleId is returned by CreateRule and by ListRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

Contains the identifier and the friendly name or description of the Rule.

type RuleUpdate struct {
// Specify INSERT to add a Predicate to a Rule. Use DELETE to remove a Predicate// from a Rule.//// Action is a required field
Action *string `type:"string" required:"true" enum:"ChangeAction"`
// The ID of the Predicate (such as an IPSet) that you want to add to a Rule.//// Predicate is a required field
Predicate *Predicate `type:"structure" required:"true"`
// contains filtered or unexported fields
}

Specifies a Predicate (such as an IPSet) and indicates whether you want to
add it to a Rule or delete it from a Rule.

type SampledHTTPRequest struct {
// The action for the Rule that the request matched: ALLOW, BLOCK, or COUNT.
Action *string `type:"string"`
// A complex type that contains detailed information about the request.//// Request is a required field
Request *HTTPRequest `type:"structure" required:"true"`
// This value is returned if the GetSampledRequests request specifies the ID// of a RuleGroup rather than the ID of an individual rule. RuleWithinRuleGroup// is the rule within the specified RuleGroup that matched the request listed// in the response.
RuleWithinRuleGroup *string `min:"1" type:"string"`
// The time at which AWS WAF received the request from your AWS resource, in// Unix time format (in seconds).
Timestamp *time.Time `type:"timestamp" timestampFormat:"unix"`
// A value that indicates how one result in the response relates proportionally// to other results in the response. A result that has a weight of 2 represents// roughly twice as many CloudFront web requests as a result that has a weight// of 1.//// Weight is a required field
Weight *int64 `type:"long" required:"true"`
// contains filtered or unexported fields
}

The response from a GetSampledRequests request includes a SampledHTTPRequests
complex type that appears as SampledRequests in the response syntax. SampledHTTPRequests
contains one SampledHTTPRequest object for each web request that is returned
by GetSampledRequests.

type SizeConstraint struct {
// The type of comparison you want AWS WAF to perform. AWS WAF uses this in// combination with the provided Size and FieldToMatch to build an expression// in the form of "SizeComparisonOperator size in bytes of FieldToMatch". If// that expression is true, the SizeConstraint is considered to match.//// EQ: Used to test if the Size is equal to the size of the FieldToMatch//// NE: Used to test if the Size is not equal to the size of the FieldToMatch//// LE: Used to test if the Size is less than or equal to the size of the FieldToMatch//// LT: Used to test if the Size is strictly less than the size of the FieldToMatch//// GE: Used to test if the Size is greater than or equal to the size of the// FieldToMatch//// GT: Used to test if the Size is strictly greater than the size of the FieldToMatch//// ComparisonOperator is a required field
ComparisonOperator *string `type:"string" required:"true" enum:"ComparisonOperator"`
// Specifies where in a web request to look for the size constraint.//// FieldToMatch is a required field
FieldToMatch *FieldToMatch `type:"structure" required:"true"`
// The size in bytes that you want AWS WAF to compare against the size of the// specified FieldToMatch. AWS WAF uses this in combination with ComparisonOperator// and FieldToMatch to build an expression in the form of "SizeComparisonOperator// size in bytes of FieldToMatch". If that expression is true, the SizeConstraint// is considered to match.//// Valid values for size are 0 - 21474836480 bytes (0 - 20 GB).//// If you specify URI for the value of Type, the / in the URI counts as one// character. For example, the URI /logo.jpg is nine characters long.//// Size is a required field
Size *int64 `type:"long" required:"true"`
// Text transformations eliminate some of the unusual formatting that attackers// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,// AWS WAF performs the transformation on FieldToMatch before inspecting a request// for a match.//// Note that if you choose BODY for the value of Type, you must choose NONE// for TextTransformation because CloudFront forwards only the first 8192 bytes// for inspection.//// NONE//// Specify NONE if you don't want to perform any text transformations.//// CMD_LINE//// When you're concerned that attackers are injecting an operating system command// line command and using unusual formatting to disguise some or all of the// command, use this option to perform the following transformations://// * Delete the following characters: \ " ' ^//// * Delete spaces before the following characters: / (//// * Replace the following characters with a space: , ;//// * Replace multiple spaces with one space//// * Convert uppercase letters (A-Z) to lowercase (a-z)//// COMPRESS_WHITE_SPACE//// Use this option to replace the following characters with a space character// (decimal 32)://// * \f, formfeed, decimal 12//// * \t, tab, decimal 9//// * \n, newline, decimal 10//// * \r, carriage return, decimal 13//// * \v, vertical tab, decimal 11//// * non-breaking space, decimal 160//// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.//// HTML_ENTITY_DECODE//// Use this option to replace HTML-encoded characters with unencoded characters.// HTML_ENTITY_DECODE performs the following operations://// * Replaces (ampersand)quot; with "//// * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160//// * Replaces (ampersand)lt; with a "less than" symbol//// * Replaces (ampersand)gt; with >//// * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,// with the corresponding characters//// * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,// with the corresponding characters//// LOWERCASE//// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).//// URL_DECODE//// Use this option to decode a URL-encoded value.//// TextTransformation is a required field
TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
// contains filtered or unexported fields
}

Specifies a constraint on the size of a part of the web request. AWS WAF
uses the Size, ComparisonOperator, and FieldToMatch to build an expression
in the form of "SizeComparisonOperator size in bytes of FieldToMatch". If
that expression is true, the SizeConstraint is considered to match.

type SizeConstraintSet struct {
// The name, if any, of the SizeConstraintSet.
Name *string `min:"1" type:"string"`
// A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId// to get information about a SizeConstraintSet (see GetSizeConstraintSet),// update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet// into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet// from AWS WAF (see DeleteSizeConstraintSet).//// SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.//// SizeConstraintSetId is a required field
SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
// Specifies the parts of web requests that you want to inspect the size of.//// SizeConstraints is a required field
SizeConstraints []*SizeConstraint `type:"list" required:"true"`
// contains filtered or unexported fields
}

A complex type that contains SizeConstraint objects, which specify the parts
of web requests that you want AWS WAF to inspect the size of. If a SizeConstraintSet
contains more than one SizeConstraint object, a request only needs to match
one constraint to be considered a match.

type SizeConstraintSetSummary struct {
// The name of the SizeConstraintSet, if any.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// A unique identifier for a SizeConstraintSet. You use SizeConstraintSetId// to get information about a SizeConstraintSet (see GetSizeConstraintSet),// update a SizeConstraintSet (see UpdateSizeConstraintSet), insert a SizeConstraintSet// into a Rule or delete one from a Rule (see UpdateRule), and delete a SizeConstraintSet// from AWS WAF (see DeleteSizeConstraintSet).//// SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.//// SizeConstraintSetId is a required field
SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type SizeConstraintSetUpdate struct {
// Specify INSERT to add a SizeConstraintSetUpdate to a SizeConstraintSet. Use// DELETE to remove a SizeConstraintSetUpdate from a SizeConstraintSet.//// Action is a required field
Action *string `type:"string" required:"true" enum:"ChangeAction"`
// Specifies a constraint on the size of a part of the web request. AWS WAF// uses the Size, ComparisonOperator, and FieldToMatch to build an expression// in the form of "SizeComparisonOperator size in bytes of FieldToMatch". If// that expression is true, the SizeConstraint is considered to match.//// SizeConstraint is a required field
SizeConstraint *SizeConstraint `type:"structure" required:"true"`
// contains filtered or unexported fields
}

Specifies the part of a web request that you want to inspect the size of
and indicates whether you want to add the specification to a SizeConstraintSet
or delete it from a SizeConstraintSet.

type SqlInjectionMatchSet struct {
// The name, if any, of the SqlInjectionMatchSet.
Name *string `min:"1" type:"string"`
// A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId// to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet),// update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a// SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule),// and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet).//// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.//// SqlInjectionMatchSetId is a required field
SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
// Specifies the parts of web requests that you want to inspect for snippets// of malicious SQL code.//// SqlInjectionMatchTuples is a required field
SqlInjectionMatchTuples []*SqlInjectionMatchTuple `type:"list" required:"true"`
// contains filtered or unexported fields
}

A complex type that contains SqlInjectionMatchTuple objects, which specify
the parts of web requests that you want AWS WAF to inspect for snippets of
malicious SQL code and, if you want AWS WAF to inspect a header, the name
of the header. If a SqlInjectionMatchSet contains more than one SqlInjectionMatchTuple
object, a request needs to include snippets of SQL code in only one of the
specified parts of the request to be considered a match.

type SqlInjectionMatchSetSummary struct {
// The name of the SqlInjectionMatchSet, if any, specified by Id.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// A unique identifier for a SqlInjectionMatchSet. You use SqlInjectionMatchSetId// to get information about a SqlInjectionMatchSet (see GetSqlInjectionMatchSet),// update a SqlInjectionMatchSet (see UpdateSqlInjectionMatchSet), insert a// SqlInjectionMatchSet into a Rule or delete one from a Rule (see UpdateRule),// and delete a SqlInjectionMatchSet from AWS WAF (see DeleteSqlInjectionMatchSet).//// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.//// SqlInjectionMatchSetId is a required field
SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type SqlInjectionMatchSetUpdate struct {
// Specify INSERT to add a SqlInjectionMatchSetUpdate to a SqlInjectionMatchSet.// Use DELETE to remove a SqlInjectionMatchSetUpdate from a SqlInjectionMatchSet.//// Action is a required field
Action *string `type:"string" required:"true" enum:"ChangeAction"`
// Specifies the part of a web request that you want AWS WAF to inspect for// snippets of malicious SQL code and, if you want AWS WAF to inspect a header,// the name of the header.//// SqlInjectionMatchTuple is a required field
SqlInjectionMatchTuple *SqlInjectionMatchTuple `type:"structure" required:"true"`
// contains filtered or unexported fields
}

Specifies the part of a web request that you want to inspect for snippets
of malicious SQL code and indicates whether you want to add the specification
to a SqlInjectionMatchSet or delete it from a SqlInjectionMatchSet.

type SqlInjectionMatchTuple struct {
// Specifies where in a web request to look for snippets of malicious SQL code.//// FieldToMatch is a required field
FieldToMatch *FieldToMatch `type:"structure" required:"true"`
// Text transformations eliminate some of the unusual formatting that attackers// use in web requests in an effort to bypass AWS WAF. If you specify a transformation,// AWS WAF performs the transformation on FieldToMatch before inspecting a request// for a match.//// CMD_LINE//// When you're concerned that attackers are injecting an operating system commandline// command and using unusual formatting to disguise some or all of the command,// use this option to perform the following transformations://// * Delete the following characters: \ " ' ^//// * Delete spaces before the following characters: / (//// * Replace the following characters with a space: , ;//// * Replace multiple spaces with one space//// * Convert uppercase letters (A-Z) to lowercase (a-z)//// COMPRESS_WHITE_SPACE//// Use this option to replace the following characters with a space character// (decimal 32)://// * \f, formfeed, decimal 12//// * \t, tab, decimal 9//// * \n, newline, decimal 10//// * \r, carriage return, decimal 13//// * \v, vertical tab, decimal 11//// * non-breaking space, decimal 160//// COMPRESS_WHITE_SPACE also replaces multiple spaces with one space.//// HTML_ENTITY_DECODE//// Use this option to replace HTML-encoded characters with unencoded characters.// HTML_ENTITY_DECODE performs the following operations://// * Replaces (ampersand)quot; with "//// * Replaces (ampersand)nbsp; with a non-breaking space, decimal 160//// * Replaces (ampersand)lt; with a "less than" symbol//// * Replaces (ampersand)gt; with >//// * Replaces characters that are represented in hexadecimal format, (ampersand)#xhhhh;,// with the corresponding characters//// * Replaces characters that are represented in decimal format, (ampersand)#nnnn;,// with the corresponding characters//// LOWERCASE//// Use this option to convert uppercase letters (A-Z) to lowercase (a-z).//// URL_DECODE//// Use this option to decode a URL-encoded value.//// NONE//// Specify NONE if you don't want to perform any text transformations.//// TextTransformation is a required field
TextTransformation *string `type:"string" required:"true" enum:"TextTransformation"`
// contains filtered or unexported fields
}

Specifies the part of a web request that you want AWS WAF to inspect for
snippets of malicious SQL code and, if you want AWS WAF to inspect a header,
the name of the header.

type SubscribedRuleGroupSummary struct {
// A friendly name or description for the metrics for this RuleGroup. The name// can contain only alphanumeric characters (A-Z, a-z, 0-9); the name can't// contain whitespace. You can't change the name of the metric after you create// the RuleGroup.//// MetricName is a required field
MetricName *string `type:"string" required:"true"`
// A friendly name or description of the RuleGroup. You can't change the name// of a RuleGroup after you create it.//// Name is a required field
Name *string `min:"1" type:"string" required:"true"`
// A unique identifier for a RuleGroup.//// RuleGroupId is a required field
RuleGroupId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type TimeWindow struct {
// The end of the time range from which you want GetSampledRequests to return// a sample of the requests that your AWS resource received. Specify the date// and time in the following format: "2016-09-27T14:50Z". You can specify any// time range in the previous three hours.//// EndTime is a required field
EndTime *time.Time `type:"timestamp" timestampFormat:"unix" required:"true"`
// The beginning of the time range from which you want GetSampledRequests to// return a sample of the requests that your AWS resource received. Specify// the date and time in the following format: "2016-09-27T14:50Z". You can specify// any time range in the previous three hours.//// StartTime is a required field
StartTime *time.Time `type:"timestamp" timestampFormat:"unix" required:"true"`
// contains filtered or unexported fields
}

In a GetSampledRequests request, the StartTime and EndTime objects specify
the time range for which you want AWS WAF to return a sample of web requests.

In a GetSampledRequests response, the StartTime and EndTime objects specify
the time range for which AWS WAF actually returned a sample of web requests.
AWS WAF gets the specified number of requests from among the first 5,000
requests that your AWS resource receives during the specified time period.
If your resource receives more than 5,000 requests during that period, AWS
WAF stops sampling after the 5,000th request. In that case, EndTime is the
time that AWS WAF received the 5,000th request.

type UpdateByteMatchSetInput struct {
// The ByteMatchSetId of the ByteMatchSet that you want to update. ByteMatchSetId// is returned by CreateByteMatchSet and by ListByteMatchSets.//// ByteMatchSetId is a required field
ByteMatchSetId *string `min:"1" type:"string" required:"true"`
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// An array of ByteMatchSetUpdate objects that you want to insert into or delete// from a ByteMatchSet. For more information, see the applicable data types://// * ByteMatchSetUpdate: Contains Action and ByteMatchTuple//// * ByteMatchTuple: Contains FieldToMatch, PositionalConstraint, TargetString,// and TextTransformation//// * FieldToMatch: Contains Data and Type//// Updates is a required field
Updates []*ByteMatchSetUpdate `min:"1" type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateByteMatchSetOutput struct {
// The ChangeToken that you used to submit the UpdateByteMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateGeoMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The GeoMatchSetId of the GeoMatchSet that you want to update. GeoMatchSetId// is returned by CreateGeoMatchSet and by ListGeoMatchSets.//// GeoMatchSetId is a required field
GeoMatchSetId *string `min:"1" type:"string" required:"true"`
// An array of GeoMatchSetUpdate objects that you want to insert into or delete// from an GeoMatchSet. For more information, see the applicable data types://// * GeoMatchSetUpdate: Contains Action and GeoMatchConstraint//// * GeoMatchConstraint: Contains Type and Value//// You can have only one Type and Value per GeoMatchConstraint. To add multiple// countries, include multiple GeoMatchSetUpdate objects in your request.//// Updates is a required field
Updates []*GeoMatchSetUpdate `min:"1" type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateGeoMatchSetOutput struct {
// The ChangeToken that you used to submit the UpdateGeoMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateIPSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The IPSetId of the IPSet that you want to update. IPSetId is returned by// CreateIPSet and by ListIPSets.//// IPSetId is a required field
IPSetId *string `min:"1" type:"string" required:"true"`
// An array of IPSetUpdate objects that you want to insert into or delete from// an IPSet. For more information, see the applicable data types://// * IPSetUpdate: Contains Action and IPSetDescriptor//// * IPSetDescriptor: Contains Type and Value//// Updates is a required field
Updates []*IPSetUpdate `min:"1" type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateIPSetOutput struct {
// The ChangeToken that you used to submit the UpdateIPSet request. You can// also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateRateBasedRuleInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The maximum number of requests, which have an identical value in the field// specified by the RateKey, allowed in a five-minute period. If the number// of requests exceeds the RateLimit and the other predicates specified in the// rule are also met, AWS WAF triggers the action that is specified for this// rule.//// RateLimit is a required field
RateLimit *int64 `min:"2000" type:"long" required:"true"`
// The RuleId of the RateBasedRule that you want to update. RuleId is returned// by CreateRateBasedRule and by ListRateBasedRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// An array of RuleUpdate objects that you want to insert into or delete from// a RateBasedRule.//// Updates is a required field
Updates []*RuleUpdate `type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateRateBasedRuleOutput struct {
// The ChangeToken that you used to submit the UpdateRateBasedRule request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateRegexMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RegexMatchSetId of the RegexMatchSet that you want to update. RegexMatchSetId// is returned by CreateRegexMatchSet and by ListRegexMatchSets.//// RegexMatchSetId is a required field
RegexMatchSetId *string `min:"1" type:"string" required:"true"`
// An array of RegexMatchSetUpdate objects that you want to insert into or delete// from a RegexMatchSet. For more information, see RegexMatchTuple.//// Updates is a required field
Updates []*RegexMatchSetUpdate `min:"1" type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateRegexMatchSetOutput struct {
// The ChangeToken that you used to submit the UpdateRegexMatchSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateRegexPatternSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RegexPatternSetId of the RegexPatternSet that you want to update. RegexPatternSetId// is returned by CreateRegexPatternSet and by ListRegexPatternSets.//// RegexPatternSetId is a required field
RegexPatternSetId *string `min:"1" type:"string" required:"true"`
// An array of RegexPatternSetUpdate objects that you want to insert into or// delete from a RegexPatternSet.//// Updates is a required field
Updates []*RegexPatternSetUpdate `min:"1" type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateRegexPatternSetOutput struct {
// The ChangeToken that you used to submit the UpdateRegexPatternSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateRuleGroupInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RuleGroupId of the RuleGroup that you want to update. RuleGroupId is// returned by CreateRuleGroup and by ListRuleGroups.//// RuleGroupId is a required field
RuleGroupId *string `min:"1" type:"string" required:"true"`
// An array of RuleGroupUpdate objects that you want to insert into or delete// from a RuleGroup.//// You can only insert REGULAR rules into a rule group.//// ActivatedRule|OverrideAction applies only when updating or adding a RuleGroup// to a WebACL. In this case you do not use ActivatedRule|Action. For all other// update requests, ActivatedRule|Action is used instead of ActivatedRule|OverrideAction.//// Updates is a required field
Updates []*RuleGroupUpdate `min:"1" type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateRuleGroupOutput struct {
// The ChangeToken that you used to submit the UpdateRuleGroup request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateRuleInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The RuleId of the Rule that you want to update. RuleId is returned by CreateRule// and by ListRules.//// RuleId is a required field
RuleId *string `min:"1" type:"string" required:"true"`
// An array of RuleUpdate objects that you want to insert into or delete from// a Rule. For more information, see the applicable data types://// * RuleUpdate: Contains Action and Predicate//// * Predicate: Contains DataId, Negated, and Type//// * FieldToMatch: Contains Data and Type//// Updates is a required field
Updates []*RuleUpdate `type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateRuleOutput struct {
// The ChangeToken that you used to submit the UpdateRule request. You can also// use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateSizeConstraintSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The SizeConstraintSetId of the SizeConstraintSet that you want to update.// SizeConstraintSetId is returned by CreateSizeConstraintSet and by ListSizeConstraintSets.//// SizeConstraintSetId is a required field
SizeConstraintSetId *string `min:"1" type:"string" required:"true"`
// An array of SizeConstraintSetUpdate objects that you want to insert into// or delete from a SizeConstraintSet. For more information, see the applicable// data types://// * SizeConstraintSetUpdate: Contains Action and SizeConstraint//// * SizeConstraint: Contains FieldToMatch, TextTransformation, ComparisonOperator,// and Size//// * FieldToMatch: Contains Data and Type//// Updates is a required field
Updates []*SizeConstraintSetUpdate `min:"1" type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateSizeConstraintSetOutput struct {
// The ChangeToken that you used to submit the UpdateSizeConstraintSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateSqlInjectionMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// The SqlInjectionMatchSetId of the SqlInjectionMatchSet that you want to update.// SqlInjectionMatchSetId is returned by CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.//// SqlInjectionMatchSetId is a required field
SqlInjectionMatchSetId *string `min:"1" type:"string" required:"true"`
// An array of SqlInjectionMatchSetUpdate objects that you want to insert into// or delete from a SqlInjectionMatchSet. For more information, see the applicable// data types://// * SqlInjectionMatchSetUpdate: Contains Action and SqlInjectionMatchTuple//// * SqlInjectionMatchTuple: Contains FieldToMatch and TextTransformation//// * FieldToMatch: Contains Data and Type//// Updates is a required field
Updates []*SqlInjectionMatchSetUpdate `min:"1" type:"list" required:"true"`
// contains filtered or unexported fields
}

type UpdateSqlInjectionMatchSetOutput struct {
// The ChangeToken that you used to submit the UpdateSqlInjectionMatchSet request.// You can also use this value to query the status of the request. For more// information, see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateWebACLInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// A default action for the web ACL, either ALLOW or BLOCK. AWS WAF performs// the default action if a request doesn't match the criteria in any of the// rules in a web ACL.
DefaultAction *WafAction `type:"structure"`
// An array of updates to make to the WebACL.//// An array of WebACLUpdate objects that you want to insert into or delete from// a WebACL. For more information, see the applicable data types://// * WebACLUpdate: Contains Action and ActivatedRule//// * ActivatedRule: Contains Action, OverrideAction, Priority, RuleId, and// Type. ActivatedRule|OverrideAction applies only when updating or adding// a RuleGroup to a WebACL. In this case you do not use ActivatedRule|Action.// For all other update requests, ActivatedRule|Action is used instead of// ActivatedRule|OverrideAction.//// * WafAction: Contains Type
Updates []*WebACLUpdate `type:"list"`
// The WebACLId of the WebACL that you want to update. WebACLId is returned// by CreateWebACL and by ListWebACLs.//// WebACLId is a required field
WebACLId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type UpdateWebACLOutput struct {
// The ChangeToken that you used to submit the UpdateWebACL request. You can// also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

type UpdateXssMatchSetInput struct {
// The value returned by the most recent call to GetChangeToken.//// ChangeToken is a required field
ChangeToken *string `min:"1" type:"string" required:"true"`
// An array of XssMatchSetUpdate objects that you want to insert into or delete// from a XssMatchSet. For more information, see the applicable data types://// * XssMatchSetUpdate: Contains Action and XssMatchTuple//// * XssMatchTuple: Contains FieldToMatch and TextTransformation//// * FieldToMatch: Contains Data and Type//// Updates is a required field
Updates []*XssMatchSetUpdate `min:"1" type:"list" required:"true"`
// The XssMatchSetId of the XssMatchSet that you want to update. XssMatchSetId// is returned by CreateXssMatchSet and by ListXssMatchSets.//// XssMatchSetId is a required field
XssMatchSetId *string `min:"1" type:"string" required:"true"`
// contains filtered or unexported fields
}

type UpdateXssMatchSetOutput struct {
// The ChangeToken that you used to submit the UpdateXssMatchSet request. You// can also use this value to query the status of the request. For more information,// see GetChangeTokenStatus.
ChangeToken *string `min:"1" type:"string"`
// contains filtered or unexported fields
}

Creates a ByteMatchSet. You then use UpdateByteMatchSet to identify the part
of a web request that you want AWS WAF to inspect, such as the values of
the User-Agent header or the query string. For example, you can create a
ByteMatchSet that matches any requests with User-Agent headers that contain
the string BadBot. You can then configure AWS WAF to reject those requests.

To create and configure a ByteMatchSet, perform the following steps:

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateByteMatchSet request.

Submit a CreateByteMatchSet request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateByteMatchSet request.

Submit an UpdateByteMatchSet request to specify the part of the request that
you want AWS WAF to inspect (for example, the header or the URI) and the
value that you want AWS WAF to watch for.

* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateByteMatchSetRequest generates a "aws/request.Request" representing the
client's request for the CreateByteMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateByteMatchSet for more information on using the CreateByteMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateByteMatchSetWithContext is the same as CreateByteMatchSet with the addition of
the ability to pass a context and additional request options.

See CreateByteMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates an GeoMatchSet, which you use to specify which web requests you want
to allow or block based on the country that the requests originate from.
For example, if you're receiving a lot of requests from one or more countries
and you want to block the requests, you can create an GeoMatchSet that contains
those countries and then configure AWS WAF to block the requests.

To create and configure a GeoMatchSet, perform the following steps:

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateGeoMatchSet request.

Submit a CreateGeoMatchSet request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateGeoMatchSet request.

Submit an UpdateGeoMatchSetSet request to specify the countries that you
want AWS WAF to watch for.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateGeoMatchSetRequest generates a "aws/request.Request" representing the
client's request for the CreateGeoMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateGeoMatchSet for more information on using the CreateGeoMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateGeoMatchSetWithContext is the same as CreateGeoMatchSet with the addition of
the ability to pass a context and additional request options.

See CreateGeoMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates an IPSet, which you use to specify which web requests you want to
allow or block based on the IP addresses that the requests originate from.
For example, if you're receiving a lot of requests from one or more individual
IP addresses or one or more ranges of IP addresses and you want to block
the requests, you can create an IPSet that contains those IP addresses and
then configure AWS WAF to block the requests.

To create and configure an IPSet, perform the following steps:

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateIPSet request.

Submit a CreateIPSet request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateIPSet request.

Submit an UpdateIPSet request to specify the IP addresses that you want AWS
WAF to watch for.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateIPSetRequest generates a "aws/request.Request" representing the
client's request for the CreateIPSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateIPSet for more information on using the CreateIPSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateIPSetWithContext is the same as CreateIPSet with the addition of
the ability to pass a context and additional request options.

See CreateIPSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates a RateBasedRule. The RateBasedRule contains a RateLimit, which specifies
the maximum number of requests that AWS WAF allows from a specified IP address
in a five-minute period. The RateBasedRule also contains the IPSet objects,
ByteMatchSet objects, and other predicates that identify the requests that
you want to count or block if these requests exceed the RateLimit.

If you add more than one predicate to a RateBasedRule, a request not only
must exceed the RateLimit, but it also must match all the specifications
to be counted or blocked. For example, suppose you add the following to a
RateBasedRule:

* An IPSet that matches the IP address 192.0.2.44/32
* A ByteMatchSet that matches BadBot in the User-Agent header

Further, you specify a RateLimit of 15,000.

You then add the RateBasedRule to a WebACL and specify that you want to block
requests that meet the conditions in the rule. For a request to be blocked,
it must come from the IP address 192.0.2.44 and the User-Agent header in
the request must contain the value BadBot. Further, requests that match these
two conditions must be received at a rate of more than 15,000 requests every
five minutes. If both conditions are met and the rate is exceeded, AWS WAF
blocks the requests. If the rate drops below 15,000 for a five-minute period,
AWS WAF no longer blocks the requests.

As a second example, suppose you want to limit requests to a particular page
on your site. To do this, you could add the following to a RateBasedRule:

* A ByteMatchSet with FieldToMatch of URI
* A PositionalConstraint of STARTS_WITH
* A TargetString of login

Further, you specify a RateLimit of 15,000.

By adding this RateBasedRule to a WebACL, you could limit requests to your
login page without affecting the rest of your site.

To create and configure a RateBasedRule, perform the following steps:

Create and update the predicates that you want to include in the rule. For
more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateRule request.

Submit a CreateRateBasedRule request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateRule request.

Submit an UpdateRateBasedRule request to specify the predicates that you
want to include in the rule.

Create and update a WebACL that contains the RateBasedRule. For more information,
see CreateWebACL.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateRateBasedRuleRequest generates a "aws/request.Request" representing the
client's request for the CreateRateBasedRule operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateRateBasedRule for more information on using the CreateRateBasedRule
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateRateBasedRuleWithContext is the same as CreateRateBasedRule with the addition of
the ability to pass a context and additional request options.

See CreateRateBasedRule for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates a RegexMatchSet. You then use UpdateRegexMatchSet to identify the
part of a web request that you want AWS WAF to inspect, such as the values
of the User-Agent header or the query string. For example, you can create
a RegexMatchSet that contains a RegexMatchTuple that looks for any requests
with User-Agent headers that match a RegexPatternSet with pattern B[a@]dB[o0]t.
You can then configure AWS WAF to reject those requests.

To create and configure a RegexMatchSet, perform the following steps:

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateRegexMatchSet request.

Submit a CreateRegexMatchSet request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateRegexMatchSet request.

Submit an UpdateRegexMatchSet request to specify the part of the request
that you want AWS WAF to inspect (for example, the header or the URI) and
the value, using a RegexPatternSet, that you want AWS WAF to watch for.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateRegexMatchSetRequest generates a "aws/request.Request" representing the
client's request for the CreateRegexMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateRegexMatchSet for more information on using the CreateRegexMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateRegexMatchSetWithContext is the same as CreateRegexMatchSet with the addition of
the ability to pass a context and additional request options.

See CreateRegexMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates a RegexPatternSet. You then use UpdateRegexPatternSet to specify
the regular expression (regex) pattern that you want AWS WAF to search for,
such as B[a@]dB[o0]t. You can then configure AWS WAF to reject those requests.

To create and configure a RegexPatternSet, perform the following steps:

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateRegexPatternSet request.

Submit a CreateRegexPatternSet request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateRegexPatternSet request.

Submit an UpdateRegexPatternSet request to specify the string that you want
AWS WAF to watch for.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateRegexPatternSetRequest generates a "aws/request.Request" representing the
client's request for the CreateRegexPatternSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateRegexPatternSet for more information on using the CreateRegexPatternSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateRegexPatternSetWithContext is the same as CreateRegexPatternSet with the addition of
the ability to pass a context and additional request options.

See CreateRegexPatternSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates a Rule, which contains the IPSet objects, ByteMatchSet objects, and
other predicates that identify the requests that you want to block. If you
add more than one predicate to a Rule, a request must match all of the specifications
to be allowed or blocked. For example, suppose you add the following to a
Rule:

* An IPSet that matches the IP address 192.0.2.44/32
* A ByteMatchSet that matches BadBot in the User-Agent header

You then add the Rule to a WebACL and specify that you want to blocks requests
that satisfy the Rule. For a request to be blocked, it must come from the
IP address 192.0.2.44 and the User-Agent header in the request must contain
the value BadBot.

To create and configure a Rule, perform the following steps:

Create and update the predicates that you want to include in the Rule. For
more information, see CreateByteMatchSet, CreateIPSet, and CreateSqlInjectionMatchSet.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateRule request.

Submit a CreateRule request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateRule request.

Submit an UpdateRule request to specify the predicates that you want to include
in the Rule.

Create and update a WebACL that contains the Rule. For more information,
see CreateWebACL.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateRuleGroupRequest generates a "aws/request.Request" representing the
client's request for the CreateRuleGroup operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateRuleGroup for more information on using the CreateRuleGroup
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateRuleGroupWithContext is the same as CreateRuleGroup with the addition of
the ability to pass a context and additional request options.

See CreateRuleGroup for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

CreateRuleRequest generates a "aws/request.Request" representing the
client's request for the CreateRule operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateRule for more information on using the CreateRule
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateRuleWithContext is the same as CreateRule with the addition of
the ability to pass a context and additional request options.

See CreateRule for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates a SizeConstraintSet. You then use UpdateSizeConstraintSet to identify
the part of a web request that you want AWS WAF to check for length, such
as the length of the User-Agent header or the length of the query string.
For example, you can create a SizeConstraintSet that matches any requests
that have a query string that is longer than 100 bytes. You can then configure
AWS WAF to reject those requests.

To create and configure a SizeConstraintSet, perform the following steps:

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateSizeConstraintSet request.

Submit a CreateSizeConstraintSet request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateSizeConstraintSet request.

Submit an UpdateSizeConstraintSet request to specify the part of the request
that you want AWS WAF to inspect (for example, the header or the URI) and
the value that you want AWS WAF to watch for.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateSizeConstraintSetRequest generates a "aws/request.Request" representing the
client's request for the CreateSizeConstraintSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateSizeConstraintSet for more information on using the CreateSizeConstraintSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateSizeConstraintSetWithContext is the same as CreateSizeConstraintSet with the addition of
the ability to pass a context and additional request options.

See CreateSizeConstraintSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates a SqlInjectionMatchSet, which you use to allow, block, or count requests
that contain snippets of SQL code in a specified part of web requests. AWS
WAF searches for character sequences that are likely to be malicious strings.

To create and configure a SqlInjectionMatchSet, perform the following steps:

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateSqlInjectionMatchSet request.

Submit a CreateSqlInjectionMatchSet request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateSqlInjectionMatchSet request.

Submit an UpdateSqlInjectionMatchSet request to specify the parts of web
requests in which you want to allow, block, or count malicious SQL code.

* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
client's request for the CreateSqlInjectionMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateSqlInjectionMatchSet for more information on using the CreateSqlInjectionMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateSqlInjectionMatchSetWithContext is the same as CreateSqlInjectionMatchSet with the addition of
the ability to pass a context and additional request options.

See CreateSqlInjectionMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates a WebACL, which contains the Rules that identify the CloudFront web
requests that you want to allow, block, or count. AWS WAF evaluates Rules
in order based on the value of Priority for each Rule.

You also specify a default action, either ALLOW or BLOCK. If a web request
doesn't match any of the Rules in a WebACL, AWS WAF responds to the request
with the default action.

To create and configure a WebACL, perform the following steps:

Create and update the ByteMatchSet objects and other predicates that you
want to include in Rules. For more information, see CreateByteMatchSet, UpdateByteMatchSet,
CreateIPSet, UpdateIPSet, CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.

Create and update the Rules that you want to include in the WebACL. For more
information, see CreateRule and UpdateRule.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateWebACL request.

Submit a CreateWebACL request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateWebACL request.

Submit an UpdateWebACL request to specify the Rules that you want to include
in the WebACL, to specify the default action, and to associate the WebACL
with a CloudFront distribution.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateWebACLRequest generates a "aws/request.Request" representing the
client's request for the CreateWebACL operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateWebACL for more information on using the CreateWebACL
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateWebACLWithContext is the same as CreateWebACL with the addition of
the ability to pass a context and additional request options.

See CreateWebACL for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Creates an XssMatchSet, which you use to allow, block, or count requests
that contain cross-site scripting attacks in the specified part of web requests.
AWS WAF searches for character sequences that are likely to be malicious
strings.

To create and configure an XssMatchSet, perform the following steps:

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of a CreateXssMatchSet request.

Submit a CreateXssMatchSet request.

Use GetChangeToken to get the change token that you provide in the ChangeToken
parameter of an UpdateXssMatchSet request.

Submit an UpdateXssMatchSet request to specify the parts of web requests
in which you want to allow, block, or count cross-site scripting attacks.

* ErrCodeDisallowedNameException "DisallowedNameException"
The name specified is invalid.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeLimitsExceededException "LimitsExceededException"
The operation exceeds a resource limit, for example, the maximum number of
WebACL objects that you can create for an AWS account. For more information,
see Limits (http://docs.aws.amazon.com/waf/latest/developerguide/limits.html)
in the AWS WAF Developer Guide.

CreateXssMatchSetRequest generates a "aws/request.Request" representing the
client's request for the CreateXssMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See CreateXssMatchSet for more information on using the CreateXssMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

CreateXssMatchSetWithContext is the same as CreateXssMatchSet with the addition of
the ability to pass a context and additional request options.

See CreateXssMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteByteMatchSetRequest generates a "aws/request.Request" representing the
client's request for the DeleteByteMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteByteMatchSet for more information on using the DeleteByteMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteByteMatchSetWithContext is the same as DeleteByteMatchSet with the addition of
the ability to pass a context and additional request options.

See DeleteByteMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteGeoMatchSetRequest generates a "aws/request.Request" representing the
client's request for the DeleteGeoMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteGeoMatchSet for more information on using the DeleteGeoMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteGeoMatchSetWithContext is the same as DeleteGeoMatchSet with the addition of
the ability to pass a context and additional request options.

See DeleteGeoMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteIPSetRequest generates a "aws/request.Request" representing the
client's request for the DeleteIPSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteIPSet for more information on using the DeleteIPSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteIPSetWithContext is the same as DeleteIPSet with the addition of
the ability to pass a context and additional request options.

See DeleteIPSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

DeletePermissionPolicyRequest generates a "aws/request.Request" representing the
client's request for the DeletePermissionPolicy operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeletePermissionPolicy for more information on using the DeletePermissionPolicy
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeletePermissionPolicyWithContext is the same as DeletePermissionPolicy with the addition of
the ability to pass a context and additional request options.

See DeletePermissionPolicy for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteRateBasedRuleRequest generates a "aws/request.Request" representing the
client's request for the DeleteRateBasedRule operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteRateBasedRule for more information on using the DeleteRateBasedRule
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteRateBasedRuleWithContext is the same as DeleteRateBasedRule with the addition of
the ability to pass a context and additional request options.

See DeleteRateBasedRule for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteRegexMatchSetRequest generates a "aws/request.Request" representing the
client's request for the DeleteRegexMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteRegexMatchSet for more information on using the DeleteRegexMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteRegexMatchSetWithContext is the same as DeleteRegexMatchSet with the addition of
the ability to pass a context and additional request options.

See DeleteRegexMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteRegexPatternSetRequest generates a "aws/request.Request" representing the
client's request for the DeleteRegexPatternSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteRegexPatternSet for more information on using the DeleteRegexPatternSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteRegexPatternSetWithContext is the same as DeleteRegexPatternSet with the addition of
the ability to pass a context and additional request options.

See DeleteRegexPatternSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteRuleGroupRequest generates a "aws/request.Request" representing the
client's request for the DeleteRuleGroup operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteRuleGroup for more information on using the DeleteRuleGroup
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteRuleGroupWithContext is the same as DeleteRuleGroup with the addition of
the ability to pass a context and additional request options.

See DeleteRuleGroup for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

DeleteRuleRequest generates a "aws/request.Request" representing the
client's request for the DeleteRule operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteRule for more information on using the DeleteRule
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteRuleWithContext is the same as DeleteRule with the addition of
the ability to pass a context and additional request options.

See DeleteRule for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteSizeConstraintSetRequest generates a "aws/request.Request" representing the
client's request for the DeleteSizeConstraintSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteSizeConstraintSet for more information on using the DeleteSizeConstraintSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteSizeConstraintSetWithContext is the same as DeleteSizeConstraintSet with the addition of
the ability to pass a context and additional request options.

See DeleteSizeConstraintSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteSqlInjectionMatchSetRequest generates a "aws/request.Request" representing the
client's request for the DeleteSqlInjectionMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteSqlInjectionMatchSet for more information on using the DeleteSqlInjectionMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteSqlInjectionMatchSetWithContext is the same as DeleteSqlInjectionMatchSet with the addition of
the ability to pass a context and additional request options.

See DeleteSqlInjectionMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteWebACLRequest generates a "aws/request.Request" representing the
client's request for the DeleteWebACL operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteWebACL for more information on using the DeleteWebACL
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteWebACLWithContext is the same as DeleteWebACL with the addition of
the ability to pass a context and additional request options.

See DeleteWebACL for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeReferencedItemException "ReferencedItemException"
The operation failed because you tried to delete an object that is still
in use. For example:
* You tried to delete a ByteMatchSet that is still referenced by a Rule.
* You tried to delete a Rule that is still referenced by a WebACL.
* ErrCodeStaleDataException "StaleDataException"
The operation failed because you tried to create, update, or delete an object
by using a change token that has already been used.
* ErrCodeNonEmptyEntityException "NonEmptyEntityException"
The operation failed because you tried to delete an object that isn't empty.
For example:
* You tried to delete a WebACL that still contains one or more Rule objects.
* You tried to delete a Rule that still contains one or more ByteMatchSet
objects or other predicates.
* You tried to delete a ByteMatchSet that contains one or more ByteMatchTuple
objects.
* You tried to delete an IPSet that references one or more IP addresses.

DeleteXssMatchSetRequest generates a "aws/request.Request" representing the
client's request for the DeleteXssMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See DeleteXssMatchSet for more information on using the DeleteXssMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

DeleteXssMatchSetWithContext is the same as DeleteXssMatchSet with the addition of
the ability to pass a context and additional request options.

See DeleteXssMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

GetByteMatchSetRequest generates a "aws/request.Request" representing the
client's request for the GetByteMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetByteMatchSet for more information on using the GetByteMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetByteMatchSetWithContext is the same as GetByteMatchSet with the addition of
the ability to pass a context and additional request options.

See GetByteMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

When you want to create, update, or delete AWS WAF objects, get a change
token and include the change token in the create, update, or delete request.
Change tokens ensure that your application doesn't submit conflicting requests
to AWS WAF.

Each create, update, or delete request must use a unique change token. If
your application submits a GetChangeToken request and then submits a second
GetChangeToken request before submitting a create, update, or delete request,
the second GetChangeToken request returns the same value as the first GetChangeToken
request.

When you use a change token in a create, update, or delete request, the status
of the change token changes to PENDING, which indicates that AWS WAF is propagating
the change to all AWS WAF servers. Use GetChangeTokenStatus to determine
the status of your change token.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions
with awserr.Error's Code and Message methods to get detailed information about
the error.

GetChangeTokenRequest generates a "aws/request.Request" representing the
client's request for the GetChangeToken operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetChangeToken for more information on using the GetChangeToken
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

Returns the status of a ChangeToken that you got by calling GetChangeToken.
ChangeTokenStatus is one of the following values:

* PROVISIONED: You requested the change token by calling GetChangeToken,
but you haven't used it yet in a call to create, update, or delete an
AWS WAF object.
* PENDING: AWS WAF is propagating the create, update, or delete request
to all AWS WAF servers.
* IN_SYNC: Propagation is complete.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions
with awserr.Error's Code and Message methods to get detailed information about
the error.

* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.

GetChangeTokenStatusRequest generates a "aws/request.Request" representing the
client's request for the GetChangeTokenStatus operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetChangeTokenStatus for more information on using the GetChangeTokenStatus
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetChangeTokenStatusWithContext is the same as GetChangeTokenStatus with the addition of
the ability to pass a context and additional request options.

See GetChangeTokenStatus for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

GetChangeTokenWithContext is the same as GetChangeToken with the addition of
the ability to pass a context and additional request options.

See GetChangeToken for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

GetGeoMatchSetRequest generates a "aws/request.Request" representing the
client's request for the GetGeoMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetGeoMatchSet for more information on using the GetGeoMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetGeoMatchSetWithContext is the same as GetGeoMatchSet with the addition of
the ability to pass a context and additional request options.

See GetGeoMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

GetIPSetRequest generates a "aws/request.Request" representing the
client's request for the GetIPSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetIPSet for more information on using the GetIPSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetIPSetWithContext is the same as GetIPSet with the addition of
the ability to pass a context and additional request options.

See GetIPSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

GetPermissionPolicyRequest generates a "aws/request.Request" representing the
client's request for the GetPermissionPolicy operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetPermissionPolicy for more information on using the GetPermissionPolicy
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetPermissionPolicyWithContext is the same as GetPermissionPolicy with the addition of
the ability to pass a context and additional request options.

See GetPermissionPolicy for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

Returns an array of IP addresses currently being blocked by the RateBasedRule
that is specified by the RuleId. The maximum number of managed keys that
will be blocked is 10,000. If more than 10,000 addresses exceed the rate
limit, the 10,000 addresses with the highest rates will be blocked.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions
with awserr.Error's Code and Message methods to get detailed information about
the error.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeInvalidParameterException "InvalidParameterException"
The operation failed because AWS WAF didn't recognize a parameter in the
request. For example:
* You specified an invalid parameter name.
* You specified an invalid value.
* You tried to update an object (ByteMatchSet, IPSet, Rule, or WebACL)
using an action other than INSERT or DELETE.
* You tried to create a WebACL with a DefaultActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to create a RateBasedRule with a RateKey value other than
IP.
* You tried to update a WebACL with a WafActionType other than ALLOW,
BLOCK, or COUNT.
* You tried to update a ByteMatchSet with a FieldToMatchType other than
HEADER, METHOD, QUERY_STRING, URI, or BODY.
* You tried to update a ByteMatchSet with a Field of HEADER but no value
for Data.
* Your request references an ARN that is malformed, or corresponds to
a resource with which a web ACL cannot be associated.

GetRateBasedRuleManagedKeysRequest generates a "aws/request.Request" representing the
client's request for the GetRateBasedRuleManagedKeys operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetRateBasedRuleManagedKeys for more information on using the GetRateBasedRuleManagedKeys
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetRateBasedRuleManagedKeysWithContext is the same as GetRateBasedRuleManagedKeys with the addition of
the ability to pass a context and additional request options.

See GetRateBasedRuleManagedKeys for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

GetRateBasedRuleRequest generates a "aws/request.Request" representing the
client's request for the GetRateBasedRule operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetRateBasedRule for more information on using the GetRateBasedRule
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetRateBasedRuleWithContext is the same as GetRateBasedRule with the addition of
the ability to pass a context and additional request options.

See GetRateBasedRule for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

GetRegexMatchSetRequest generates a "aws/request.Request" representing the
client's request for the GetRegexMatchSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetRegexMatchSet for more information on using the GetRegexMatchSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetRegexMatchSetWithContext is the same as GetRegexMatchSet with the addition of
the ability to pass a context and additional request options.

See GetRegexMatchSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

GetRegexPatternSetRequest generates a "aws/request.Request" representing the
client's request for the GetRegexPatternSet operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetRegexPatternSet for more information on using the GetRegexPatternSet
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetRegexPatternSetWithContext is the same as GetRegexPatternSet with the addition of
the ability to pass a context and additional request options.

See GetRegexPatternSet for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeInvalidAccountException "InvalidAccountException"
The operation failed because you tried to create, update, or delete an object
by using an invalid account identifier.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.
* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.

GetRuleGroupRequest generates a "aws/request.Request" representing the
client's request for the GetRuleGroup operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetRuleGroup for more information on using the GetRuleGroup
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetRuleGroupWithContext is the same as GetRuleGroup with the addition of
the ability to pass a context and additional request options.

See GetRuleGroup for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

GetRuleRequest generates a "aws/request.Request" representing the
client's request for the GetRule operation. The "output" return
value will be populated with the request's response once the request complets
successfuly.

Use "Send" method on the returned Request to send the API call to the service.
the "output" return value is not valid until after Send returns without error.

See GetRule for more information on using the GetRule
API call, and error handling.

This method is useful when you want to inject custom logic or configuration
into the SDK's request lifecycle. Such as custom headers, or retry logic.

GetRuleWithContext is the same as GetRule with the addition of
the ability to pass a context and additional request options.

See GetRule for details on how to use this API operation.

The context must be non-nil and will be used for request cancellation. If
the context is nil a panic will occur. In the future the SDK may create
sub-contexts for http.Requests. See https://golang.org/pkg/context/
for more information on using Contexts.

Gets detailed information about a specified number of requests--a sample--that
AWS WAF randomly selects from among the first 5,000 requests that your AWS
resource received during a time range that you choose. You can specify a
sample size of up to 500 requests, and you can specify any time range in
the previous three hours.

GetSampledRequests returns a time range, which is usually the time range
that you specified. However, if your resource (such as a CloudFront distribution)
received 5,000 requests before the specified time range elapsed, GetSampledRequests
returns an updated time range. This new time range indicates the actual period
during which AWS WAF selected the requests in the sample.

Returns awserr.Error for service API and SDK errors. Use runtime type assertions
with awserr.Error's Code and Message methods to get detailed information about
the error.

* ErrCodeNonexistentItemException "NonexistentItemException"
The operation failed because the referenced object doesn't exist.
* ErrCodeInternalErrorException "InternalErrorException"
The operation failed because of a system problem, even though the request
was valid. Retry your request.

To get a sampled requests
The following example returns detailed information about 100 requests --a sample--
that AWS WAF randomly selects from among the first 5,000 requests that your AWS resource
received between the time period 2016-09-27T15:50Z to 2016-09-27T15:50Z.