aws-sdk-accessanalyzer 1.61.0 → 1.64.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53a13ba99f718e6aa61c3c5260551d9cb47474ca19d3384890c357d144ff79cd
4
- data.tar.gz: e0354b42a617673d2e21200d6dc25a58905fc2060ec1f99de67f3f6b7d0d47f4
3
+ metadata.gz: 298dda42069806317c1cc578827d1d6ac1e9fb87647caca6ee559aedee6b7b1e
4
+ data.tar.gz: 9b9cccaec291cf7d0c29352775c55968ec23c98d5c840695be9ad46de206d27c
5
5
  SHA512:
6
- metadata.gz: 99b53c539273846884dfd65a1ef2af8a7f0b1669de84f373b17ac883e528e9bd05e675d020087d7fa90bba777e642a1676fa99588e1d94e67266e044de152e8e
7
- data.tar.gz: 6c598991dcb7889b26e20932036e7ccfaad576bc430d20dee6e1d0945f55446428a701afa2fe6ed9d8bf5abe6f5de50d102e3ba5d08bbb465855885d2ca5823f
6
+ metadata.gz: 4f9dae2dd2eed42a9c7f3ceeb447a13bfbb95a1e8353fbe36e32e54ea7907e90c8d099f958fd7c69369d13e150907295809732f685183af645c7163ba191b7a8
7
+ data.tar.gz: 25c7805436c022ebb2ff139f608f8d5599b6a1d124c8e1bfcdeff9c25694ef38f9872aa85d3de8b8e482cae5f0d13d68889321af6c6e26f73563ae99335d49b5
data/CHANGELOG.md CHANGED
@@ -1,6 +1,21 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.64.0 (2024-11-14)
5
+ ------------------
6
+
7
+ * Feature - Expand analyzer configuration capabilities for unused access analyzers. Unused access analyzer configurations now support the ability to exclude accounts and resource tags from analysis providing more granular control over the scope of analysis.
8
+
9
+ 1.63.0 (2024-11-13)
10
+ ------------------
11
+
12
+ * Feature - This release adds support for policy validation and external access findings for resource control policies (RCP). IAM Access Analyzer helps you author functional and secure RCPs and awareness that a RCP may restrict external access. Updated service API, documentation, and paginators.
13
+
14
+ 1.62.0 (2024-11-06)
15
+ ------------------
16
+
17
+ * Feature - Code Generated Changes, see `./build_tools` or `aws-sdk-core`'s CHANGELOG.md for details.
18
+
4
19
  1.61.0 (2024-10-18)
5
20
  ------------------
6
21
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.61.0
1
+ 1.64.0
@@ -514,11 +514,12 @@ module Aws::AccessAnalyzer
514
514
  # @option params [required, Array<Types::Access>] :access
515
515
  # An access object containing the permissions that shouldn't be granted
516
516
  # by the specified policy. If only actions are specified, IAM Access
517
- # Analyzer checks for access of the actions on all resources in the
518
- # policy. If only resources are specified, then IAM Access Analyzer
519
- # checks which actions have access to the specified resources. If both
520
- # actions and resources are specified, then IAM Access Analyzer checks
521
- # which of the specified actions have access to the specified resources.
517
+ # Analyzer checks for access to peform at least one of the actions on
518
+ # any resource in the policy. If only resources are specified, then IAM
519
+ # Access Analyzer checks for access to perform any action on at least
520
+ # one of the resources. If both actions and resources are specified, IAM
521
+ # Access Analyzer checks for access to perform at least one of the
522
+ # specified actions on at least one of the specified resources.
522
523
  #
523
524
  # @option params [required, String] :policy_type
524
525
  # The type of policy. Identity policies grant permissions to IAM
@@ -527,9 +528,7 @@ module Aws::AccessAnalyzer
527
528
  #
528
529
  # Resource policies grant permissions on Amazon Web Services resources.
529
530
  # Resource policies include trust policies for IAM roles and bucket
530
- # policies for Amazon S3 buckets. You can provide a generic input such
531
- # as identity policy or resource policy or a specific input such as
532
- # managed policy or Amazon S3 bucket policy.
531
+ # policies for Amazon S3 buckets.
533
532
  #
534
533
  # @return [Types::CheckAccessNotGrantedResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
535
534
  #
@@ -951,7 +950,15 @@ module Aws::AccessAnalyzer
951
950
  # the rule.
952
951
  #
953
952
  # @option params [Hash<String,String>] :tags
954
- # An array of key-value pairs to apply to the analyzer.
953
+ # An array of key-value pairs to apply to the analyzer. You can use the
954
+ # set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`, `+`,
955
+ # and `-`.
956
+ #
957
+ # For the tag key, you can specify a value that is 1 to 128 characters
958
+ # in length and cannot be prefixed with `aws:`.
959
+ #
960
+ # For the tag value, you can specify a value that is 0 to 256 characters
961
+ # in length.
955
962
  #
956
963
  # @option params [String] :client_token
957
964
  # A client token.
@@ -962,8 +969,7 @@ module Aws::AccessAnalyzer
962
969
  # @option params [Types::AnalyzerConfiguration] :configuration
963
970
  # Specifies the configuration of the analyzer. If the analyzer is an
964
971
  # unused access analyzer, the specified scope of unused access is used
965
- # for the configuration. If the analyzer is an external access analyzer,
966
- # this field is not used.
972
+ # for the configuration.
967
973
  #
968
974
  # @return [Types::CreateAnalyzerResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
969
975
  #
@@ -994,6 +1000,18 @@ module Aws::AccessAnalyzer
994
1000
  # configuration: {
995
1001
  # unused_access: {
996
1002
  # unused_access_age: 1,
1003
+ # analysis_rule: {
1004
+ # exclusions: [
1005
+ # {
1006
+ # account_ids: ["String"],
1007
+ # resource_tags: [
1008
+ # {
1009
+ # "String" => "String",
1010
+ # },
1011
+ # ],
1012
+ # },
1013
+ # ],
1014
+ # },
997
1015
  # },
998
1016
  # },
999
1017
  # })
@@ -1295,7 +1313,7 @@ module Aws::AccessAnalyzer
1295
1313
  # @example Response structure
1296
1314
  #
1297
1315
  # resp.resource.resource_arn #=> String
1298
- # resp.resource.resource_type #=> String, one of "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"
1316
+ # resp.resource.resource_type #=> String, one of "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"
1299
1317
  # resp.resource.created_at #=> Time
1300
1318
  # resp.resource.analyzed_at #=> Time
1301
1319
  # resp.resource.updated_at #=> Time
@@ -1345,6 +1363,12 @@ module Aws::AccessAnalyzer
1345
1363
  # resp.analyzer.status #=> String, one of "ACTIVE", "CREATING", "DISABLED", "FAILED"
1346
1364
  # resp.analyzer.status_reason.code #=> String, one of "AWS_SERVICE_ACCESS_DISABLED", "DELEGATED_ADMINISTRATOR_DEREGISTERED", "ORGANIZATION_DELETED", "SERVICE_LINKED_ROLE_CREATION_FAILED"
1347
1365
  # resp.analyzer.configuration.unused_access.unused_access_age #=> Integer
1366
+ # resp.analyzer.configuration.unused_access.analysis_rule.exclusions #=> Array
1367
+ # resp.analyzer.configuration.unused_access.analysis_rule.exclusions[0].account_ids #=> Array
1368
+ # resp.analyzer.configuration.unused_access.analysis_rule.exclusions[0].account_ids[0] #=> String
1369
+ # resp.analyzer.configuration.unused_access.analysis_rule.exclusions[0].resource_tags #=> Array
1370
+ # resp.analyzer.configuration.unused_access.analysis_rule.exclusions[0].resource_tags[0] #=> Hash
1371
+ # resp.analyzer.configuration.unused_access.analysis_rule.exclusions[0].resource_tags[0]["String"] #=> String
1348
1372
  #
1349
1373
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzer AWS API Documentation
1350
1374
  #
@@ -1439,7 +1463,7 @@ module Aws::AccessAnalyzer
1439
1463
  # resp.finding.action[0] #=> String
1440
1464
  # resp.finding.resource #=> String
1441
1465
  # resp.finding.is_public #=> Boolean
1442
- # resp.finding.resource_type #=> String, one of "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"
1466
+ # resp.finding.resource_type #=> String, one of "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"
1443
1467
  # resp.finding.condition #=> Hash
1444
1468
  # resp.finding.condition["String"] #=> String
1445
1469
  # resp.finding.created_at #=> Time
@@ -1452,6 +1476,7 @@ module Aws::AccessAnalyzer
1452
1476
  # resp.finding.sources[0].type #=> String, one of "POLICY", "BUCKET_ACL", "S3_ACCESS_POINT", "S3_ACCESS_POINT_ACCOUNT"
1453
1477
  # resp.finding.sources[0].detail.access_point_arn #=> String
1454
1478
  # resp.finding.sources[0].detail.access_point_account #=> String
1479
+ # resp.finding.resource_control_policy_restriction #=> String, one of "APPLICABLE", "FAILED_TO_EVALUATE_RCP", "NOT_APPLICABLE"
1455
1480
  #
1456
1481
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetFinding AWS API Documentation
1457
1482
  #
@@ -1662,7 +1687,7 @@ module Aws::AccessAnalyzer
1662
1687
  # resp.id #=> String
1663
1688
  # resp.next_token #=> String
1664
1689
  # resp.resource #=> String
1665
- # resp.resource_type #=> String, one of "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"
1690
+ # resp.resource_type #=> String, one of "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"
1666
1691
  # resp.resource_owner_account #=> String
1667
1692
  # resp.status #=> String, one of "ACTIVE", "ARCHIVED", "RESOLVED"
1668
1693
  # resp.updated_at #=> Time
@@ -1678,6 +1703,7 @@ module Aws::AccessAnalyzer
1678
1703
  # resp.finding_details[0].external_access_details.sources[0].type #=> String, one of "POLICY", "BUCKET_ACL", "S3_ACCESS_POINT", "S3_ACCESS_POINT_ACCOUNT"
1679
1704
  # resp.finding_details[0].external_access_details.sources[0].detail.access_point_arn #=> String
1680
1705
  # resp.finding_details[0].external_access_details.sources[0].detail.access_point_account #=> String
1706
+ # resp.finding_details[0].external_access_details.resource_control_policy_restriction #=> String, one of "APPLICABLE", "FAILED_TO_EVALUATE_RCP", "NOT_APPLICABLE"
1681
1707
  # resp.finding_details[0].unused_permission_details.actions #=> Array
1682
1708
  # resp.finding_details[0].unused_permission_details.actions[0].action #=> String
1683
1709
  # resp.finding_details[0].unused_permission_details.actions[0].last_accessed #=> Time
@@ -1712,8 +1738,8 @@ module Aws::AccessAnalyzer
1712
1738
  # that support resource level granularity in policies.
1713
1739
  #
1714
1740
  # For example, in the resource section of a policy, you can receive a
1715
- # placeholder such as `"Resource":"arn:aws:s3:::$\{BucketName\}"`
1716
- # instead of `"*"`.
1741
+ # placeholder such as `"Resource":"arn:aws:s3:::${BucketName}"` instead
1742
+ # of `"*"`.
1717
1743
  #
1718
1744
  # @option params [Boolean] :include_service_level_template
1719
1745
  # The level of detail that you want to generate. You can specify whether
@@ -1825,7 +1851,7 @@ module Aws::AccessAnalyzer
1825
1851
  # resp.findings[0].condition["String"] #=> String
1826
1852
  # resp.findings[0].resource #=> String
1827
1853
  # resp.findings[0].is_public #=> Boolean
1828
- # resp.findings[0].resource_type #=> String, one of "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"
1854
+ # resp.findings[0].resource_type #=> String, one of "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"
1829
1855
  # resp.findings[0].created_at #=> Time
1830
1856
  # resp.findings[0].change_type #=> String, one of "CHANGED", "NEW", "UNCHANGED"
1831
1857
  # resp.findings[0].status #=> String, one of "ACTIVE", "ARCHIVED", "RESOLVED"
@@ -1835,6 +1861,7 @@ module Aws::AccessAnalyzer
1835
1861
  # resp.findings[0].sources[0].type #=> String, one of "POLICY", "BUCKET_ACL", "S3_ACCESS_POINT", "S3_ACCESS_POINT_ACCOUNT"
1836
1862
  # resp.findings[0].sources[0].detail.access_point_arn #=> String
1837
1863
  # resp.findings[0].sources[0].detail.access_point_account #=> String
1864
+ # resp.findings[0].resource_control_policy_restriction #=> String, one of "APPLICABLE", "FAILED_TO_EVALUATE_RCP", "NOT_APPLICABLE"
1838
1865
  # resp.next_token #=> String
1839
1866
  #
1840
1867
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAccessPreviewFindings AWS API Documentation
@@ -1896,8 +1923,7 @@ module Aws::AccessAnalyzer
1896
1923
  end
1897
1924
 
1898
1925
  # Retrieves a list of resources of the specified type that have been
1899
- # analyzed by the specified external access analyzer. This action is not
1900
- # supported for unused access analyzers.
1926
+ # analyzed by the specified analyzer.
1901
1927
  #
1902
1928
  # @option params [required, String] :analyzer_arn
1903
1929
  # The [ARN of the analyzer][1] to retrieve a list of analyzed resources
@@ -1927,7 +1953,7 @@ module Aws::AccessAnalyzer
1927
1953
  #
1928
1954
  # resp = client.list_analyzed_resources({
1929
1955
  # analyzer_arn: "AnalyzerArn", # required
1930
- # resource_type: "AWS::S3::Bucket", # accepts 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
1956
+ # resource_type: "AWS::S3::Bucket", # accepts 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
1931
1957
  # next_token: "Token",
1932
1958
  # max_results: 1,
1933
1959
  # })
@@ -1937,7 +1963,7 @@ module Aws::AccessAnalyzer
1937
1963
  # resp.analyzed_resources #=> Array
1938
1964
  # resp.analyzed_resources[0].resource_arn #=> String
1939
1965
  # resp.analyzed_resources[0].resource_owner_account #=> String
1940
- # resp.analyzed_resources[0].resource_type #=> String, one of "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"
1966
+ # resp.analyzed_resources[0].resource_type #=> String, one of "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"
1941
1967
  # resp.next_token #=> String
1942
1968
  #
1943
1969
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzedResources AWS API Documentation
@@ -1989,6 +2015,12 @@ module Aws::AccessAnalyzer
1989
2015
  # resp.analyzers[0].status #=> String, one of "ACTIVE", "CREATING", "DISABLED", "FAILED"
1990
2016
  # resp.analyzers[0].status_reason.code #=> String, one of "AWS_SERVICE_ACCESS_DISABLED", "DELEGATED_ADMINISTRATOR_DEREGISTERED", "ORGANIZATION_DELETED", "SERVICE_LINKED_ROLE_CREATION_FAILED"
1991
2017
  # resp.analyzers[0].configuration.unused_access.unused_access_age #=> Integer
2018
+ # resp.analyzers[0].configuration.unused_access.analysis_rule.exclusions #=> Array
2019
+ # resp.analyzers[0].configuration.unused_access.analysis_rule.exclusions[0].account_ids #=> Array
2020
+ # resp.analyzers[0].configuration.unused_access.analysis_rule.exclusions[0].account_ids[0] #=> String
2021
+ # resp.analyzers[0].configuration.unused_access.analysis_rule.exclusions[0].resource_tags #=> Array
2022
+ # resp.analyzers[0].configuration.unused_access.analysis_rule.exclusions[0].resource_tags[0] #=> Hash
2023
+ # resp.analyzers[0].configuration.unused_access.analysis_rule.exclusions[0].resource_tags[0]["String"] #=> String
1992
2024
  # resp.next_token #=> String
1993
2025
  #
1994
2026
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzers AWS API Documentation
@@ -2121,7 +2153,7 @@ module Aws::AccessAnalyzer
2121
2153
  # resp.findings[0].action[0] #=> String
2122
2154
  # resp.findings[0].resource #=> String
2123
2155
  # resp.findings[0].is_public #=> Boolean
2124
- # resp.findings[0].resource_type #=> String, one of "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"
2156
+ # resp.findings[0].resource_type #=> String, one of "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"
2125
2157
  # resp.findings[0].condition #=> Hash
2126
2158
  # resp.findings[0].condition["String"] #=> String
2127
2159
  # resp.findings[0].created_at #=> Time
@@ -2134,6 +2166,7 @@ module Aws::AccessAnalyzer
2134
2166
  # resp.findings[0].sources[0].type #=> String, one of "POLICY", "BUCKET_ACL", "S3_ACCESS_POINT", "S3_ACCESS_POINT_ACCOUNT"
2135
2167
  # resp.findings[0].sources[0].detail.access_point_arn #=> String
2136
2168
  # resp.findings[0].sources[0].detail.access_point_account #=> String
2169
+ # resp.findings[0].resource_control_policy_restriction #=> String, one of "APPLICABLE", "FAILED_TO_EVALUATE_RCP", "NOT_APPLICABLE"
2137
2170
  # resp.next_token #=> String
2138
2171
  #
2139
2172
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListFindings AWS API Documentation
@@ -2213,7 +2246,7 @@ module Aws::AccessAnalyzer
2213
2246
  # resp.findings[0].error #=> String
2214
2247
  # resp.findings[0].id #=> String
2215
2248
  # resp.findings[0].resource #=> String
2216
- # resp.findings[0].resource_type #=> String, one of "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"
2249
+ # resp.findings[0].resource_type #=> String, one of "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"
2217
2250
  # resp.findings[0].resource_owner_account #=> String
2218
2251
  # resp.findings[0].status #=> String, one of "ACTIVE", "ARCHIVED", "RESOLVED"
2219
2252
  # resp.findings[0].updated_at #=> Time
@@ -2459,6 +2492,61 @@ module Aws::AccessAnalyzer
2459
2492
  req.send_request(options)
2460
2493
  end
2461
2494
 
2495
+ # Modifies the configuration of an existing analyzer.
2496
+ #
2497
+ # @option params [required, String] :analyzer_name
2498
+ # The name of the analyzer to modify.
2499
+ #
2500
+ # @option params [Types::AnalyzerConfiguration] :configuration
2501
+ # Contains information about the configuration of an analyzer for an
2502
+ # Amazon Web Services organization or account.
2503
+ #
2504
+ # @return [Types::UpdateAnalyzerResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
2505
+ #
2506
+ # * {Types::UpdateAnalyzerResponse#configuration #configuration} => Types::AnalyzerConfiguration
2507
+ #
2508
+ # @example Request syntax with placeholder values
2509
+ #
2510
+ # resp = client.update_analyzer({
2511
+ # analyzer_name: "Name", # required
2512
+ # configuration: {
2513
+ # unused_access: {
2514
+ # unused_access_age: 1,
2515
+ # analysis_rule: {
2516
+ # exclusions: [
2517
+ # {
2518
+ # account_ids: ["String"],
2519
+ # resource_tags: [
2520
+ # {
2521
+ # "String" => "String",
2522
+ # },
2523
+ # ],
2524
+ # },
2525
+ # ],
2526
+ # },
2527
+ # },
2528
+ # },
2529
+ # })
2530
+ #
2531
+ # @example Response structure
2532
+ #
2533
+ # resp.configuration.unused_access.unused_access_age #=> Integer
2534
+ # resp.configuration.unused_access.analysis_rule.exclusions #=> Array
2535
+ # resp.configuration.unused_access.analysis_rule.exclusions[0].account_ids #=> Array
2536
+ # resp.configuration.unused_access.analysis_rule.exclusions[0].account_ids[0] #=> String
2537
+ # resp.configuration.unused_access.analysis_rule.exclusions[0].resource_tags #=> Array
2538
+ # resp.configuration.unused_access.analysis_rule.exclusions[0].resource_tags[0] #=> Hash
2539
+ # resp.configuration.unused_access.analysis_rule.exclusions[0].resource_tags[0]["String"] #=> String
2540
+ #
2541
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateAnalyzer AWS API Documentation
2542
+ #
2543
+ # @overload update_analyzer(params = {})
2544
+ # @param [Hash] params ({})
2545
+ def update_analyzer(params = {}, options = {})
2546
+ req = build_request(:update_analyzer, params)
2547
+ req.send_request(options)
2548
+ end
2549
+
2462
2550
  # Updates the criteria and values for the specified archive rule.
2463
2551
  #
2464
2552
  # @option params [required, String] :analyzer_name
@@ -2610,7 +2698,7 @@ module Aws::AccessAnalyzer
2610
2698
  # max_results: 1,
2611
2699
  # next_token: "Token",
2612
2700
  # policy_document: "PolicyDocument", # required
2613
- # policy_type: "IDENTITY_POLICY", # required, accepts IDENTITY_POLICY, RESOURCE_POLICY, SERVICE_CONTROL_POLICY
2701
+ # policy_type: "IDENTITY_POLICY", # required, accepts IDENTITY_POLICY, RESOURCE_POLICY, SERVICE_CONTROL_POLICY, RESOURCE_CONTROL_POLICY
2614
2702
  # validate_policy_resource_type: "AWS::S3::Bucket", # accepts AWS::S3::Bucket, AWS::S3::AccessPoint, AWS::S3::MultiRegionAccessPoint, AWS::S3ObjectLambda::AccessPoint, AWS::IAM::AssumeRolePolicyDocument, AWS::DynamoDB::Table
2615
2703
  # })
2616
2704
  #
@@ -2663,7 +2751,7 @@ module Aws::AccessAnalyzer
2663
2751
  tracer: tracer
2664
2752
  )
2665
2753
  context[:gem_name] = 'aws-sdk-accessanalyzer'
2666
- context[:gem_version] = '1.61.0'
2754
+ context[:gem_version] = '1.64.0'
2667
2755
  Seahorse::Client::Request.new(handlers, context)
2668
2756
  end
2669
2757
 
@@ -33,12 +33,16 @@ 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
+ AccountIdsList = Shapes::ListShape.new(name: 'AccountIdsList')
36
37
  AclCanonicalId = Shapes::StringShape.new(name: 'AclCanonicalId')
37
38
  AclGrantee = Shapes::UnionShape.new(name: 'AclGrantee')
38
39
  AclPermission = Shapes::StringShape.new(name: 'AclPermission')
39
40
  AclUri = Shapes::StringShape.new(name: 'AclUri')
40
41
  Action = Shapes::StringShape.new(name: 'Action')
41
42
  ActionList = Shapes::ListShape.new(name: 'ActionList')
43
+ AnalysisRule = Shapes::StructureShape.new(name: 'AnalysisRule')
44
+ AnalysisRuleCriteria = Shapes::StructureShape.new(name: 'AnalysisRuleCriteria')
45
+ AnalysisRuleCriteriaList = Shapes::ListShape.new(name: 'AnalysisRuleCriteriaList')
42
46
  AnalyzedResource = Shapes::StructureShape.new(name: 'AnalyzedResource')
43
47
  AnalyzedResourceSummary = Shapes::StructureShape.new(name: 'AnalyzedResourceSummary')
44
48
  AnalyzedResourcesList = Shapes::ListShape.new(name: 'AnalyzedResourcesList')
@@ -225,6 +229,7 @@ module Aws::AccessAnalyzer
225
229
  RegionList = Shapes::ListShape.new(name: 'RegionList')
226
230
  Resource = Shapes::StringShape.new(name: 'Resource')
227
231
  ResourceArn = Shapes::StringShape.new(name: 'ResourceArn')
232
+ ResourceControlPolicyRestriction = Shapes::StringShape.new(name: 'ResourceControlPolicyRestriction')
228
233
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
229
234
  ResourceType = Shapes::StringShape.new(name: 'ResourceType')
230
235
  RetiringPrincipal = Shapes::StringShape.new(name: 'RetiringPrincipal')
@@ -259,6 +264,7 @@ module Aws::AccessAnalyzer
259
264
  TagKeys = Shapes::ListShape.new(name: 'TagKeys')
260
265
  TagResourceRequest = Shapes::StructureShape.new(name: 'TagResourceRequest')
261
266
  TagResourceResponse = Shapes::StructureShape.new(name: 'TagResourceResponse')
267
+ TagsList = Shapes::ListShape.new(name: 'TagsList')
262
268
  TagsMap = Shapes::MapShape.new(name: 'TagsMap')
263
269
  ThrottlingException = Shapes::StructureShape.new(name: 'ThrottlingException')
264
270
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp', timestampFormat: "iso8601")
@@ -279,6 +285,8 @@ module Aws::AccessAnalyzer
279
285
  UnusedIamUserPasswordDetails = Shapes::StructureShape.new(name: 'UnusedIamUserPasswordDetails')
280
286
  UnusedPermissionDetails = Shapes::StructureShape.new(name: 'UnusedPermissionDetails')
281
287
  UnusedPermissionsRecommendedStep = Shapes::StructureShape.new(name: 'UnusedPermissionsRecommendedStep')
288
+ UpdateAnalyzerRequest = Shapes::StructureShape.new(name: 'UpdateAnalyzerRequest')
289
+ UpdateAnalyzerResponse = Shapes::StructureShape.new(name: 'UpdateAnalyzerResponse')
282
290
  UpdateArchiveRuleRequest = Shapes::StructureShape.new(name: 'UpdateArchiveRuleRequest')
283
291
  UpdateFindingsRequest = Shapes::StructureShape.new(name: 'UpdateFindingsRequest')
284
292
  ValidatePolicyFinding = Shapes::StructureShape.new(name: 'ValidatePolicyFinding')
@@ -327,6 +335,7 @@ module Aws::AccessAnalyzer
327
335
  AccessPreviewFinding.add_member(:resource_owner_account, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceOwnerAccount"))
328
336
  AccessPreviewFinding.add_member(:error, Shapes::ShapeRef.new(shape: String, location_name: "error"))
329
337
  AccessPreviewFinding.add_member(:sources, Shapes::ShapeRef.new(shape: FindingSourceList, location_name: "sources"))
338
+ AccessPreviewFinding.add_member(:resource_control_policy_restriction, Shapes::ShapeRef.new(shape: ResourceControlPolicyRestriction, location_name: "resourceControlPolicyRestriction"))
330
339
  AccessPreviewFinding.struct_class = Types::AccessPreviewFinding
331
340
 
332
341
  AccessPreviewFindingsList.member = Shapes::ShapeRef.new(shape: AccessPreviewFinding)
@@ -345,6 +354,8 @@ module Aws::AccessAnalyzer
345
354
 
346
355
  AccessResourcesList.member = Shapes::ShapeRef.new(shape: Resource)
347
356
 
357
+ AccountIdsList.member = Shapes::ShapeRef.new(shape: String)
358
+
348
359
  AclGrantee.add_member(:id, Shapes::ShapeRef.new(shape: AclCanonicalId, location_name: "id"))
349
360
  AclGrantee.add_member(:uri, Shapes::ShapeRef.new(shape: AclUri, location_name: "uri"))
350
361
  AclGrantee.add_member(:unknown, Shapes::ShapeRef.new(shape: nil, location_name: 'unknown'))
@@ -355,6 +366,15 @@ module Aws::AccessAnalyzer
355
366
 
356
367
  ActionList.member = Shapes::ShapeRef.new(shape: String)
357
368
 
369
+ AnalysisRule.add_member(:exclusions, Shapes::ShapeRef.new(shape: AnalysisRuleCriteriaList, location_name: "exclusions"))
370
+ AnalysisRule.struct_class = Types::AnalysisRule
371
+
372
+ AnalysisRuleCriteria.add_member(:account_ids, Shapes::ShapeRef.new(shape: AccountIdsList, location_name: "accountIds"))
373
+ AnalysisRuleCriteria.add_member(:resource_tags, Shapes::ShapeRef.new(shape: TagsList, location_name: "resourceTags"))
374
+ AnalysisRuleCriteria.struct_class = Types::AnalysisRuleCriteria
375
+
376
+ AnalysisRuleCriteriaList.member = Shapes::ShapeRef.new(shape: AnalysisRuleCriteria)
377
+
358
378
  AnalyzedResource.add_member(:resource_arn, Shapes::ShapeRef.new(shape: ResourceArn, required: true, location_name: "resourceArn"))
359
379
  AnalyzedResource.add_member(:resource_type, Shapes::ShapeRef.new(shape: ResourceType, required: true, location_name: "resourceType"))
360
380
  AnalyzedResource.add_member(:created_at, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "createdAt"))
@@ -564,6 +584,7 @@ module Aws::AccessAnalyzer
564
584
  ExternalAccessDetails.add_member(:is_public, Shapes::ShapeRef.new(shape: Boolean, location_name: "isPublic"))
565
585
  ExternalAccessDetails.add_member(:principal, Shapes::ShapeRef.new(shape: PrincipalMap, location_name: "principal"))
566
586
  ExternalAccessDetails.add_member(:sources, Shapes::ShapeRef.new(shape: FindingSourceList, location_name: "sources"))
587
+ ExternalAccessDetails.add_member(:resource_control_policy_restriction, Shapes::ShapeRef.new(shape: ResourceControlPolicyRestriction, location_name: "resourceControlPolicyRestriction"))
567
588
  ExternalAccessDetails.struct_class = Types::ExternalAccessDetails
568
589
 
569
590
  FilterCriteriaMap.key = Shapes::ShapeRef.new(shape: String)
@@ -583,6 +604,7 @@ module Aws::AccessAnalyzer
583
604
  Finding.add_member(:resource_owner_account, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceOwnerAccount"))
584
605
  Finding.add_member(:error, Shapes::ShapeRef.new(shape: String, location_name: "error"))
585
606
  Finding.add_member(:sources, Shapes::ShapeRef.new(shape: FindingSourceList, location_name: "sources"))
607
+ Finding.add_member(:resource_control_policy_restriction, Shapes::ShapeRef.new(shape: ResourceControlPolicyRestriction, location_name: "resourceControlPolicyRestriction"))
586
608
  Finding.struct_class = Types::Finding
587
609
 
588
610
  FindingDetails.add_member(:external_access_details, Shapes::ShapeRef.new(shape: ExternalAccessDetails, location_name: "externalAccessDetails"))
@@ -627,6 +649,7 @@ module Aws::AccessAnalyzer
627
649
  FindingSummary.add_member(:resource_owner_account, Shapes::ShapeRef.new(shape: String, required: true, location_name: "resourceOwnerAccount"))
628
650
  FindingSummary.add_member(:error, Shapes::ShapeRef.new(shape: String, location_name: "error"))
629
651
  FindingSummary.add_member(:sources, Shapes::ShapeRef.new(shape: FindingSourceList, location_name: "sources"))
652
+ FindingSummary.add_member(:resource_control_policy_restriction, Shapes::ShapeRef.new(shape: ResourceControlPolicyRestriction, location_name: "resourceControlPolicyRestriction"))
630
653
  FindingSummary.struct_class = Types::FindingSummary
631
654
 
632
655
  FindingSummaryV2.add_member(:analyzed_at, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "analyzedAt"))
@@ -1065,6 +1088,8 @@ module Aws::AccessAnalyzer
1065
1088
 
1066
1089
  TagResourceResponse.struct_class = Types::TagResourceResponse
1067
1090
 
1091
+ TagsList.member = Shapes::ShapeRef.new(shape: TagsMap)
1092
+
1068
1093
  TagsMap.key = Shapes::ShapeRef.new(shape: String)
1069
1094
  TagsMap.value = Shapes::ShapeRef.new(shape: String)
1070
1095
 
@@ -1096,6 +1121,7 @@ module Aws::AccessAnalyzer
1096
1121
  UntagResourceResponse.struct_class = Types::UntagResourceResponse
1097
1122
 
1098
1123
  UnusedAccessConfiguration.add_member(:unused_access_age, Shapes::ShapeRef.new(shape: Integer, location_name: "unusedAccessAge"))
1124
+ UnusedAccessConfiguration.add_member(:analysis_rule, Shapes::ShapeRef.new(shape: AnalysisRule, location_name: "analysisRule"))
1099
1125
  UnusedAccessConfiguration.struct_class = Types::UnusedAccessConfiguration
1100
1126
 
1101
1127
  UnusedAction.add_member(:action, Shapes::ShapeRef.new(shape: String, required: true, location_name: "action"))
@@ -1125,6 +1151,13 @@ module Aws::AccessAnalyzer
1125
1151
  UnusedPermissionsRecommendedStep.add_member(:existing_policy_id, Shapes::ShapeRef.new(shape: String, location_name: "existingPolicyId"))
1126
1152
  UnusedPermissionsRecommendedStep.struct_class = Types::UnusedPermissionsRecommendedStep
1127
1153
 
1154
+ UpdateAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
1155
+ UpdateAnalyzerRequest.add_member(:configuration, Shapes::ShapeRef.new(shape: AnalyzerConfiguration, location_name: "configuration"))
1156
+ UpdateAnalyzerRequest.struct_class = Types::UpdateAnalyzerRequest
1157
+
1158
+ UpdateAnalyzerResponse.add_member(:configuration, Shapes::ShapeRef.new(shape: AnalyzerConfiguration, location_name: "configuration"))
1159
+ UpdateAnalyzerResponse.struct_class = Types::UpdateAnalyzerResponse
1160
+
1128
1161
  UpdateArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
1129
1162
  UpdateArchiveRuleRequest.add_member(:rule_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "ruleName"))
1130
1163
  UpdateArchiveRuleRequest.add_member(:filter, Shapes::ShapeRef.new(shape: FilterCriteriaMap, required: true, location_name: "filter"))
@@ -1183,6 +1216,7 @@ module Aws::AccessAnalyzer
1183
1216
 
1184
1217
  api.metadata = {
1185
1218
  "apiVersion" => "2019-11-01",
1219
+ "auth" => ["aws.auth#sigv4"],
1186
1220
  "endpointPrefix" => "access-analyzer",
1187
1221
  "protocol" => "rest-json",
1188
1222
  "protocols" => ["rest-json"],
@@ -1673,6 +1707,20 @@ module Aws::AccessAnalyzer
1673
1707
  o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1674
1708
  end)
1675
1709
 
1710
+ api.add_operation(:update_analyzer, Seahorse::Model::Operation.new.tap do |o|
1711
+ o.name = "UpdateAnalyzer"
1712
+ o.http_method = "PUT"
1713
+ o.http_request_uri = "/analyzer/{analyzerName}"
1714
+ o.input = Shapes::ShapeRef.new(shape: UpdateAnalyzerRequest)
1715
+ o.output = Shapes::ShapeRef.new(shape: UpdateAnalyzerResponse)
1716
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1717
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
1718
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
1719
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1720
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1721
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1722
+ end)
1723
+
1676
1724
  api.add_operation(:update_archive_rule, Seahorse::Model::Operation.new.tap do |o|
1677
1725
  o.name = "UpdateArchiveRule"
1678
1726
  o.http_method = "PUT"
@@ -21,8 +21,9 @@ module Aws::AccessAnalyzer
21
21
  #
22
22
  # @!attribute [rw] resources
23
23
  # A list of resources for the access permissions. Any strings that can
24
- # be used as a resource in an IAM policy can be used in the list of
25
- # resources to check.
24
+ # be used as an Amazon Resource Name (ARN) in an IAM policy can be
25
+ # used in the list of resources to check. You can only use a wildcard
26
+ # in the portion of the ARN that specifies the resource ID.
26
27
  # @return [Array<String>]
27
28
  #
28
29
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/Access AWS API Documentation
@@ -191,6 +192,11 @@ module Aws::AccessAnalyzer
191
192
  # bucket findings.
192
193
  # @return [Array<Types::FindingSource>]
193
194
  #
195
+ # @!attribute [rw] resource_control_policy_restriction
196
+ # The type of restriction applied to the finding by the resource owner
197
+ # with an Organizations resource control policy (RCP).
198
+ # @return [String]
199
+ #
194
200
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/AccessPreviewFinding AWS API Documentation
195
201
  #
196
202
  class AccessPreviewFinding < Struct.new(
@@ -208,7 +214,8 @@ module Aws::AccessAnalyzer
208
214
  :status,
209
215
  :resource_owner_account,
210
216
  :error,
211
- :sources)
217
+ :sources,
218
+ :resource_control_policy_restriction)
212
219
  SENSITIVE = []
213
220
  include Aws::Structure
214
221
  end
@@ -311,6 +318,57 @@ module Aws::AccessAnalyzer
311
318
  class Unknown < AclGrantee; end
312
319
  end
313
320
 
321
+ # Contains information about analysis rules for the analyzer. Analysis
322
+ # rules determine which entities will generate findings based on the
323
+ # criteria you define when you create the rule.
324
+ #
325
+ # @!attribute [rw] exclusions
326
+ # A list of rules for the analyzer containing criteria to exclude from
327
+ # analysis. Entities that meet the rule criteria will not generate
328
+ # findings.
329
+ # @return [Array<Types::AnalysisRuleCriteria>]
330
+ #
331
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/AnalysisRule AWS API Documentation
332
+ #
333
+ class AnalysisRule < Struct.new(
334
+ :exclusions)
335
+ SENSITIVE = []
336
+ include Aws::Structure
337
+ end
338
+
339
+ # The criteria for an analysis rule for an analyzer. The criteria
340
+ # determine which entities will generate findings.
341
+ #
342
+ # @!attribute [rw] account_ids
343
+ # A list of Amazon Web Services account IDs to apply to the analysis
344
+ # rule criteria. The accounts cannot include the organization analyzer
345
+ # owner account. Account IDs can only be applied to the analysis rule
346
+ # criteria for organization-level analyzers. The list cannot include
347
+ # more than 2,000 account IDs.
348
+ # @return [Array<String>]
349
+ #
350
+ # @!attribute [rw] resource_tags
351
+ # An array of key-value pairs to match for your resources. You can use
352
+ # the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`,
353
+ # `+`, and `-`.
354
+ #
355
+ # For the tag key, you can specify a value that is 1 to 128 characters
356
+ # in length and cannot be prefixed with `aws:`.
357
+ #
358
+ # For the tag value, you can specify a value that is 0 to 256
359
+ # characters in length. If the specified tag value is 0 characters,
360
+ # the rule is applied to all principals with the specified tag key.
361
+ # @return [Array<Hash<String,String>>]
362
+ #
363
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/AnalysisRuleCriteria AWS API Documentation
364
+ #
365
+ class AnalysisRuleCriteria < Struct.new(
366
+ :account_ids,
367
+ :resource_tags)
368
+ SENSITIVE = []
369
+ include Aws::Structure
370
+ end
371
+
314
372
  # Contains details about the analyzed resource.
315
373
  #
316
374
  # @!attribute [rw] resource_arn
@@ -403,8 +461,8 @@ module Aws::AccessAnalyzer
403
461
  include Aws::Structure
404
462
  end
405
463
 
406
- # Contains information about the configuration of an unused access
407
- # analyzer for an Amazon Web Services organization or account.
464
+ # Contains information about the configuration of an analyzer for an
465
+ # Amazon Web Services organization or account.
408
466
  #
409
467
  # @note AnalyzerConfiguration is a union - when making an API calls you must set exactly one of the members.
410
468
  #
@@ -412,8 +470,7 @@ module Aws::AccessAnalyzer
412
470
  #
413
471
  # @!attribute [rw] unused_access
414
472
  # Specifies the configuration of an unused access analyzer for an
415
- # Amazon Web Services organization or account. External access
416
- # analyzers do not support any configuration.
473
+ # Amazon Web Services organization or account.
417
474
  # @return [Types::UnusedAccessConfiguration]
418
475
  #
419
476
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/AnalyzerConfiguration AWS API Documentation
@@ -528,7 +585,9 @@ module Aws::AccessAnalyzer
528
585
  include Aws::Structure
529
586
  end
530
587
 
531
- # Contains information about an archive rule.
588
+ # Contains information about an archive rule. Archive rules
589
+ # automatically archive new findings that meet the criteria you define
590
+ # when you create the rule.
532
591
  #
533
592
  # @!attribute [rw] rule_name
534
593
  # The name of the archive rule.
@@ -583,12 +642,13 @@ module Aws::AccessAnalyzer
583
642
  # @!attribute [rw] access
584
643
  # An access object containing the permissions that shouldn't be
585
644
  # granted by the specified policy. If only actions are specified, IAM
586
- # Access Analyzer checks for access of the actions on all resources in
587
- # the policy. If only resources are specified, then IAM Access
588
- # Analyzer checks which actions have access to the specified
589
- # resources. If both actions and resources are specified, then IAM
590
- # Access Analyzer checks which of the specified actions have access to
591
- # the specified resources.
645
+ # Access Analyzer checks for access to peform at least one of the
646
+ # actions on any resource in the policy. If only resources are
647
+ # specified, then IAM Access Analyzer checks for access to perform any
648
+ # action on at least one of the resources. If both actions and
649
+ # resources are specified, IAM Access Analyzer checks for access to
650
+ # perform at least one of the specified actions on at least one of the
651
+ # specified resources.
592
652
  # @return [Array<Types::Access>]
593
653
  #
594
654
  # @!attribute [rw] policy_type
@@ -598,9 +658,7 @@ module Aws::AccessAnalyzer
598
658
  #
599
659
  # Resource policies grant permissions on Amazon Web Services
600
660
  # resources. Resource policies include trust policies for IAM roles
601
- # and bucket policies for Amazon S3 buckets. You can provide a generic
602
- # input such as identity policy or resource policy or a specific input
603
- # such as managed policy or Amazon S3 bucket policy.
661
+ # and bucket policies for Amazon S3 buckets.
604
662
  # @return [String]
605
663
  #
606
664
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CheckAccessNotGrantedRequest AWS API Documentation
@@ -1006,7 +1064,15 @@ module Aws::AccessAnalyzer
1006
1064
  # @return [Array<Types::InlineArchiveRule>]
1007
1065
  #
1008
1066
  # @!attribute [rw] tags
1009
- # An array of key-value pairs to apply to the analyzer.
1067
+ # An array of key-value pairs to apply to the analyzer. You can use
1068
+ # the set of Unicode letters, digits, whitespace, `_`, `.`, `/`, `=`,
1069
+ # `+`, and `-`.
1070
+ #
1071
+ # For the tag key, you can specify a value that is 1 to 128 characters
1072
+ # in length and cannot be prefixed with `aws:`.
1073
+ #
1074
+ # For the tag value, you can specify a value that is 0 to 256
1075
+ # characters in length.
1010
1076
  # @return [Hash<String,String>]
1011
1077
  #
1012
1078
  # @!attribute [rw] client_token
@@ -1019,8 +1085,7 @@ module Aws::AccessAnalyzer
1019
1085
  # @!attribute [rw] configuration
1020
1086
  # Specifies the configuration of the analyzer. If the analyzer is an
1021
1087
  # unused access analyzer, the specified scope of unused access is used
1022
- # for the configuration. If the analyzer is an external access
1023
- # analyzer, this field is not used.
1088
+ # for the configuration.
1024
1089
  # @return [Types::AnalyzerConfiguration]
1025
1090
  #
1026
1091
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateAnalyzerRequest AWS API Documentation
@@ -1411,6 +1476,11 @@ module Aws::AccessAnalyzer
1411
1476
  # Amazon S3 bucket findings.
1412
1477
  # @return [Array<Types::FindingSource>]
1413
1478
  #
1479
+ # @!attribute [rw] resource_control_policy_restriction
1480
+ # The type of restriction applied to the finding by the resource owner
1481
+ # with an Organizations resource control policy (RCP).
1482
+ # @return [String]
1483
+ #
1414
1484
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ExternalAccessDetails AWS API Documentation
1415
1485
  #
1416
1486
  class ExternalAccessDetails < Struct.new(
@@ -1418,7 +1488,8 @@ module Aws::AccessAnalyzer
1418
1488
  :condition,
1419
1489
  :is_public,
1420
1490
  :principal,
1421
- :sources)
1491
+ :sources,
1492
+ :resource_control_policy_restriction)
1422
1493
  SENSITIVE = []
1423
1494
  include Aws::Structure
1424
1495
  end
@@ -1487,6 +1558,11 @@ module Aws::AccessAnalyzer
1487
1558
  # bucket findings.
1488
1559
  # @return [Array<Types::FindingSource>]
1489
1560
  #
1561
+ # @!attribute [rw] resource_control_policy_restriction
1562
+ # The type of restriction applied to the finding by the resource owner
1563
+ # with an Organizations resource control policy (RCP).
1564
+ # @return [String]
1565
+ #
1490
1566
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/Finding AWS API Documentation
1491
1567
  #
1492
1568
  class Finding < Struct.new(
@@ -1503,7 +1579,8 @@ module Aws::AccessAnalyzer
1503
1579
  :status,
1504
1580
  :resource_owner_account,
1505
1581
  :error,
1506
- :sources)
1582
+ :sources,
1583
+ :resource_control_policy_restriction)
1507
1584
  SENSITIVE = []
1508
1585
  include Aws::Structure
1509
1586
  end
@@ -1668,6 +1745,11 @@ module Aws::AccessAnalyzer
1668
1745
  # bucket findings.
1669
1746
  # @return [Array<Types::FindingSource>]
1670
1747
  #
1748
+ # @!attribute [rw] resource_control_policy_restriction
1749
+ # The type of restriction applied to the finding by the resource owner
1750
+ # with an Organizations resource control policy (RCP).
1751
+ # @return [String]
1752
+ #
1671
1753
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/FindingSummary AWS API Documentation
1672
1754
  #
1673
1755
  class FindingSummary < Struct.new(
@@ -1684,7 +1766,8 @@ module Aws::AccessAnalyzer
1684
1766
  :status,
1685
1767
  :resource_owner_account,
1686
1768
  :error,
1687
- :sources)
1769
+ :sources,
1770
+ :resource_control_policy_restriction)
1688
1771
  SENSITIVE = []
1689
1772
  include Aws::Structure
1690
1773
  end
@@ -1964,7 +2047,9 @@ module Aws::AccessAnalyzer
1964
2047
  # The response to the request.
1965
2048
  #
1966
2049
  # @!attribute [rw] archive_rule
1967
- # Contains information about an archive rule.
2050
+ # Contains information about an archive rule. Archive rules
2051
+ # automatically archive new findings that meet the criteria you define
2052
+ # when you create the rule.
1968
2053
  # @return [Types::ArchiveRuleSummary]
1969
2054
  #
1970
2055
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetArchiveRuleResponse AWS API Documentation
@@ -2210,7 +2295,7 @@ module Aws::AccessAnalyzer
2210
2295
  # actions that support resource level granularity in policies.
2211
2296
  #
2212
2297
  # For example, in the resource section of a policy, you can receive a
2213
- # placeholder such as `"Resource":"arn:aws:s3:::$\{BucketName\}"`
2298
+ # placeholder such as `"Resource":"arn:aws:s3:::${BucketName}"`
2214
2299
  # instead of `"*"`.
2215
2300
  # @return [Boolean]
2216
2301
  #
@@ -4014,13 +4099,20 @@ module Aws::AccessAnalyzer
4014
4099
  # will generate findings for IAM entities within the accounts of the
4015
4100
  # selected organization for any access that hasn't been used in 90 or
4016
4101
  # more days since the analyzer's last scan. You can choose a value
4017
- # between 1 and 180 days.
4102
+ # between 1 and 365 days.
4018
4103
  # @return [Integer]
4019
4104
  #
4105
+ # @!attribute [rw] analysis_rule
4106
+ # Contains information about analysis rules for the analyzer. Analysis
4107
+ # rules determine which entities will generate findings based on the
4108
+ # criteria you define when you create the rule.
4109
+ # @return [Types::AnalysisRule]
4110
+ #
4020
4111
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UnusedAccessConfiguration AWS API Documentation
4021
4112
  #
4022
4113
  class UnusedAccessConfiguration < Struct.new(
4023
- :unused_access_age)
4114
+ :unused_access_age,
4115
+ :analysis_rule)
4024
4116
  SENSITIVE = []
4025
4117
  include Aws::Structure
4026
4118
  end
@@ -4188,6 +4280,37 @@ module Aws::AccessAnalyzer
4188
4280
  include Aws::Structure
4189
4281
  end
4190
4282
 
4283
+ # @!attribute [rw] analyzer_name
4284
+ # The name of the analyzer to modify.
4285
+ # @return [String]
4286
+ #
4287
+ # @!attribute [rw] configuration
4288
+ # Contains information about the configuration of an analyzer for an
4289
+ # Amazon Web Services organization or account.
4290
+ # @return [Types::AnalyzerConfiguration]
4291
+ #
4292
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateAnalyzerRequest AWS API Documentation
4293
+ #
4294
+ class UpdateAnalyzerRequest < Struct.new(
4295
+ :analyzer_name,
4296
+ :configuration)
4297
+ SENSITIVE = []
4298
+ include Aws::Structure
4299
+ end
4300
+
4301
+ # @!attribute [rw] configuration
4302
+ # Contains information about the configuration of an analyzer for an
4303
+ # Amazon Web Services organization or account.
4304
+ # @return [Types::AnalyzerConfiguration]
4305
+ #
4306
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/UpdateAnalyzerResponse AWS API Documentation
4307
+ #
4308
+ class UpdateAnalyzerResponse < Struct.new(
4309
+ :configuration)
4310
+ SENSITIVE = []
4311
+ include Aws::Structure
4312
+ end
4313
+
4191
4314
  # Updates the specified archive rule.
4192
4315
  #
4193
4316
  # @!attribute [rw] analyzer_name
@@ -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.61.0'
57
+ GEM_VERSION = '1.64.0'
58
58
 
59
59
  end
60
60
 
data/sig/client.rbs CHANGED
@@ -264,7 +264,17 @@ module Aws
264
264
  ?client_token: ::String,
265
265
  ?configuration: {
266
266
  unused_access: {
267
- unused_access_age: ::Integer?
267
+ unused_access_age: ::Integer?,
268
+ analysis_rule: {
269
+ exclusions: Array[
270
+ {
271
+ account_ids: Array[::String]?,
272
+ resource_tags: Array[
273
+ Hash[::String, ::String],
274
+ ]?
275
+ },
276
+ ]?
277
+ }?
268
278
  }?
269
279
  }
270
280
  ) -> _CreateAnalyzerResponseSuccess
@@ -386,7 +396,7 @@ module Aws
386
396
  def id: () -> ::String
387
397
  def next_token: () -> ::String
388
398
  def resource: () -> ::String
389
- def resource_type: () -> ("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")
399
+ def resource_type: () -> ("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")
390
400
  def resource_owner_account: () -> ::String
391
401
  def status: () -> ("ACTIVE" | "ARCHIVED" | "RESOLVED")
392
402
  def updated_at: () -> ::Time
@@ -456,7 +466,7 @@ module Aws
456
466
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AccessAnalyzer/Client.html#list_analyzed_resources-instance_method
457
467
  def list_analyzed_resources: (
458
468
  analyzer_arn: ::String,
459
- ?resource_type: ("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"),
469
+ ?resource_type: ("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"),
460
470
  ?next_token: ::String,
461
471
  ?max_results: ::Integer
462
472
  ) -> _ListAnalyzedResourcesResponseSuccess
@@ -610,6 +620,31 @@ module Aws
610
620
  ) -> _UntagResourceResponseSuccess
611
621
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _UntagResourceResponseSuccess
612
622
 
623
+ interface _UpdateAnalyzerResponseSuccess
624
+ include ::Seahorse::Client::_ResponseSuccess[Types::UpdateAnalyzerResponse]
625
+ def configuration: () -> Types::AnalyzerConfiguration
626
+ end
627
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AccessAnalyzer/Client.html#update_analyzer-instance_method
628
+ def update_analyzer: (
629
+ analyzer_name: ::String,
630
+ ?configuration: {
631
+ unused_access: {
632
+ unused_access_age: ::Integer?,
633
+ analysis_rule: {
634
+ exclusions: Array[
635
+ {
636
+ account_ids: Array[::String]?,
637
+ resource_tags: Array[
638
+ Hash[::String, ::String],
639
+ ]?
640
+ },
641
+ ]?
642
+ }?
643
+ }?
644
+ }
645
+ ) -> _UpdateAnalyzerResponseSuccess
646
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _UpdateAnalyzerResponseSuccess
647
+
613
648
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AccessAnalyzer/Client.html#update_archive_rule-instance_method
614
649
  def update_archive_rule: (
615
650
  analyzer_name: ::String,
@@ -645,7 +680,7 @@ module Aws
645
680
  ?max_results: ::Integer,
646
681
  ?next_token: ::String,
647
682
  policy_document: ::String,
648
- policy_type: ("IDENTITY_POLICY" | "RESOURCE_POLICY" | "SERVICE_CONTROL_POLICY"),
683
+ policy_type: ("IDENTITY_POLICY" | "RESOURCE_POLICY" | "SERVICE_CONTROL_POLICY" | "RESOURCE_CONTROL_POLICY"),
649
684
  ?validate_policy_resource_type: ("AWS::S3::Bucket" | "AWS::S3::AccessPoint" | "AWS::S3::MultiRegionAccessPoint" | "AWS::S3ObjectLambda::AccessPoint" | "AWS::IAM::AssumeRolePolicyDocument" | "AWS::DynamoDB::Table")
650
685
  ) -> _ValidatePolicyResponseSuccess
651
686
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ValidatePolicyResponseSuccess
data/sig/types.rbs CHANGED
@@ -38,13 +38,14 @@ module Aws::AccessAnalyzer
38
38
  attr_accessor condition: ::Hash[::String, ::String]
39
39
  attr_accessor resource: ::String
40
40
  attr_accessor is_public: bool
41
- attr_accessor resource_type: ("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")
41
+ attr_accessor resource_type: ("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")
42
42
  attr_accessor created_at: ::Time
43
43
  attr_accessor change_type: ("CHANGED" | "NEW" | "UNCHANGED")
44
44
  attr_accessor status: ("ACTIVE" | "ARCHIVED" | "RESOLVED")
45
45
  attr_accessor resource_owner_account: ::String
46
46
  attr_accessor error: ::String
47
47
  attr_accessor sources: ::Array[Types::FindingSource]
48
+ attr_accessor resource_control_policy_restriction: ("APPLICABLE" | "FAILED_TO_EVALUATE_RCP" | "NOT_APPLICABLE")
48
49
  SENSITIVE: []
49
50
  end
50
51
 
@@ -76,9 +77,20 @@ module Aws::AccessAnalyzer
76
77
  end
77
78
  end
78
79
 
80
+ class AnalysisRule
81
+ attr_accessor exclusions: ::Array[Types::AnalysisRuleCriteria]
82
+ SENSITIVE: []
83
+ end
84
+
85
+ class AnalysisRuleCriteria
86
+ attr_accessor account_ids: ::Array[::String]
87
+ attr_accessor resource_tags: ::Array[::Hash[::String, ::String]]
88
+ SENSITIVE: []
89
+ end
90
+
79
91
  class AnalyzedResource
80
92
  attr_accessor resource_arn: ::String
81
- attr_accessor resource_type: ("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")
93
+ attr_accessor resource_type: ("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")
82
94
  attr_accessor created_at: ::Time
83
95
  attr_accessor analyzed_at: ::Time
84
96
  attr_accessor updated_at: ::Time
@@ -94,7 +106,7 @@ module Aws::AccessAnalyzer
94
106
  class AnalyzedResourceSummary
95
107
  attr_accessor resource_arn: ::String
96
108
  attr_accessor resource_owner_account: ::String
97
- attr_accessor resource_type: ("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")
109
+ attr_accessor resource_type: ("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")
98
110
  SENSITIVE: []
99
111
  end
100
112
 
@@ -348,6 +360,7 @@ module Aws::AccessAnalyzer
348
360
  attr_accessor is_public: bool
349
361
  attr_accessor principal: ::Hash[::String, ::String]
350
362
  attr_accessor sources: ::Array[Types::FindingSource]
363
+ attr_accessor resource_control_policy_restriction: ("APPLICABLE" | "FAILED_TO_EVALUATE_RCP" | "NOT_APPLICABLE")
351
364
  SENSITIVE: []
352
365
  end
353
366
 
@@ -357,7 +370,7 @@ module Aws::AccessAnalyzer
357
370
  attr_accessor action: ::Array[::String]
358
371
  attr_accessor resource: ::String
359
372
  attr_accessor is_public: bool
360
- attr_accessor resource_type: ("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")
373
+ attr_accessor resource_type: ("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")
361
374
  attr_accessor condition: ::Hash[::String, ::String]
362
375
  attr_accessor created_at: ::Time
363
376
  attr_accessor analyzed_at: ::Time
@@ -366,6 +379,7 @@ module Aws::AccessAnalyzer
366
379
  attr_accessor resource_owner_account: ::String
367
380
  attr_accessor error: ::String
368
381
  attr_accessor sources: ::Array[Types::FindingSource]
382
+ attr_accessor resource_control_policy_restriction: ("APPLICABLE" | "FAILED_TO_EVALUATE_RCP" | "NOT_APPLICABLE")
369
383
  SENSITIVE: []
370
384
  end
371
385
 
@@ -410,7 +424,7 @@ module Aws::AccessAnalyzer
410
424
  attr_accessor action: ::Array[::String]
411
425
  attr_accessor resource: ::String
412
426
  attr_accessor is_public: bool
413
- attr_accessor resource_type: ("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")
427
+ attr_accessor resource_type: ("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")
414
428
  attr_accessor condition: ::Hash[::String, ::String]
415
429
  attr_accessor created_at: ::Time
416
430
  attr_accessor analyzed_at: ::Time
@@ -419,6 +433,7 @@ module Aws::AccessAnalyzer
419
433
  attr_accessor resource_owner_account: ::String
420
434
  attr_accessor error: ::String
421
435
  attr_accessor sources: ::Array[Types::FindingSource]
436
+ attr_accessor resource_control_policy_restriction: ("APPLICABLE" | "FAILED_TO_EVALUATE_RCP" | "NOT_APPLICABLE")
422
437
  SENSITIVE: []
423
438
  end
424
439
 
@@ -428,7 +443,7 @@ module Aws::AccessAnalyzer
428
443
  attr_accessor error: ::String
429
444
  attr_accessor id: ::String
430
445
  attr_accessor resource: ::String
431
- attr_accessor resource_type: ("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")
446
+ attr_accessor resource_type: ("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")
432
447
  attr_accessor resource_owner_account: ::String
433
448
  attr_accessor status: ("ACTIVE" | "ARCHIVED" | "RESOLVED")
434
449
  attr_accessor updated_at: ::Time
@@ -549,7 +564,7 @@ module Aws::AccessAnalyzer
549
564
  attr_accessor id: ::String
550
565
  attr_accessor next_token: ::String
551
566
  attr_accessor resource: ::String
552
- attr_accessor resource_type: ("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")
567
+ attr_accessor resource_type: ("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")
553
568
  attr_accessor resource_owner_account: ::String
554
569
  attr_accessor status: ("ACTIVE" | "ARCHIVED" | "RESOLVED")
555
570
  attr_accessor updated_at: ::Time
@@ -662,7 +677,7 @@ module Aws::AccessAnalyzer
662
677
 
663
678
  class ListAnalyzedResourcesRequest
664
679
  attr_accessor analyzer_arn: ::String
665
- attr_accessor resource_type: ("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")
680
+ attr_accessor resource_type: ("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")
666
681
  attr_accessor next_token: ::String
667
682
  attr_accessor max_results: ::Integer
668
683
  SENSITIVE: []
@@ -1021,6 +1036,7 @@ module Aws::AccessAnalyzer
1021
1036
 
1022
1037
  class UnusedAccessConfiguration
1023
1038
  attr_accessor unused_access_age: ::Integer
1039
+ attr_accessor analysis_rule: Types::AnalysisRule
1024
1040
  SENSITIVE: []
1025
1041
  end
1026
1042
 
@@ -1061,6 +1077,17 @@ module Aws::AccessAnalyzer
1061
1077
  SENSITIVE: []
1062
1078
  end
1063
1079
 
1080
+ class UpdateAnalyzerRequest
1081
+ attr_accessor analyzer_name: ::String
1082
+ attr_accessor configuration: Types::AnalyzerConfiguration
1083
+ SENSITIVE: []
1084
+ end
1085
+
1086
+ class UpdateAnalyzerResponse
1087
+ attr_accessor configuration: Types::AnalyzerConfiguration
1088
+ SENSITIVE: []
1089
+ end
1090
+
1064
1091
  class UpdateArchiveRuleRequest
1065
1092
  attr_accessor analyzer_name: ::String
1066
1093
  attr_accessor rule_name: ::String
@@ -1092,7 +1119,7 @@ module Aws::AccessAnalyzer
1092
1119
  attr_accessor max_results: ::Integer
1093
1120
  attr_accessor next_token: ::String
1094
1121
  attr_accessor policy_document: ::String
1095
- attr_accessor policy_type: ("IDENTITY_POLICY" | "RESOURCE_POLICY" | "SERVICE_CONTROL_POLICY")
1122
+ attr_accessor policy_type: ("IDENTITY_POLICY" | "RESOURCE_POLICY" | "SERVICE_CONTROL_POLICY" | "RESOURCE_CONTROL_POLICY")
1096
1123
  attr_accessor validate_policy_resource_type: ("AWS::S3::Bucket" | "AWS::S3::AccessPoint" | "AWS::S3::MultiRegionAccessPoint" | "AWS::S3ObjectLambda::AccessPoint" | "AWS::IAM::AssumeRolePolicyDocument" | "AWS::DynamoDB::Table")
1097
1124
  SENSITIVE: []
1098
1125
  end
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.61.0
4
+ version: 1.64.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: 2024-10-18 00:00:00.000000000 Z
11
+ date: 2024-11-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -36,14 +36,14 @@ dependencies:
36
36
  requirements:
37
37
  - - "~>"
38
38
  - !ruby/object:Gem::Version
39
- version: '1.1'
39
+ version: '1.5'
40
40
  type: :runtime
41
41
  prerelease: false
42
42
  version_requirements: !ruby/object:Gem::Requirement
43
43
  requirements:
44
44
  - - "~>"
45
45
  - !ruby/object:Gem::Version
46
- version: '1.1'
46
+ version: '1.5'
47
47
  description: Official AWS Ruby gem for Access Analyzer. This gem is part of the AWS
48
48
  SDK for Ruby.
49
49
  email: