aws-sdk-accessanalyzer 1.65.0 → 1.68.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c3ff3f6bceaf3418b3e54c4ea0d99ede89cc928cd0893b394e36754282a2192b
4
- data.tar.gz: 0b058cdb0c604cd3fbf886753fbb2e0f2b6baaab60841bfca3b8bb20876fdf88
3
+ metadata.gz: d6a758b54268310a3578756259981cef95006a73fb3bf67e8cc0c2fedb029951
4
+ data.tar.gz: 753ad3129338512ec94f43b5849176eea1b63b3b3c0f81a61bfaac5c01813e4c
5
5
  SHA512:
6
- metadata.gz: 83e03b02eacead1f8189b7d20f6ba96cea831e6aeb8940e8bffb2054be060f2fa1e764623443793d320f013df2fd20f03580d421b65081759b5db9bdf9adb43d
7
- data.tar.gz: 9ae70c95401884fae23af2cac48bf25e7bfc6a59daa12ee7250ed7c7ed880bb237cf09a483125682ee5abd478eb50f45bcdc0e6a945b4dfe8f86acdcb086296c
6
+ metadata.gz: d47d510d82a8bf11d76a90bd080488aa0bbc0429fc8860e9e8256fde946e8d24fb356cd1cd7ae379d9cb39a2d7fb97570bdd32e27a7b6b4d7223d26cb8c07dfa
7
+ data.tar.gz: 28c2767536244207a831fe0a4ab6dfb2621efae58b7b1668de3725019bc00cee9e267c7ac6ce6e31a07d22ec3fd574033a8a558a005c036e07d971a83c2d2581
data/CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.68.0 (2025-02-18)
5
+ ------------------
6
+
7
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
8
+
9
+ 1.67.0 (2025-02-13)
10
+ ------------------
11
+
12
+ * Feature - This release introduces the getFindingsStatistics API, enabling users to retrieve aggregated finding statistics for IAM Access Analyzer's external access and unused access analysis features. Updated service API and documentation.
13
+
14
+ 1.66.0 (2025-02-06)
15
+ ------------------
16
+
17
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
18
+
4
19
  1.65.0 (2025-01-15)
5
20
  ------------------
6
21
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.65.0
1
+ 1.68.0
@@ -7,34 +7,34 @@
7
7
  #
8
8
  # WARNING ABOUT GENERATED CODE
9
9
 
10
- require 'seahorse/client/plugins/content_length.rb'
11
- require 'aws-sdk-core/plugins/credentials_configuration.rb'
12
- require 'aws-sdk-core/plugins/logging.rb'
13
- require 'aws-sdk-core/plugins/param_converter.rb'
14
- require 'aws-sdk-core/plugins/param_validator.rb'
15
- require 'aws-sdk-core/plugins/user_agent.rb'
16
- require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
17
- require 'aws-sdk-core/plugins/retry_errors.rb'
18
- require 'aws-sdk-core/plugins/global_configuration.rb'
19
- require 'aws-sdk-core/plugins/regional_endpoint.rb'
20
- require 'aws-sdk-core/plugins/endpoint_discovery.rb'
21
- require 'aws-sdk-core/plugins/endpoint_pattern.rb'
22
- require 'aws-sdk-core/plugins/response_paging.rb'
23
- require 'aws-sdk-core/plugins/stub_responses.rb'
24
- require 'aws-sdk-core/plugins/idempotency_token.rb'
25
- require 'aws-sdk-core/plugins/invocation_id.rb'
26
- require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
27
- require 'aws-sdk-core/plugins/client_metrics_plugin.rb'
28
- require 'aws-sdk-core/plugins/client_metrics_send_plugin.rb'
29
- require 'aws-sdk-core/plugins/transfer_encoding.rb'
30
- require 'aws-sdk-core/plugins/http_checksum.rb'
31
- require 'aws-sdk-core/plugins/checksum_algorithm.rb'
32
- require 'aws-sdk-core/plugins/request_compression.rb'
33
- require 'aws-sdk-core/plugins/defaults_mode.rb'
34
- require 'aws-sdk-core/plugins/recursion_detection.rb'
35
- require 'aws-sdk-core/plugins/telemetry.rb'
36
- require 'aws-sdk-core/plugins/sign.rb'
37
- require 'aws-sdk-core/plugins/protocols/rest_json.rb'
10
+ require 'seahorse/client/plugins/content_length'
11
+ require 'aws-sdk-core/plugins/credentials_configuration'
12
+ require 'aws-sdk-core/plugins/logging'
13
+ require 'aws-sdk-core/plugins/param_converter'
14
+ require 'aws-sdk-core/plugins/param_validator'
15
+ require 'aws-sdk-core/plugins/user_agent'
16
+ require 'aws-sdk-core/plugins/helpful_socket_errors'
17
+ require 'aws-sdk-core/plugins/retry_errors'
18
+ require 'aws-sdk-core/plugins/global_configuration'
19
+ require 'aws-sdk-core/plugins/regional_endpoint'
20
+ require 'aws-sdk-core/plugins/endpoint_discovery'
21
+ require 'aws-sdk-core/plugins/endpoint_pattern'
22
+ require 'aws-sdk-core/plugins/response_paging'
23
+ require 'aws-sdk-core/plugins/stub_responses'
24
+ require 'aws-sdk-core/plugins/idempotency_token'
25
+ require 'aws-sdk-core/plugins/invocation_id'
26
+ require 'aws-sdk-core/plugins/jsonvalue_converter'
27
+ require 'aws-sdk-core/plugins/client_metrics_plugin'
28
+ require 'aws-sdk-core/plugins/client_metrics_send_plugin'
29
+ require 'aws-sdk-core/plugins/transfer_encoding'
30
+ require 'aws-sdk-core/plugins/http_checksum'
31
+ require 'aws-sdk-core/plugins/checksum_algorithm'
32
+ require 'aws-sdk-core/plugins/request_compression'
33
+ require 'aws-sdk-core/plugins/defaults_mode'
34
+ require 'aws-sdk-core/plugins/recursion_detection'
35
+ require 'aws-sdk-core/plugins/telemetry'
36
+ require 'aws-sdk-core/plugins/sign'
37
+ require 'aws-sdk-core/plugins/protocols/rest_json'
38
38
 
39
39
  module Aws::AccessAnalyzer
40
40
  # An API client for AccessAnalyzer. To construct a client, you need to configure a `:region` and `:credentials`.
@@ -1747,6 +1747,58 @@ module Aws::AccessAnalyzer
1747
1747
  req.send_request(options)
1748
1748
  end
1749
1749
 
1750
+ # Retrieves a list of aggregated finding statistics for an external
1751
+ # access or unused access analyzer.
1752
+ #
1753
+ # @option params [required, String] :analyzer_arn
1754
+ # The [ARN of the analyzer][1] used to generate the statistics.
1755
+ #
1756
+ #
1757
+ #
1758
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources
1759
+ #
1760
+ # @return [Types::GetFindingsStatisticsResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1761
+ #
1762
+ # * {Types::GetFindingsStatisticsResponse#findings_statistics #findings_statistics} => Array<Types::FindingsStatistics>
1763
+ # * {Types::GetFindingsStatisticsResponse#last_updated_at #last_updated_at} => Time
1764
+ #
1765
+ # @example Request syntax with placeholder values
1766
+ #
1767
+ # resp = client.get_findings_statistics({
1768
+ # analyzer_arn: "AnalyzerArn", # required
1769
+ # })
1770
+ #
1771
+ # @example Response structure
1772
+ #
1773
+ # resp.findings_statistics #=> Array
1774
+ # resp.findings_statistics[0].external_access_findings_statistics.resource_type_statistics #=> Hash
1775
+ # resp.findings_statistics[0].external_access_findings_statistics.resource_type_statistics["ResourceType"].total_active_public #=> Integer
1776
+ # resp.findings_statistics[0].external_access_findings_statistics.resource_type_statistics["ResourceType"].total_active_cross_account #=> Integer
1777
+ # resp.findings_statistics[0].external_access_findings_statistics.total_active_findings #=> Integer
1778
+ # resp.findings_statistics[0].external_access_findings_statistics.total_archived_findings #=> Integer
1779
+ # resp.findings_statistics[0].external_access_findings_statistics.total_resolved_findings #=> Integer
1780
+ # resp.findings_statistics[0].unused_access_findings_statistics.unused_access_type_statistics #=> Array
1781
+ # resp.findings_statistics[0].unused_access_findings_statistics.unused_access_type_statistics[0].unused_access_type #=> String
1782
+ # resp.findings_statistics[0].unused_access_findings_statistics.unused_access_type_statistics[0].total #=> Integer
1783
+ # resp.findings_statistics[0].unused_access_findings_statistics.top_accounts #=> Array
1784
+ # resp.findings_statistics[0].unused_access_findings_statistics.top_accounts[0].account #=> String
1785
+ # resp.findings_statistics[0].unused_access_findings_statistics.top_accounts[0].number_of_active_findings #=> Integer
1786
+ # resp.findings_statistics[0].unused_access_findings_statistics.top_accounts[0].details #=> Hash
1787
+ # resp.findings_statistics[0].unused_access_findings_statistics.top_accounts[0].details["String"] #=> Integer
1788
+ # resp.findings_statistics[0].unused_access_findings_statistics.total_active_findings #=> Integer
1789
+ # resp.findings_statistics[0].unused_access_findings_statistics.total_archived_findings #=> Integer
1790
+ # resp.findings_statistics[0].unused_access_findings_statistics.total_resolved_findings #=> Integer
1791
+ # resp.last_updated_at #=> Time
1792
+ #
1793
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFindingsStatistics AWS API Documentation
1794
+ #
1795
+ # @overload get_findings_statistics(params = {})
1796
+ # @param [Hash] params ({})
1797
+ def get_findings_statistics(params = {}, options = {})
1798
+ req = build_request(:get_findings_statistics, params)
1799
+ req.send_request(options)
1800
+ end
1801
+
1750
1802
  # Retrieves the policy that was generated using `StartPolicyGeneration`.
1751
1803
  #
1752
1804
  # @option params [required, String] :job_id
@@ -2774,7 +2826,7 @@ module Aws::AccessAnalyzer
2774
2826
  tracer: tracer
2775
2827
  )
2776
2828
  context[:gem_name] = 'aws-sdk-accessanalyzer'
2777
- context[:gem_version] = '1.65.0'
2829
+ context[:gem_version] = '1.68.0'
2778
2830
  Seahorse::Client::Request.new(handlers, context)
2779
2831
  end
2780
2832
 
@@ -33,6 +33,7 @@ module Aws::AccessAnalyzer
33
33
  AccessPreviewSummary = Shapes::StructureShape.new(name: 'AccessPreviewSummary')
34
34
  AccessPreviewsList = Shapes::ListShape.new(name: 'AccessPreviewsList')
35
35
  AccessResourcesList = Shapes::ListShape.new(name: 'AccessResourcesList')
36
+ AccountAggregations = Shapes::ListShape.new(name: 'AccountAggregations')
36
37
  AccountIdsList = Shapes::ListShape.new(name: 'AccountIdsList')
37
38
  AclCanonicalId = Shapes::StringShape.new(name: 'AclCanonicalId')
38
39
  AclGrantee = Shapes::UnionShape.new(name: 'AclGrantee')
@@ -98,8 +99,11 @@ module Aws::AccessAnalyzer
98
99
  EfsFileSystemConfiguration = Shapes::StructureShape.new(name: 'EfsFileSystemConfiguration')
99
100
  EfsFileSystemPolicy = Shapes::StringShape.new(name: 'EfsFileSystemPolicy')
100
101
  ExternalAccessDetails = Shapes::StructureShape.new(name: 'ExternalAccessDetails')
102
+ ExternalAccessFindingsStatistics = Shapes::StructureShape.new(name: 'ExternalAccessFindingsStatistics')
101
103
  FilterCriteriaMap = Shapes::MapShape.new(name: 'FilterCriteriaMap')
102
104
  Finding = Shapes::StructureShape.new(name: 'Finding')
105
+ FindingAggregationAccountDetails = Shapes::StructureShape.new(name: 'FindingAggregationAccountDetails')
106
+ FindingAggregationAccountDetailsMap = Shapes::MapShape.new(name: 'FindingAggregationAccountDetailsMap')
103
107
  FindingChangeType = Shapes::StringShape.new(name: 'FindingChangeType')
104
108
  FindingDetails = Shapes::UnionShape.new(name: 'FindingDetails')
105
109
  FindingDetailsList = Shapes::ListShape.new(name: 'FindingDetailsList')
@@ -116,6 +120,8 @@ module Aws::AccessAnalyzer
116
120
  FindingType = Shapes::StringShape.new(name: 'FindingType')
117
121
  FindingsList = Shapes::ListShape.new(name: 'FindingsList')
118
122
  FindingsListV2 = Shapes::ListShape.new(name: 'FindingsListV2')
123
+ FindingsStatistics = Shapes::UnionShape.new(name: 'FindingsStatistics')
124
+ FindingsStatisticsList = Shapes::ListShape.new(name: 'FindingsStatisticsList')
119
125
  GenerateFindingRecommendationRequest = Shapes::StructureShape.new(name: 'GenerateFindingRecommendationRequest')
120
126
  GenerateFindingRecommendationRequestIdString = Shapes::StringShape.new(name: 'GenerateFindingRecommendationRequestIdString')
121
127
  GeneratedPolicy = Shapes::StructureShape.new(name: 'GeneratedPolicy')
@@ -138,6 +144,8 @@ module Aws::AccessAnalyzer
138
144
  GetFindingResponse = Shapes::StructureShape.new(name: 'GetFindingResponse')
139
145
  GetFindingV2Request = Shapes::StructureShape.new(name: 'GetFindingV2Request')
140
146
  GetFindingV2Response = Shapes::StructureShape.new(name: 'GetFindingV2Response')
147
+ GetFindingsStatisticsRequest = Shapes::StructureShape.new(name: 'GetFindingsStatisticsRequest')
148
+ GetFindingsStatisticsResponse = Shapes::StructureShape.new(name: 'GetFindingsStatisticsResponse')
141
149
  GetGeneratedPolicyRequest = Shapes::StructureShape.new(name: 'GetGeneratedPolicyRequest')
142
150
  GetGeneratedPolicyResponse = Shapes::StructureShape.new(name: 'GetGeneratedPolicyResponse')
143
151
  GranteePrincipal = Shapes::StringShape.new(name: 'GranteePrincipal')
@@ -232,6 +240,8 @@ module Aws::AccessAnalyzer
232
240
  ResourceControlPolicyRestriction = Shapes::StringShape.new(name: 'ResourceControlPolicyRestriction')
233
241
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
234
242
  ResourceType = Shapes::StringShape.new(name: 'ResourceType')
243
+ ResourceTypeDetails = Shapes::StructureShape.new(name: 'ResourceTypeDetails')
244
+ ResourceTypeStatisticsMap = Shapes::MapShape.new(name: 'ResourceTypeStatisticsMap')
235
245
  RetiringPrincipal = Shapes::StringShape.new(name: 'RetiringPrincipal')
236
246
  RoleArn = Shapes::StringShape.new(name: 'RoleArn')
237
247
  S3AccessPointConfiguration = Shapes::StructureShape.new(name: 'S3AccessPointConfiguration')
@@ -278,6 +288,9 @@ module Aws::AccessAnalyzer
278
288
  UntagResourceRequest = Shapes::StructureShape.new(name: 'UntagResourceRequest')
279
289
  UntagResourceResponse = Shapes::StructureShape.new(name: 'UntagResourceResponse')
280
290
  UnusedAccessConfiguration = Shapes::StructureShape.new(name: 'UnusedAccessConfiguration')
291
+ UnusedAccessFindingsStatistics = Shapes::StructureShape.new(name: 'UnusedAccessFindingsStatistics')
292
+ UnusedAccessTypeStatistics = Shapes::StructureShape.new(name: 'UnusedAccessTypeStatistics')
293
+ UnusedAccessTypeStatisticsList = Shapes::ListShape.new(name: 'UnusedAccessTypeStatisticsList')
281
294
  UnusedAction = Shapes::StructureShape.new(name: 'UnusedAction')
282
295
  UnusedActionList = Shapes::ListShape.new(name: 'UnusedActionList')
283
296
  UnusedIamRoleDetails = Shapes::StructureShape.new(name: 'UnusedIamRoleDetails')
@@ -354,6 +367,8 @@ module Aws::AccessAnalyzer
354
367
 
355
368
  AccessResourcesList.member = Shapes::ShapeRef.new(shape: Resource)
356
369
 
370
+ AccountAggregations.member = Shapes::ShapeRef.new(shape: FindingAggregationAccountDetails)
371
+
357
372
  AccountIdsList.member = Shapes::ShapeRef.new(shape: String)
358
373
 
359
374
  AclGrantee.add_member(:id, Shapes::ShapeRef.new(shape: AclCanonicalId, location_name: "id"))
@@ -587,6 +602,12 @@ module Aws::AccessAnalyzer
587
602
  ExternalAccessDetails.add_member(:resource_control_policy_restriction, Shapes::ShapeRef.new(shape: ResourceControlPolicyRestriction, location_name: "resourceControlPolicyRestriction"))
588
603
  ExternalAccessDetails.struct_class = Types::ExternalAccessDetails
589
604
 
605
+ ExternalAccessFindingsStatistics.add_member(:resource_type_statistics, Shapes::ShapeRef.new(shape: ResourceTypeStatisticsMap, location_name: "resourceTypeStatistics"))
606
+ ExternalAccessFindingsStatistics.add_member(:total_active_findings, Shapes::ShapeRef.new(shape: Integer, location_name: "totalActiveFindings"))
607
+ ExternalAccessFindingsStatistics.add_member(:total_archived_findings, Shapes::ShapeRef.new(shape: Integer, location_name: "totalArchivedFindings"))
608
+ ExternalAccessFindingsStatistics.add_member(:total_resolved_findings, Shapes::ShapeRef.new(shape: Integer, location_name: "totalResolvedFindings"))
609
+ ExternalAccessFindingsStatistics.struct_class = Types::ExternalAccessFindingsStatistics
610
+
590
611
  FilterCriteriaMap.key = Shapes::ShapeRef.new(shape: String)
591
612
  FilterCriteriaMap.value = Shapes::ShapeRef.new(shape: Criterion)
592
613
 
@@ -607,6 +628,14 @@ module Aws::AccessAnalyzer
607
628
  Finding.add_member(:resource_control_policy_restriction, Shapes::ShapeRef.new(shape: ResourceControlPolicyRestriction, location_name: "resourceControlPolicyRestriction"))
608
629
  Finding.struct_class = Types::Finding
609
630
 
631
+ FindingAggregationAccountDetails.add_member(:account, Shapes::ShapeRef.new(shape: String, location_name: "account"))
632
+ FindingAggregationAccountDetails.add_member(:number_of_active_findings, Shapes::ShapeRef.new(shape: Integer, location_name: "numberOfActiveFindings"))
633
+ FindingAggregationAccountDetails.add_member(:details, Shapes::ShapeRef.new(shape: FindingAggregationAccountDetailsMap, location_name: "details"))
634
+ FindingAggregationAccountDetails.struct_class = Types::FindingAggregationAccountDetails
635
+
636
+ FindingAggregationAccountDetailsMap.key = Shapes::ShapeRef.new(shape: String)
637
+ FindingAggregationAccountDetailsMap.value = Shapes::ShapeRef.new(shape: Integer)
638
+
610
639
  FindingDetails.add_member(:external_access_details, Shapes::ShapeRef.new(shape: ExternalAccessDetails, location_name: "externalAccessDetails"))
611
640
  FindingDetails.add_member(:unused_permission_details, Shapes::ShapeRef.new(shape: UnusedPermissionDetails, location_name: "unusedPermissionDetails"))
612
641
  FindingDetails.add_member(:unused_iam_user_access_key_details, Shapes::ShapeRef.new(shape: UnusedIamUserAccessKeyDetails, location_name: "unusedIamUserAccessKeyDetails"))
@@ -668,6 +697,16 @@ module Aws::AccessAnalyzer
668
697
 
669
698
  FindingsListV2.member = Shapes::ShapeRef.new(shape: FindingSummaryV2)
670
699
 
700
+ FindingsStatistics.add_member(:external_access_findings_statistics, Shapes::ShapeRef.new(shape: ExternalAccessFindingsStatistics, location_name: "externalAccessFindingsStatistics"))
701
+ FindingsStatistics.add_member(:unused_access_findings_statistics, Shapes::ShapeRef.new(shape: UnusedAccessFindingsStatistics, location_name: "unusedAccessFindingsStatistics"))
702
+ FindingsStatistics.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
703
+ FindingsStatistics.add_member_subclass(:external_access_findings_statistics, Types::FindingsStatistics::ExternalAccessFindingsStatistics)
704
+ FindingsStatistics.add_member_subclass(:unused_access_findings_statistics, Types::FindingsStatistics::UnusedAccessFindingsStatistics)
705
+ FindingsStatistics.add_member_subclass(:unknown, Types::FindingsStatistics::Unknown)
706
+ FindingsStatistics.struct_class = Types::FindingsStatistics
707
+
708
+ FindingsStatisticsList.member = Shapes::ShapeRef.new(shape: FindingsStatistics)
709
+
671
710
  GenerateFindingRecommendationRequest.add_member(:analyzer_arn, Shapes::ShapeRef.new(shape: AnalyzerArn, required: true, location: "querystring", location_name: "analyzerArn"))
672
711
  GenerateFindingRecommendationRequest.add_member(:id, Shapes::ShapeRef.new(shape: GenerateFindingRecommendationRequestIdString, required: true, location: "uri", location_name: "id"))
673
712
  GenerateFindingRecommendationRequest.struct_class = Types::GenerateFindingRecommendationRequest
@@ -756,6 +795,13 @@ module Aws::AccessAnalyzer
756
795
  GetFindingV2Response.add_member(:finding_type, Shapes::ShapeRef.new(shape: FindingType, location_name: "findingType"))
757
796
  GetFindingV2Response.struct_class = Types::GetFindingV2Response
758
797
 
798
+ GetFindingsStatisticsRequest.add_member(:analyzer_arn, Shapes::ShapeRef.new(shape: AnalyzerArn, required: true, location_name: "analyzerArn"))
799
+ GetFindingsStatisticsRequest.struct_class = Types::GetFindingsStatisticsRequest
800
+
801
+ GetFindingsStatisticsResponse.add_member(:findings_statistics, Shapes::ShapeRef.new(shape: FindingsStatisticsList, location_name: "findingsStatistics"))
802
+ GetFindingsStatisticsResponse.add_member(:last_updated_at, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastUpdatedAt"))
803
+ GetFindingsStatisticsResponse.struct_class = Types::GetFindingsStatisticsResponse
804
+
759
805
  GetGeneratedPolicyRequest.add_member(:job_id, Shapes::ShapeRef.new(shape: JobId, required: true, location: "uri", location_name: "jobId"))
760
806
  GetGeneratedPolicyRequest.add_member(:include_resource_placeholders, Shapes::ShapeRef.new(shape: Boolean, location: "querystring", location_name: "includeResourcePlaceholders"))
761
807
  GetGeneratedPolicyRequest.add_member(:include_service_level_template, Shapes::ShapeRef.new(shape: Boolean, location: "querystring", location_name: "includeServiceLevelTemplate"))
@@ -1008,6 +1054,13 @@ module Aws::AccessAnalyzer
1008
1054
  ResourceNotFoundException.add_member(:resource_type, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceType"))
1009
1055
  ResourceNotFoundException.struct_class = Types::ResourceNotFoundException
1010
1056
 
1057
+ ResourceTypeDetails.add_member(:total_active_public, Shapes::ShapeRef.new(shape: Integer, location_name: "totalActivePublic"))
1058
+ ResourceTypeDetails.add_member(:total_active_cross_account, Shapes::ShapeRef.new(shape: Integer, location_name: "totalActiveCrossAccount"))
1059
+ ResourceTypeDetails.struct_class = Types::ResourceTypeDetails
1060
+
1061
+ ResourceTypeStatisticsMap.key = Shapes::ShapeRef.new(shape: ResourceType)
1062
+ ResourceTypeStatisticsMap.value = Shapes::ShapeRef.new(shape: ResourceTypeDetails)
1063
+
1011
1064
  S3AccessPointConfiguration.add_member(:access_point_policy, Shapes::ShapeRef.new(shape: AccessPointPolicy, location_name: "accessPointPolicy"))
1012
1065
  S3AccessPointConfiguration.add_member(:public_access_block, Shapes::ShapeRef.new(shape: S3PublicAccessBlockConfiguration, location_name: "publicAccessBlock"))
1013
1066
  S3AccessPointConfiguration.add_member(:network_origin, Shapes::ShapeRef.new(shape: NetworkOriginConfiguration, location_name: "networkOrigin"))
@@ -1124,6 +1177,19 @@ module Aws::AccessAnalyzer
1124
1177
  UnusedAccessConfiguration.add_member(:analysis_rule, Shapes::ShapeRef.new(shape: AnalysisRule, location_name: "analysisRule"))
1125
1178
  UnusedAccessConfiguration.struct_class = Types::UnusedAccessConfiguration
1126
1179
 
1180
+ UnusedAccessFindingsStatistics.add_member(:unused_access_type_statistics, Shapes::ShapeRef.new(shape: UnusedAccessTypeStatisticsList, location_name: "unusedAccessTypeStatistics"))
1181
+ UnusedAccessFindingsStatistics.add_member(:top_accounts, Shapes::ShapeRef.new(shape: AccountAggregations, location_name: "topAccounts"))
1182
+ UnusedAccessFindingsStatistics.add_member(:total_active_findings, Shapes::ShapeRef.new(shape: Integer, location_name: "totalActiveFindings"))
1183
+ UnusedAccessFindingsStatistics.add_member(:total_archived_findings, Shapes::ShapeRef.new(shape: Integer, location_name: "totalArchivedFindings"))
1184
+ UnusedAccessFindingsStatistics.add_member(:total_resolved_findings, Shapes::ShapeRef.new(shape: Integer, location_name: "totalResolvedFindings"))
1185
+ UnusedAccessFindingsStatistics.struct_class = Types::UnusedAccessFindingsStatistics
1186
+
1187
+ UnusedAccessTypeStatistics.add_member(:unused_access_type, Shapes::ShapeRef.new(shape: String, location_name: "unusedAccessType"))
1188
+ UnusedAccessTypeStatistics.add_member(:total, Shapes::ShapeRef.new(shape: Integer, location_name: "total"))
1189
+ UnusedAccessTypeStatistics.struct_class = Types::UnusedAccessTypeStatistics
1190
+
1191
+ UnusedAccessTypeStatisticsList.member = Shapes::ShapeRef.new(shape: UnusedAccessTypeStatistics)
1192
+
1127
1193
  UnusedAction.add_member(:action, Shapes::ShapeRef.new(shape: String, required: true, location_name: "action"))
1128
1194
  UnusedAction.add_member(:last_accessed, Shapes::ShapeRef.new(shape: Timestamp, location_name: "lastAccessed"))
1129
1195
  UnusedAction.struct_class = Types::UnusedAction
@@ -1479,6 +1545,19 @@ module Aws::AccessAnalyzer
1479
1545
  )
1480
1546
  end)
1481
1547
 
1548
+ api.add_operation(:get_findings_statistics, Seahorse::Model::Operation.new.tap do |o|
1549
+ o.name = "GetFindingsStatistics"
1550
+ o.http_method = "POST"
1551
+ o.http_request_uri = "/analyzer/findings/statistics"
1552
+ o.input = Shapes::ShapeRef.new(shape: GetFindingsStatisticsRequest)
1553
+ o.output = Shapes::ShapeRef.new(shape: GetFindingsStatisticsResponse)
1554
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1555
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
1556
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1557
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1558
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1559
+ end)
1560
+
1482
1561
  api.add_operation(:get_generated_policy, Seahorse::Model::Operation.new.tap do |o|
1483
1562
  o.name = "GetGeneratedPolicy"
1484
1563
  o.http_method = "GET"
@@ -10,43 +10,39 @@
10
10
  module Aws::AccessAnalyzer
11
11
  class EndpointProvider
12
12
  def resolve_endpoint(parameters)
13
- region = parameters.region
14
- use_dual_stack = parameters.use_dual_stack
15
- use_fips = parameters.use_fips
16
- endpoint = parameters.endpoint
17
- if Aws::Endpoints::Matchers.set?(endpoint)
18
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
13
+ if Aws::Endpoints::Matchers.set?(parameters.endpoint)
14
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
19
15
  raise ArgumentError, "Invalid Configuration: FIPS and custom endpoint are not supported"
20
16
  end
21
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
17
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
22
18
  raise ArgumentError, "Invalid Configuration: Dualstack and custom endpoint are not supported"
23
19
  end
24
- return Aws::Endpoints::Endpoint.new(url: endpoint, headers: {}, properties: {})
20
+ return Aws::Endpoints::Endpoint.new(url: parameters.endpoint, headers: {}, properties: {})
25
21
  end
26
- if Aws::Endpoints::Matchers.set?(region)
27
- if (partition_result = Aws::Endpoints::Matchers.aws_partition(region))
28
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
22
+ if Aws::Endpoints::Matchers.set?(parameters.region)
23
+ if (partition_result = Aws::Endpoints::Matchers.aws_partition(parameters.region))
24
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true) && Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
29
25
  if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS")) && Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
30
- return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer-fips.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
26
+ return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer-fips.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
31
27
  end
32
28
  raise ArgumentError, "FIPS and DualStack are enabled, but this partition does not support one or both"
33
29
  end
34
- if Aws::Endpoints::Matchers.boolean_equals?(use_fips, true)
30
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_fips, true)
35
31
  if Aws::Endpoints::Matchers.boolean_equals?(Aws::Endpoints::Matchers.attr(partition_result, "supportsFIPS"), true)
36
32
  if Aws::Endpoints::Matchers.string_equals?(Aws::Endpoints::Matchers.attr(partition_result, "name"), "aws-us-gov")
37
- return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer.#{region}.amazonaws.com", headers: {}, properties: {})
33
+ return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer.#{parameters.region}.amazonaws.com", headers: {}, properties: {})
38
34
  end
39
- return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer-fips.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
35
+ return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer-fips.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
40
36
  end
41
37
  raise ArgumentError, "FIPS is enabled but this partition does not support FIPS"
42
38
  end
43
- if Aws::Endpoints::Matchers.boolean_equals?(use_dual_stack, true)
39
+ if Aws::Endpoints::Matchers.boolean_equals?(parameters.use_dual_stack, true)
44
40
  if Aws::Endpoints::Matchers.boolean_equals?(true, Aws::Endpoints::Matchers.attr(partition_result, "supportsDualStack"))
45
- return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer.#{region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
41
+ return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer.#{parameters.region}.#{partition_result['dualStackDnsSuffix']}", headers: {}, properties: {})
46
42
  end
47
43
  raise ArgumentError, "DualStack is enabled but this partition does not support DualStack"
48
44
  end
49
- return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer.#{region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
45
+ return Aws::Endpoints::Endpoint.new(url: "https://access-analyzer.#{parameters.region}.#{partition_result['dnsSuffix']}", headers: {}, properties: {})
50
46
  end
51
47
  end
52
48
  raise ArgumentError, "Invalid Configuration: Missing Region"
@@ -1494,6 +1494,40 @@ module Aws::AccessAnalyzer
1494
1494
  include Aws::Structure
1495
1495
  end
1496
1496
 
1497
+ # Provides aggregate statistics about the findings for the specified
1498
+ # external access analyzer.
1499
+ #
1500
+ # @!attribute [rw] resource_type_statistics
1501
+ # The total number of active cross-account and public findings for
1502
+ # each resource type of the specified external access analyzer.
1503
+ # @return [Hash<String,Types::ResourceTypeDetails>]
1504
+ #
1505
+ # @!attribute [rw] total_active_findings
1506
+ # The number of active findings for the specified external access
1507
+ # analyzer.
1508
+ # @return [Integer]
1509
+ #
1510
+ # @!attribute [rw] total_archived_findings
1511
+ # The number of archived findings for the specified external access
1512
+ # analyzer.
1513
+ # @return [Integer]
1514
+ #
1515
+ # @!attribute [rw] total_resolved_findings
1516
+ # The number of resolved findings for the specified external access
1517
+ # analyzer.
1518
+ # @return [Integer]
1519
+ #
1520
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ExternalAccessFindingsStatistics AWS API Documentation
1521
+ #
1522
+ class ExternalAccessFindingsStatistics < Struct.new(
1523
+ :resource_type_statistics,
1524
+ :total_active_findings,
1525
+ :total_archived_findings,
1526
+ :total_resolved_findings)
1527
+ SENSITIVE = []
1528
+ include Aws::Structure
1529
+ end
1530
+
1497
1531
  # Contains information about a finding.
1498
1532
  #
1499
1533
  # @!attribute [rw] id
@@ -1585,6 +1619,34 @@ module Aws::AccessAnalyzer
1585
1619
  include Aws::Structure
1586
1620
  end
1587
1621
 
1622
+ # Contains information about the findings for an Amazon Web Services
1623
+ # account in an organization unused access analyzer.
1624
+ #
1625
+ # @!attribute [rw] account
1626
+ # The ID of the Amazon Web Services account for which unused access
1627
+ # finding details are provided.
1628
+ # @return [String]
1629
+ #
1630
+ # @!attribute [rw] number_of_active_findings
1631
+ # The number of active unused access findings for the specified Amazon
1632
+ # Web Services account.
1633
+ # @return [Integer]
1634
+ #
1635
+ # @!attribute [rw] details
1636
+ # Provides the number of active findings for each type of unused
1637
+ # access for the specified Amazon Web Services account.
1638
+ # @return [Hash<String,Integer>]
1639
+ #
1640
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/FindingAggregationAccountDetails AWS API Documentation
1641
+ #
1642
+ class FindingAggregationAccountDetails < Struct.new(
1643
+ :account,
1644
+ :number_of_active_findings,
1645
+ :details)
1646
+ SENSITIVE = []
1647
+ include Aws::Structure
1648
+ end
1649
+
1588
1650
  # Contains information about an external access or unused access
1589
1651
  # finding. Only one parameter can be used in a `FindingDetails` object.
1590
1652
  #
@@ -1832,6 +1894,35 @@ module Aws::AccessAnalyzer
1832
1894
  include Aws::Structure
1833
1895
  end
1834
1896
 
1897
+ # Contains information about the aggregate statistics for an external or
1898
+ # unused access analyzer. Only one parameter can be used in a
1899
+ # `FindingsStatistics` object.
1900
+ #
1901
+ # @note FindingsStatistics is a union - when returned from an API call exactly one value will be set and the returned type will be a subclass of FindingsStatistics corresponding to the set member.
1902
+ #
1903
+ # @!attribute [rw] external_access_findings_statistics
1904
+ # The aggregate statistics for an external access analyzer.
1905
+ # @return [Types::ExternalAccessFindingsStatistics]
1906
+ #
1907
+ # @!attribute [rw] unused_access_findings_statistics
1908
+ # The aggregate statistics for an unused access analyzer.
1909
+ # @return [Types::UnusedAccessFindingsStatistics]
1910
+ #
1911
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/FindingsStatistics AWS API Documentation
1912
+ #
1913
+ class FindingsStatistics < Struct.new(
1914
+ :external_access_findings_statistics,
1915
+ :unused_access_findings_statistics,
1916
+ :unknown)
1917
+ SENSITIVE = []
1918
+ include Aws::Structure
1919
+ include Aws::Structure::Union
1920
+
1921
+ class ExternalAccessFindingsStatistics < FindingsStatistics; end
1922
+ class UnusedAccessFindingsStatistics < FindingsStatistics; end
1923
+ class Unknown < FindingsStatistics; end
1924
+ end
1925
+
1835
1926
  # @!attribute [rw] analyzer_arn
1836
1927
  # The [ARN of the analyzer][1] used to generate the finding
1837
1928
  # recommendation.
@@ -2282,6 +2373,42 @@ module Aws::AccessAnalyzer
2282
2373
  include Aws::Structure
2283
2374
  end
2284
2375
 
2376
+ # @!attribute [rw] analyzer_arn
2377
+ # The [ARN of the analyzer][1] used to generate the statistics.
2378
+ #
2379
+ #
2380
+ #
2381
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access-analyzer-getting-started.html#permission-resources
2382
+ # @return [String]
2383
+ #
2384
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFindingsStatisticsRequest AWS API Documentation
2385
+ #
2386
+ class GetFindingsStatisticsRequest < Struct.new(
2387
+ :analyzer_arn)
2388
+ SENSITIVE = []
2389
+ include Aws::Structure
2390
+ end
2391
+
2392
+ # @!attribute [rw] findings_statistics
2393
+ # A group of external access or unused access findings statistics.
2394
+ # @return [Array<Types::FindingsStatistics>]
2395
+ #
2396
+ # @!attribute [rw] last_updated_at
2397
+ # The time at which the retrieval of the findings statistics was last
2398
+ # updated. If the findings statistics have not been previously
2399
+ # retrieved for the specified analyzer, this field will not be
2400
+ # populated.
2401
+ # @return [Time]
2402
+ #
2403
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFindingsStatisticsResponse AWS API Documentation
2404
+ #
2405
+ class GetFindingsStatisticsResponse < Struct.new(
2406
+ :findings_statistics,
2407
+ :last_updated_at)
2408
+ SENSITIVE = []
2409
+ include Aws::Structure
2410
+ end
2411
+
2285
2412
  # @!attribute [rw] job_id
2286
2413
  # The `JobId` that is returned by the `StartPolicyGeneration`
2287
2414
  # operation. The `JobId` can be used with `GetGeneratedPolicy` to
@@ -3485,6 +3612,28 @@ module Aws::AccessAnalyzer
3485
3612
  include Aws::Structure
3486
3613
  end
3487
3614
 
3615
+ # Contains information about the total number of active cross-account
3616
+ # and public findings for a resource type of an external access
3617
+ # analyzer.
3618
+ #
3619
+ # @!attribute [rw] total_active_public
3620
+ # The total number of active public findings for the resource type.
3621
+ # @return [Integer]
3622
+ #
3623
+ # @!attribute [rw] total_active_cross_account
3624
+ # The total number of active cross-account findings for the resource
3625
+ # type.
3626
+ # @return [Integer]
3627
+ #
3628
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ResourceTypeDetails AWS API Documentation
3629
+ #
3630
+ class ResourceTypeDetails < Struct.new(
3631
+ :total_active_public,
3632
+ :total_active_cross_account)
3633
+ SENSITIVE = []
3634
+ include Aws::Structure
3635
+ end
3636
+
3488
3637
  # The configuration for an Amazon S3 access point or multi-region access
3489
3638
  # point for the bucket. You can propose up to 10 access points or
3490
3639
  # multi-region access points per bucket. If the proposed Amazon S3
@@ -4117,6 +4266,65 @@ module Aws::AccessAnalyzer
4117
4266
  include Aws::Structure
4118
4267
  end
4119
4268
 
4269
+ # Provides aggregate statistics about the findings for the specified
4270
+ # unused access analyzer.
4271
+ #
4272
+ # @!attribute [rw] unused_access_type_statistics
4273
+ # A list of details about the total number of findings for each type
4274
+ # of unused access for the analyzer.
4275
+ # @return [Array<Types::UnusedAccessTypeStatistics>]
4276
+ #
4277
+ # @!attribute [rw] top_accounts
4278
+ # A list of one to ten Amazon Web Services accounts that have the most
4279
+ # active findings for the unused access analyzer.
4280
+ # @return [Array<Types::FindingAggregationAccountDetails>]
4281
+ #
4282
+ # @!attribute [rw] total_active_findings
4283
+ # The total number of active findings for the unused access analyzer.
4284
+ # @return [Integer]
4285
+ #
4286
+ # @!attribute [rw] total_archived_findings
4287
+ # The total number of archived findings for the unused access
4288
+ # analyzer.
4289
+ # @return [Integer]
4290
+ #
4291
+ # @!attribute [rw] total_resolved_findings
4292
+ # The total number of resolved findings for the unused access
4293
+ # analyzer.
4294
+ # @return [Integer]
4295
+ #
4296
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UnusedAccessFindingsStatistics AWS API Documentation
4297
+ #
4298
+ class UnusedAccessFindingsStatistics < Struct.new(
4299
+ :unused_access_type_statistics,
4300
+ :top_accounts,
4301
+ :total_active_findings,
4302
+ :total_archived_findings,
4303
+ :total_resolved_findings)
4304
+ SENSITIVE = []
4305
+ include Aws::Structure
4306
+ end
4307
+
4308
+ # Contains information about the total number of findings for a type of
4309
+ # unused access.
4310
+ #
4311
+ # @!attribute [rw] unused_access_type
4312
+ # The type of unused access.
4313
+ # @return [String]
4314
+ #
4315
+ # @!attribute [rw] total
4316
+ # The total number of findings for the specified unused access type.
4317
+ # @return [Integer]
4318
+ #
4319
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UnusedAccessTypeStatistics AWS API Documentation
4320
+ #
4321
+ class UnusedAccessTypeStatistics < Struct.new(
4322
+ :unused_access_type,
4323
+ :total)
4324
+ SENSITIVE = []
4325
+ include Aws::Structure
4326
+ end
4327
+
4120
4328
  # Contains information about an unused access finding for an action. IAM
4121
4329
  # Access Analyzer charges for unused access analysis based on the number
4122
4330
  # of IAM roles and users analyzed per month. For more details on
@@ -54,7 +54,7 @@ module Aws::AccessAnalyzer
54
54
  autoload :EndpointProvider, 'aws-sdk-accessanalyzer/endpoint_provider'
55
55
  autoload :Endpoints, 'aws-sdk-accessanalyzer/endpoints'
56
56
 
57
- GEM_VERSION = '1.65.0'
57
+ GEM_VERSION = '1.68.0'
58
58
 
59
59
  end
60
60
 
data/sig/client.rbs CHANGED
@@ -414,6 +414,17 @@ module Aws
414
414
  ) -> _GetFindingV2ResponseSuccess
415
415
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetFindingV2ResponseSuccess
416
416
 
417
+ interface _GetFindingsStatisticsResponseSuccess
418
+ include ::Seahorse::Client::_ResponseSuccess[Types::GetFindingsStatisticsResponse]
419
+ def findings_statistics: () -> ::Array[Types::FindingsStatistics]
420
+ def last_updated_at: () -> ::Time
421
+ end
422
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AccessAnalyzer/Client.html#get_findings_statistics-instance_method
423
+ def get_findings_statistics: (
424
+ analyzer_arn: ::String
425
+ ) -> _GetFindingsStatisticsResponseSuccess
426
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _GetFindingsStatisticsResponseSuccess
427
+
417
428
  interface _GetGeneratedPolicyResponseSuccess
418
429
  include ::Seahorse::Client::_ResponseSuccess[Types::GetGeneratedPolicyResponse]
419
430
  def job_details: () -> Types::JobDetails
data/sig/types.rbs CHANGED
@@ -364,6 +364,14 @@ module Aws::AccessAnalyzer
364
364
  SENSITIVE: []
365
365
  end
366
366
 
367
+ class ExternalAccessFindingsStatistics
368
+ attr_accessor resource_type_statistics: ::Hash[("AWS::S3::Bucket" | "AWS::IAM::Role" | "AWS::SQS::Queue" | "AWS::Lambda::Function" | "AWS::Lambda::LayerVersion" | "AWS::KMS::Key" | "AWS::SecretsManager::Secret" | "AWS::EFS::FileSystem" | "AWS::EC2::Snapshot" | "AWS::ECR::Repository" | "AWS::RDS::DBSnapshot" | "AWS::RDS::DBClusterSnapshot" | "AWS::SNS::Topic" | "AWS::S3Express::DirectoryBucket" | "AWS::DynamoDB::Table" | "AWS::DynamoDB::Stream" | "AWS::IAM::User"), Types::ResourceTypeDetails]
369
+ attr_accessor total_active_findings: ::Integer
370
+ attr_accessor total_archived_findings: ::Integer
371
+ attr_accessor total_resolved_findings: ::Integer
372
+ SENSITIVE: []
373
+ end
374
+
367
375
  class Finding
368
376
  attr_accessor id: ::String
369
377
  attr_accessor principal: ::Hash[::String, ::String]
@@ -383,6 +391,13 @@ module Aws::AccessAnalyzer
383
391
  SENSITIVE: []
384
392
  end
385
393
 
394
+ class FindingAggregationAccountDetails
395
+ attr_accessor account: ::String
396
+ attr_accessor number_of_active_findings: ::Integer
397
+ attr_accessor details: ::Hash[::String, ::Integer]
398
+ SENSITIVE: []
399
+ end
400
+
386
401
  class FindingDetails
387
402
  attr_accessor external_access_details: Types::ExternalAccessDetails
388
403
  attr_accessor unused_permission_details: Types::UnusedPermissionDetails
@@ -451,6 +466,20 @@ module Aws::AccessAnalyzer
451
466
  SENSITIVE: []
452
467
  end
453
468
 
469
+ class FindingsStatistics
470
+ attr_accessor external_access_findings_statistics: Types::ExternalAccessFindingsStatistics
471
+ attr_accessor unused_access_findings_statistics: Types::UnusedAccessFindingsStatistics
472
+ attr_accessor unknown: untyped
473
+ SENSITIVE: []
474
+
475
+ class ExternalAccessFindingsStatistics < FindingsStatistics
476
+ end
477
+ class UnusedAccessFindingsStatistics < FindingsStatistics
478
+ end
479
+ class Unknown < FindingsStatistics
480
+ end
481
+ end
482
+
454
483
  class GenerateFindingRecommendationRequest
455
484
  attr_accessor analyzer_arn: ::String
456
485
  attr_accessor id: ::String
@@ -573,6 +602,17 @@ module Aws::AccessAnalyzer
573
602
  SENSITIVE: []
574
603
  end
575
604
 
605
+ class GetFindingsStatisticsRequest
606
+ attr_accessor analyzer_arn: ::String
607
+ SENSITIVE: []
608
+ end
609
+
610
+ class GetFindingsStatisticsResponse
611
+ attr_accessor findings_statistics: ::Array[Types::FindingsStatistics]
612
+ attr_accessor last_updated_at: ::Time
613
+ SENSITIVE: []
614
+ end
615
+
576
616
  class GetGeneratedPolicyRequest
577
617
  attr_accessor job_id: ::String
578
618
  attr_accessor include_resource_placeholders: bool
@@ -894,6 +934,12 @@ module Aws::AccessAnalyzer
894
934
  SENSITIVE: []
895
935
  end
896
936
 
937
+ class ResourceTypeDetails
938
+ attr_accessor total_active_public: ::Integer
939
+ attr_accessor total_active_cross_account: ::Integer
940
+ SENSITIVE: []
941
+ end
942
+
897
943
  class S3AccessPointConfiguration
898
944
  attr_accessor access_point_policy: ::String
899
945
  attr_accessor public_access_block: Types::S3PublicAccessBlockConfiguration
@@ -1040,6 +1086,21 @@ module Aws::AccessAnalyzer
1040
1086
  SENSITIVE: []
1041
1087
  end
1042
1088
 
1089
+ class UnusedAccessFindingsStatistics
1090
+ attr_accessor unused_access_type_statistics: ::Array[Types::UnusedAccessTypeStatistics]
1091
+ attr_accessor top_accounts: ::Array[Types::FindingAggregationAccountDetails]
1092
+ attr_accessor total_active_findings: ::Integer
1093
+ attr_accessor total_archived_findings: ::Integer
1094
+ attr_accessor total_resolved_findings: ::Integer
1095
+ SENSITIVE: []
1096
+ end
1097
+
1098
+ class UnusedAccessTypeStatistics
1099
+ attr_accessor unused_access_type: ::String
1100
+ attr_accessor total: ::Integer
1101
+ SENSITIVE: []
1102
+ end
1103
+
1043
1104
  class UnusedAction
1044
1105
  attr_accessor action: ::String
1045
1106
  attr_accessor last_accessed: ::Time
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-accessanalyzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.65.0
4
+ version: 1.68.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2025-01-15 00:00:00.000000000 Z
11
+ date: 2025-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core