aws-sdk-waf 1.0.0.rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/lib/aws-sdk-waf.rb +47 -0
- data/lib/aws-sdk-waf/client.rb +2168 -0
- data/lib/aws-sdk-waf/client_api.rb +1190 -0
- data/lib/aws-sdk-waf/customizations.rb +0 -0
- data/lib/aws-sdk-waf/errors.rb +23 -0
- data/lib/aws-sdk-waf/resource.rb +25 -0
- data/lib/aws-sdk-waf/types.rb +3189 -0
- metadata +80 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 076cc5edce8a83211ff83fd7f51134fee59095e7
|
4
|
+
data.tar.gz: 8920c018fd2074393f5cda683868b20035d39729
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 47c8054e08d5a065eacac2eba211b261533e7fbbe278d7a688a23f6caeb3b9f0ed4d901956ff011a17561221713c47506a4973f45dc9ef84efab35450457aaf9
|
7
|
+
data.tar.gz: 15bf14a790ffe0589fcf0019545418e678981dd9879e7062e94c74bbfd18614f75889715130063f95b06f6b8dc56236a6e1c28545f5cbd810370abeaf2b2fef7
|
data/lib/aws-sdk-waf.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# WARNING ABOUT GENERATED CODE
|
2
|
+
#
|
3
|
+
# This file is generated. See the contributing for info on making contributions:
|
4
|
+
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
|
5
|
+
#
|
6
|
+
# WARNING ABOUT GENERATED CODE
|
7
|
+
|
8
|
+
require 'aws-sdk-core'
|
9
|
+
require 'aws-sigv4'
|
10
|
+
|
11
|
+
require_relative 'aws-sdk-waf/types'
|
12
|
+
require_relative 'aws-sdk-waf/client_api'
|
13
|
+
require_relative 'aws-sdk-waf/client'
|
14
|
+
require_relative 'aws-sdk-waf/errors'
|
15
|
+
require_relative 'aws-sdk-waf/resource'
|
16
|
+
require_relative 'aws-sdk-waf/customizations'
|
17
|
+
|
18
|
+
# This module provides support for AWS WAF. This module is available in the
|
19
|
+
# `aws-sdk-waf` gem.
|
20
|
+
#
|
21
|
+
# # Client
|
22
|
+
#
|
23
|
+
# The {Client} class provides one method for each API operation. Operation
|
24
|
+
# methods each accept a hash of request parameters and return a response
|
25
|
+
# structure.
|
26
|
+
#
|
27
|
+
# See {Client} for more information.
|
28
|
+
#
|
29
|
+
# # Errors
|
30
|
+
#
|
31
|
+
# Errors returned from AWS WAF all
|
32
|
+
# extend {Errors::ServiceError}.
|
33
|
+
#
|
34
|
+
# begin
|
35
|
+
# # do stuff
|
36
|
+
# rescue Aws::WAF::Errors::ServiceError
|
37
|
+
# # rescues all service API errors
|
38
|
+
# end
|
39
|
+
#
|
40
|
+
# See {Errors} for more information.
|
41
|
+
#
|
42
|
+
# @service
|
43
|
+
module Aws::WAF
|
44
|
+
|
45
|
+
GEM_VERSION = '1.0.0.rc1'
|
46
|
+
|
47
|
+
end
|
@@ -0,0 +1,2168 @@
|
|
1
|
+
# WARNING ABOUT GENERATED CODE
|
2
|
+
#
|
3
|
+
# This file is generated. See the contributing for info on making contributions:
|
4
|
+
# https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
|
5
|
+
#
|
6
|
+
# WARNING ABOUT GENERATED CODE
|
7
|
+
|
8
|
+
require 'seahorse/client/plugins/content_length.rb'
|
9
|
+
require 'aws-sdk-core/plugins/credentials_configuration.rb'
|
10
|
+
require 'aws-sdk-core/plugins/logging.rb'
|
11
|
+
require 'aws-sdk-core/plugins/param_converter.rb'
|
12
|
+
require 'aws-sdk-core/plugins/param_validator.rb'
|
13
|
+
require 'aws-sdk-core/plugins/user_agent.rb'
|
14
|
+
require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
|
15
|
+
require 'aws-sdk-core/plugins/retry_errors.rb'
|
16
|
+
require 'aws-sdk-core/plugins/global_configuration.rb'
|
17
|
+
require 'aws-sdk-core/plugins/regional_endpoint.rb'
|
18
|
+
require 'aws-sdk-core/plugins/response_paging.rb'
|
19
|
+
require 'aws-sdk-core/plugins/stub_responses.rb'
|
20
|
+
require 'aws-sdk-core/plugins/idempotency_token.rb'
|
21
|
+
require 'aws-sdk-core/plugins/signature_v4.rb'
|
22
|
+
require 'aws-sdk-core/plugins/protocols/json_rpc.rb'
|
23
|
+
|
24
|
+
Aws::Plugins::GlobalConfiguration.add_identifier(:waf)
|
25
|
+
|
26
|
+
module Aws
|
27
|
+
module WAF
|
28
|
+
class Client < Seahorse::Client::Base
|
29
|
+
|
30
|
+
include Aws::ClientStubs
|
31
|
+
|
32
|
+
@identifier = :waf
|
33
|
+
|
34
|
+
set_api(ClientApi::API)
|
35
|
+
|
36
|
+
add_plugin(Seahorse::Client::Plugins::ContentLength)
|
37
|
+
add_plugin(Aws::Plugins::CredentialsConfiguration)
|
38
|
+
add_plugin(Aws::Plugins::Logging)
|
39
|
+
add_plugin(Aws::Plugins::ParamConverter)
|
40
|
+
add_plugin(Aws::Plugins::ParamValidator)
|
41
|
+
add_plugin(Aws::Plugins::UserAgent)
|
42
|
+
add_plugin(Aws::Plugins::HelpfulSocketErrors)
|
43
|
+
add_plugin(Aws::Plugins::RetryErrors)
|
44
|
+
add_plugin(Aws::Plugins::GlobalConfiguration)
|
45
|
+
add_plugin(Aws::Plugins::RegionalEndpoint)
|
46
|
+
add_plugin(Aws::Plugins::ResponsePaging)
|
47
|
+
add_plugin(Aws::Plugins::StubResponses)
|
48
|
+
add_plugin(Aws::Plugins::IdempotencyToken)
|
49
|
+
add_plugin(Aws::Plugins::SignatureV4)
|
50
|
+
add_plugin(Aws::Plugins::Protocols::JsonRpc)
|
51
|
+
|
52
|
+
# @option options [required, Aws::CredentialProvider] :credentials
|
53
|
+
# Your AWS credentials. This can be an instance of any one of the
|
54
|
+
# following classes:
|
55
|
+
#
|
56
|
+
# * `Aws::Credentials` - Used for configuring static, non-refreshing
|
57
|
+
# credentials.
|
58
|
+
#
|
59
|
+
# * `Aws::InstanceProfileCredentials` - Used for loading credentials
|
60
|
+
# from an EC2 IMDS on an EC2 instance.
|
61
|
+
#
|
62
|
+
# * `Aws::SharedCredentials` - Used for loading credentials from a
|
63
|
+
# shared file, such as `~/.aws/config`.
|
64
|
+
#
|
65
|
+
# * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
|
66
|
+
#
|
67
|
+
# When `:credentials` are not configured directly, the following
|
68
|
+
# locations will be searched for credentials:
|
69
|
+
#
|
70
|
+
# * `Aws.config[:credentials]`
|
71
|
+
# * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
|
72
|
+
# * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
|
73
|
+
# * `~/.aws/credentials`
|
74
|
+
# * `~/.aws/config`
|
75
|
+
# * EC2 IMDS instance profile - When used by default, the timeouts are
|
76
|
+
# very aggressive. Construct and pass an instance of
|
77
|
+
# `Aws::InstanceProfileCredentails` to enable retries and extended
|
78
|
+
# timeouts.
|
79
|
+
# @option options [required, String] :region
|
80
|
+
# The AWS region to connect to. The configured `:region` is
|
81
|
+
# used to determine the service `:endpoint`. When not passed,
|
82
|
+
# a default `:region` is search for in the following locations:
|
83
|
+
#
|
84
|
+
# * `Aws.config[:region]`
|
85
|
+
# * `ENV['AWS_REGION']`
|
86
|
+
# * `ENV['AMAZON_REGION']`
|
87
|
+
# * `ENV['AWS_DEFAULT_REGION']`
|
88
|
+
# * `~/.aws/credentials`
|
89
|
+
# * `~/.aws/config`
|
90
|
+
# @option options [String] :access_key_id
|
91
|
+
# @option options [Boolean] :convert_params (true)
|
92
|
+
# When `true`, an attempt is made to coerce request parameters into
|
93
|
+
# the required types.
|
94
|
+
# @option options [String] :endpoint
|
95
|
+
# The client endpoint is normally constructed from the `:region`
|
96
|
+
# option. You should only configure an `:endpoint` when connecting
|
97
|
+
# to test endpoints. This should be avalid HTTP(S) URI.
|
98
|
+
# @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
|
99
|
+
# The log formatter.
|
100
|
+
# @option options [Symbol] :log_level (:info)
|
101
|
+
# The log level to send messages to the `:logger` at.
|
102
|
+
# @option options [Logger] :logger
|
103
|
+
# The Logger instance to send log messages to. If this option
|
104
|
+
# is not set, logging will be disabled.
|
105
|
+
# @option options [String] :profile ("default")
|
106
|
+
# Used when loading credentials from the shared credentials file
|
107
|
+
# at HOME/.aws/credentials. When not specified, 'default' is used.
|
108
|
+
# @option options [Integer] :retry_limit (3)
|
109
|
+
# The maximum number of times to retry failed requests. Only
|
110
|
+
# ~ 500 level server errors and certain ~ 400 level client errors
|
111
|
+
# are retried. Generally, these are throttling errors, data
|
112
|
+
# checksum errors, networking errors, timeout errors and auth
|
113
|
+
# errors from expired credentials.
|
114
|
+
# @option options [String] :secret_access_key
|
115
|
+
# @option options [String] :session_token
|
116
|
+
# @option options [Boolean] :simple_json (false)
|
117
|
+
# Disables request parameter conversion, validation, and formatting.
|
118
|
+
# Also disable response data type conversions. This option is useful
|
119
|
+
# when you want to ensure the highest level of performance by
|
120
|
+
# avoiding overhead of walking request parameters and response data
|
121
|
+
# structures.
|
122
|
+
#
|
123
|
+
# When `:simple_json` is enabled, the request parameters hash must
|
124
|
+
# be formatted exactly as the DynamoDB API expects.
|
125
|
+
# @option options [Boolean] :stub_responses (false)
|
126
|
+
# Causes the client to return stubbed responses. By default
|
127
|
+
# fake responses are generated and returned. You can specify
|
128
|
+
# the response data to return or errors to raise by calling
|
129
|
+
# {ClientStubs#stub_responses}. See {ClientStubs} for more information.
|
130
|
+
#
|
131
|
+
# ** Please note ** When response stubbing is enabled, no HTTP
|
132
|
+
# requests are made, and retries are disabled.
|
133
|
+
# @option options [Boolean] :validate_params (true)
|
134
|
+
# When `true`, request parameters are validated before
|
135
|
+
# sending the request.
|
136
|
+
def initialize(*args)
|
137
|
+
super
|
138
|
+
end
|
139
|
+
|
140
|
+
# @!group API Operations
|
141
|
+
|
142
|
+
# Creates a `ByteMatchSet`. You then use UpdateByteMatchSet to identify
|
143
|
+
# the part of a web request that you want AWS WAF to inspect, such as
|
144
|
+
# the values of the `User-Agent` header or the query string. For
|
145
|
+
# example, you can create a `ByteMatchSet` that matches any requests
|
146
|
+
# with `User-Agent` headers that contain the string `BadBot`. You can
|
147
|
+
# then configure AWS WAF to reject those requests.
|
148
|
+
#
|
149
|
+
# To create and configure a `ByteMatchSet`, perform the following steps:
|
150
|
+
#
|
151
|
+
# 1. Use GetChangeToken to get the change token that you provide in the
|
152
|
+
# `ChangeToken` parameter of a `CreateByteMatchSet` request.
|
153
|
+
#
|
154
|
+
# 2. Submit a `CreateByteMatchSet` request.
|
155
|
+
#
|
156
|
+
# 3. Use `GetChangeToken` to get the change token that you provide in
|
157
|
+
# the `ChangeToken` parameter of an `UpdateByteMatchSet` request.
|
158
|
+
#
|
159
|
+
# 4. Submit an UpdateByteMatchSet request to specify the part of the
|
160
|
+
# request that you want AWS WAF to inspect (for example, the header
|
161
|
+
# or the URI) and the value that you want AWS WAF to watch for.
|
162
|
+
#
|
163
|
+
# For more information about how to use the AWS WAF API to allow or
|
164
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
165
|
+
#
|
166
|
+
#
|
167
|
+
#
|
168
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
169
|
+
# @option params [required, String] :name
|
170
|
+
# A friendly name or description of the ByteMatchSet. You can't change
|
171
|
+
# `Name` after you create a `ByteMatchSet`.
|
172
|
+
# @option params [required, String] :change_token
|
173
|
+
# The value returned by the most recent call to GetChangeToken.
|
174
|
+
# @return [Types::CreateByteMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
175
|
+
#
|
176
|
+
# * {Types::CreateByteMatchSetResponse#byte_match_set #ByteMatchSet} => Types::ByteMatchSet
|
177
|
+
# * {Types::CreateByteMatchSetResponse#change_token #ChangeToken} => String
|
178
|
+
#
|
179
|
+
# @example Request syntax with placeholder values
|
180
|
+
# resp = client.create_byte_match_set({
|
181
|
+
# name: "ResourceName", # required
|
182
|
+
# change_token: "ChangeToken", # required
|
183
|
+
# })
|
184
|
+
#
|
185
|
+
# @example Response structure
|
186
|
+
# resp.byte_match_set.byte_match_set_id #=> String
|
187
|
+
# resp.byte_match_set.name #=> String
|
188
|
+
# resp.byte_match_set.byte_match_tuples #=> Array
|
189
|
+
# resp.byte_match_set.byte_match_tuples[0].field_to_match.type #=> String, one of "URI", "QUERY_STRING", "HEADER", "METHOD", "BODY"
|
190
|
+
# resp.byte_match_set.byte_match_tuples[0].field_to_match.data #=> String
|
191
|
+
# resp.byte_match_set.byte_match_tuples[0].target_string #=> String
|
192
|
+
# resp.byte_match_set.byte_match_tuples[0].text_transformation #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
|
193
|
+
# resp.byte_match_set.byte_match_tuples[0].positional_constraint #=> String, one of "EXACTLY", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CONTAINS_WORD"
|
194
|
+
# resp.change_token #=> String
|
195
|
+
# @overload create_byte_match_set(params = {})
|
196
|
+
# @param [Hash] params ({})
|
197
|
+
def create_byte_match_set(params = {}, options = {})
|
198
|
+
req = build_request(:create_byte_match_set, params)
|
199
|
+
req.send_request(options)
|
200
|
+
end
|
201
|
+
|
202
|
+
# Creates an IPSet, which you use to specify which web requests you want
|
203
|
+
# to allow or block based on the IP addresses that the requests
|
204
|
+
# originate from. For example, if you're receiving a lot of requests
|
205
|
+
# from one or more individual IP addresses or one or more ranges of IP
|
206
|
+
# addresses and you want to block the requests, you can create an
|
207
|
+
# `IPSet` that contains those IP addresses and then configure AWS WAF to
|
208
|
+
# block the requests.
|
209
|
+
#
|
210
|
+
# To create and configure an `IPSet`, perform the following steps:
|
211
|
+
#
|
212
|
+
# 1. Use GetChangeToken to get the change token that you provide in the
|
213
|
+
# `ChangeToken` parameter of a `CreateIPSet` request.
|
214
|
+
#
|
215
|
+
# 2. Submit a `CreateIPSet` request.
|
216
|
+
#
|
217
|
+
# 3. Use `GetChangeToken` to get the change token that you provide in
|
218
|
+
# the `ChangeToken` parameter of an UpdateIPSet request.
|
219
|
+
#
|
220
|
+
# 4. Submit an `UpdateIPSet` request to specify the IP addresses that
|
221
|
+
# you want AWS WAF to watch for.
|
222
|
+
#
|
223
|
+
# For more information about how to use the AWS WAF API to allow or
|
224
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
225
|
+
#
|
226
|
+
#
|
227
|
+
#
|
228
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
229
|
+
# @option params [required, String] :name
|
230
|
+
# A friendly name or description of the IPSet. You can't change `Name`
|
231
|
+
# after you create the `IPSet`.
|
232
|
+
# @option params [required, String] :change_token
|
233
|
+
# The value returned by the most recent call to GetChangeToken.
|
234
|
+
# @return [Types::CreateIPSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
235
|
+
#
|
236
|
+
# * {Types::CreateIPSetResponse#ip_set #IPSet} => Types::IPSet
|
237
|
+
# * {Types::CreateIPSetResponse#change_token #ChangeToken} => String
|
238
|
+
#
|
239
|
+
# @example Request syntax with placeholder values
|
240
|
+
# resp = client.create_ip_set({
|
241
|
+
# name: "ResourceName", # required
|
242
|
+
# change_token: "ChangeToken", # required
|
243
|
+
# })
|
244
|
+
#
|
245
|
+
# @example Response structure
|
246
|
+
# resp.ip_set.ip_set_id #=> String
|
247
|
+
# resp.ip_set.name #=> String
|
248
|
+
# resp.ip_set.ip_set_descriptors #=> Array
|
249
|
+
# resp.ip_set.ip_set_descriptors[0].type #=> String, one of "IPV4", "IPV6"
|
250
|
+
# resp.ip_set.ip_set_descriptors[0].value #=> String
|
251
|
+
# resp.change_token #=> String
|
252
|
+
# @overload create_ip_set(params = {})
|
253
|
+
# @param [Hash] params ({})
|
254
|
+
def create_ip_set(params = {}, options = {})
|
255
|
+
req = build_request(:create_ip_set, params)
|
256
|
+
req.send_request(options)
|
257
|
+
end
|
258
|
+
|
259
|
+
# Creates a `Rule`, which contains the `IPSet` objects, `ByteMatchSet`
|
260
|
+
# objects, and other predicates that identify the requests that you want
|
261
|
+
# to block. If you add more than one predicate to a `Rule`, a request
|
262
|
+
# must match all of the specifications to be allowed or blocked. For
|
263
|
+
# example, suppose you add the following to a `Rule`\:
|
264
|
+
#
|
265
|
+
# * An `IPSet` that matches the IP address `192.0.2.44/32`
|
266
|
+
#
|
267
|
+
# * A `ByteMatchSet` that matches `BadBot` in the `User-Agent` header
|
268
|
+
#
|
269
|
+
# You then add the `Rule` to a `WebACL` and specify that you want to
|
270
|
+
# blocks requests that satisfy the `Rule`. For a request to be blocked,
|
271
|
+
# it must come from the IP address 192.0.2.44 *and* the `User-Agent`
|
272
|
+
# header in the request must contain the value `BadBot`.
|
273
|
+
#
|
274
|
+
# To create and configure a `Rule`, perform the following steps:
|
275
|
+
#
|
276
|
+
# 1. Create and update the predicates that you want to include in the
|
277
|
+
# `Rule`. For more information, see CreateByteMatchSet, CreateIPSet,
|
278
|
+
# and CreateSqlInjectionMatchSet.
|
279
|
+
#
|
280
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
281
|
+
# `ChangeToken` parameter of a `CreateRule` request.
|
282
|
+
#
|
283
|
+
# 3. Submit a `CreateRule` request.
|
284
|
+
#
|
285
|
+
# 4. Use `GetChangeToken` to get the change token that you provide in
|
286
|
+
# the `ChangeToken` parameter of an UpdateRule request.
|
287
|
+
#
|
288
|
+
# 5. Submit an `UpdateRule` request to specify the predicates that you
|
289
|
+
# want to include in the `Rule`.
|
290
|
+
#
|
291
|
+
# 6. Create and update a `WebACL` that contains the `Rule`. For more
|
292
|
+
# information, see CreateWebACL.
|
293
|
+
#
|
294
|
+
# For more information about how to use the AWS WAF API to allow or
|
295
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
296
|
+
#
|
297
|
+
#
|
298
|
+
#
|
299
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
300
|
+
# @option params [required, String] :name
|
301
|
+
# A friendly name or description of the Rule. You can't change the name
|
302
|
+
# of a `Rule` after you create it.
|
303
|
+
# @option params [required, String] :metric_name
|
304
|
+
# A friendly name or description for the metrics for this `Rule`. The
|
305
|
+
# name can contain only alphanumeric characters (A-Z, a-z, 0-9); the
|
306
|
+
# name can't contain whitespace. You can't change the name of the
|
307
|
+
# metric after you create the `Rule`.
|
308
|
+
# @option params [required, String] :change_token
|
309
|
+
# The value returned by the most recent call to GetChangeToken.
|
310
|
+
# @return [Types::CreateRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
311
|
+
#
|
312
|
+
# * {Types::CreateRuleResponse#rule #Rule} => Types::Rule
|
313
|
+
# * {Types::CreateRuleResponse#change_token #ChangeToken} => String
|
314
|
+
#
|
315
|
+
# @example Request syntax with placeholder values
|
316
|
+
# resp = client.create_rule({
|
317
|
+
# name: "ResourceName", # required
|
318
|
+
# metric_name: "MetricName", # required
|
319
|
+
# change_token: "ChangeToken", # required
|
320
|
+
# })
|
321
|
+
#
|
322
|
+
# @example Response structure
|
323
|
+
# resp.rule.rule_id #=> String
|
324
|
+
# resp.rule.name #=> String
|
325
|
+
# resp.rule.metric_name #=> String
|
326
|
+
# resp.rule.predicates #=> Array
|
327
|
+
# resp.rule.predicates[0].negated #=> Boolean
|
328
|
+
# resp.rule.predicates[0].type #=> String, one of "IPMatch", "ByteMatch", "SqlInjectionMatch", "SizeConstraint", "XssMatch"
|
329
|
+
# resp.rule.predicates[0].data_id #=> String
|
330
|
+
# resp.change_token #=> String
|
331
|
+
# @overload create_rule(params = {})
|
332
|
+
# @param [Hash] params ({})
|
333
|
+
def create_rule(params = {}, options = {})
|
334
|
+
req = build_request(:create_rule, params)
|
335
|
+
req.send_request(options)
|
336
|
+
end
|
337
|
+
|
338
|
+
# Creates a `SizeConstraintSet`. You then use UpdateSizeConstraintSet to
|
339
|
+
# identify the part of a web request that you want AWS WAF to check for
|
340
|
+
# length, such as the length of the `User-Agent` header or the length of
|
341
|
+
# the query string. For example, you can create a `SizeConstraintSet`
|
342
|
+
# that matches any requests that have a query string that is longer than
|
343
|
+
# 100 bytes. You can then configure AWS WAF to reject those requests.
|
344
|
+
#
|
345
|
+
# To create and configure a `SizeConstraintSet`, perform the following
|
346
|
+
# steps:
|
347
|
+
#
|
348
|
+
# 1. Use GetChangeToken to get the change token that you provide in the
|
349
|
+
# `ChangeToken` parameter of a `CreateSizeConstraintSet` request.
|
350
|
+
#
|
351
|
+
# 2. Submit a `CreateSizeConstraintSet` request.
|
352
|
+
#
|
353
|
+
# 3. Use `GetChangeToken` to get the change token that you provide in
|
354
|
+
# the `ChangeToken` parameter of an `UpdateSizeConstraintSet`
|
355
|
+
# request.
|
356
|
+
#
|
357
|
+
# 4. Submit an UpdateSizeConstraintSet request to specify the part of
|
358
|
+
# the request that you want AWS WAF to inspect (for example, the
|
359
|
+
# header or the URI) and the value that you want AWS WAF to watch
|
360
|
+
# for.
|
361
|
+
#
|
362
|
+
# For more information about how to use the AWS WAF API to allow or
|
363
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
364
|
+
#
|
365
|
+
#
|
366
|
+
#
|
367
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
368
|
+
# @option params [required, String] :name
|
369
|
+
# A friendly name or description of the SizeConstraintSet. You can't
|
370
|
+
# change `Name` after you create a `SizeConstraintSet`.
|
371
|
+
# @option params [required, String] :change_token
|
372
|
+
# The value returned by the most recent call to GetChangeToken.
|
373
|
+
# @return [Types::CreateSizeConstraintSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
374
|
+
#
|
375
|
+
# * {Types::CreateSizeConstraintSetResponse#size_constraint_set #SizeConstraintSet} => Types::SizeConstraintSet
|
376
|
+
# * {Types::CreateSizeConstraintSetResponse#change_token #ChangeToken} => String
|
377
|
+
#
|
378
|
+
# @example Request syntax with placeholder values
|
379
|
+
# resp = client.create_size_constraint_set({
|
380
|
+
# name: "ResourceName", # required
|
381
|
+
# change_token: "ChangeToken", # required
|
382
|
+
# })
|
383
|
+
#
|
384
|
+
# @example Response structure
|
385
|
+
# resp.size_constraint_set.size_constraint_set_id #=> String
|
386
|
+
# resp.size_constraint_set.name #=> String
|
387
|
+
# resp.size_constraint_set.size_constraints #=> Array
|
388
|
+
# resp.size_constraint_set.size_constraints[0].field_to_match.type #=> String, one of "URI", "QUERY_STRING", "HEADER", "METHOD", "BODY"
|
389
|
+
# resp.size_constraint_set.size_constraints[0].field_to_match.data #=> String
|
390
|
+
# resp.size_constraint_set.size_constraints[0].text_transformation #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
|
391
|
+
# resp.size_constraint_set.size_constraints[0].comparison_operator #=> String, one of "EQ", "NE", "LE", "LT", "GE", "GT"
|
392
|
+
# resp.size_constraint_set.size_constraints[0].size #=> Integer
|
393
|
+
# resp.change_token #=> String
|
394
|
+
# @overload create_size_constraint_set(params = {})
|
395
|
+
# @param [Hash] params ({})
|
396
|
+
def create_size_constraint_set(params = {}, options = {})
|
397
|
+
req = build_request(:create_size_constraint_set, params)
|
398
|
+
req.send_request(options)
|
399
|
+
end
|
400
|
+
|
401
|
+
# Creates a SqlInjectionMatchSet, which you use to allow, block, or
|
402
|
+
# count requests that contain snippets of SQL code in a specified part
|
403
|
+
# of web requests. AWS WAF searches for character sequences that are
|
404
|
+
# likely to be malicious strings.
|
405
|
+
#
|
406
|
+
# To create and configure a `SqlInjectionMatchSet`, perform the
|
407
|
+
# following steps:
|
408
|
+
#
|
409
|
+
# 1. Use GetChangeToken to get the change token that you provide in the
|
410
|
+
# `ChangeToken` parameter of a `CreateSqlInjectionMatchSet` request.
|
411
|
+
#
|
412
|
+
# 2. Submit a `CreateSqlInjectionMatchSet` request.
|
413
|
+
#
|
414
|
+
# 3. Use `GetChangeToken` to get the change token that you provide in
|
415
|
+
# the `ChangeToken` parameter of an UpdateSqlInjectionMatchSet
|
416
|
+
# request.
|
417
|
+
#
|
418
|
+
# 4. Submit an UpdateSqlInjectionMatchSet request to specify the parts
|
419
|
+
# of web requests in which you want to allow, block, or count
|
420
|
+
# malicious SQL code.
|
421
|
+
#
|
422
|
+
# For more information about how to use the AWS WAF API to allow or
|
423
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
424
|
+
#
|
425
|
+
#
|
426
|
+
#
|
427
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
428
|
+
# @option params [required, String] :name
|
429
|
+
# A friendly name or description for the SqlInjectionMatchSet that
|
430
|
+
# you're creating. You can't change `Name` after you create the
|
431
|
+
# `SqlInjectionMatchSet`.
|
432
|
+
# @option params [required, String] :change_token
|
433
|
+
# The value returned by the most recent call to GetChangeToken.
|
434
|
+
# @return [Types::CreateSqlInjectionMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
435
|
+
#
|
436
|
+
# * {Types::CreateSqlInjectionMatchSetResponse#sql_injection_match_set #SqlInjectionMatchSet} => Types::SqlInjectionMatchSet
|
437
|
+
# * {Types::CreateSqlInjectionMatchSetResponse#change_token #ChangeToken} => String
|
438
|
+
#
|
439
|
+
# @example Request syntax with placeholder values
|
440
|
+
# resp = client.create_sql_injection_match_set({
|
441
|
+
# name: "ResourceName", # required
|
442
|
+
# change_token: "ChangeToken", # required
|
443
|
+
# })
|
444
|
+
#
|
445
|
+
# @example Response structure
|
446
|
+
# resp.sql_injection_match_set.sql_injection_match_set_id #=> String
|
447
|
+
# resp.sql_injection_match_set.name #=> String
|
448
|
+
# resp.sql_injection_match_set.sql_injection_match_tuples #=> Array
|
449
|
+
# resp.sql_injection_match_set.sql_injection_match_tuples[0].field_to_match.type #=> String, one of "URI", "QUERY_STRING", "HEADER", "METHOD", "BODY"
|
450
|
+
# resp.sql_injection_match_set.sql_injection_match_tuples[0].field_to_match.data #=> String
|
451
|
+
# resp.sql_injection_match_set.sql_injection_match_tuples[0].text_transformation #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
|
452
|
+
# resp.change_token #=> String
|
453
|
+
# @overload create_sql_injection_match_set(params = {})
|
454
|
+
# @param [Hash] params ({})
|
455
|
+
def create_sql_injection_match_set(params = {}, options = {})
|
456
|
+
req = build_request(:create_sql_injection_match_set, params)
|
457
|
+
req.send_request(options)
|
458
|
+
end
|
459
|
+
|
460
|
+
# Creates a `WebACL`, which contains the `Rules` that identify the
|
461
|
+
# CloudFront web requests that you want to allow, block, or count. AWS
|
462
|
+
# WAF evaluates `Rules` in order based on the value of `Priority` for
|
463
|
+
# each `Rule`.
|
464
|
+
#
|
465
|
+
# You also specify a default action, either `ALLOW` or `BLOCK`. If a web
|
466
|
+
# request doesn't match any of the `Rules` in a `WebACL`, AWS WAF
|
467
|
+
# responds to the request with the default action.
|
468
|
+
#
|
469
|
+
# To create and configure a `WebACL`, perform the following steps:
|
470
|
+
#
|
471
|
+
# 1. Create and update the `ByteMatchSet` objects and other predicates
|
472
|
+
# that you want to include in `Rules`. For more information, see
|
473
|
+
# CreateByteMatchSet, UpdateByteMatchSet, CreateIPSet, UpdateIPSet,
|
474
|
+
# CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.
|
475
|
+
#
|
476
|
+
# 2. Create and update the `Rules` that you want to include in the
|
477
|
+
# `WebACL`. For more information, see CreateRule and UpdateRule.
|
478
|
+
#
|
479
|
+
# 3. Use GetChangeToken to get the change token that you provide in the
|
480
|
+
# `ChangeToken` parameter of a `CreateWebACL` request.
|
481
|
+
#
|
482
|
+
# 4. Submit a `CreateWebACL` request.
|
483
|
+
#
|
484
|
+
# 5. Use `GetChangeToken` to get the change token that you provide in
|
485
|
+
# the `ChangeToken` parameter of an UpdateWebACL request.
|
486
|
+
#
|
487
|
+
# 6. Submit an UpdateWebACL request to specify the `Rules` that you
|
488
|
+
# want to include in the `WebACL`, to specify the default action,
|
489
|
+
# and to associate the `WebACL` with a CloudFront distribution.
|
490
|
+
#
|
491
|
+
# For more information about how to use the AWS WAF API, see the [AWS
|
492
|
+
# WAF Developer Guide][1].
|
493
|
+
#
|
494
|
+
#
|
495
|
+
#
|
496
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
497
|
+
# @option params [required, String] :name
|
498
|
+
# A friendly name or description of the WebACL. You can't change `Name`
|
499
|
+
# after you create the `WebACL`.
|
500
|
+
# @option params [required, String] :metric_name
|
501
|
+
# A friendly name or description for the metrics for this `WebACL`. The
|
502
|
+
# name can contain only alphanumeric characters (A-Z, a-z, 0-9); the
|
503
|
+
# name can't contain whitespace. You can't change `MetricName` after
|
504
|
+
# you create the `WebACL`.
|
505
|
+
# @option params [required, Types::WafAction] :default_action
|
506
|
+
# The action that you want AWS WAF to take when a request doesn't match
|
507
|
+
# the criteria specified in any of the `Rule` objects that are
|
508
|
+
# associated with the `WebACL`.
|
509
|
+
# @option params [required, String] :change_token
|
510
|
+
# The value returned by the most recent call to GetChangeToken.
|
511
|
+
# @return [Types::CreateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
512
|
+
#
|
513
|
+
# * {Types::CreateWebACLResponse#web_acl #WebACL} => Types::WebACL
|
514
|
+
# * {Types::CreateWebACLResponse#change_token #ChangeToken} => String
|
515
|
+
#
|
516
|
+
# @example Request syntax with placeholder values
|
517
|
+
# resp = client.create_web_acl({
|
518
|
+
# name: "ResourceName", # required
|
519
|
+
# metric_name: "MetricName", # required
|
520
|
+
# default_action: { # required
|
521
|
+
# type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
|
522
|
+
# },
|
523
|
+
# change_token: "ChangeToken", # required
|
524
|
+
# })
|
525
|
+
#
|
526
|
+
# @example Response structure
|
527
|
+
# resp.web_acl.web_acl_id #=> String
|
528
|
+
# resp.web_acl.name #=> String
|
529
|
+
# resp.web_acl.metric_name #=> String
|
530
|
+
# resp.web_acl.default_action.type #=> String, one of "BLOCK", "ALLOW", "COUNT"
|
531
|
+
# resp.web_acl.rules #=> Array
|
532
|
+
# resp.web_acl.rules[0].priority #=> Integer
|
533
|
+
# resp.web_acl.rules[0].rule_id #=> String
|
534
|
+
# resp.web_acl.rules[0].action.type #=> String, one of "BLOCK", "ALLOW", "COUNT"
|
535
|
+
# resp.change_token #=> String
|
536
|
+
# @overload create_web_acl(params = {})
|
537
|
+
# @param [Hash] params ({})
|
538
|
+
def create_web_acl(params = {}, options = {})
|
539
|
+
req = build_request(:create_web_acl, params)
|
540
|
+
req.send_request(options)
|
541
|
+
end
|
542
|
+
|
543
|
+
# Creates an XssMatchSet, which you use to allow, block, or count
|
544
|
+
# requests that contain cross-site scripting attacks in the specified
|
545
|
+
# part of web requests. AWS WAF searches for character sequences that
|
546
|
+
# are likely to be malicious strings.
|
547
|
+
#
|
548
|
+
# To create and configure an `XssMatchSet`, perform the following steps:
|
549
|
+
#
|
550
|
+
# 1. Use GetChangeToken to get the change token that you provide in the
|
551
|
+
# `ChangeToken` parameter of a `CreateXssMatchSet` request.
|
552
|
+
#
|
553
|
+
# 2. Submit a `CreateXssMatchSet` request.
|
554
|
+
#
|
555
|
+
# 3. Use `GetChangeToken` to get the change token that you provide in
|
556
|
+
# the `ChangeToken` parameter of an UpdateXssMatchSet request.
|
557
|
+
#
|
558
|
+
# 4. Submit an UpdateXssMatchSet request to specify the parts of web
|
559
|
+
# requests in which you want to allow, block, or count cross-site
|
560
|
+
# scripting attacks.
|
561
|
+
#
|
562
|
+
# For more information about how to use the AWS WAF API to allow or
|
563
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
564
|
+
#
|
565
|
+
#
|
566
|
+
#
|
567
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
568
|
+
# @option params [required, String] :name
|
569
|
+
# A friendly name or description for the XssMatchSet that you're
|
570
|
+
# creating. You can't change `Name` after you create the `XssMatchSet`.
|
571
|
+
# @option params [required, String] :change_token
|
572
|
+
# The value returned by the most recent call to GetChangeToken.
|
573
|
+
# @return [Types::CreateXssMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
574
|
+
#
|
575
|
+
# * {Types::CreateXssMatchSetResponse#xss_match_set #XssMatchSet} => Types::XssMatchSet
|
576
|
+
# * {Types::CreateXssMatchSetResponse#change_token #ChangeToken} => String
|
577
|
+
#
|
578
|
+
# @example Request syntax with placeholder values
|
579
|
+
# resp = client.create_xss_match_set({
|
580
|
+
# name: "ResourceName", # required
|
581
|
+
# change_token: "ChangeToken", # required
|
582
|
+
# })
|
583
|
+
#
|
584
|
+
# @example Response structure
|
585
|
+
# resp.xss_match_set.xss_match_set_id #=> String
|
586
|
+
# resp.xss_match_set.name #=> String
|
587
|
+
# resp.xss_match_set.xss_match_tuples #=> Array
|
588
|
+
# resp.xss_match_set.xss_match_tuples[0].field_to_match.type #=> String, one of "URI", "QUERY_STRING", "HEADER", "METHOD", "BODY"
|
589
|
+
# resp.xss_match_set.xss_match_tuples[0].field_to_match.data #=> String
|
590
|
+
# resp.xss_match_set.xss_match_tuples[0].text_transformation #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
|
591
|
+
# resp.change_token #=> String
|
592
|
+
# @overload create_xss_match_set(params = {})
|
593
|
+
# @param [Hash] params ({})
|
594
|
+
def create_xss_match_set(params = {}, options = {})
|
595
|
+
req = build_request(:create_xss_match_set, params)
|
596
|
+
req.send_request(options)
|
597
|
+
end
|
598
|
+
|
599
|
+
# Permanently deletes a ByteMatchSet. You can't delete a `ByteMatchSet`
|
600
|
+
# if it's still used in any `Rules` or if it still includes any
|
601
|
+
# ByteMatchTuple objects (any filters).
|
602
|
+
#
|
603
|
+
# If you just want to remove a `ByteMatchSet` from a `Rule`, use
|
604
|
+
# UpdateRule.
|
605
|
+
#
|
606
|
+
# To permanently delete a `ByteMatchSet`, perform the following steps:
|
607
|
+
#
|
608
|
+
# 1. Update the `ByteMatchSet` to remove filters, if any. For more
|
609
|
+
# information, see UpdateByteMatchSet.
|
610
|
+
#
|
611
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
612
|
+
# `ChangeToken` parameter of a `DeleteByteMatchSet` request.
|
613
|
+
#
|
614
|
+
# 3. Submit a `DeleteByteMatchSet` request.
|
615
|
+
# @option params [required, String] :byte_match_set_id
|
616
|
+
# The `ByteMatchSetId` of the ByteMatchSet that you want to delete.
|
617
|
+
# `ByteMatchSetId` is returned by CreateByteMatchSet and by
|
618
|
+
# ListByteMatchSets.
|
619
|
+
# @option params [required, String] :change_token
|
620
|
+
# The value returned by the most recent call to GetChangeToken.
|
621
|
+
# @return [Types::DeleteByteMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
622
|
+
#
|
623
|
+
# * {Types::DeleteByteMatchSetResponse#change_token #ChangeToken} => String
|
624
|
+
#
|
625
|
+
# @example Request syntax with placeholder values
|
626
|
+
# resp = client.delete_byte_match_set({
|
627
|
+
# byte_match_set_id: "ResourceId", # required
|
628
|
+
# change_token: "ChangeToken", # required
|
629
|
+
# })
|
630
|
+
#
|
631
|
+
# @example Response structure
|
632
|
+
# resp.change_token #=> String
|
633
|
+
# @overload delete_byte_match_set(params = {})
|
634
|
+
# @param [Hash] params ({})
|
635
|
+
def delete_byte_match_set(params = {}, options = {})
|
636
|
+
req = build_request(:delete_byte_match_set, params)
|
637
|
+
req.send_request(options)
|
638
|
+
end
|
639
|
+
|
640
|
+
# Permanently deletes an IPSet. You can't delete an `IPSet` if it's
|
641
|
+
# still used in any `Rules` or if it still includes any IP addresses.
|
642
|
+
#
|
643
|
+
# If you just want to remove an `IPSet` from a `Rule`, use UpdateRule.
|
644
|
+
#
|
645
|
+
# To permanently delete an `IPSet` from AWS WAF, perform the following
|
646
|
+
# steps:
|
647
|
+
#
|
648
|
+
# 1. Update the `IPSet` to remove IP address ranges, if any. For more
|
649
|
+
# information, see UpdateIPSet.
|
650
|
+
#
|
651
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
652
|
+
# `ChangeToken` parameter of a `DeleteIPSet` request.
|
653
|
+
#
|
654
|
+
# 3. Submit a `DeleteIPSet` request.
|
655
|
+
# @option params [required, String] :ip_set_id
|
656
|
+
# The `IPSetId` of the IPSet that you want to delete. `IPSetId` is
|
657
|
+
# returned by CreateIPSet and by ListIPSets.
|
658
|
+
# @option params [required, String] :change_token
|
659
|
+
# The value returned by the most recent call to GetChangeToken.
|
660
|
+
# @return [Types::DeleteIPSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
661
|
+
#
|
662
|
+
# * {Types::DeleteIPSetResponse#change_token #ChangeToken} => String
|
663
|
+
#
|
664
|
+
# @example Request syntax with placeholder values
|
665
|
+
# resp = client.delete_ip_set({
|
666
|
+
# ip_set_id: "ResourceId", # required
|
667
|
+
# change_token: "ChangeToken", # required
|
668
|
+
# })
|
669
|
+
#
|
670
|
+
# @example Response structure
|
671
|
+
# resp.change_token #=> String
|
672
|
+
# @overload delete_ip_set(params = {})
|
673
|
+
# @param [Hash] params ({})
|
674
|
+
def delete_ip_set(params = {}, options = {})
|
675
|
+
req = build_request(:delete_ip_set, params)
|
676
|
+
req.send_request(options)
|
677
|
+
end
|
678
|
+
|
679
|
+
# Permanently deletes a Rule. You can't delete a `Rule` if it's still
|
680
|
+
# used in any `WebACL` objects or if it still includes any predicates,
|
681
|
+
# such as `ByteMatchSet` objects.
|
682
|
+
#
|
683
|
+
# If you just want to remove a `Rule` from a `WebACL`, use UpdateWebACL.
|
684
|
+
#
|
685
|
+
# To permanently delete a `Rule` from AWS WAF, perform the following
|
686
|
+
# steps:
|
687
|
+
#
|
688
|
+
# 1. Update the `Rule` to remove predicates, if any. For more
|
689
|
+
# information, see UpdateRule.
|
690
|
+
#
|
691
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
692
|
+
# `ChangeToken` parameter of a `DeleteRule` request.
|
693
|
+
#
|
694
|
+
# 3. Submit a `DeleteRule` request.
|
695
|
+
# @option params [required, String] :rule_id
|
696
|
+
# The `RuleId` of the Rule that you want to delete. `RuleId` is returned
|
697
|
+
# by CreateRule and by ListRules.
|
698
|
+
# @option params [required, String] :change_token
|
699
|
+
# The value returned by the most recent call to GetChangeToken.
|
700
|
+
# @return [Types::DeleteRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
701
|
+
#
|
702
|
+
# * {Types::DeleteRuleResponse#change_token #ChangeToken} => String
|
703
|
+
#
|
704
|
+
# @example Request syntax with placeholder values
|
705
|
+
# resp = client.delete_rule({
|
706
|
+
# rule_id: "ResourceId", # required
|
707
|
+
# change_token: "ChangeToken", # required
|
708
|
+
# })
|
709
|
+
#
|
710
|
+
# @example Response structure
|
711
|
+
# resp.change_token #=> String
|
712
|
+
# @overload delete_rule(params = {})
|
713
|
+
# @param [Hash] params ({})
|
714
|
+
def delete_rule(params = {}, options = {})
|
715
|
+
req = build_request(:delete_rule, params)
|
716
|
+
req.send_request(options)
|
717
|
+
end
|
718
|
+
|
719
|
+
# Permanently deletes a SizeConstraintSet. You can't delete a
|
720
|
+
# `SizeConstraintSet` if it's still used in any `Rules` or if it still
|
721
|
+
# includes any SizeConstraint objects (any filters).
|
722
|
+
#
|
723
|
+
# If you just want to remove a `SizeConstraintSet` from a `Rule`, use
|
724
|
+
# UpdateRule.
|
725
|
+
#
|
726
|
+
# To permanently delete a `SizeConstraintSet`, perform the following
|
727
|
+
# steps:
|
728
|
+
#
|
729
|
+
# 1. Update the `SizeConstraintSet` to remove filters, if any. For more
|
730
|
+
# information, see UpdateSizeConstraintSet.
|
731
|
+
#
|
732
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
733
|
+
# `ChangeToken` parameter of a `DeleteSizeConstraintSet` request.
|
734
|
+
#
|
735
|
+
# 3. Submit a `DeleteSizeConstraintSet` request.
|
736
|
+
# @option params [required, String] :size_constraint_set_id
|
737
|
+
# The `SizeConstraintSetId` of the SizeConstraintSet that you want to
|
738
|
+
# delete. `SizeConstraintSetId` is returned by CreateSizeConstraintSet
|
739
|
+
# and by ListSizeConstraintSets.
|
740
|
+
# @option params [required, String] :change_token
|
741
|
+
# The value returned by the most recent call to GetChangeToken.
|
742
|
+
# @return [Types::DeleteSizeConstraintSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
743
|
+
#
|
744
|
+
# * {Types::DeleteSizeConstraintSetResponse#change_token #ChangeToken} => String
|
745
|
+
#
|
746
|
+
# @example Request syntax with placeholder values
|
747
|
+
# resp = client.delete_size_constraint_set({
|
748
|
+
# size_constraint_set_id: "ResourceId", # required
|
749
|
+
# change_token: "ChangeToken", # required
|
750
|
+
# })
|
751
|
+
#
|
752
|
+
# @example Response structure
|
753
|
+
# resp.change_token #=> String
|
754
|
+
# @overload delete_size_constraint_set(params = {})
|
755
|
+
# @param [Hash] params ({})
|
756
|
+
def delete_size_constraint_set(params = {}, options = {})
|
757
|
+
req = build_request(:delete_size_constraint_set, params)
|
758
|
+
req.send_request(options)
|
759
|
+
end
|
760
|
+
|
761
|
+
# Permanently deletes a SqlInjectionMatchSet. You can't delete a
|
762
|
+
# `SqlInjectionMatchSet` if it's still used in any `Rules` or if it
|
763
|
+
# still contains any SqlInjectionMatchTuple objects.
|
764
|
+
#
|
765
|
+
# If you just want to remove a `SqlInjectionMatchSet` from a `Rule`, use
|
766
|
+
# UpdateRule.
|
767
|
+
#
|
768
|
+
# To permanently delete a `SqlInjectionMatchSet` from AWS WAF, perform
|
769
|
+
# the following steps:
|
770
|
+
#
|
771
|
+
# 1. Update the `SqlInjectionMatchSet` to remove filters, if any. For
|
772
|
+
# more information, see UpdateSqlInjectionMatchSet.
|
773
|
+
#
|
774
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
775
|
+
# `ChangeToken` parameter of a `DeleteSqlInjectionMatchSet` request.
|
776
|
+
#
|
777
|
+
# 3. Submit a `DeleteSqlInjectionMatchSet` request.
|
778
|
+
# @option params [required, String] :sql_injection_match_set_id
|
779
|
+
# The `SqlInjectionMatchSetId` of the SqlInjectionMatchSet that you want
|
780
|
+
# to delete. `SqlInjectionMatchSetId` is returned by
|
781
|
+
# CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.
|
782
|
+
# @option params [required, String] :change_token
|
783
|
+
# The value returned by the most recent call to GetChangeToken.
|
784
|
+
# @return [Types::DeleteSqlInjectionMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
785
|
+
#
|
786
|
+
# * {Types::DeleteSqlInjectionMatchSetResponse#change_token #ChangeToken} => String
|
787
|
+
#
|
788
|
+
# @example Request syntax with placeholder values
|
789
|
+
# resp = client.delete_sql_injection_match_set({
|
790
|
+
# sql_injection_match_set_id: "ResourceId", # required
|
791
|
+
# change_token: "ChangeToken", # required
|
792
|
+
# })
|
793
|
+
#
|
794
|
+
# @example Response structure
|
795
|
+
# resp.change_token #=> String
|
796
|
+
# @overload delete_sql_injection_match_set(params = {})
|
797
|
+
# @param [Hash] params ({})
|
798
|
+
def delete_sql_injection_match_set(params = {}, options = {})
|
799
|
+
req = build_request(:delete_sql_injection_match_set, params)
|
800
|
+
req.send_request(options)
|
801
|
+
end
|
802
|
+
|
803
|
+
# Permanently deletes a WebACL. You can't delete a `WebACL` if it still
|
804
|
+
# contains any `Rules`.
|
805
|
+
#
|
806
|
+
# To delete a `WebACL`, perform the following steps:
|
807
|
+
#
|
808
|
+
# 1. Update the `WebACL` to remove `Rules`, if any. For more
|
809
|
+
# information, see UpdateWebACL.
|
810
|
+
#
|
811
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
812
|
+
# `ChangeToken` parameter of a `DeleteWebACL` request.
|
813
|
+
#
|
814
|
+
# 3. Submit a `DeleteWebACL` request.
|
815
|
+
# @option params [required, String] :web_acl_id
|
816
|
+
# The `WebACLId` of the WebACL that you want to delete. `WebACLId` is
|
817
|
+
# returned by CreateWebACL and by ListWebACLs.
|
818
|
+
# @option params [required, String] :change_token
|
819
|
+
# The value returned by the most recent call to GetChangeToken.
|
820
|
+
# @return [Types::DeleteWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
821
|
+
#
|
822
|
+
# * {Types::DeleteWebACLResponse#change_token #ChangeToken} => String
|
823
|
+
#
|
824
|
+
# @example Request syntax with placeholder values
|
825
|
+
# resp = client.delete_web_acl({
|
826
|
+
# web_acl_id: "ResourceId", # required
|
827
|
+
# change_token: "ChangeToken", # required
|
828
|
+
# })
|
829
|
+
#
|
830
|
+
# @example Response structure
|
831
|
+
# resp.change_token #=> String
|
832
|
+
# @overload delete_web_acl(params = {})
|
833
|
+
# @param [Hash] params ({})
|
834
|
+
def delete_web_acl(params = {}, options = {})
|
835
|
+
req = build_request(:delete_web_acl, params)
|
836
|
+
req.send_request(options)
|
837
|
+
end
|
838
|
+
|
839
|
+
# Permanently deletes an XssMatchSet. You can't delete an `XssMatchSet`
|
840
|
+
# if it's still used in any `Rules` or if it still contains any
|
841
|
+
# XssMatchTuple objects.
|
842
|
+
#
|
843
|
+
# If you just want to remove an `XssMatchSet` from a `Rule`, use
|
844
|
+
# UpdateRule.
|
845
|
+
#
|
846
|
+
# To permanently delete an `XssMatchSet` from AWS WAF, perform the
|
847
|
+
# following steps:
|
848
|
+
#
|
849
|
+
# 1. Update the `XssMatchSet` to remove filters, if any. For more
|
850
|
+
# information, see UpdateXssMatchSet.
|
851
|
+
#
|
852
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
853
|
+
# `ChangeToken` parameter of a `DeleteXssMatchSet` request.
|
854
|
+
#
|
855
|
+
# 3. Submit a `DeleteXssMatchSet` request.
|
856
|
+
# @option params [required, String] :xss_match_set_id
|
857
|
+
# The `XssMatchSetId` of the XssMatchSet that you want to delete.
|
858
|
+
# `XssMatchSetId` is returned by CreateXssMatchSet and by
|
859
|
+
# ListXssMatchSets.
|
860
|
+
# @option params [required, String] :change_token
|
861
|
+
# The value returned by the most recent call to GetChangeToken.
|
862
|
+
# @return [Types::DeleteXssMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
863
|
+
#
|
864
|
+
# * {Types::DeleteXssMatchSetResponse#change_token #ChangeToken} => String
|
865
|
+
#
|
866
|
+
# @example Request syntax with placeholder values
|
867
|
+
# resp = client.delete_xss_match_set({
|
868
|
+
# xss_match_set_id: "ResourceId", # required
|
869
|
+
# change_token: "ChangeToken", # required
|
870
|
+
# })
|
871
|
+
#
|
872
|
+
# @example Response structure
|
873
|
+
# resp.change_token #=> String
|
874
|
+
# @overload delete_xss_match_set(params = {})
|
875
|
+
# @param [Hash] params ({})
|
876
|
+
def delete_xss_match_set(params = {}, options = {})
|
877
|
+
req = build_request(:delete_xss_match_set, params)
|
878
|
+
req.send_request(options)
|
879
|
+
end
|
880
|
+
|
881
|
+
# Returns the ByteMatchSet specified by `ByteMatchSetId`.
|
882
|
+
# @option params [required, String] :byte_match_set_id
|
883
|
+
# The `ByteMatchSetId` of the ByteMatchSet that you want to get.
|
884
|
+
# `ByteMatchSetId` is returned by CreateByteMatchSet and by
|
885
|
+
# ListByteMatchSets.
|
886
|
+
# @return [Types::GetByteMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
887
|
+
#
|
888
|
+
# * {Types::GetByteMatchSetResponse#byte_match_set #ByteMatchSet} => Types::ByteMatchSet
|
889
|
+
#
|
890
|
+
# @example Request syntax with placeholder values
|
891
|
+
# resp = client.get_byte_match_set({
|
892
|
+
# byte_match_set_id: "ResourceId", # required
|
893
|
+
# })
|
894
|
+
#
|
895
|
+
# @example Response structure
|
896
|
+
# resp.byte_match_set.byte_match_set_id #=> String
|
897
|
+
# resp.byte_match_set.name #=> String
|
898
|
+
# resp.byte_match_set.byte_match_tuples #=> Array
|
899
|
+
# resp.byte_match_set.byte_match_tuples[0].field_to_match.type #=> String, one of "URI", "QUERY_STRING", "HEADER", "METHOD", "BODY"
|
900
|
+
# resp.byte_match_set.byte_match_tuples[0].field_to_match.data #=> String
|
901
|
+
# resp.byte_match_set.byte_match_tuples[0].target_string #=> String
|
902
|
+
# resp.byte_match_set.byte_match_tuples[0].text_transformation #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
|
903
|
+
# resp.byte_match_set.byte_match_tuples[0].positional_constraint #=> String, one of "EXACTLY", "STARTS_WITH", "ENDS_WITH", "CONTAINS", "CONTAINS_WORD"
|
904
|
+
# @overload get_byte_match_set(params = {})
|
905
|
+
# @param [Hash] params ({})
|
906
|
+
def get_byte_match_set(params = {}, options = {})
|
907
|
+
req = build_request(:get_byte_match_set, params)
|
908
|
+
req.send_request(options)
|
909
|
+
end
|
910
|
+
|
911
|
+
# When you want to create, update, or delete AWS WAF objects, get a
|
912
|
+
# change token and include the change token in the create, update, or
|
913
|
+
# delete request. Change tokens ensure that your application doesn't
|
914
|
+
# submit conflicting requests to AWS WAF.
|
915
|
+
#
|
916
|
+
# Each create, update, or delete request must use a unique change token.
|
917
|
+
# If your application submits a `GetChangeToken` request and then
|
918
|
+
# submits a second `GetChangeToken` request before submitting a create,
|
919
|
+
# update, or delete request, the second `GetChangeToken` request returns
|
920
|
+
# the same value as the first `GetChangeToken` request.
|
921
|
+
#
|
922
|
+
# When you use a change token in a create, update, or delete request,
|
923
|
+
# the status of the change token changes to `PENDING`, which indicates
|
924
|
+
# that AWS WAF is propagating the change to all AWS WAF servers. Use
|
925
|
+
# `GetChangeTokenStatus` to determine the status of your change token.
|
926
|
+
# @return [Types::GetChangeTokenResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
927
|
+
#
|
928
|
+
# * {Types::GetChangeTokenResponse#change_token #ChangeToken} => String
|
929
|
+
#
|
930
|
+
# @example Request syntax with placeholder values
|
931
|
+
# resp = client.get_change_token()
|
932
|
+
#
|
933
|
+
# @example Response structure
|
934
|
+
# resp.change_token #=> String
|
935
|
+
# @overload get_change_token(params = {})
|
936
|
+
# @param [Hash] params ({})
|
937
|
+
def get_change_token(params = {}, options = {})
|
938
|
+
req = build_request(:get_change_token, params)
|
939
|
+
req.send_request(options)
|
940
|
+
end
|
941
|
+
|
942
|
+
# Returns the status of a `ChangeToken` that you got by calling
|
943
|
+
# GetChangeToken. `ChangeTokenStatus` is one of the following values:
|
944
|
+
#
|
945
|
+
# * `PROVISIONED`\: You requested the change token by calling
|
946
|
+
# `GetChangeToken`, but you haven't used it yet in a call to create,
|
947
|
+
# update, or delete an AWS WAF object.
|
948
|
+
#
|
949
|
+
# * `PENDING`\: AWS WAF is propagating the create, update, or delete
|
950
|
+
# request to all AWS WAF servers.
|
951
|
+
#
|
952
|
+
# * `IN_SYNC`\: Propagation is complete.
|
953
|
+
# @option params [required, String] :change_token
|
954
|
+
# The change token for which you want to get the status. This change
|
955
|
+
# token was previously returned in the `GetChangeToken` response.
|
956
|
+
# @return [Types::GetChangeTokenStatusResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
957
|
+
#
|
958
|
+
# * {Types::GetChangeTokenStatusResponse#change_token_status #ChangeTokenStatus} => String
|
959
|
+
#
|
960
|
+
# @example Request syntax with placeholder values
|
961
|
+
# resp = client.get_change_token_status({
|
962
|
+
# change_token: "ChangeToken", # required
|
963
|
+
# })
|
964
|
+
#
|
965
|
+
# @example Response structure
|
966
|
+
# resp.change_token_status #=> String, one of "PROVISIONED", "PENDING", "INSYNC"
|
967
|
+
# @overload get_change_token_status(params = {})
|
968
|
+
# @param [Hash] params ({})
|
969
|
+
def get_change_token_status(params = {}, options = {})
|
970
|
+
req = build_request(:get_change_token_status, params)
|
971
|
+
req.send_request(options)
|
972
|
+
end
|
973
|
+
|
974
|
+
# Returns the IPSet that is specified by `IPSetId`.
|
975
|
+
# @option params [required, String] :ip_set_id
|
976
|
+
# The `IPSetId` of the IPSet that you want to get. `IPSetId` is returned
|
977
|
+
# by CreateIPSet and by ListIPSets.
|
978
|
+
# @return [Types::GetIPSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
979
|
+
#
|
980
|
+
# * {Types::GetIPSetResponse#ip_set #IPSet} => Types::IPSet
|
981
|
+
#
|
982
|
+
# @example Request syntax with placeholder values
|
983
|
+
# resp = client.get_ip_set({
|
984
|
+
# ip_set_id: "ResourceId", # required
|
985
|
+
# })
|
986
|
+
#
|
987
|
+
# @example Response structure
|
988
|
+
# resp.ip_set.ip_set_id #=> String
|
989
|
+
# resp.ip_set.name #=> String
|
990
|
+
# resp.ip_set.ip_set_descriptors #=> Array
|
991
|
+
# resp.ip_set.ip_set_descriptors[0].type #=> String, one of "IPV4", "IPV6"
|
992
|
+
# resp.ip_set.ip_set_descriptors[0].value #=> String
|
993
|
+
# @overload get_ip_set(params = {})
|
994
|
+
# @param [Hash] params ({})
|
995
|
+
def get_ip_set(params = {}, options = {})
|
996
|
+
req = build_request(:get_ip_set, params)
|
997
|
+
req.send_request(options)
|
998
|
+
end
|
999
|
+
|
1000
|
+
# Returns the Rule that is specified by the `RuleId` that you included
|
1001
|
+
# in the `GetRule` request.
|
1002
|
+
# @option params [required, String] :rule_id
|
1003
|
+
# The `RuleId` of the Rule that you want to get. `RuleId` is returned by
|
1004
|
+
# CreateRule and by ListRules.
|
1005
|
+
# @return [Types::GetRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1006
|
+
#
|
1007
|
+
# * {Types::GetRuleResponse#rule #Rule} => Types::Rule
|
1008
|
+
#
|
1009
|
+
# @example Request syntax with placeholder values
|
1010
|
+
# resp = client.get_rule({
|
1011
|
+
# rule_id: "ResourceId", # required
|
1012
|
+
# })
|
1013
|
+
#
|
1014
|
+
# @example Response structure
|
1015
|
+
# resp.rule.rule_id #=> String
|
1016
|
+
# resp.rule.name #=> String
|
1017
|
+
# resp.rule.metric_name #=> String
|
1018
|
+
# resp.rule.predicates #=> Array
|
1019
|
+
# resp.rule.predicates[0].negated #=> Boolean
|
1020
|
+
# resp.rule.predicates[0].type #=> String, one of "IPMatch", "ByteMatch", "SqlInjectionMatch", "SizeConstraint", "XssMatch"
|
1021
|
+
# resp.rule.predicates[0].data_id #=> String
|
1022
|
+
# @overload get_rule(params = {})
|
1023
|
+
# @param [Hash] params ({})
|
1024
|
+
def get_rule(params = {}, options = {})
|
1025
|
+
req = build_request(:get_rule, params)
|
1026
|
+
req.send_request(options)
|
1027
|
+
end
|
1028
|
+
|
1029
|
+
# Gets detailed information about a specified number of requests--a
|
1030
|
+
# sample--that AWS WAF randomly selects from among the first 5,000
|
1031
|
+
# requests that your AWS resource received during a time range that you
|
1032
|
+
# choose. You can specify a sample size of up to 100 requests, and you
|
1033
|
+
# can specify any time range in the previous three hours.
|
1034
|
+
#
|
1035
|
+
# `GetSampledRequests` returns a time range, which is usually the time
|
1036
|
+
# range that you specified. However, if your resource (such as a
|
1037
|
+
# CloudFront distribution) received 5,000 requests before the specified
|
1038
|
+
# time range elapsed, `GetSampledRequests` returns an updated time
|
1039
|
+
# range. This new time range indicates the actual period during which
|
1040
|
+
# AWS WAF selected the requests in the sample.
|
1041
|
+
# @option params [required, String] :web_acl_id
|
1042
|
+
# The `WebACLId` of the `WebACL` for which you want `GetSampledRequests`
|
1043
|
+
# to return a sample of requests.
|
1044
|
+
# @option params [required, String] :rule_id
|
1045
|
+
# `RuleId` is one of two values:
|
1046
|
+
#
|
1047
|
+
# * The `RuleId` of the `Rule` for which you want `GetSampledRequests`
|
1048
|
+
# to return a sample of requests.
|
1049
|
+
#
|
1050
|
+
# * `Default_Action`, which causes `GetSampledRequests` to return a
|
1051
|
+
# sample of the requests that didn't match any of the rules in the
|
1052
|
+
# specified `WebACL`.
|
1053
|
+
# @option params [required, Types::TimeWindow] :time_window
|
1054
|
+
# The start date and time and the end date and time of the range for
|
1055
|
+
# which you want `GetSampledRequests` to return a sample of requests.
|
1056
|
+
# Specify the date and time in Unix time format (in seconds). You can
|
1057
|
+
# specify any time range in the previous three hours.
|
1058
|
+
# @option params [required, Integer] :max_items
|
1059
|
+
# The number of requests that you want AWS WAF to return from among the
|
1060
|
+
# first 5,000 requests that your AWS resource received during the time
|
1061
|
+
# range. If your resource received fewer requests than the value of
|
1062
|
+
# `MaxItems`, `GetSampledRequests` returns information about all of
|
1063
|
+
# them.
|
1064
|
+
# @return [Types::GetSampledRequestsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1065
|
+
#
|
1066
|
+
# * {Types::GetSampledRequestsResponse#sampled_requests #SampledRequests} => Array<Types::SampledHTTPRequest>
|
1067
|
+
# * {Types::GetSampledRequestsResponse#population_size #PopulationSize} => Integer
|
1068
|
+
# * {Types::GetSampledRequestsResponse#time_window #TimeWindow} => Types::TimeWindow
|
1069
|
+
#
|
1070
|
+
# @example Request syntax with placeholder values
|
1071
|
+
# resp = client.get_sampled_requests({
|
1072
|
+
# web_acl_id: "ResourceId", # required
|
1073
|
+
# rule_id: "ResourceId", # required
|
1074
|
+
# time_window: { # required
|
1075
|
+
# start_time: Time.now, # required
|
1076
|
+
# end_time: Time.now, # required
|
1077
|
+
# },
|
1078
|
+
# max_items: 1, # required
|
1079
|
+
# })
|
1080
|
+
#
|
1081
|
+
# @example Response structure
|
1082
|
+
# resp.sampled_requests #=> Array
|
1083
|
+
# resp.sampled_requests[0].request.client_ip #=> String
|
1084
|
+
# resp.sampled_requests[0].request.country #=> String
|
1085
|
+
# resp.sampled_requests[0].request.uri #=> String
|
1086
|
+
# resp.sampled_requests[0].request.method #=> String
|
1087
|
+
# resp.sampled_requests[0].request.http_version #=> String
|
1088
|
+
# resp.sampled_requests[0].request.headers #=> Array
|
1089
|
+
# resp.sampled_requests[0].request.headers[0].name #=> String
|
1090
|
+
# resp.sampled_requests[0].request.headers[0].value #=> String
|
1091
|
+
# resp.sampled_requests[0].weight #=> Integer
|
1092
|
+
# resp.sampled_requests[0].timestamp #=> Time
|
1093
|
+
# resp.sampled_requests[0].action #=> String
|
1094
|
+
# resp.population_size #=> Integer
|
1095
|
+
# resp.time_window.start_time #=> Time
|
1096
|
+
# resp.time_window.end_time #=> Time
|
1097
|
+
# @overload get_sampled_requests(params = {})
|
1098
|
+
# @param [Hash] params ({})
|
1099
|
+
def get_sampled_requests(params = {}, options = {})
|
1100
|
+
req = build_request(:get_sampled_requests, params)
|
1101
|
+
req.send_request(options)
|
1102
|
+
end
|
1103
|
+
|
1104
|
+
# Returns the SizeConstraintSet specified by `SizeConstraintSetId`.
|
1105
|
+
# @option params [required, String] :size_constraint_set_id
|
1106
|
+
# The `SizeConstraintSetId` of the SizeConstraintSet that you want to
|
1107
|
+
# get. `SizeConstraintSetId` is returned by CreateSizeConstraintSet and
|
1108
|
+
# by ListSizeConstraintSets.
|
1109
|
+
# @return [Types::GetSizeConstraintSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1110
|
+
#
|
1111
|
+
# * {Types::GetSizeConstraintSetResponse#size_constraint_set #SizeConstraintSet} => Types::SizeConstraintSet
|
1112
|
+
#
|
1113
|
+
# @example Request syntax with placeholder values
|
1114
|
+
# resp = client.get_size_constraint_set({
|
1115
|
+
# size_constraint_set_id: "ResourceId", # required
|
1116
|
+
# })
|
1117
|
+
#
|
1118
|
+
# @example Response structure
|
1119
|
+
# resp.size_constraint_set.size_constraint_set_id #=> String
|
1120
|
+
# resp.size_constraint_set.name #=> String
|
1121
|
+
# resp.size_constraint_set.size_constraints #=> Array
|
1122
|
+
# resp.size_constraint_set.size_constraints[0].field_to_match.type #=> String, one of "URI", "QUERY_STRING", "HEADER", "METHOD", "BODY"
|
1123
|
+
# resp.size_constraint_set.size_constraints[0].field_to_match.data #=> String
|
1124
|
+
# resp.size_constraint_set.size_constraints[0].text_transformation #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
|
1125
|
+
# resp.size_constraint_set.size_constraints[0].comparison_operator #=> String, one of "EQ", "NE", "LE", "LT", "GE", "GT"
|
1126
|
+
# resp.size_constraint_set.size_constraints[0].size #=> Integer
|
1127
|
+
# @overload get_size_constraint_set(params = {})
|
1128
|
+
# @param [Hash] params ({})
|
1129
|
+
def get_size_constraint_set(params = {}, options = {})
|
1130
|
+
req = build_request(:get_size_constraint_set, params)
|
1131
|
+
req.send_request(options)
|
1132
|
+
end
|
1133
|
+
|
1134
|
+
# Returns the SqlInjectionMatchSet that is specified by
|
1135
|
+
# `SqlInjectionMatchSetId`.
|
1136
|
+
# @option params [required, String] :sql_injection_match_set_id
|
1137
|
+
# The `SqlInjectionMatchSetId` of the SqlInjectionMatchSet that you want
|
1138
|
+
# to get. `SqlInjectionMatchSetId` is returned by
|
1139
|
+
# CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.
|
1140
|
+
# @return [Types::GetSqlInjectionMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1141
|
+
#
|
1142
|
+
# * {Types::GetSqlInjectionMatchSetResponse#sql_injection_match_set #SqlInjectionMatchSet} => Types::SqlInjectionMatchSet
|
1143
|
+
#
|
1144
|
+
# @example Request syntax with placeholder values
|
1145
|
+
# resp = client.get_sql_injection_match_set({
|
1146
|
+
# sql_injection_match_set_id: "ResourceId", # required
|
1147
|
+
# })
|
1148
|
+
#
|
1149
|
+
# @example Response structure
|
1150
|
+
# resp.sql_injection_match_set.sql_injection_match_set_id #=> String
|
1151
|
+
# resp.sql_injection_match_set.name #=> String
|
1152
|
+
# resp.sql_injection_match_set.sql_injection_match_tuples #=> Array
|
1153
|
+
# resp.sql_injection_match_set.sql_injection_match_tuples[0].field_to_match.type #=> String, one of "URI", "QUERY_STRING", "HEADER", "METHOD", "BODY"
|
1154
|
+
# resp.sql_injection_match_set.sql_injection_match_tuples[0].field_to_match.data #=> String
|
1155
|
+
# resp.sql_injection_match_set.sql_injection_match_tuples[0].text_transformation #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
|
1156
|
+
# @overload get_sql_injection_match_set(params = {})
|
1157
|
+
# @param [Hash] params ({})
|
1158
|
+
def get_sql_injection_match_set(params = {}, options = {})
|
1159
|
+
req = build_request(:get_sql_injection_match_set, params)
|
1160
|
+
req.send_request(options)
|
1161
|
+
end
|
1162
|
+
|
1163
|
+
# Returns the WebACL that is specified by `WebACLId`.
|
1164
|
+
# @option params [required, String] :web_acl_id
|
1165
|
+
# The `WebACLId` of the WebACL that you want to get. `WebACLId` is
|
1166
|
+
# returned by CreateWebACL and by ListWebACLs.
|
1167
|
+
# @return [Types::GetWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1168
|
+
#
|
1169
|
+
# * {Types::GetWebACLResponse#web_acl #WebACL} => Types::WebACL
|
1170
|
+
#
|
1171
|
+
# @example Request syntax with placeholder values
|
1172
|
+
# resp = client.get_web_acl({
|
1173
|
+
# web_acl_id: "ResourceId", # required
|
1174
|
+
# })
|
1175
|
+
#
|
1176
|
+
# @example Response structure
|
1177
|
+
# resp.web_acl.web_acl_id #=> String
|
1178
|
+
# resp.web_acl.name #=> String
|
1179
|
+
# resp.web_acl.metric_name #=> String
|
1180
|
+
# resp.web_acl.default_action.type #=> String, one of "BLOCK", "ALLOW", "COUNT"
|
1181
|
+
# resp.web_acl.rules #=> Array
|
1182
|
+
# resp.web_acl.rules[0].priority #=> Integer
|
1183
|
+
# resp.web_acl.rules[0].rule_id #=> String
|
1184
|
+
# resp.web_acl.rules[0].action.type #=> String, one of "BLOCK", "ALLOW", "COUNT"
|
1185
|
+
# @overload get_web_acl(params = {})
|
1186
|
+
# @param [Hash] params ({})
|
1187
|
+
def get_web_acl(params = {}, options = {})
|
1188
|
+
req = build_request(:get_web_acl, params)
|
1189
|
+
req.send_request(options)
|
1190
|
+
end
|
1191
|
+
|
1192
|
+
# Returns the XssMatchSet that is specified by `XssMatchSetId`.
|
1193
|
+
# @option params [required, String] :xss_match_set_id
|
1194
|
+
# The `XssMatchSetId` of the XssMatchSet that you want to get.
|
1195
|
+
# `XssMatchSetId` is returned by CreateXssMatchSet and by
|
1196
|
+
# ListXssMatchSets.
|
1197
|
+
# @return [Types::GetXssMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1198
|
+
#
|
1199
|
+
# * {Types::GetXssMatchSetResponse#xss_match_set #XssMatchSet} => Types::XssMatchSet
|
1200
|
+
#
|
1201
|
+
# @example Request syntax with placeholder values
|
1202
|
+
# resp = client.get_xss_match_set({
|
1203
|
+
# xss_match_set_id: "ResourceId", # required
|
1204
|
+
# })
|
1205
|
+
#
|
1206
|
+
# @example Response structure
|
1207
|
+
# resp.xss_match_set.xss_match_set_id #=> String
|
1208
|
+
# resp.xss_match_set.name #=> String
|
1209
|
+
# resp.xss_match_set.xss_match_tuples #=> Array
|
1210
|
+
# resp.xss_match_set.xss_match_tuples[0].field_to_match.type #=> String, one of "URI", "QUERY_STRING", "HEADER", "METHOD", "BODY"
|
1211
|
+
# resp.xss_match_set.xss_match_tuples[0].field_to_match.data #=> String
|
1212
|
+
# resp.xss_match_set.xss_match_tuples[0].text_transformation #=> String, one of "NONE", "COMPRESS_WHITE_SPACE", "HTML_ENTITY_DECODE", "LOWERCASE", "CMD_LINE", "URL_DECODE"
|
1213
|
+
# @overload get_xss_match_set(params = {})
|
1214
|
+
# @param [Hash] params ({})
|
1215
|
+
def get_xss_match_set(params = {}, options = {})
|
1216
|
+
req = build_request(:get_xss_match_set, params)
|
1217
|
+
req.send_request(options)
|
1218
|
+
end
|
1219
|
+
|
1220
|
+
# Returns an array of ByteMatchSetSummary objects.
|
1221
|
+
# @option params [String] :next_marker
|
1222
|
+
# If you specify a value for `Limit` and you have more `ByteMatchSets`
|
1223
|
+
# than the value of `Limit`, AWS WAF returns a `NextMarker` value in the
|
1224
|
+
# response that allows you to list another group of `ByteMatchSets`. For
|
1225
|
+
# the second and subsequent `ListByteMatchSets` requests, specify the
|
1226
|
+
# value of `NextMarker` from the previous response to get information
|
1227
|
+
# about another batch of `ByteMatchSets`.
|
1228
|
+
# @option params [Integer] :limit
|
1229
|
+
# Specifies the number of `ByteMatchSet` objects that you want AWS WAF
|
1230
|
+
# to return for this request. If you have more `ByteMatchSets` objects
|
1231
|
+
# than the number you specify for `Limit`, the response includes a
|
1232
|
+
# `NextMarker` value that you can use to get another batch of
|
1233
|
+
# `ByteMatchSet` objects.
|
1234
|
+
# @return [Types::ListByteMatchSetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1235
|
+
#
|
1236
|
+
# * {Types::ListByteMatchSetsResponse#next_marker #NextMarker} => String
|
1237
|
+
# * {Types::ListByteMatchSetsResponse#byte_match_sets #ByteMatchSets} => Array<Types::ByteMatchSetSummary>
|
1238
|
+
#
|
1239
|
+
# @example Request syntax with placeholder values
|
1240
|
+
# resp = client.list_byte_match_sets({
|
1241
|
+
# next_marker: "NextMarker",
|
1242
|
+
# limit: 1,
|
1243
|
+
# })
|
1244
|
+
#
|
1245
|
+
# @example Response structure
|
1246
|
+
# resp.next_marker #=> String
|
1247
|
+
# resp.byte_match_sets #=> Array
|
1248
|
+
# resp.byte_match_sets[0].byte_match_set_id #=> String
|
1249
|
+
# resp.byte_match_sets[0].name #=> String
|
1250
|
+
# @overload list_byte_match_sets(params = {})
|
1251
|
+
# @param [Hash] params ({})
|
1252
|
+
def list_byte_match_sets(params = {}, options = {})
|
1253
|
+
req = build_request(:list_byte_match_sets, params)
|
1254
|
+
req.send_request(options)
|
1255
|
+
end
|
1256
|
+
|
1257
|
+
# Returns an array of IPSetSummary objects in the response.
|
1258
|
+
# @option params [String] :next_marker
|
1259
|
+
# If you specify a value for `Limit` and you have more `IPSets` than the
|
1260
|
+
# value of `Limit`, AWS WAF returns a `NextMarker` value in the response
|
1261
|
+
# that allows you to list another group of `IPSets`. For the second and
|
1262
|
+
# subsequent `ListIPSets` requests, specify the value of `NextMarker`
|
1263
|
+
# from the previous response to get information about another batch of
|
1264
|
+
# `ByteMatchSets`.
|
1265
|
+
# @option params [Integer] :limit
|
1266
|
+
# Specifies the number of `IPSet` objects that you want AWS WAF to
|
1267
|
+
# return for this request. If you have more `IPSet` objects than the
|
1268
|
+
# number you specify for `Limit`, the response includes a `NextMarker`
|
1269
|
+
# value that you can use to get another batch of `IPSet` objects.
|
1270
|
+
# @return [Types::ListIPSetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1271
|
+
#
|
1272
|
+
# * {Types::ListIPSetsResponse#next_marker #NextMarker} => String
|
1273
|
+
# * {Types::ListIPSetsResponse#ip_sets #IPSets} => Array<Types::IPSetSummary>
|
1274
|
+
#
|
1275
|
+
# @example Request syntax with placeholder values
|
1276
|
+
# resp = client.list_ip_sets({
|
1277
|
+
# next_marker: "NextMarker",
|
1278
|
+
# limit: 1,
|
1279
|
+
# })
|
1280
|
+
#
|
1281
|
+
# @example Response structure
|
1282
|
+
# resp.next_marker #=> String
|
1283
|
+
# resp.ip_sets #=> Array
|
1284
|
+
# resp.ip_sets[0].ip_set_id #=> String
|
1285
|
+
# resp.ip_sets[0].name #=> String
|
1286
|
+
# @overload list_ip_sets(params = {})
|
1287
|
+
# @param [Hash] params ({})
|
1288
|
+
def list_ip_sets(params = {}, options = {})
|
1289
|
+
req = build_request(:list_ip_sets, params)
|
1290
|
+
req.send_request(options)
|
1291
|
+
end
|
1292
|
+
|
1293
|
+
# Returns an array of RuleSummary objects.
|
1294
|
+
# @option params [String] :next_marker
|
1295
|
+
# If you specify a value for `Limit` and you have more `Rules` than the
|
1296
|
+
# value of `Limit`, AWS WAF returns a `NextMarker` value in the response
|
1297
|
+
# that allows you to list another group of `Rules`. For the second and
|
1298
|
+
# subsequent `ListRules` requests, specify the value of `NextMarker`
|
1299
|
+
# from the previous response to get information about another batch of
|
1300
|
+
# `Rules`.
|
1301
|
+
# @option params [Integer] :limit
|
1302
|
+
# Specifies the number of `Rules` that you want AWS WAF to return for
|
1303
|
+
# this request. If you have more `Rules` than the number that you
|
1304
|
+
# specify for `Limit`, the response includes a `NextMarker` value that
|
1305
|
+
# you can use to get another batch of `Rules`.
|
1306
|
+
# @return [Types::ListRulesResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1307
|
+
#
|
1308
|
+
# * {Types::ListRulesResponse#next_marker #NextMarker} => String
|
1309
|
+
# * {Types::ListRulesResponse#rules #Rules} => Array<Types::RuleSummary>
|
1310
|
+
#
|
1311
|
+
# @example Request syntax with placeholder values
|
1312
|
+
# resp = client.list_rules({
|
1313
|
+
# next_marker: "NextMarker",
|
1314
|
+
# limit: 1,
|
1315
|
+
# })
|
1316
|
+
#
|
1317
|
+
# @example Response structure
|
1318
|
+
# resp.next_marker #=> String
|
1319
|
+
# resp.rules #=> Array
|
1320
|
+
# resp.rules[0].rule_id #=> String
|
1321
|
+
# resp.rules[0].name #=> String
|
1322
|
+
# @overload list_rules(params = {})
|
1323
|
+
# @param [Hash] params ({})
|
1324
|
+
def list_rules(params = {}, options = {})
|
1325
|
+
req = build_request(:list_rules, params)
|
1326
|
+
req.send_request(options)
|
1327
|
+
end
|
1328
|
+
|
1329
|
+
# Returns an array of SizeConstraintSetSummary objects.
|
1330
|
+
# @option params [String] :next_marker
|
1331
|
+
# If you specify a value for `Limit` and you have more
|
1332
|
+
# `SizeConstraintSets` than the value of `Limit`, AWS WAF returns a
|
1333
|
+
# `NextMarker` value in the response that allows you to list another
|
1334
|
+
# group of `SizeConstraintSets`. For the second and subsequent
|
1335
|
+
# `ListSizeConstraintSets` requests, specify the value of `NextMarker`
|
1336
|
+
# from the previous response to get information about another batch of
|
1337
|
+
# `SizeConstraintSets`.
|
1338
|
+
# @option params [Integer] :limit
|
1339
|
+
# Specifies the number of `SizeConstraintSet` objects that you want AWS
|
1340
|
+
# WAF to return for this request. If you have more `SizeConstraintSets`
|
1341
|
+
# objects than the number you specify for `Limit`, the response includes
|
1342
|
+
# a `NextMarker` value that you can use to get another batch of
|
1343
|
+
# `SizeConstraintSet` objects.
|
1344
|
+
# @return [Types::ListSizeConstraintSetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1345
|
+
#
|
1346
|
+
# * {Types::ListSizeConstraintSetsResponse#next_marker #NextMarker} => String
|
1347
|
+
# * {Types::ListSizeConstraintSetsResponse#size_constraint_sets #SizeConstraintSets} => Array<Types::SizeConstraintSetSummary>
|
1348
|
+
#
|
1349
|
+
# @example Request syntax with placeholder values
|
1350
|
+
# resp = client.list_size_constraint_sets({
|
1351
|
+
# next_marker: "NextMarker",
|
1352
|
+
# limit: 1,
|
1353
|
+
# })
|
1354
|
+
#
|
1355
|
+
# @example Response structure
|
1356
|
+
# resp.next_marker #=> String
|
1357
|
+
# resp.size_constraint_sets #=> Array
|
1358
|
+
# resp.size_constraint_sets[0].size_constraint_set_id #=> String
|
1359
|
+
# resp.size_constraint_sets[0].name #=> String
|
1360
|
+
# @overload list_size_constraint_sets(params = {})
|
1361
|
+
# @param [Hash] params ({})
|
1362
|
+
def list_size_constraint_sets(params = {}, options = {})
|
1363
|
+
req = build_request(:list_size_constraint_sets, params)
|
1364
|
+
req.send_request(options)
|
1365
|
+
end
|
1366
|
+
|
1367
|
+
# Returns an array of SqlInjectionMatchSet objects.
|
1368
|
+
# @option params [String] :next_marker
|
1369
|
+
# If you specify a value for `Limit` and you have more
|
1370
|
+
# SqlInjectionMatchSet objects than the value of `Limit`, AWS WAF
|
1371
|
+
# returns a `NextMarker` value in the response that allows you to list
|
1372
|
+
# another group of `SqlInjectionMatchSets`. For the second and
|
1373
|
+
# subsequent `ListSqlInjectionMatchSets` requests, specify the value of
|
1374
|
+
# `NextMarker` from the previous response to get information about
|
1375
|
+
# another batch of `SqlInjectionMatchSets`.
|
1376
|
+
# @option params [Integer] :limit
|
1377
|
+
# Specifies the number of SqlInjectionMatchSet objects that you want AWS
|
1378
|
+
# WAF to return for this request. If you have more
|
1379
|
+
# `SqlInjectionMatchSet` objects than the number you specify for
|
1380
|
+
# `Limit`, the response includes a `NextMarker` value that you can use
|
1381
|
+
# to get another batch of `Rules`.
|
1382
|
+
# @return [Types::ListSqlInjectionMatchSetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1383
|
+
#
|
1384
|
+
# * {Types::ListSqlInjectionMatchSetsResponse#next_marker #NextMarker} => String
|
1385
|
+
# * {Types::ListSqlInjectionMatchSetsResponse#sql_injection_match_sets #SqlInjectionMatchSets} => Array<Types::SqlInjectionMatchSetSummary>
|
1386
|
+
#
|
1387
|
+
# @example Request syntax with placeholder values
|
1388
|
+
# resp = client.list_sql_injection_match_sets({
|
1389
|
+
# next_marker: "NextMarker",
|
1390
|
+
# limit: 1,
|
1391
|
+
# })
|
1392
|
+
#
|
1393
|
+
# @example Response structure
|
1394
|
+
# resp.next_marker #=> String
|
1395
|
+
# resp.sql_injection_match_sets #=> Array
|
1396
|
+
# resp.sql_injection_match_sets[0].sql_injection_match_set_id #=> String
|
1397
|
+
# resp.sql_injection_match_sets[0].name #=> String
|
1398
|
+
# @overload list_sql_injection_match_sets(params = {})
|
1399
|
+
# @param [Hash] params ({})
|
1400
|
+
def list_sql_injection_match_sets(params = {}, options = {})
|
1401
|
+
req = build_request(:list_sql_injection_match_sets, params)
|
1402
|
+
req.send_request(options)
|
1403
|
+
end
|
1404
|
+
|
1405
|
+
# Returns an array of WebACLSummary objects in the response.
|
1406
|
+
# @option params [String] :next_marker
|
1407
|
+
# If you specify a value for `Limit` and you have more `WebACL` objects
|
1408
|
+
# than the number that you specify for `Limit`, AWS WAF returns a
|
1409
|
+
# `NextMarker` value in the response that allows you to list another
|
1410
|
+
# group of `WebACL` objects. For the second and subsequent `ListWebACLs`
|
1411
|
+
# requests, specify the value of `NextMarker` from the previous response
|
1412
|
+
# to get information about another batch of `WebACL` objects.
|
1413
|
+
# @option params [Integer] :limit
|
1414
|
+
# Specifies the number of `WebACL` objects that you want AWS WAF to
|
1415
|
+
# return for this request. If you have more `WebACL` objects than the
|
1416
|
+
# number that you specify for `Limit`, the response includes a
|
1417
|
+
# `NextMarker` value that you can use to get another batch of `WebACL`
|
1418
|
+
# objects.
|
1419
|
+
# @return [Types::ListWebACLsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1420
|
+
#
|
1421
|
+
# * {Types::ListWebACLsResponse#next_marker #NextMarker} => String
|
1422
|
+
# * {Types::ListWebACLsResponse#web_acls #WebACLs} => Array<Types::WebACLSummary>
|
1423
|
+
#
|
1424
|
+
# @example Request syntax with placeholder values
|
1425
|
+
# resp = client.list_web_acls({
|
1426
|
+
# next_marker: "NextMarker",
|
1427
|
+
# limit: 1,
|
1428
|
+
# })
|
1429
|
+
#
|
1430
|
+
# @example Response structure
|
1431
|
+
# resp.next_marker #=> String
|
1432
|
+
# resp.web_acls #=> Array
|
1433
|
+
# resp.web_acls[0].web_acl_id #=> String
|
1434
|
+
# resp.web_acls[0].name #=> String
|
1435
|
+
# @overload list_web_acls(params = {})
|
1436
|
+
# @param [Hash] params ({})
|
1437
|
+
def list_web_acls(params = {}, options = {})
|
1438
|
+
req = build_request(:list_web_acls, params)
|
1439
|
+
req.send_request(options)
|
1440
|
+
end
|
1441
|
+
|
1442
|
+
# Returns an array of XssMatchSet objects.
|
1443
|
+
# @option params [String] :next_marker
|
1444
|
+
# If you specify a value for `Limit` and you have more XssMatchSet
|
1445
|
+
# objects than the value of `Limit`, AWS WAF returns a `NextMarker`
|
1446
|
+
# value in the response that allows you to list another group of
|
1447
|
+
# `XssMatchSets`. For the second and subsequent `ListXssMatchSets`
|
1448
|
+
# requests, specify the value of `NextMarker` from the previous response
|
1449
|
+
# to get information about another batch of `XssMatchSets`.
|
1450
|
+
# @option params [Integer] :limit
|
1451
|
+
# Specifies the number of XssMatchSet objects that you want AWS WAF to
|
1452
|
+
# return for this request. If you have more `XssMatchSet` objects than
|
1453
|
+
# the number you specify for `Limit`, the response includes a
|
1454
|
+
# `NextMarker` value that you can use to get another batch of `Rules`.
|
1455
|
+
# @return [Types::ListXssMatchSetsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1456
|
+
#
|
1457
|
+
# * {Types::ListXssMatchSetsResponse#next_marker #NextMarker} => String
|
1458
|
+
# * {Types::ListXssMatchSetsResponse#xss_match_sets #XssMatchSets} => Array<Types::XssMatchSetSummary>
|
1459
|
+
#
|
1460
|
+
# @example Request syntax with placeholder values
|
1461
|
+
# resp = client.list_xss_match_sets({
|
1462
|
+
# next_marker: "NextMarker",
|
1463
|
+
# limit: 1,
|
1464
|
+
# })
|
1465
|
+
#
|
1466
|
+
# @example Response structure
|
1467
|
+
# resp.next_marker #=> String
|
1468
|
+
# resp.xss_match_sets #=> Array
|
1469
|
+
# resp.xss_match_sets[0].xss_match_set_id #=> String
|
1470
|
+
# resp.xss_match_sets[0].name #=> String
|
1471
|
+
# @overload list_xss_match_sets(params = {})
|
1472
|
+
# @param [Hash] params ({})
|
1473
|
+
def list_xss_match_sets(params = {}, options = {})
|
1474
|
+
req = build_request(:list_xss_match_sets, params)
|
1475
|
+
req.send_request(options)
|
1476
|
+
end
|
1477
|
+
|
1478
|
+
# Inserts or deletes ByteMatchTuple objects (filters) in a ByteMatchSet.
|
1479
|
+
# For each `ByteMatchTuple` object, you specify the following values:
|
1480
|
+
#
|
1481
|
+
# * Whether to insert or delete the object from the array. If you want
|
1482
|
+
# to change a `ByteMatchSetUpdate` object, you delete the existing
|
1483
|
+
# object and add a new one.
|
1484
|
+
#
|
1485
|
+
# * The part of a web request that you want AWS WAF to inspect, such as
|
1486
|
+
# a query string or the value of the `User-Agent` header.
|
1487
|
+
#
|
1488
|
+
# * The bytes (typically a string that corresponds with ASCII
|
1489
|
+
# characters) that you want AWS WAF to look for. For more information,
|
1490
|
+
# including how you specify the values for the AWS WAF API and the AWS
|
1491
|
+
# CLI or SDKs, see `TargetString` in the ByteMatchTuple data type.
|
1492
|
+
#
|
1493
|
+
# * Where to look, such as at the beginning or the end of a query
|
1494
|
+
# string.
|
1495
|
+
#
|
1496
|
+
# * Whether to perform any conversions on the request, such as
|
1497
|
+
# converting it to lowercase, before inspecting it for the specified
|
1498
|
+
# string.
|
1499
|
+
#
|
1500
|
+
# For example, you can add a `ByteMatchSetUpdate` object that matches
|
1501
|
+
# web requests in which `User-Agent` headers contain the string
|
1502
|
+
# `BadBot`. You can then configure AWS WAF to block those requests.
|
1503
|
+
#
|
1504
|
+
# To create and configure a `ByteMatchSet`, perform the following steps:
|
1505
|
+
#
|
1506
|
+
# 1. Create a `ByteMatchSet.` For more information, see
|
1507
|
+
# CreateByteMatchSet.
|
1508
|
+
#
|
1509
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
1510
|
+
# `ChangeToken` parameter of an `UpdateByteMatchSet` request.
|
1511
|
+
#
|
1512
|
+
# 3. Submit an `UpdateByteMatchSet` request to specify the part of the
|
1513
|
+
# request that you want AWS WAF to inspect (for example, the header
|
1514
|
+
# or the URI) and the value that you want AWS WAF to watch for.
|
1515
|
+
#
|
1516
|
+
# For more information about how to use the AWS WAF API to allow or
|
1517
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
1518
|
+
#
|
1519
|
+
#
|
1520
|
+
#
|
1521
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
1522
|
+
# @option params [required, String] :byte_match_set_id
|
1523
|
+
# The `ByteMatchSetId` of the ByteMatchSet that you want to update.
|
1524
|
+
# `ByteMatchSetId` is returned by CreateByteMatchSet and by
|
1525
|
+
# ListByteMatchSets.
|
1526
|
+
# @option params [required, String] :change_token
|
1527
|
+
# The value returned by the most recent call to GetChangeToken.
|
1528
|
+
# @option params [required, Array<Types::ByteMatchSetUpdate>] :updates
|
1529
|
+
# An array of `ByteMatchSetUpdate` objects that you want to insert into
|
1530
|
+
# or delete from a ByteMatchSet. For more information, see the
|
1531
|
+
# applicable data types:
|
1532
|
+
#
|
1533
|
+
# * ByteMatchSetUpdate: Contains `Action` and `ByteMatchTuple`
|
1534
|
+
#
|
1535
|
+
# * ByteMatchTuple: Contains `FieldToMatch`, `PositionalConstraint`,
|
1536
|
+
# `TargetString`, and `TextTransformation`
|
1537
|
+
#
|
1538
|
+
# * FieldToMatch: Contains `Data` and `Type`
|
1539
|
+
# @return [Types::UpdateByteMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1540
|
+
#
|
1541
|
+
# * {Types::UpdateByteMatchSetResponse#change_token #ChangeToken} => String
|
1542
|
+
#
|
1543
|
+
# @example Request syntax with placeholder values
|
1544
|
+
# resp = client.update_byte_match_set({
|
1545
|
+
# byte_match_set_id: "ResourceId", # required
|
1546
|
+
# change_token: "ChangeToken", # required
|
1547
|
+
# updates: [ # required
|
1548
|
+
# {
|
1549
|
+
# action: "INSERT", # required, accepts INSERT, DELETE
|
1550
|
+
# byte_match_tuple: { # required
|
1551
|
+
# field_to_match: { # required
|
1552
|
+
# type: "URI", # required, accepts URI, QUERY_STRING, HEADER, METHOD, BODY
|
1553
|
+
# data: "MatchFieldData",
|
1554
|
+
# },
|
1555
|
+
# target_string: "data", # required
|
1556
|
+
# text_transformation: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE
|
1557
|
+
# positional_constraint: "EXACTLY", # required, accepts EXACTLY, STARTS_WITH, ENDS_WITH, CONTAINS, CONTAINS_WORD
|
1558
|
+
# },
|
1559
|
+
# },
|
1560
|
+
# ],
|
1561
|
+
# })
|
1562
|
+
#
|
1563
|
+
# @example Response structure
|
1564
|
+
# resp.change_token #=> String
|
1565
|
+
# @overload update_byte_match_set(params = {})
|
1566
|
+
# @param [Hash] params ({})
|
1567
|
+
def update_byte_match_set(params = {}, options = {})
|
1568
|
+
req = build_request(:update_byte_match_set, params)
|
1569
|
+
req.send_request(options)
|
1570
|
+
end
|
1571
|
+
|
1572
|
+
# Inserts or deletes IPSetDescriptor objects in an `IPSet`. For each
|
1573
|
+
# `IPSetDescriptor` object, you specify the following values:
|
1574
|
+
#
|
1575
|
+
# * Whether to insert or delete the object from the array. If you want
|
1576
|
+
# to change an `IPSetDescriptor` object, you delete the existing
|
1577
|
+
# object and add a new one.
|
1578
|
+
#
|
1579
|
+
# * The IP address version, `IPv4`.
|
1580
|
+
#
|
1581
|
+
# * The IP address in CIDR notation, for example, `192.0.2.0/24` (for
|
1582
|
+
# the range of IP addresses from `192.0.2.0` to `192.0.2.255`) or
|
1583
|
+
# `192.0.2.44/32` (for the individual IP address `192.0.2.44`).
|
1584
|
+
#
|
1585
|
+
# AWS WAF supports /8, /16, /24, and /32 IP address ranges. For more
|
1586
|
+
# information about CIDR notation, see the Wikipedia entry [Classless
|
1587
|
+
# Inter-Domain Routing][1].
|
1588
|
+
#
|
1589
|
+
# You use an `IPSet` to specify which web requests you want to allow or
|
1590
|
+
# block based on the IP addresses that the requests originated from. For
|
1591
|
+
# example, if you're receiving a lot of requests from one or a small
|
1592
|
+
# number of IP addresses and you want to block the requests, you can
|
1593
|
+
# create an `IPSet` that specifies those IP addresses, and then
|
1594
|
+
# configure AWS WAF to block the requests.
|
1595
|
+
#
|
1596
|
+
# To create and configure an `IPSet`, perform the following steps:
|
1597
|
+
#
|
1598
|
+
# 1. Submit a CreateIPSet request.
|
1599
|
+
#
|
1600
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
1601
|
+
# `ChangeToken` parameter of an UpdateIPSet request.
|
1602
|
+
#
|
1603
|
+
# 3. Submit an `UpdateIPSet` request to specify the IP addresses that
|
1604
|
+
# you want AWS WAF to watch for.
|
1605
|
+
#
|
1606
|
+
# When you update an `IPSet`, you specify the IP addresses that you want
|
1607
|
+
# to add and/or the IP addresses that you want to delete. If you want to
|
1608
|
+
# change an IP address, you delete the existing IP address and add the
|
1609
|
+
# new one.
|
1610
|
+
#
|
1611
|
+
# For more information about how to use the AWS WAF API to allow or
|
1612
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][2].
|
1613
|
+
#
|
1614
|
+
#
|
1615
|
+
#
|
1616
|
+
# [1]: https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing
|
1617
|
+
# [2]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
1618
|
+
# @option params [required, String] :ip_set_id
|
1619
|
+
# The `IPSetId` of the IPSet that you want to update. `IPSetId` is
|
1620
|
+
# returned by CreateIPSet and by ListIPSets.
|
1621
|
+
# @option params [required, String] :change_token
|
1622
|
+
# The value returned by the most recent call to GetChangeToken.
|
1623
|
+
# @option params [required, Array<Types::IPSetUpdate>] :updates
|
1624
|
+
# An array of `IPSetUpdate` objects that you want to insert into or
|
1625
|
+
# delete from an IPSet. For more information, see the applicable data
|
1626
|
+
# types:
|
1627
|
+
#
|
1628
|
+
# * IPSetUpdate: Contains `Action` and `IPSetDescriptor`
|
1629
|
+
#
|
1630
|
+
# * IPSetDescriptor: Contains `Type` and `Value`
|
1631
|
+
# @return [Types::UpdateIPSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1632
|
+
#
|
1633
|
+
# * {Types::UpdateIPSetResponse#change_token #ChangeToken} => String
|
1634
|
+
#
|
1635
|
+
# @example Request syntax with placeholder values
|
1636
|
+
# resp = client.update_ip_set({
|
1637
|
+
# ip_set_id: "ResourceId", # required
|
1638
|
+
# change_token: "ChangeToken", # required
|
1639
|
+
# updates: [ # required
|
1640
|
+
# {
|
1641
|
+
# action: "INSERT", # required, accepts INSERT, DELETE
|
1642
|
+
# ip_set_descriptor: { # required
|
1643
|
+
# type: "IPV4", # required, accepts IPV4, IPV6
|
1644
|
+
# value: "IPSetDescriptorValue", # required
|
1645
|
+
# },
|
1646
|
+
# },
|
1647
|
+
# ],
|
1648
|
+
# })
|
1649
|
+
#
|
1650
|
+
# @example Response structure
|
1651
|
+
# resp.change_token #=> String
|
1652
|
+
# @overload update_ip_set(params = {})
|
1653
|
+
# @param [Hash] params ({})
|
1654
|
+
def update_ip_set(params = {}, options = {})
|
1655
|
+
req = build_request(:update_ip_set, params)
|
1656
|
+
req.send_request(options)
|
1657
|
+
end
|
1658
|
+
|
1659
|
+
# Inserts or deletes Predicate objects in a `Rule`. Each `Predicate`
|
1660
|
+
# object identifies a predicate, such as a ByteMatchSet or an IPSet,
|
1661
|
+
# that specifies the web requests that you want to allow, block, or
|
1662
|
+
# count. If you add more than one predicate to a `Rule`, a request must
|
1663
|
+
# match all of the specifications to be allowed, blocked, or counted.
|
1664
|
+
# For example, suppose you add the following to a `Rule`\:
|
1665
|
+
#
|
1666
|
+
# * A `ByteMatchSet` that matches the value `BadBot` in the `User-Agent`
|
1667
|
+
# header
|
1668
|
+
#
|
1669
|
+
# * An `IPSet` that matches the IP address `192.0.2.44`
|
1670
|
+
#
|
1671
|
+
# You then add the `Rule` to a `WebACL` and specify that you want to
|
1672
|
+
# block requests that satisfy the `Rule`. For a request to be blocked,
|
1673
|
+
# the `User-Agent` header in the request must contain the value `BadBot`
|
1674
|
+
# *and* the request must originate from the IP address 192.0.2.44.
|
1675
|
+
#
|
1676
|
+
# To create and configure a `Rule`, perform the following steps:
|
1677
|
+
#
|
1678
|
+
# 1. Create and update the predicates that you want to include in the
|
1679
|
+
# `Rule`.
|
1680
|
+
#
|
1681
|
+
# 2. Create the `Rule`. See CreateRule.
|
1682
|
+
#
|
1683
|
+
# 3. Use `GetChangeToken` to get the change token that you provide in
|
1684
|
+
# the `ChangeToken` parameter of an UpdateRule request.
|
1685
|
+
#
|
1686
|
+
# 4. Submit an `UpdateRule` request to add predicates to the `Rule`.
|
1687
|
+
#
|
1688
|
+
# 5. Create and update a `WebACL` that contains the `Rule`. See
|
1689
|
+
# CreateWebACL.
|
1690
|
+
#
|
1691
|
+
# If you want to replace one `ByteMatchSet` or `IPSet` with another, you
|
1692
|
+
# delete the existing one and add the new one.
|
1693
|
+
#
|
1694
|
+
# For more information about how to use the AWS WAF API to allow or
|
1695
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
1696
|
+
#
|
1697
|
+
#
|
1698
|
+
#
|
1699
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
1700
|
+
# @option params [required, String] :rule_id
|
1701
|
+
# The `RuleId` of the `Rule` that you want to update. `RuleId` is
|
1702
|
+
# returned by `CreateRule` and by ListRules.
|
1703
|
+
# @option params [required, String] :change_token
|
1704
|
+
# The value returned by the most recent call to GetChangeToken.
|
1705
|
+
# @option params [required, Array<Types::RuleUpdate>] :updates
|
1706
|
+
# An array of `RuleUpdate` objects that you want to insert into or
|
1707
|
+
# delete from a Rule. For more information, see the applicable data
|
1708
|
+
# types:
|
1709
|
+
#
|
1710
|
+
# * RuleUpdate: Contains `Action` and `Predicate`
|
1711
|
+
#
|
1712
|
+
# * Predicate: Contains `DataId`, `Negated`, and `Type`
|
1713
|
+
#
|
1714
|
+
# * FieldToMatch: Contains `Data` and `Type`
|
1715
|
+
# @return [Types::UpdateRuleResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1716
|
+
#
|
1717
|
+
# * {Types::UpdateRuleResponse#change_token #ChangeToken} => String
|
1718
|
+
#
|
1719
|
+
# @example Request syntax with placeholder values
|
1720
|
+
# resp = client.update_rule({
|
1721
|
+
# rule_id: "ResourceId", # required
|
1722
|
+
# change_token: "ChangeToken", # required
|
1723
|
+
# updates: [ # required
|
1724
|
+
# {
|
1725
|
+
# action: "INSERT", # required, accepts INSERT, DELETE
|
1726
|
+
# predicate: { # required
|
1727
|
+
# negated: false, # required
|
1728
|
+
# type: "IPMatch", # required, accepts IPMatch, ByteMatch, SqlInjectionMatch, SizeConstraint, XssMatch
|
1729
|
+
# data_id: "ResourceId", # required
|
1730
|
+
# },
|
1731
|
+
# },
|
1732
|
+
# ],
|
1733
|
+
# })
|
1734
|
+
#
|
1735
|
+
# @example Response structure
|
1736
|
+
# resp.change_token #=> String
|
1737
|
+
# @overload update_rule(params = {})
|
1738
|
+
# @param [Hash] params ({})
|
1739
|
+
def update_rule(params = {}, options = {})
|
1740
|
+
req = build_request(:update_rule, params)
|
1741
|
+
req.send_request(options)
|
1742
|
+
end
|
1743
|
+
|
1744
|
+
# Inserts or deletes SizeConstraint objects (filters) in a
|
1745
|
+
# SizeConstraintSet. For each `SizeConstraint` object, you specify the
|
1746
|
+
# following values:
|
1747
|
+
#
|
1748
|
+
# * Whether to insert or delete the object from the array. If you want
|
1749
|
+
# to change a `SizeConstraintSetUpdate` object, you delete the
|
1750
|
+
# existing object and add a new one.
|
1751
|
+
#
|
1752
|
+
# * The part of a web request that you want AWS WAF to evaluate, such as
|
1753
|
+
# the length of a query string or the length of the `User-Agent`
|
1754
|
+
# header.
|
1755
|
+
#
|
1756
|
+
# * Whether to perform any transformations on the request, such as
|
1757
|
+
# converting it to lowercase, before checking its length. Note that
|
1758
|
+
# transformations of the request body are not supported because the
|
1759
|
+
# AWS resource forwards only the first `8192` bytes of your request to
|
1760
|
+
# AWS WAF.
|
1761
|
+
#
|
1762
|
+
# * A `ComparisonOperator` used for evaluating the selected part of the
|
1763
|
+
# request against the specified `Size`, such as equals, greater than,
|
1764
|
+
# less than, and so on.
|
1765
|
+
#
|
1766
|
+
# * The length, in bytes, that you want AWS WAF to watch for in selected
|
1767
|
+
# part of the request. The length is computed after applying the
|
1768
|
+
# transformation.
|
1769
|
+
#
|
1770
|
+
# For example, you can add a `SizeConstraintSetUpdate` object that
|
1771
|
+
# matches web requests in which the length of the `User-Agent` header is
|
1772
|
+
# greater than 100 bytes. You can then configure AWS WAF to block those
|
1773
|
+
# requests.
|
1774
|
+
#
|
1775
|
+
# To create and configure a `SizeConstraintSet`, perform the following
|
1776
|
+
# steps:
|
1777
|
+
#
|
1778
|
+
# 1. Create a `SizeConstraintSet.` For more information, see
|
1779
|
+
# CreateSizeConstraintSet.
|
1780
|
+
#
|
1781
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
1782
|
+
# `ChangeToken` parameter of an `UpdateSizeConstraintSet` request.
|
1783
|
+
#
|
1784
|
+
# 3. Submit an `UpdateSizeConstraintSet` request to specify the part of
|
1785
|
+
# the request that you want AWS WAF to inspect (for example, the
|
1786
|
+
# header or the URI) and the value that you want AWS WAF to watch
|
1787
|
+
# for.
|
1788
|
+
#
|
1789
|
+
# For more information about how to use the AWS WAF API to allow or
|
1790
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
1791
|
+
#
|
1792
|
+
#
|
1793
|
+
#
|
1794
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
1795
|
+
# @option params [required, String] :size_constraint_set_id
|
1796
|
+
# The `SizeConstraintSetId` of the SizeConstraintSet that you want to
|
1797
|
+
# update. `SizeConstraintSetId` is returned by CreateSizeConstraintSet
|
1798
|
+
# and by ListSizeConstraintSets.
|
1799
|
+
# @option params [required, String] :change_token
|
1800
|
+
# The value returned by the most recent call to GetChangeToken.
|
1801
|
+
# @option params [required, Array<Types::SizeConstraintSetUpdate>] :updates
|
1802
|
+
# An array of `SizeConstraintSetUpdate` objects that you want to insert
|
1803
|
+
# into or delete from a SizeConstraintSet. For more information, see the
|
1804
|
+
# applicable data types:
|
1805
|
+
#
|
1806
|
+
# * SizeConstraintSetUpdate: Contains `Action` and `SizeConstraint`
|
1807
|
+
#
|
1808
|
+
# * SizeConstraint: Contains `FieldToMatch`, `TextTransformation`,
|
1809
|
+
# `ComparisonOperator`, and `Size`
|
1810
|
+
#
|
1811
|
+
# * FieldToMatch: Contains `Data` and `Type`
|
1812
|
+
# @return [Types::UpdateSizeConstraintSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1813
|
+
#
|
1814
|
+
# * {Types::UpdateSizeConstraintSetResponse#change_token #ChangeToken} => String
|
1815
|
+
#
|
1816
|
+
# @example Request syntax with placeholder values
|
1817
|
+
# resp = client.update_size_constraint_set({
|
1818
|
+
# size_constraint_set_id: "ResourceId", # required
|
1819
|
+
# change_token: "ChangeToken", # required
|
1820
|
+
# updates: [ # required
|
1821
|
+
# {
|
1822
|
+
# action: "INSERT", # required, accepts INSERT, DELETE
|
1823
|
+
# size_constraint: { # required
|
1824
|
+
# field_to_match: { # required
|
1825
|
+
# type: "URI", # required, accepts URI, QUERY_STRING, HEADER, METHOD, BODY
|
1826
|
+
# data: "MatchFieldData",
|
1827
|
+
# },
|
1828
|
+
# text_transformation: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE
|
1829
|
+
# comparison_operator: "EQ", # required, accepts EQ, NE, LE, LT, GE, GT
|
1830
|
+
# size: 1, # required
|
1831
|
+
# },
|
1832
|
+
# },
|
1833
|
+
# ],
|
1834
|
+
# })
|
1835
|
+
#
|
1836
|
+
# @example Response structure
|
1837
|
+
# resp.change_token #=> String
|
1838
|
+
# @overload update_size_constraint_set(params = {})
|
1839
|
+
# @param [Hash] params ({})
|
1840
|
+
def update_size_constraint_set(params = {}, options = {})
|
1841
|
+
req = build_request(:update_size_constraint_set, params)
|
1842
|
+
req.send_request(options)
|
1843
|
+
end
|
1844
|
+
|
1845
|
+
# Inserts or deletes SqlInjectionMatchTuple objects (filters) in a
|
1846
|
+
# SqlInjectionMatchSet. For each `SqlInjectionMatchTuple` object, you
|
1847
|
+
# specify the following values:
|
1848
|
+
#
|
1849
|
+
# * `Action`\: Whether to insert the object into or delete the object
|
1850
|
+
# from the array. To change a `SqlInjectionMatchTuple`, you delete the
|
1851
|
+
# existing object and add a new one.
|
1852
|
+
#
|
1853
|
+
# * `FieldToMatch`\: The part of web requests that you want AWS WAF to
|
1854
|
+
# inspect and, if you want AWS WAF to inspect a header, the name of
|
1855
|
+
# the header.
|
1856
|
+
#
|
1857
|
+
# * `TextTransformation`\: Which text transformation, if any, to perform
|
1858
|
+
# on the web request before inspecting the request for snippets of
|
1859
|
+
# malicious SQL code.
|
1860
|
+
#
|
1861
|
+
# You use `SqlInjectionMatchSet` objects to specify which CloudFront
|
1862
|
+
# requests you want to allow, block, or count. For example, if you're
|
1863
|
+
# receiving requests that contain snippets of SQL code in the query
|
1864
|
+
# string and you want to block the requests, you can create a
|
1865
|
+
# `SqlInjectionMatchSet` with the applicable settings, and then
|
1866
|
+
# configure AWS WAF to block the requests.
|
1867
|
+
#
|
1868
|
+
# To create and configure a `SqlInjectionMatchSet`, perform the
|
1869
|
+
# following steps:
|
1870
|
+
#
|
1871
|
+
# 1. Submit a CreateSqlInjectionMatchSet request.
|
1872
|
+
#
|
1873
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
1874
|
+
# `ChangeToken` parameter of an UpdateIPSet request.
|
1875
|
+
#
|
1876
|
+
# 3. Submit an `UpdateSqlInjectionMatchSet` request to specify the
|
1877
|
+
# parts of web requests that you want AWS WAF to inspect for
|
1878
|
+
# snippets of SQL code.
|
1879
|
+
#
|
1880
|
+
# For more information about how to use the AWS WAF API to allow or
|
1881
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
1882
|
+
#
|
1883
|
+
#
|
1884
|
+
#
|
1885
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
1886
|
+
# @option params [required, String] :sql_injection_match_set_id
|
1887
|
+
# The `SqlInjectionMatchSetId` of the `SqlInjectionMatchSet` that you
|
1888
|
+
# want to update. `SqlInjectionMatchSetId` is returned by
|
1889
|
+
# CreateSqlInjectionMatchSet and by ListSqlInjectionMatchSets.
|
1890
|
+
# @option params [required, String] :change_token
|
1891
|
+
# The value returned by the most recent call to GetChangeToken.
|
1892
|
+
# @option params [required, Array<Types::SqlInjectionMatchSetUpdate>] :updates
|
1893
|
+
# An array of `SqlInjectionMatchSetUpdate` objects that you want to
|
1894
|
+
# insert into or delete from a SqlInjectionMatchSet. For more
|
1895
|
+
# information, see the applicable data types:
|
1896
|
+
#
|
1897
|
+
# * SqlInjectionMatchSetUpdate: Contains `Action` and
|
1898
|
+
# `SqlInjectionMatchTuple`
|
1899
|
+
#
|
1900
|
+
# * SqlInjectionMatchTuple: Contains `FieldToMatch` and
|
1901
|
+
# `TextTransformation`
|
1902
|
+
#
|
1903
|
+
# * FieldToMatch: Contains `Data` and `Type`
|
1904
|
+
# @return [Types::UpdateSqlInjectionMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
1905
|
+
#
|
1906
|
+
# * {Types::UpdateSqlInjectionMatchSetResponse#change_token #ChangeToken} => String
|
1907
|
+
#
|
1908
|
+
# @example Request syntax with placeholder values
|
1909
|
+
# resp = client.update_sql_injection_match_set({
|
1910
|
+
# sql_injection_match_set_id: "ResourceId", # required
|
1911
|
+
# change_token: "ChangeToken", # required
|
1912
|
+
# updates: [ # required
|
1913
|
+
# {
|
1914
|
+
# action: "INSERT", # required, accepts INSERT, DELETE
|
1915
|
+
# sql_injection_match_tuple: { # required
|
1916
|
+
# field_to_match: { # required
|
1917
|
+
# type: "URI", # required, accepts URI, QUERY_STRING, HEADER, METHOD, BODY
|
1918
|
+
# data: "MatchFieldData",
|
1919
|
+
# },
|
1920
|
+
# text_transformation: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE
|
1921
|
+
# },
|
1922
|
+
# },
|
1923
|
+
# ],
|
1924
|
+
# })
|
1925
|
+
#
|
1926
|
+
# @example Response structure
|
1927
|
+
# resp.change_token #=> String
|
1928
|
+
# @overload update_sql_injection_match_set(params = {})
|
1929
|
+
# @param [Hash] params ({})
|
1930
|
+
def update_sql_injection_match_set(params = {}, options = {})
|
1931
|
+
req = build_request(:update_sql_injection_match_set, params)
|
1932
|
+
req.send_request(options)
|
1933
|
+
end
|
1934
|
+
|
1935
|
+
# Inserts or deletes ActivatedRule objects in a `WebACL`. Each `Rule`
|
1936
|
+
# identifies web requests that you want to allow, block, or count. When
|
1937
|
+
# you update a `WebACL`, you specify the following values:
|
1938
|
+
#
|
1939
|
+
# * A default action for the `WebACL`, either `ALLOW` or `BLOCK`. AWS
|
1940
|
+
# WAF performs the default action if a request doesn't match the
|
1941
|
+
# criteria in any of the `Rules` in a `WebACL`.
|
1942
|
+
#
|
1943
|
+
# * The `Rules` that you want to add and/or delete. If you want to
|
1944
|
+
# replace one `Rule` with another, you delete the existing `Rule` and
|
1945
|
+
# add the new one.
|
1946
|
+
#
|
1947
|
+
# * For each `Rule`, whether you want AWS WAF to allow requests, block
|
1948
|
+
# requests, or count requests that match the conditions in the `Rule`.
|
1949
|
+
#
|
1950
|
+
# * The order in which you want AWS WAF to evaluate the `Rules` in a
|
1951
|
+
# `WebACL`. If you add more than one `Rule` to a `WebACL`, AWS WAF
|
1952
|
+
# evaluates each request against the `Rules` in order based on the
|
1953
|
+
# value of `Priority`. (The `Rule` that has the lowest value for
|
1954
|
+
# `Priority` is evaluated first.) When a web request matches all of
|
1955
|
+
# the predicates (such as `ByteMatchSets` and `IPSets`) in a `Rule`,
|
1956
|
+
# AWS WAF immediately takes the corresponding action, allow or block,
|
1957
|
+
# and doesn't evaluate the request against the remaining `Rules` in
|
1958
|
+
# the `WebACL`, if any.
|
1959
|
+
#
|
1960
|
+
# * The CloudFront distribution that you want to associate with the
|
1961
|
+
# `WebACL`.
|
1962
|
+
#
|
1963
|
+
# To create and configure a `WebACL`, perform the following steps:
|
1964
|
+
#
|
1965
|
+
# 1. Create and update the predicates that you want to include in
|
1966
|
+
# `Rules`. For more information, see CreateByteMatchSet,
|
1967
|
+
# UpdateByteMatchSet, CreateIPSet, UpdateIPSet,
|
1968
|
+
# CreateSqlInjectionMatchSet, and UpdateSqlInjectionMatchSet.
|
1969
|
+
#
|
1970
|
+
# 2. Create and update the `Rules` that you want to include in the
|
1971
|
+
# `WebACL`. For more information, see CreateRule and UpdateRule.
|
1972
|
+
#
|
1973
|
+
# 3. Create a `WebACL`. See CreateWebACL.
|
1974
|
+
#
|
1975
|
+
# 4. Use `GetChangeToken` to get the change token that you provide in
|
1976
|
+
# the `ChangeToken` parameter of an UpdateWebACL request.
|
1977
|
+
#
|
1978
|
+
# 5. Submit an `UpdateWebACL` request to specify the `Rules` that you
|
1979
|
+
# want to include in the `WebACL`, to specify the default action,
|
1980
|
+
# and to associate the `WebACL` with a CloudFront distribution.
|
1981
|
+
#
|
1982
|
+
# For more information about how to use the AWS WAF API to allow or
|
1983
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
1984
|
+
#
|
1985
|
+
#
|
1986
|
+
#
|
1987
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
1988
|
+
# @option params [required, String] :web_acl_id
|
1989
|
+
# The `WebACLId` of the WebACL that you want to update. `WebACLId` is
|
1990
|
+
# returned by CreateWebACL and by ListWebACLs.
|
1991
|
+
# @option params [required, String] :change_token
|
1992
|
+
# The value returned by the most recent call to GetChangeToken.
|
1993
|
+
# @option params [Array<Types::WebACLUpdate>] :updates
|
1994
|
+
# An array of updates to make to the WebACL.
|
1995
|
+
#
|
1996
|
+
# An array of `WebACLUpdate` objects that you want to insert into or
|
1997
|
+
# delete from a WebACL. For more information, see the applicable data
|
1998
|
+
# types:
|
1999
|
+
#
|
2000
|
+
# * WebACLUpdate: Contains `Action` and `ActivatedRule`
|
2001
|
+
#
|
2002
|
+
# * ActivatedRule: Contains `Action`, `Priority`, and `RuleId`
|
2003
|
+
#
|
2004
|
+
# * WafAction: Contains `Type`
|
2005
|
+
# @option params [Types::WafAction] :default_action
|
2006
|
+
# For the action that is associated with a rule in a `WebACL`, specifies
|
2007
|
+
# the action that you want AWS WAF to perform when a web request matches
|
2008
|
+
# all of the conditions in a rule. For the default action in a `WebACL`,
|
2009
|
+
# specifies the action that you want AWS WAF to take when a web request
|
2010
|
+
# doesn't match all of the conditions in any of the rules in a
|
2011
|
+
# `WebACL`.
|
2012
|
+
# @return [Types::UpdateWebACLResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
2013
|
+
#
|
2014
|
+
# * {Types::UpdateWebACLResponse#change_token #ChangeToken} => String
|
2015
|
+
#
|
2016
|
+
# @example Request syntax with placeholder values
|
2017
|
+
# resp = client.update_web_acl({
|
2018
|
+
# web_acl_id: "ResourceId", # required
|
2019
|
+
# change_token: "ChangeToken", # required
|
2020
|
+
# updates: [
|
2021
|
+
# {
|
2022
|
+
# action: "INSERT", # required, accepts INSERT, DELETE
|
2023
|
+
# activated_rule: { # required
|
2024
|
+
# priority: 1, # required
|
2025
|
+
# rule_id: "ResourceId", # required
|
2026
|
+
# action: { # required
|
2027
|
+
# type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
|
2028
|
+
# },
|
2029
|
+
# },
|
2030
|
+
# },
|
2031
|
+
# ],
|
2032
|
+
# default_action: {
|
2033
|
+
# type: "BLOCK", # required, accepts BLOCK, ALLOW, COUNT
|
2034
|
+
# },
|
2035
|
+
# })
|
2036
|
+
#
|
2037
|
+
# @example Response structure
|
2038
|
+
# resp.change_token #=> String
|
2039
|
+
# @overload update_web_acl(params = {})
|
2040
|
+
# @param [Hash] params ({})
|
2041
|
+
def update_web_acl(params = {}, options = {})
|
2042
|
+
req = build_request(:update_web_acl, params)
|
2043
|
+
req.send_request(options)
|
2044
|
+
end
|
2045
|
+
|
2046
|
+
# Inserts or deletes XssMatchTuple objects (filters) in an XssMatchSet.
|
2047
|
+
# For each `XssMatchTuple` object, you specify the following values:
|
2048
|
+
#
|
2049
|
+
# * `Action`\: Whether to insert the object into or delete the object
|
2050
|
+
# from the array. To change a `XssMatchTuple`, you delete the existing
|
2051
|
+
# object and add a new one.
|
2052
|
+
#
|
2053
|
+
# * `FieldToMatch`\: The part of web requests that you want AWS WAF to
|
2054
|
+
# inspect and, if you want AWS WAF to inspect a header, the name of
|
2055
|
+
# the header.
|
2056
|
+
#
|
2057
|
+
# * `TextTransformation`\: Which text transformation, if any, to perform
|
2058
|
+
# on the web request before inspecting the request for cross-site
|
2059
|
+
# scripting attacks.
|
2060
|
+
#
|
2061
|
+
# You use `XssMatchSet` objects to specify which CloudFront requests you
|
2062
|
+
# want to allow, block, or count. For example, if you're receiving
|
2063
|
+
# requests that contain cross-site scripting attacks in the request body
|
2064
|
+
# and you want to block the requests, you can create an `XssMatchSet`
|
2065
|
+
# with the applicable settings, and then configure AWS WAF to block the
|
2066
|
+
# requests.
|
2067
|
+
#
|
2068
|
+
# To create and configure an `XssMatchSet`, perform the following steps:
|
2069
|
+
#
|
2070
|
+
# 1. Submit a CreateXssMatchSet request.
|
2071
|
+
#
|
2072
|
+
# 2. Use GetChangeToken to get the change token that you provide in the
|
2073
|
+
# `ChangeToken` parameter of an UpdateIPSet request.
|
2074
|
+
#
|
2075
|
+
# 3. Submit an `UpdateXssMatchSet` request to specify the parts of web
|
2076
|
+
# requests that you want AWS WAF to inspect for cross-site scripting
|
2077
|
+
# attacks.
|
2078
|
+
#
|
2079
|
+
# For more information about how to use the AWS WAF API to allow or
|
2080
|
+
# block HTTP requests, see the [AWS WAF Developer Guide][1].
|
2081
|
+
#
|
2082
|
+
#
|
2083
|
+
#
|
2084
|
+
# [1]: http://docs.aws.amazon.com/waf/latest/developerguide/
|
2085
|
+
# @option params [required, String] :xss_match_set_id
|
2086
|
+
# The `XssMatchSetId` of the `XssMatchSet` that you want to update.
|
2087
|
+
# `XssMatchSetId` is returned by CreateXssMatchSet and by
|
2088
|
+
# ListXssMatchSets.
|
2089
|
+
# @option params [required, String] :change_token
|
2090
|
+
# The value returned by the most recent call to GetChangeToken.
|
2091
|
+
# @option params [required, Array<Types::XssMatchSetUpdate>] :updates
|
2092
|
+
# An array of `XssMatchSetUpdate` objects that you want to insert into
|
2093
|
+
# or delete from a XssMatchSet. For more information, see the applicable
|
2094
|
+
# data types:
|
2095
|
+
#
|
2096
|
+
# * XssMatchSetUpdate: Contains `Action` and `XssMatchTuple`
|
2097
|
+
#
|
2098
|
+
# * XssMatchTuple: Contains `FieldToMatch` and `TextTransformation`
|
2099
|
+
#
|
2100
|
+
# * FieldToMatch: Contains `Data` and `Type`
|
2101
|
+
# @return [Types::UpdateXssMatchSetResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
2102
|
+
#
|
2103
|
+
# * {Types::UpdateXssMatchSetResponse#change_token #ChangeToken} => String
|
2104
|
+
#
|
2105
|
+
# @example Request syntax with placeholder values
|
2106
|
+
# resp = client.update_xss_match_set({
|
2107
|
+
# xss_match_set_id: "ResourceId", # required
|
2108
|
+
# change_token: "ChangeToken", # required
|
2109
|
+
# updates: [ # required
|
2110
|
+
# {
|
2111
|
+
# action: "INSERT", # required, accepts INSERT, DELETE
|
2112
|
+
# xss_match_tuple: { # required
|
2113
|
+
# field_to_match: { # required
|
2114
|
+
# type: "URI", # required, accepts URI, QUERY_STRING, HEADER, METHOD, BODY
|
2115
|
+
# data: "MatchFieldData",
|
2116
|
+
# },
|
2117
|
+
# text_transformation: "NONE", # required, accepts NONE, COMPRESS_WHITE_SPACE, HTML_ENTITY_DECODE, LOWERCASE, CMD_LINE, URL_DECODE
|
2118
|
+
# },
|
2119
|
+
# },
|
2120
|
+
# ],
|
2121
|
+
# })
|
2122
|
+
#
|
2123
|
+
# @example Response structure
|
2124
|
+
# resp.change_token #=> String
|
2125
|
+
# @overload update_xss_match_set(params = {})
|
2126
|
+
# @param [Hash] params ({})
|
2127
|
+
def update_xss_match_set(params = {}, options = {})
|
2128
|
+
req = build_request(:update_xss_match_set, params)
|
2129
|
+
req.send_request(options)
|
2130
|
+
end
|
2131
|
+
|
2132
|
+
# @!endgroup
|
2133
|
+
|
2134
|
+
# @param params ({})
|
2135
|
+
# @api private
|
2136
|
+
def build_request(operation_name, params = {})
|
2137
|
+
handlers = @handlers.for(operation_name)
|
2138
|
+
context = Seahorse::Client::RequestContext.new(
|
2139
|
+
operation_name: operation_name,
|
2140
|
+
operation: config.api.operation(operation_name),
|
2141
|
+
client: self,
|
2142
|
+
params: params,
|
2143
|
+
config: config)
|
2144
|
+
context[:gem_name] = 'aws-sdk-waf'
|
2145
|
+
context[:gem_version] = '1.0.0.rc1'
|
2146
|
+
Seahorse::Client::Request.new(handlers, context)
|
2147
|
+
end
|
2148
|
+
|
2149
|
+
# @api private
|
2150
|
+
# @deprecated
|
2151
|
+
def waiter_names
|
2152
|
+
[]
|
2153
|
+
end
|
2154
|
+
|
2155
|
+
class << self
|
2156
|
+
|
2157
|
+
# @api private
|
2158
|
+
attr_reader :identifier
|
2159
|
+
|
2160
|
+
# @api private
|
2161
|
+
def errors_module
|
2162
|
+
Errors
|
2163
|
+
end
|
2164
|
+
|
2165
|
+
end
|
2166
|
+
end
|
2167
|
+
end
|
2168
|
+
end
|