aws-sdk-wafv2 1.125.0 → 1.126.0
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 +4 -4
- data/CHANGELOG.md +5 -0
- data/VERSION +1 -1
- data/lib/aws-sdk-wafv2/client.rb +126 -1
- data/lib/aws-sdk-wafv2/client_api.rb +66 -0
- data/lib/aws-sdk-wafv2/types.rb +218 -0
- data/lib/aws-sdk-wafv2.rb +1 -1
- data/sig/client.rbs +25 -0
- data/sig/types.rbs +45 -0
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: eb9bc8881386e551dce443f2dfa93c69b52c8a669689bb1f7c4d3a2aebd0a096
|
|
4
|
+
data.tar.gz: a32a1a23249d0079be9e10267ccaefa2451d14d567277cd5fd852466ccbb1257
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: a91dd15acd7b0b4466896ead8325bd3eb026baaf805b661d6acf4e1e6e83503158ca9b6b5e3eb3d632abdfee1fa86fa3d69a6840fb9c43427eb931abdc697123
|
|
7
|
+
data.tar.gz: e02b6ab1977d39c5eea65422e494f77320b0983de3668dc730eba11e16704dccbe31a21364726b569342dd237f00aeb191bea137ffe3af5fe2e9746eaad21c62
|
data/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,11 @@
|
|
|
1
1
|
Unreleased Changes
|
|
2
2
|
------------------
|
|
3
3
|
|
|
4
|
+
1.126.0 (2026-02-25)
|
|
5
|
+
------------------
|
|
6
|
+
|
|
7
|
+
* Feature - AWS WAF now supports GetTopPathStatisticsByTraffic that provides aggregated statistics on the top URI paths accessed by bot traffic. Use this operation to see which paths receive the most bot traffic, identify the specific bots accessing them, and filter by category, organization, or bot name.
|
|
8
|
+
|
|
4
9
|
1.125.0 (2026-01-16)
|
|
5
10
|
------------------
|
|
6
11
|
|
data/VERSION
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
1.
|
|
1
|
+
1.126.0
|
data/lib/aws-sdk-wafv2/client.rb
CHANGED
|
@@ -5662,6 +5662,131 @@ module Aws::WAFV2
|
|
|
5662
5662
|
req.send_request(options)
|
|
5663
5663
|
end
|
|
5664
5664
|
|
|
5665
|
+
# Retrieves aggregated statistics about the top URI paths accessed by
|
|
5666
|
+
# bot traffic for a specified web ACL and time window. You can use this
|
|
5667
|
+
# operation to analyze which paths on your web application receive the
|
|
5668
|
+
# most bot traffic and identify the specific bots accessing those paths.
|
|
5669
|
+
# The operation supports filtering by bot category, organization, or
|
|
5670
|
+
# name, and allows you to drill down into specific path prefixes to view
|
|
5671
|
+
# detailed URI-level statistics.
|
|
5672
|
+
#
|
|
5673
|
+
# @option params [required, String] :web_acl_arn
|
|
5674
|
+
# The Amazon Resource Name (ARN) of the web ACL for which you want to
|
|
5675
|
+
# retrieve path statistics.
|
|
5676
|
+
#
|
|
5677
|
+
# @option params [required, String] :scope
|
|
5678
|
+
# Specifies whether the web ACL is for an Amazon Web Services CloudFront
|
|
5679
|
+
# distribution or for a regional application. A regional application can
|
|
5680
|
+
# be an Application Load Balancer, an AppSync GraphQL API, an Amazon
|
|
5681
|
+
# Cognito user pool, an Amazon Web Services App Runner service, or an
|
|
5682
|
+
# Amazon Web Services Verified Access instance.
|
|
5683
|
+
#
|
|
5684
|
+
# @option params [String] :uri_path_prefix
|
|
5685
|
+
# A URI path prefix to filter the results. When you specify this
|
|
5686
|
+
# parameter, the operation returns statistics for individual URIs within
|
|
5687
|
+
# the specified path prefix. For example, if you specify `/api`, the
|
|
5688
|
+
# response includes statistics for paths like `/api/v1/users` and
|
|
5689
|
+
# `/api/v2/orders`. If you don't specify this parameter, the operation
|
|
5690
|
+
# returns top-level path statistics.
|
|
5691
|
+
#
|
|
5692
|
+
# @option params [required, Types::TimeWindow] :time_window
|
|
5693
|
+
# The time window for which you want to retrieve path statistics. The
|
|
5694
|
+
# time window must be within the data retention period for your web ACL.
|
|
5695
|
+
#
|
|
5696
|
+
# @option params [String] :bot_category
|
|
5697
|
+
# Filters the results to include only traffic from bots in the specified
|
|
5698
|
+
# category. For example, you can filter by `ai` to see only AI crawler
|
|
5699
|
+
# traffic, or `search_engine` to see only search engine bot traffic.
|
|
5700
|
+
# When you apply this filter, the `Source` field is populated in the
|
|
5701
|
+
# response.
|
|
5702
|
+
#
|
|
5703
|
+
# @option params [String] :bot_organization
|
|
5704
|
+
# Filters the results to include only traffic from bots belonging to the
|
|
5705
|
+
# specified organization. For example, you can filter by `openai` or
|
|
5706
|
+
# `google`. When you apply this filter, the `Source` field is populated
|
|
5707
|
+
# in the response.
|
|
5708
|
+
#
|
|
5709
|
+
# @option params [String] :bot_name
|
|
5710
|
+
# Filters the results to include only traffic from the specified bot.
|
|
5711
|
+
# For example, you can filter by `gptbot` or `googlebot`. When you apply
|
|
5712
|
+
# this filter, the `Source` field is populated in the response.
|
|
5713
|
+
#
|
|
5714
|
+
# @option params [required, Integer] :limit
|
|
5715
|
+
# The maximum number of path statistics to return. Valid values are 1 to
|
|
5716
|
+
# 100.
|
|
5717
|
+
#
|
|
5718
|
+
# @option params [required, Integer] :number_of_top_traffic_bots_per_path
|
|
5719
|
+
# The maximum number of top bots to include in the statistics for each
|
|
5720
|
+
# path. Valid values are 1 to 10.
|
|
5721
|
+
#
|
|
5722
|
+
# @option params [String] :next_marker
|
|
5723
|
+
# When you request a list of objects with a `Limit` setting, if the
|
|
5724
|
+
# number of objects that are still available for retrieval exceeds the
|
|
5725
|
+
# limit, WAF returns a `NextMarker` value in the response. To retrieve
|
|
5726
|
+
# the next batch of objects, provide the marker from the prior call in
|
|
5727
|
+
# your next request.
|
|
5728
|
+
#
|
|
5729
|
+
# @return [Types::GetTopPathStatisticsByTrafficResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
|
5730
|
+
#
|
|
5731
|
+
# * {Types::GetTopPathStatisticsByTrafficResponse#path_statistics #path_statistics} => Array<Types::PathStatistics>
|
|
5732
|
+
# * {Types::GetTopPathStatisticsByTrafficResponse#total_request_count #total_request_count} => Integer
|
|
5733
|
+
# * {Types::GetTopPathStatisticsByTrafficResponse#next_marker #next_marker} => String
|
|
5734
|
+
# * {Types::GetTopPathStatisticsByTrafficResponse#top_categories #top_categories} => Array<Types::PathStatistics>
|
|
5735
|
+
#
|
|
5736
|
+
# @example Request syntax with placeholder values
|
|
5737
|
+
#
|
|
5738
|
+
# resp = client.get_top_path_statistics_by_traffic({
|
|
5739
|
+
# web_acl_arn: "ResourceArn", # required
|
|
5740
|
+
# scope: "CLOUDFRONT", # required, accepts CLOUDFRONT, REGIONAL
|
|
5741
|
+
# uri_path_prefix: "UriPathPrefixString",
|
|
5742
|
+
# time_window: { # required
|
|
5743
|
+
# start_time: Time.now, # required
|
|
5744
|
+
# end_time: Time.now, # required
|
|
5745
|
+
# },
|
|
5746
|
+
# bot_category: "FilterString",
|
|
5747
|
+
# bot_organization: "FilterString",
|
|
5748
|
+
# bot_name: "FilterString",
|
|
5749
|
+
# limit: 1, # required
|
|
5750
|
+
# number_of_top_traffic_bots_per_path: 1, # required
|
|
5751
|
+
# next_marker: "NextMarker",
|
|
5752
|
+
# })
|
|
5753
|
+
#
|
|
5754
|
+
# @example Response structure
|
|
5755
|
+
#
|
|
5756
|
+
# resp.path_statistics #=> Array
|
|
5757
|
+
# resp.path_statistics[0].source.bot_category #=> String
|
|
5758
|
+
# resp.path_statistics[0].source.bot_organization #=> String
|
|
5759
|
+
# resp.path_statistics[0].source.bot_name #=> String
|
|
5760
|
+
# resp.path_statistics[0].path #=> String
|
|
5761
|
+
# resp.path_statistics[0].request_count #=> Integer
|
|
5762
|
+
# resp.path_statistics[0].percentage #=> Float
|
|
5763
|
+
# resp.path_statistics[0].top_bots #=> Array
|
|
5764
|
+
# resp.path_statistics[0].top_bots[0].bot_name #=> String
|
|
5765
|
+
# resp.path_statistics[0].top_bots[0].request_count #=> Integer
|
|
5766
|
+
# resp.path_statistics[0].top_bots[0].percentage #=> Float
|
|
5767
|
+
# resp.total_request_count #=> Integer
|
|
5768
|
+
# resp.next_marker #=> String
|
|
5769
|
+
# resp.top_categories #=> Array
|
|
5770
|
+
# resp.top_categories[0].source.bot_category #=> String
|
|
5771
|
+
# resp.top_categories[0].source.bot_organization #=> String
|
|
5772
|
+
# resp.top_categories[0].source.bot_name #=> String
|
|
5773
|
+
# resp.top_categories[0].path #=> String
|
|
5774
|
+
# resp.top_categories[0].request_count #=> Integer
|
|
5775
|
+
# resp.top_categories[0].percentage #=> Float
|
|
5776
|
+
# resp.top_categories[0].top_bots #=> Array
|
|
5777
|
+
# resp.top_categories[0].top_bots[0].bot_name #=> String
|
|
5778
|
+
# resp.top_categories[0].top_bots[0].request_count #=> Integer
|
|
5779
|
+
# resp.top_categories[0].top_bots[0].percentage #=> Float
|
|
5780
|
+
#
|
|
5781
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetTopPathStatisticsByTraffic AWS API Documentation
|
|
5782
|
+
#
|
|
5783
|
+
# @overload get_top_path_statistics_by_traffic(params = {})
|
|
5784
|
+
# @param [Hash] params ({})
|
|
5785
|
+
def get_top_path_statistics_by_traffic(params = {}, options = {})
|
|
5786
|
+
req = build_request(:get_top_path_statistics_by_traffic, params)
|
|
5787
|
+
req.send_request(options)
|
|
5788
|
+
end
|
|
5789
|
+
|
|
5665
5790
|
# Retrieves the specified WebACL.
|
|
5666
5791
|
#
|
|
5667
5792
|
# @option params [String] :name
|
|
@@ -9642,7 +9767,7 @@ module Aws::WAFV2
|
|
|
9642
9767
|
tracer: tracer
|
|
9643
9768
|
)
|
|
9644
9769
|
context[:gem_name] = 'aws-sdk-wafv2'
|
|
9645
|
-
context[:gem_version] = '1.
|
|
9770
|
+
context[:gem_version] = '1.126.0'
|
|
9646
9771
|
Seahorse::Client::Request.new(handlers, context)
|
|
9647
9772
|
end
|
|
9648
9773
|
|
|
@@ -49,6 +49,8 @@ module Aws::WAFV2
|
|
|
49
49
|
Body = Shapes::StructureShape.new(name: 'Body')
|
|
50
50
|
BodyParsingFallbackBehavior = Shapes::StringShape.new(name: 'BodyParsingFallbackBehavior')
|
|
51
51
|
Boolean = Shapes::BooleanShape.new(name: 'Boolean')
|
|
52
|
+
BotStatistics = Shapes::StructureShape.new(name: 'BotStatistics')
|
|
53
|
+
BotStatisticsList = Shapes::ListShape.new(name: 'BotStatisticsList')
|
|
52
54
|
ByteMatchStatement = Shapes::StructureShape.new(name: 'ByteMatchStatement')
|
|
53
55
|
CapacityUnit = Shapes::IntegerShape.new(name: 'CapacityUnit')
|
|
54
56
|
CaptchaAction = Shapes::StructureShape.new(name: 'CaptchaAction')
|
|
@@ -147,6 +149,8 @@ module Aws::WAFV2
|
|
|
147
149
|
Filter = Shapes::StructureShape.new(name: 'Filter')
|
|
148
150
|
FilterBehavior = Shapes::StringShape.new(name: 'FilterBehavior')
|
|
149
151
|
FilterRequirement = Shapes::StringShape.new(name: 'FilterRequirement')
|
|
152
|
+
FilterSource = Shapes::StructureShape.new(name: 'FilterSource')
|
|
153
|
+
FilterString = Shapes::StringShape.new(name: 'FilterString')
|
|
150
154
|
Filters = Shapes::ListShape.new(name: 'Filters')
|
|
151
155
|
FirewallManagerRuleGroup = Shapes::StructureShape.new(name: 'FirewallManagerRuleGroup')
|
|
152
156
|
FirewallManagerRuleGroups = Shapes::ListShape.new(name: 'FirewallManagerRuleGroups')
|
|
@@ -177,6 +181,8 @@ module Aws::WAFV2
|
|
|
177
181
|
GetRuleGroupResponse = Shapes::StructureShape.new(name: 'GetRuleGroupResponse')
|
|
178
182
|
GetSampledRequestsRequest = Shapes::StructureShape.new(name: 'GetSampledRequestsRequest')
|
|
179
183
|
GetSampledRequestsResponse = Shapes::StructureShape.new(name: 'GetSampledRequestsResponse')
|
|
184
|
+
GetTopPathStatisticsByTrafficRequest = Shapes::StructureShape.new(name: 'GetTopPathStatisticsByTrafficRequest')
|
|
185
|
+
GetTopPathStatisticsByTrafficResponse = Shapes::StructureShape.new(name: 'GetTopPathStatisticsByTrafficResponse')
|
|
180
186
|
GetWebACLForResourceRequest = Shapes::StructureShape.new(name: 'GetWebACLForResourceRequest')
|
|
181
187
|
GetWebACLForResourceResponse = Shapes::StructureShape.new(name: 'GetWebACLForResourceResponse')
|
|
182
188
|
GetWebACLRequest = Shapes::StructureShape.new(name: 'GetWebACLRequest')
|
|
@@ -274,6 +280,7 @@ module Aws::WAFV2
|
|
|
274
280
|
NextMarker = Shapes::StringShape.new(name: 'NextMarker')
|
|
275
281
|
NoneAction = Shapes::StructureShape.new(name: 'NoneAction')
|
|
276
282
|
NotStatement = Shapes::StructureShape.new(name: 'NotStatement')
|
|
283
|
+
NumberOfTopTrafficBotsPerPath = Shapes::IntegerShape.new(name: 'NumberOfTopTrafficBotsPerPath')
|
|
277
284
|
OnSourceDDoSProtectionConfig = Shapes::StructureShape.new(name: 'OnSourceDDoSProtectionConfig')
|
|
278
285
|
OrStatement = Shapes::StructureShape.new(name: 'OrStatement')
|
|
279
286
|
OutputUrl = Shapes::StringShape.new(name: 'OutputUrl')
|
|
@@ -283,7 +290,12 @@ module Aws::WAFV2
|
|
|
283
290
|
ParameterExceptionField = Shapes::StringShape.new(name: 'ParameterExceptionField')
|
|
284
291
|
ParameterExceptionParameter = Shapes::StringShape.new(name: 'ParameterExceptionParameter')
|
|
285
292
|
PasswordField = Shapes::StructureShape.new(name: 'PasswordField')
|
|
293
|
+
PathStatistics = Shapes::StructureShape.new(name: 'PathStatistics')
|
|
294
|
+
PathStatisticsLimit = Shapes::IntegerShape.new(name: 'PathStatisticsLimit')
|
|
295
|
+
PathStatisticsList = Shapes::ListShape.new(name: 'PathStatisticsList')
|
|
296
|
+
PathString = Shapes::StringShape.new(name: 'PathString')
|
|
286
297
|
PayloadType = Shapes::StringShape.new(name: 'PayloadType')
|
|
298
|
+
PercentageValue = Shapes::FloatShape.new(name: 'PercentageValue')
|
|
287
299
|
PhoneNumberField = Shapes::StructureShape.new(name: 'PhoneNumberField')
|
|
288
300
|
PhoneNumberFields = Shapes::ListShape.new(name: 'PhoneNumberFields')
|
|
289
301
|
Platform = Shapes::StringShape.new(name: 'Platform')
|
|
@@ -336,6 +348,7 @@ module Aws::WAFV2
|
|
|
336
348
|
ReleaseSummary = Shapes::StructureShape.new(name: 'ReleaseSummary')
|
|
337
349
|
RequestBody = Shapes::MapShape.new(name: 'RequestBody')
|
|
338
350
|
RequestBodyAssociatedResourceTypeConfig = Shapes::StructureShape.new(name: 'RequestBodyAssociatedResourceTypeConfig')
|
|
351
|
+
RequestCount = Shapes::IntegerShape.new(name: 'RequestCount')
|
|
339
352
|
RequestInspection = Shapes::StructureShape.new(name: 'RequestInspection')
|
|
340
353
|
RequestInspectionACFP = Shapes::StructureShape.new(name: 'RequestInspectionACFP')
|
|
341
354
|
RequiredPricingPlanName = Shapes::StringShape.new(name: 'RequiredPricingPlanName')
|
|
@@ -426,6 +439,7 @@ module Aws::WAFV2
|
|
|
426
439
|
UpdateWebACLResponse = Shapes::StructureShape.new(name: 'UpdateWebACLResponse')
|
|
427
440
|
UriFragment = Shapes::StructureShape.new(name: 'UriFragment')
|
|
428
441
|
UriPath = Shapes::StructureShape.new(name: 'UriPath')
|
|
442
|
+
UriPathPrefixString = Shapes::StringShape.new(name: 'UriPathPrefixString')
|
|
429
443
|
UsageOfAction = Shapes::StringShape.new(name: 'UsageOfAction')
|
|
430
444
|
UsernameField = Shapes::StructureShape.new(name: 'UsernameField')
|
|
431
445
|
VendorName = Shapes::StringShape.new(name: 'VendorName')
|
|
@@ -539,6 +553,13 @@ module Aws::WAFV2
|
|
|
539
553
|
Body.add_member(:oversize_handling, Shapes::ShapeRef.new(shape: OversizeHandling, location_name: "OversizeHandling"))
|
|
540
554
|
Body.struct_class = Types::Body
|
|
541
555
|
|
|
556
|
+
BotStatistics.add_member(:bot_name, Shapes::ShapeRef.new(shape: FilterString, required: true, location_name: "BotName"))
|
|
557
|
+
BotStatistics.add_member(:request_count, Shapes::ShapeRef.new(shape: RequestCount, required: true, location_name: "RequestCount"))
|
|
558
|
+
BotStatistics.add_member(:percentage, Shapes::ShapeRef.new(shape: PercentageValue, required: true, location_name: "Percentage"))
|
|
559
|
+
BotStatistics.struct_class = Types::BotStatistics
|
|
560
|
+
|
|
561
|
+
BotStatisticsList.member = Shapes::ShapeRef.new(shape: BotStatistics)
|
|
562
|
+
|
|
542
563
|
ByteMatchStatement.add_member(:search_string, Shapes::ShapeRef.new(shape: SearchString, required: true, location_name: "SearchString"))
|
|
543
564
|
ByteMatchStatement.add_member(:field_to_match, Shapes::ShapeRef.new(shape: FieldToMatch, required: true, location_name: "FieldToMatch"))
|
|
544
565
|
ByteMatchStatement.add_member(:text_transformations, Shapes::ShapeRef.new(shape: TextTransformations, required: true, location_name: "TextTransformations"))
|
|
@@ -833,6 +854,11 @@ module Aws::WAFV2
|
|
|
833
854
|
Filter.add_member(:conditions, Shapes::ShapeRef.new(shape: Conditions, required: true, location_name: "Conditions"))
|
|
834
855
|
Filter.struct_class = Types::Filter
|
|
835
856
|
|
|
857
|
+
FilterSource.add_member(:bot_category, Shapes::ShapeRef.new(shape: FilterString, location_name: "BotCategory"))
|
|
858
|
+
FilterSource.add_member(:bot_organization, Shapes::ShapeRef.new(shape: FilterString, location_name: "BotOrganization"))
|
|
859
|
+
FilterSource.add_member(:bot_name, Shapes::ShapeRef.new(shape: FilterString, location_name: "BotName"))
|
|
860
|
+
FilterSource.struct_class = Types::FilterSource
|
|
861
|
+
|
|
836
862
|
Filters.member = Shapes::ShapeRef.new(shape: Filter)
|
|
837
863
|
|
|
838
864
|
FirewallManagerRuleGroup.add_member(:name, Shapes::ShapeRef.new(shape: EntityName, required: true, location_name: "Name"))
|
|
@@ -952,6 +978,24 @@ module Aws::WAFV2
|
|
|
952
978
|
GetSampledRequestsResponse.add_member(:time_window, Shapes::ShapeRef.new(shape: TimeWindow, location_name: "TimeWindow"))
|
|
953
979
|
GetSampledRequestsResponse.struct_class = Types::GetSampledRequestsResponse
|
|
954
980
|
|
|
981
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:web_acl_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "WebAclArn"))
|
|
982
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:scope, Shapes::ShapeRef.new(shape: Scope, required: true, location_name: "Scope"))
|
|
983
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:uri_path_prefix, Shapes::ShapeRef.new(shape: UriPathPrefixString, location_name: "UriPathPrefix"))
|
|
984
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:time_window, Shapes::ShapeRef.new(shape: TimeWindow, required: true, location_name: "TimeWindow"))
|
|
985
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:bot_category, Shapes::ShapeRef.new(shape: FilterString, location_name: "BotCategory"))
|
|
986
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:bot_organization, Shapes::ShapeRef.new(shape: FilterString, location_name: "BotOrganization"))
|
|
987
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:bot_name, Shapes::ShapeRef.new(shape: FilterString, location_name: "BotName"))
|
|
988
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:limit, Shapes::ShapeRef.new(shape: PathStatisticsLimit, required: true, location_name: "Limit"))
|
|
989
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:number_of_top_traffic_bots_per_path, Shapes::ShapeRef.new(shape: NumberOfTopTrafficBotsPerPath, required: true, location_name: "NumberOfTopTrafficBotsPerPath"))
|
|
990
|
+
GetTopPathStatisticsByTrafficRequest.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
|
|
991
|
+
GetTopPathStatisticsByTrafficRequest.struct_class = Types::GetTopPathStatisticsByTrafficRequest
|
|
992
|
+
|
|
993
|
+
GetTopPathStatisticsByTrafficResponse.add_member(:path_statistics, Shapes::ShapeRef.new(shape: PathStatisticsList, required: true, location_name: "PathStatistics"))
|
|
994
|
+
GetTopPathStatisticsByTrafficResponse.add_member(:total_request_count, Shapes::ShapeRef.new(shape: RequestCount, required: true, location_name: "TotalRequestCount"))
|
|
995
|
+
GetTopPathStatisticsByTrafficResponse.add_member(:next_marker, Shapes::ShapeRef.new(shape: NextMarker, location_name: "NextMarker"))
|
|
996
|
+
GetTopPathStatisticsByTrafficResponse.add_member(:top_categories, Shapes::ShapeRef.new(shape: PathStatisticsList, location_name: "TopCategories"))
|
|
997
|
+
GetTopPathStatisticsByTrafficResponse.struct_class = Types::GetTopPathStatisticsByTrafficResponse
|
|
998
|
+
|
|
955
999
|
GetWebACLForResourceRequest.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "ResourceArn"))
|
|
956
1000
|
GetWebACLForResourceRequest.struct_class = Types::GetWebACLForResourceRequest
|
|
957
1001
|
|
|
@@ -1293,6 +1337,15 @@ module Aws::WAFV2
|
|
|
1293
1337
|
PasswordField.add_member(:identifier, Shapes::ShapeRef.new(shape: FieldIdentifier, required: true, location_name: "Identifier"))
|
|
1294
1338
|
PasswordField.struct_class = Types::PasswordField
|
|
1295
1339
|
|
|
1340
|
+
PathStatistics.add_member(:source, Shapes::ShapeRef.new(shape: FilterSource, location_name: "Source"))
|
|
1341
|
+
PathStatistics.add_member(:path, Shapes::ShapeRef.new(shape: PathString, required: true, location_name: "Path"))
|
|
1342
|
+
PathStatistics.add_member(:request_count, Shapes::ShapeRef.new(shape: RequestCount, required: true, location_name: "RequestCount"))
|
|
1343
|
+
PathStatistics.add_member(:percentage, Shapes::ShapeRef.new(shape: PercentageValue, required: true, location_name: "Percentage"))
|
|
1344
|
+
PathStatistics.add_member(:top_bots, Shapes::ShapeRef.new(shape: BotStatisticsList, location_name: "TopBots"))
|
|
1345
|
+
PathStatistics.struct_class = Types::PathStatistics
|
|
1346
|
+
|
|
1347
|
+
PathStatisticsList.member = Shapes::ShapeRef.new(shape: PathStatistics)
|
|
1348
|
+
|
|
1296
1349
|
PhoneNumberField.add_member(:identifier, Shapes::ShapeRef.new(shape: FieldIdentifier, required: true, location_name: "Identifier"))
|
|
1297
1350
|
PhoneNumberField.struct_class = Types::PhoneNumberField
|
|
1298
1351
|
|
|
@@ -2258,6 +2311,19 @@ module Aws::WAFV2
|
|
|
2258
2311
|
o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
|
|
2259
2312
|
end)
|
|
2260
2313
|
|
|
2314
|
+
api.add_operation(:get_top_path_statistics_by_traffic, Seahorse::Model::Operation.new.tap do |o|
|
|
2315
|
+
o.name = "GetTopPathStatisticsByTraffic"
|
|
2316
|
+
o.http_method = "POST"
|
|
2317
|
+
o.http_request_uri = "/"
|
|
2318
|
+
o.input = Shapes::ShapeRef.new(shape: GetTopPathStatisticsByTrafficRequest)
|
|
2319
|
+
o.output = Shapes::ShapeRef.new(shape: GetTopPathStatisticsByTrafficResponse)
|
|
2320
|
+
o.errors << Shapes::ShapeRef.new(shape: WAFInternalErrorException)
|
|
2321
|
+
o.errors << Shapes::ShapeRef.new(shape: WAFInvalidParameterException)
|
|
2322
|
+
o.errors << Shapes::ShapeRef.new(shape: WAFNonexistentItemException)
|
|
2323
|
+
o.errors << Shapes::ShapeRef.new(shape: WAFInvalidOperationException)
|
|
2324
|
+
o.errors << Shapes::ShapeRef.new(shape: WAFFeatureNotIncludedInPricingPlanException)
|
|
2325
|
+
end)
|
|
2326
|
+
|
|
2261
2327
|
api.add_operation(:get_web_acl, Seahorse::Model::Operation.new.tap do |o|
|
|
2262
2328
|
o.name = "GetWebACL"
|
|
2263
2329
|
o.http_method = "POST"
|
data/lib/aws-sdk-wafv2/types.rb
CHANGED
|
@@ -699,6 +699,33 @@ module Aws::WAFV2
|
|
|
699
699
|
include Aws::Structure
|
|
700
700
|
end
|
|
701
701
|
|
|
702
|
+
# Statistics about a specific bot's traffic to a path, including the
|
|
703
|
+
# bot name, request count, and percentage of traffic.
|
|
704
|
+
#
|
|
705
|
+
# @!attribute [rw] bot_name
|
|
706
|
+
# The name of the bot. For example, `gptbot` or `googlebot`.
|
|
707
|
+
# @return [String]
|
|
708
|
+
#
|
|
709
|
+
# @!attribute [rw] request_count
|
|
710
|
+
# The number of requests from this bot to the associated path within
|
|
711
|
+
# the specified time window.
|
|
712
|
+
# @return [Integer]
|
|
713
|
+
#
|
|
714
|
+
# @!attribute [rw] percentage
|
|
715
|
+
# The percentage of total requests to the associated path that came
|
|
716
|
+
# from this bot.
|
|
717
|
+
# @return [Float]
|
|
718
|
+
#
|
|
719
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/BotStatistics AWS API Documentation
|
|
720
|
+
#
|
|
721
|
+
class BotStatistics < Struct.new(
|
|
722
|
+
:bot_name,
|
|
723
|
+
:request_count,
|
|
724
|
+
:percentage)
|
|
725
|
+
SENSITIVE = []
|
|
726
|
+
include Aws::Structure
|
|
727
|
+
end
|
|
728
|
+
|
|
702
729
|
# A rule statement that defines a string match search for WAF to apply
|
|
703
730
|
# to web requests. The byte match statement provides the bytes to search
|
|
704
731
|
# for, the location in requests that you want WAF to search, and other
|
|
@@ -3088,6 +3115,35 @@ module Aws::WAFV2
|
|
|
3088
3115
|
include Aws::Structure
|
|
3089
3116
|
end
|
|
3090
3117
|
|
|
3118
|
+
# Information about the bot filter that was applied to the request. This
|
|
3119
|
+
# structure is populated in the response when you filter by bot
|
|
3120
|
+
# category, organization, or name.
|
|
3121
|
+
#
|
|
3122
|
+
# @!attribute [rw] bot_category
|
|
3123
|
+
# The bot category that was used to filter the results. For example,
|
|
3124
|
+
# `ai` or `search_engine`.
|
|
3125
|
+
# @return [String]
|
|
3126
|
+
#
|
|
3127
|
+
# @!attribute [rw] bot_organization
|
|
3128
|
+
# The bot organization that was used to filter the results. For
|
|
3129
|
+
# example, `OpenAI` or `Google`.
|
|
3130
|
+
# @return [String]
|
|
3131
|
+
#
|
|
3132
|
+
# @!attribute [rw] bot_name
|
|
3133
|
+
# The bot name that was used to filter the results. For example,
|
|
3134
|
+
# `gptbot` or `googlebot`.
|
|
3135
|
+
# @return [String]
|
|
3136
|
+
#
|
|
3137
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/FilterSource AWS API Documentation
|
|
3138
|
+
#
|
|
3139
|
+
class FilterSource < Struct.new(
|
|
3140
|
+
:bot_category,
|
|
3141
|
+
:bot_organization,
|
|
3142
|
+
:bot_name)
|
|
3143
|
+
SENSITIVE = []
|
|
3144
|
+
include Aws::Structure
|
|
3145
|
+
end
|
|
3146
|
+
|
|
3091
3147
|
# A rule group that's defined for an Firewall Manager WAF policy.
|
|
3092
3148
|
#
|
|
3093
3149
|
# @!attribute [rw] name
|
|
@@ -3882,6 +3938,127 @@ module Aws::WAFV2
|
|
|
3882
3938
|
include Aws::Structure
|
|
3883
3939
|
end
|
|
3884
3940
|
|
|
3941
|
+
# @!attribute [rw] web_acl_arn
|
|
3942
|
+
# The Amazon Resource Name (ARN) of the web ACL for which you want to
|
|
3943
|
+
# retrieve path statistics.
|
|
3944
|
+
# @return [String]
|
|
3945
|
+
#
|
|
3946
|
+
# @!attribute [rw] scope
|
|
3947
|
+
# Specifies whether the web ACL is for an Amazon Web Services
|
|
3948
|
+
# CloudFront distribution or for a regional application. A regional
|
|
3949
|
+
# application can be an Application Load Balancer, an AppSync GraphQL
|
|
3950
|
+
# API, an Amazon Cognito user pool, an Amazon Web Services App Runner
|
|
3951
|
+
# service, or an Amazon Web Services Verified Access instance.
|
|
3952
|
+
# @return [String]
|
|
3953
|
+
#
|
|
3954
|
+
# @!attribute [rw] uri_path_prefix
|
|
3955
|
+
# A URI path prefix to filter the results. When you specify this
|
|
3956
|
+
# parameter, the operation returns statistics for individual URIs
|
|
3957
|
+
# within the specified path prefix. For example, if you specify
|
|
3958
|
+
# `/api`, the response includes statistics for paths like
|
|
3959
|
+
# `/api/v1/users` and `/api/v2/orders`. If you don't specify this
|
|
3960
|
+
# parameter, the operation returns top-level path statistics.
|
|
3961
|
+
# @return [String]
|
|
3962
|
+
#
|
|
3963
|
+
# @!attribute [rw] time_window
|
|
3964
|
+
# The time window for which you want to retrieve path statistics. The
|
|
3965
|
+
# time window must be within the data retention period for your web
|
|
3966
|
+
# ACL.
|
|
3967
|
+
# @return [Types::TimeWindow]
|
|
3968
|
+
#
|
|
3969
|
+
# @!attribute [rw] bot_category
|
|
3970
|
+
# Filters the results to include only traffic from bots in the
|
|
3971
|
+
# specified category. For example, you can filter by `ai` to see only
|
|
3972
|
+
# AI crawler traffic, or `search_engine` to see only search engine bot
|
|
3973
|
+
# traffic. When you apply this filter, the `Source` field is populated
|
|
3974
|
+
# in the response.
|
|
3975
|
+
# @return [String]
|
|
3976
|
+
#
|
|
3977
|
+
# @!attribute [rw] bot_organization
|
|
3978
|
+
# Filters the results to include only traffic from bots belonging to
|
|
3979
|
+
# the specified organization. For example, you can filter by `openai`
|
|
3980
|
+
# or `google`. When you apply this filter, the `Source` field is
|
|
3981
|
+
# populated in the response.
|
|
3982
|
+
# @return [String]
|
|
3983
|
+
#
|
|
3984
|
+
# @!attribute [rw] bot_name
|
|
3985
|
+
# Filters the results to include only traffic from the specified bot.
|
|
3986
|
+
# For example, you can filter by `gptbot` or `googlebot`. When you
|
|
3987
|
+
# apply this filter, the `Source` field is populated in the response.
|
|
3988
|
+
# @return [String]
|
|
3989
|
+
#
|
|
3990
|
+
# @!attribute [rw] limit
|
|
3991
|
+
# The maximum number of path statistics to return. Valid values are 1
|
|
3992
|
+
# to 100.
|
|
3993
|
+
# @return [Integer]
|
|
3994
|
+
#
|
|
3995
|
+
# @!attribute [rw] number_of_top_traffic_bots_per_path
|
|
3996
|
+
# The maximum number of top bots to include in the statistics for each
|
|
3997
|
+
# path. Valid values are 1 to 10.
|
|
3998
|
+
# @return [Integer]
|
|
3999
|
+
#
|
|
4000
|
+
# @!attribute [rw] next_marker
|
|
4001
|
+
# When you request a list of objects with a `Limit` setting, if the
|
|
4002
|
+
# number of objects that are still available for retrieval exceeds the
|
|
4003
|
+
# limit, WAF returns a `NextMarker` value in the response. To retrieve
|
|
4004
|
+
# the next batch of objects, provide the marker from the prior call in
|
|
4005
|
+
# your next request.
|
|
4006
|
+
# @return [String]
|
|
4007
|
+
#
|
|
4008
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetTopPathStatisticsByTrafficRequest AWS API Documentation
|
|
4009
|
+
#
|
|
4010
|
+
class GetTopPathStatisticsByTrafficRequest < Struct.new(
|
|
4011
|
+
:web_acl_arn,
|
|
4012
|
+
:scope,
|
|
4013
|
+
:uri_path_prefix,
|
|
4014
|
+
:time_window,
|
|
4015
|
+
:bot_category,
|
|
4016
|
+
:bot_organization,
|
|
4017
|
+
:bot_name,
|
|
4018
|
+
:limit,
|
|
4019
|
+
:number_of_top_traffic_bots_per_path,
|
|
4020
|
+
:next_marker)
|
|
4021
|
+
SENSITIVE = []
|
|
4022
|
+
include Aws::Structure
|
|
4023
|
+
end
|
|
4024
|
+
|
|
4025
|
+
# @!attribute [rw] path_statistics
|
|
4026
|
+
# The list of path statistics, ordered by request count. Each entry
|
|
4027
|
+
# includes the path, request count, percentage of total traffic, and
|
|
4028
|
+
# the top bots accessing that path.
|
|
4029
|
+
# @return [Array<Types::PathStatistics>]
|
|
4030
|
+
#
|
|
4031
|
+
# @!attribute [rw] total_request_count
|
|
4032
|
+
# The total number of requests that match the query criteria within
|
|
4033
|
+
# the specified time window.
|
|
4034
|
+
# @return [Integer]
|
|
4035
|
+
#
|
|
4036
|
+
# @!attribute [rw] next_marker
|
|
4037
|
+
# When you request a list of objects with a `Limit` setting, if the
|
|
4038
|
+
# number of objects that are still available for retrieval exceeds the
|
|
4039
|
+
# limit, WAF returns a `NextMarker` value in the response. To retrieve
|
|
4040
|
+
# the next batch of objects, provide the marker from the prior call in
|
|
4041
|
+
# your next request.
|
|
4042
|
+
# @return [String]
|
|
4043
|
+
#
|
|
4044
|
+
# @!attribute [rw] top_categories
|
|
4045
|
+
# Category-level aggregations for visualizing bot category to path
|
|
4046
|
+
# relationships. This field is only populated when no bot filters are
|
|
4047
|
+
# applied to the request. Each entry includes the bot category and the
|
|
4048
|
+
# paths accessed by bots in that category.
|
|
4049
|
+
# @return [Array<Types::PathStatistics>]
|
|
4050
|
+
#
|
|
4051
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/GetTopPathStatisticsByTrafficResponse AWS API Documentation
|
|
4052
|
+
#
|
|
4053
|
+
class GetTopPathStatisticsByTrafficResponse < Struct.new(
|
|
4054
|
+
:path_statistics,
|
|
4055
|
+
:total_request_count,
|
|
4056
|
+
:next_marker,
|
|
4057
|
+
:top_categories)
|
|
4058
|
+
SENSITIVE = []
|
|
4059
|
+
include Aws::Structure
|
|
4060
|
+
end
|
|
4061
|
+
|
|
3885
4062
|
# @!attribute [rw] resource_arn
|
|
3886
4063
|
# The Amazon Resource Name (ARN) of the resource whose web ACL you
|
|
3887
4064
|
# want to retrieve.
|
|
@@ -6633,6 +6810,47 @@ module Aws::WAFV2
|
|
|
6633
6810
|
include Aws::Structure
|
|
6634
6811
|
end
|
|
6635
6812
|
|
|
6813
|
+
# Statistics about bot traffic to a specific URI path, including the
|
|
6814
|
+
# path, request count, percentage of total traffic, and the top bots
|
|
6815
|
+
# accessing that path.
|
|
6816
|
+
#
|
|
6817
|
+
# @!attribute [rw] source
|
|
6818
|
+
# Information about the bot filter that was applied to generate these
|
|
6819
|
+
# statistics. This field is only populated when you filter by bot
|
|
6820
|
+
# category, organization, or name.
|
|
6821
|
+
# @return [Types::FilterSource]
|
|
6822
|
+
#
|
|
6823
|
+
# @!attribute [rw] path
|
|
6824
|
+
# The URI path. For example, `/api/` or `/api/v1/users`.
|
|
6825
|
+
# @return [String]
|
|
6826
|
+
#
|
|
6827
|
+
# @!attribute [rw] request_count
|
|
6828
|
+
# The number of requests to this path within the specified time
|
|
6829
|
+
# window.
|
|
6830
|
+
# @return [Integer]
|
|
6831
|
+
#
|
|
6832
|
+
# @!attribute [rw] percentage
|
|
6833
|
+
# The percentage of total requests that were made to this path.
|
|
6834
|
+
# @return [Float]
|
|
6835
|
+
#
|
|
6836
|
+
# @!attribute [rw] top_bots
|
|
6837
|
+
# The list of top bots accessing this path, ordered by request count.
|
|
6838
|
+
# The number of bots included is determined by the
|
|
6839
|
+
# `NumberOfTopTrafficBotsPerPath` parameter in the request.
|
|
6840
|
+
# @return [Array<Types::BotStatistics>]
|
|
6841
|
+
#
|
|
6842
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/wafv2-2019-07-29/PathStatistics AWS API Documentation
|
|
6843
|
+
#
|
|
6844
|
+
class PathStatistics < Struct.new(
|
|
6845
|
+
:source,
|
|
6846
|
+
:path,
|
|
6847
|
+
:request_count,
|
|
6848
|
+
:percentage,
|
|
6849
|
+
:top_bots)
|
|
6850
|
+
SENSITIVE = []
|
|
6851
|
+
include Aws::Structure
|
|
6852
|
+
end
|
|
6853
|
+
|
|
6636
6854
|
# The name of a field in the request payload that contains part or all
|
|
6637
6855
|
# of your customer's primary phone number.
|
|
6638
6856
|
#
|
data/lib/aws-sdk-wafv2.rb
CHANGED
data/sig/client.rbs
CHANGED
|
@@ -3184,6 +3184,31 @@ module Aws
|
|
|
3184
3184
|
) -> _GetSampledRequestsResponseSuccess
|
|
3185
3185
|
| (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetSampledRequestsResponseSuccess
|
|
3186
3186
|
|
|
3187
|
+
interface _GetTopPathStatisticsByTrafficResponseSuccess
|
|
3188
|
+
include ::Seahorse::Client::_ResponseSuccess[Types::GetTopPathStatisticsByTrafficResponse]
|
|
3189
|
+
def path_statistics: () -> ::Array[Types::PathStatistics]
|
|
3190
|
+
def total_request_count: () -> ::Integer
|
|
3191
|
+
def next_marker: () -> ::String
|
|
3192
|
+
def top_categories: () -> ::Array[Types::PathStatistics]
|
|
3193
|
+
end
|
|
3194
|
+
# https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/WAFV2/Client.html#get_top_path_statistics_by_traffic-instance_method
|
|
3195
|
+
def get_top_path_statistics_by_traffic: (
|
|
3196
|
+
web_acl_arn: ::String,
|
|
3197
|
+
scope: ("CLOUDFRONT" | "REGIONAL"),
|
|
3198
|
+
?uri_path_prefix: ::String,
|
|
3199
|
+
time_window: {
|
|
3200
|
+
start_time: ::Time,
|
|
3201
|
+
end_time: ::Time
|
|
3202
|
+
},
|
|
3203
|
+
?bot_category: ::String,
|
|
3204
|
+
?bot_organization: ::String,
|
|
3205
|
+
?bot_name: ::String,
|
|
3206
|
+
limit: ::Integer,
|
|
3207
|
+
number_of_top_traffic_bots_per_path: ::Integer,
|
|
3208
|
+
?next_marker: ::String
|
|
3209
|
+
) -> _GetTopPathStatisticsByTrafficResponseSuccess
|
|
3210
|
+
| (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetTopPathStatisticsByTrafficResponseSuccess
|
|
3211
|
+
|
|
3187
3212
|
interface _GetWebACLResponseSuccess
|
|
3188
3213
|
include ::Seahorse::Client::_ResponseSuccess[Types::GetWebACLResponse]
|
|
3189
3214
|
def web_acl: () -> Types::WebACL
|
data/sig/types.rbs
CHANGED
|
@@ -112,6 +112,13 @@ module Aws::WAFV2
|
|
|
112
112
|
SENSITIVE: []
|
|
113
113
|
end
|
|
114
114
|
|
|
115
|
+
class BotStatistics
|
|
116
|
+
attr_accessor bot_name: ::String
|
|
117
|
+
attr_accessor request_count: ::Integer
|
|
118
|
+
attr_accessor percentage: ::Float
|
|
119
|
+
SENSITIVE: []
|
|
120
|
+
end
|
|
121
|
+
|
|
115
122
|
class ByteMatchStatement
|
|
116
123
|
attr_accessor search_string: ::String
|
|
117
124
|
attr_accessor field_to_match: Types::FieldToMatch
|
|
@@ -503,6 +510,13 @@ module Aws::WAFV2
|
|
|
503
510
|
SENSITIVE: []
|
|
504
511
|
end
|
|
505
512
|
|
|
513
|
+
class FilterSource
|
|
514
|
+
attr_accessor bot_category: ::String
|
|
515
|
+
attr_accessor bot_organization: ::String
|
|
516
|
+
attr_accessor bot_name: ::String
|
|
517
|
+
SENSITIVE: []
|
|
518
|
+
end
|
|
519
|
+
|
|
506
520
|
class FirewallManagerRuleGroup
|
|
507
521
|
attr_accessor name: ::String
|
|
508
522
|
attr_accessor priority: ::Integer
|
|
@@ -670,6 +684,28 @@ module Aws::WAFV2
|
|
|
670
684
|
SENSITIVE: []
|
|
671
685
|
end
|
|
672
686
|
|
|
687
|
+
class GetTopPathStatisticsByTrafficRequest
|
|
688
|
+
attr_accessor web_acl_arn: ::String
|
|
689
|
+
attr_accessor scope: ("CLOUDFRONT" | "REGIONAL")
|
|
690
|
+
attr_accessor uri_path_prefix: ::String
|
|
691
|
+
attr_accessor time_window: Types::TimeWindow
|
|
692
|
+
attr_accessor bot_category: ::String
|
|
693
|
+
attr_accessor bot_organization: ::String
|
|
694
|
+
attr_accessor bot_name: ::String
|
|
695
|
+
attr_accessor limit: ::Integer
|
|
696
|
+
attr_accessor number_of_top_traffic_bots_per_path: ::Integer
|
|
697
|
+
attr_accessor next_marker: ::String
|
|
698
|
+
SENSITIVE: []
|
|
699
|
+
end
|
|
700
|
+
|
|
701
|
+
class GetTopPathStatisticsByTrafficResponse
|
|
702
|
+
attr_accessor path_statistics: ::Array[Types::PathStatistics]
|
|
703
|
+
attr_accessor total_request_count: ::Integer
|
|
704
|
+
attr_accessor next_marker: ::String
|
|
705
|
+
attr_accessor top_categories: ::Array[Types::PathStatistics]
|
|
706
|
+
SENSITIVE: []
|
|
707
|
+
end
|
|
708
|
+
|
|
673
709
|
class GetWebACLForResourceRequest
|
|
674
710
|
attr_accessor resource_arn: ::String
|
|
675
711
|
SENSITIVE: []
|
|
@@ -1109,6 +1145,15 @@ module Aws::WAFV2
|
|
|
1109
1145
|
SENSITIVE: []
|
|
1110
1146
|
end
|
|
1111
1147
|
|
|
1148
|
+
class PathStatistics
|
|
1149
|
+
attr_accessor source: Types::FilterSource
|
|
1150
|
+
attr_accessor path: ::String
|
|
1151
|
+
attr_accessor request_count: ::Integer
|
|
1152
|
+
attr_accessor percentage: ::Float
|
|
1153
|
+
attr_accessor top_bots: ::Array[Types::BotStatistics]
|
|
1154
|
+
SENSITIVE: []
|
|
1155
|
+
end
|
|
1156
|
+
|
|
1112
1157
|
class PhoneNumberField
|
|
1113
1158
|
attr_accessor identifier: ::String
|
|
1114
1159
|
SENSITIVE: []
|