/
api_op_GetSampledRequests.go
175 lines (158 loc) · 6.28 KB
/
api_op_GetSampledRequests.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
// Code generated by smithy-go-codegen DO NOT EDIT.
package waf
import (
"context"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/aws/signer/v4"
"github.com/aws/aws-sdk-go-v2/service/waf/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// This is AWS WAF Classic documentation. For more information, see AWS WAF Classic
// (https://docs.aws.amazon.com/waf/latest/developerguide/classic-waf-chapter.html)
// in the developer guide. For the latest version of AWS WAF, use the AWS WAFV2 API
// and see the AWS WAF Developer Guide
// (https://docs.aws.amazon.com/waf/latest/developerguide/waf-chapter.html). With
// the latest version, AWS WAF has a single set of endpoints for regional and
// global use. 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.
func (c *Client) GetSampledRequests(ctx context.Context, params *GetSampledRequestsInput, optFns ...func(*Options)) (*GetSampledRequestsOutput, error) {
if params == nil {
params = &GetSampledRequestsInput{}
}
result, metadata, err := c.invokeOperation(ctx, "GetSampledRequests", params, optFns, addOperationGetSampledRequestsMiddlewares)
if err != nil {
return nil, err
}
out := result.(*GetSampledRequestsOutput)
out.ResultMetadata = metadata
return out, nil
}
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.
//
// This member is required.
MaxItems int64
// 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.
//
// This member is required.
RuleId *string
// 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. You must specify the
// times in Coordinated Universal Time (UTC) format. UTC format includes the
// special designator, Z. For example, "2016-09-27T14:50Z". You can specify any
// time range in the previous three hours.
//
// This member is required.
TimeWindow *types.TimeWindow
// The WebACLId of the WebACL for which you want GetSampledRequests to return a
// sample of requests.
//
// This member is required.
WebAclId *string
}
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
// A complex type that contains detailed information about each of the requests in
// the sample.
SampledRequests []types.SampledHTTPRequest
// 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. Times
// are in Coordinated Universal Time (UTC) format.
TimeWindow *types.TimeWindow
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
}
func addOperationGetSampledRequestsMiddlewares(stack *middleware.Stack, options Options) (err error) {
err = stack.Serialize.Add(&awsAwsjson11_serializeOpGetSampledRequests{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpGetSampledRequests{}, middleware.After)
if err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddClientRequestIDMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddComputeContentLengthMiddleware(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = v4.AddComputePayloadSHA256Middleware(stack); err != nil {
return err
}
if err = addRetryMiddlewares(stack, options); err != nil {
return err
}
if err = addHTTPSignerV4Middleware(stack, options); err != nil {
return err
}
if err = awsmiddleware.AddRawResponseToMetadata(stack); err != nil {
return err
}
if err = awsmiddleware.AddRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addOpGetSampledRequestsValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opGetSampledRequests(options.Region), middleware.Before); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opGetSampledRequests(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
SigningName: "waf",
OperationName: "GetSampledRequests",
}
}