aws-sdk-accessanalyzer 1.89.0 → 1.90.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: 0e190af346aed3013d987209d715f01a079c06a5f949390d670423a7f56c5d1c
4
- data.tar.gz: ddf315cd7f293e9c2d84c88ecf32fa51f74426025a147e6ddfb9bbe581558f37
3
+ metadata.gz: f4dd901e636b8821c52d8556e734f5669548e39810586dc4680051dd657d7891
4
+ data.tar.gz: a4d1770d7b2f2b61c88fabb13c9ee68f3da4022867e98113419e7cdd2bde64d3
5
5
  SHA512:
6
- metadata.gz: 5f62f409b29a8be67504eaa463274dd4b5e66af02b56eb3efbb4184fd566e8ef1381b9969503e2c76f6e62117b237eaf4651cdd1609f5a929ac3fa51072c9b4d
7
- data.tar.gz: 4d278475ae461a67543ca89c17cc7ee8be505f138cdaad7fd11c94c727470bf6744db14f24735ba61ff57cb9b447c4d94e06086760705cdfd186b7353ec43506
6
+ metadata.gz: 454955e5ef827979e0419c495152505ee8cc58f0a3d4ccc227fe7a1170fc1bf69a41ae8ea8d006d25ee7ed2bc475563d93244bcf2c2a10a3b31a551f64162305
7
+ data.tar.gz: e9ad619bdd1bdca97beee2fbd95ebe7bfc6fb7deb4ba20e44f8cba3f82030bac947f60d89b099f077c47154348cb21e1611f025f4e2f3d3d7d5fd8126872e6ab
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.90.0 (2026-05-18)
5
+ ------------------
6
+
7
+ * Feature - Services manage service-linked analyzers through dedicated APIs - CreateServiceLinkedAnalyzer and DeleteServiceLinkedAnalyzer that separate service-linked specific operations from customer-managed operations. It also shows up in ListAnalyzers and GetAnalyzer responses.
8
+
4
9
  1.89.0 (2026-05-13)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.89.0
1
+ 1.90.0
@@ -1020,7 +1020,7 @@ module Aws::AccessAnalyzer
1020
1020
  # @example Request syntax with placeholder values
1021
1021
  #
1022
1022
  # resp = client.create_analyzer({
1023
- # analyzer_name: "Name", # required
1023
+ # analyzer_name: "AnalyzerName", # required
1024
1024
  # type: "ACCOUNT", # required, accepts ACCOUNT, ORGANIZATION, ACCOUNT_UNUSED_ACCESS, ORGANIZATION_UNUSED_ACCESS, ACCOUNT_INTERNAL_ACCESS, ORGANIZATION_INTERNAL_ACCESS
1025
1025
  # archive_rules: [
1026
1026
  # {
@@ -1113,7 +1113,7 @@ module Aws::AccessAnalyzer
1113
1113
  # @example Request syntax with placeholder values
1114
1114
  #
1115
1115
  # resp = client.create_archive_rule({
1116
- # analyzer_name: "Name", # required
1116
+ # analyzer_name: "AnalyzerName", # required
1117
1117
  # rule_name: "Name", # required
1118
1118
  # filter: { # required
1119
1119
  # "String" => {
@@ -1135,6 +1135,99 @@ module Aws::AccessAnalyzer
1135
1135
  req.send_request(options)
1136
1136
  end
1137
1137
 
1138
+ # Creates a service-linked analyzer managed by an Amazon Web Services
1139
+ # service. This operation can only be invoked by authorized Amazon Web
1140
+ # Services services. Direct customer invocation returns
1141
+ # `AccessDeniedException`.
1142
+ #
1143
+ # Service-linked analyzers enable Amazon Web Services services to create
1144
+ # and manage analyzers on behalf of customers. The lifecycle of these
1145
+ # analyzers is managed by the calling service.
1146
+ #
1147
+ # @option params [required, String] :type
1148
+ # The type of analyzer to create. Valid values are
1149
+ # `ACCOUNT_UNUSED_ACCESS` and `ORGANIZATION_UNUSED_ACCESS`.
1150
+ #
1151
+ # @option params [Array<Types::InlineArchiveRule>] :archive_rules
1152
+ # Specifies the archive rules to add for the analyzer. Archive rules
1153
+ # automatically archive findings that meet the criteria you define for
1154
+ # the rule.
1155
+ #
1156
+ # @option params [String] :client_token
1157
+ # A client token.
1158
+ #
1159
+ # **A suitable default value is auto-generated.** You should normally
1160
+ # not need to pass this option.**
1161
+ #
1162
+ # @option params [Types::AnalyzerConfiguration] :configuration
1163
+ # Specifies the configuration of the analyzer. The specified scope of
1164
+ # unused access is used for the configuration.
1165
+ #
1166
+ # @return [Types::CreateServiceLinkedAnalyzerResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1167
+ #
1168
+ # * {Types::CreateServiceLinkedAnalyzerResponse#arn #arn} => String
1169
+ #
1170
+ # @example Request syntax with placeholder values
1171
+ #
1172
+ # resp = client.create_service_linked_analyzer({
1173
+ # type: "ACCOUNT", # required, accepts ACCOUNT, ORGANIZATION, ACCOUNT_UNUSED_ACCESS, ORGANIZATION_UNUSED_ACCESS, ACCOUNT_INTERNAL_ACCESS, ORGANIZATION_INTERNAL_ACCESS
1174
+ # archive_rules: [
1175
+ # {
1176
+ # rule_name: "Name", # required
1177
+ # filter: { # required
1178
+ # "String" => {
1179
+ # eq: ["String"],
1180
+ # neq: ["String"],
1181
+ # contains: ["String"],
1182
+ # exists: false,
1183
+ # },
1184
+ # },
1185
+ # },
1186
+ # ],
1187
+ # client_token: "String",
1188
+ # configuration: {
1189
+ # unused_access: {
1190
+ # unused_access_age: 1,
1191
+ # analysis_rule: {
1192
+ # exclusions: [
1193
+ # {
1194
+ # account_ids: ["String"],
1195
+ # resource_tags: [
1196
+ # {
1197
+ # "String" => "String",
1198
+ # },
1199
+ # ],
1200
+ # },
1201
+ # ],
1202
+ # },
1203
+ # },
1204
+ # internal_access: {
1205
+ # analysis_rule: {
1206
+ # inclusions: [
1207
+ # {
1208
+ # account_ids: ["String"],
1209
+ # resource_types: ["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
1210
+ # resource_arns: ["String"],
1211
+ # },
1212
+ # ],
1213
+ # },
1214
+ # },
1215
+ # },
1216
+ # })
1217
+ #
1218
+ # @example Response structure
1219
+ #
1220
+ # resp.arn #=> String
1221
+ #
1222
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateServiceLinkedAnalyzer AWS API Documentation
1223
+ #
1224
+ # @overload create_service_linked_analyzer(params = {})
1225
+ # @param [Hash] params ({})
1226
+ def create_service_linked_analyzer(params = {}, options = {})
1227
+ req = build_request(:create_service_linked_analyzer, params)
1228
+ req.send_request(options)
1229
+ end
1230
+
1138
1231
  # Deletes the specified analyzer. When you delete an analyzer, IAM
1139
1232
  # Access Analyzer is disabled for the account or organization in the
1140
1233
  # current or specific Region. All findings that were generated by the
@@ -1154,7 +1247,7 @@ module Aws::AccessAnalyzer
1154
1247
  # @example Request syntax with placeholder values
1155
1248
  #
1156
1249
  # resp = client.delete_analyzer({
1157
- # analyzer_name: "Name", # required
1250
+ # analyzer_name: "AnalyzerName", # required
1158
1251
  # client_token: "String",
1159
1252
  # })
1160
1253
  #
@@ -1187,7 +1280,7 @@ module Aws::AccessAnalyzer
1187
1280
  # @example Request syntax with placeholder values
1188
1281
  #
1189
1282
  # resp = client.delete_archive_rule({
1190
- # analyzer_name: "Name", # required
1283
+ # analyzer_name: "AnalyzerName", # required
1191
1284
  # rule_name: "Name", # required
1192
1285
  # client_token: "String",
1193
1286
  # })
@@ -1201,6 +1294,43 @@ module Aws::AccessAnalyzer
1201
1294
  req.send_request(options)
1202
1295
  end
1203
1296
 
1297
+ # Deletes a service-linked analyzer. This operation can be invoked by
1298
+ # both authorized Amazon Web Services services and customers.
1299
+ #
1300
+ # When invoked by a customer, IAM Access Analyzer performs a callback to
1301
+ # the managing service to verify whether the analyzer is still in use
1302
+ # and can be deleted. If the service indicates the analyzer is still in
1303
+ # use, the deletion is rejected with `ConflictException`.
1304
+ #
1305
+ # @option params [required, String] :analyzer_name
1306
+ # The name of the service-linked analyzer to delete. Service-linked
1307
+ # analyzer names follow the format
1308
+ # `_AccessAnalyzerFor{ServiceName}-{Id}`.
1309
+ #
1310
+ # @option params [String] :client_token
1311
+ # A client token.
1312
+ #
1313
+ # **A suitable default value is auto-generated.** You should normally
1314
+ # not need to pass this option.**
1315
+ #
1316
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1317
+ #
1318
+ # @example Request syntax with placeholder values
1319
+ #
1320
+ # resp = client.delete_service_linked_analyzer({
1321
+ # analyzer_name: "AnalyzerName", # required
1322
+ # client_token: "String",
1323
+ # })
1324
+ #
1325
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/DeleteServiceLinkedAnalyzer AWS API Documentation
1326
+ #
1327
+ # @overload delete_service_linked_analyzer(params = {})
1328
+ # @param [Hash] params ({})
1329
+ def delete_service_linked_analyzer(params = {}, options = {})
1330
+ req = build_request(:delete_service_linked_analyzer, params)
1331
+ req.send_request(options)
1332
+ end
1333
+
1204
1334
  # Creates a recommendation for an unused permissions finding.
1205
1335
  #
1206
1336
  # @option params [required, String] :analyzer_arn
@@ -1407,7 +1537,7 @@ module Aws::AccessAnalyzer
1407
1537
  # @example Request syntax with placeholder values
1408
1538
  #
1409
1539
  # resp = client.get_analyzer({
1410
- # analyzer_name: "Name", # required
1540
+ # analyzer_name: "AnalyzerName", # required
1411
1541
  # })
1412
1542
  #
1413
1543
  # @example Response structure
@@ -1436,6 +1566,7 @@ module Aws::AccessAnalyzer
1436
1566
  # resp.analyzer.configuration.internal_access.analysis_rule.inclusions[0].resource_types[0] #=> 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"
1437
1567
  # resp.analyzer.configuration.internal_access.analysis_rule.inclusions[0].resource_arns #=> Array
1438
1568
  # resp.analyzer.configuration.internal_access.analysis_rule.inclusions[0].resource_arns[0] #=> String
1569
+ # resp.analyzer.managed_by #=> String
1439
1570
  #
1440
1571
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/GetAnalyzer AWS API Documentation
1441
1572
  #
@@ -1468,7 +1599,7 @@ module Aws::AccessAnalyzer
1468
1599
  # @example Request syntax with placeholder values
1469
1600
  #
1470
1601
  # resp = client.get_archive_rule({
1471
- # analyzer_name: "Name", # required
1602
+ # analyzer_name: "AnalyzerName", # required
1472
1603
  # rule_name: "Name", # required
1473
1604
  # })
1474
1605
  #
@@ -2175,6 +2306,7 @@ module Aws::AccessAnalyzer
2175
2306
  # resp.analyzers[0].configuration.internal_access.analysis_rule.inclusions[0].resource_types[0] #=> 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"
2176
2307
  # resp.analyzers[0].configuration.internal_access.analysis_rule.inclusions[0].resource_arns #=> Array
2177
2308
  # resp.analyzers[0].configuration.internal_access.analysis_rule.inclusions[0].resource_arns[0] #=> String
2309
+ # resp.analyzers[0].managed_by #=> String
2178
2310
  # resp.next_token #=> String
2179
2311
  #
2180
2312
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/ListAnalyzers AWS API Documentation
@@ -2207,7 +2339,7 @@ module Aws::AccessAnalyzer
2207
2339
  # @example Request syntax with placeholder values
2208
2340
  #
2209
2341
  # resp = client.list_archive_rules({
2210
- # analyzer_name: "Name", # required
2342
+ # analyzer_name: "AnalyzerName", # required
2211
2343
  # next_token: "Token",
2212
2344
  # max_results: 1,
2213
2345
  # })
@@ -2675,7 +2807,7 @@ module Aws::AccessAnalyzer
2675
2807
  # @example Request syntax with placeholder values
2676
2808
  #
2677
2809
  # resp = client.update_analyzer({
2678
- # analyzer_name: "Name", # required
2810
+ # analyzer_name: "AnalyzerName", # required
2679
2811
  # configuration: {
2680
2812
  # unused_access: {
2681
2813
  # unused_access_age: 1,
@@ -2755,7 +2887,7 @@ module Aws::AccessAnalyzer
2755
2887
  # @example Request syntax with placeholder values
2756
2888
  #
2757
2889
  # resp = client.update_archive_rule({
2758
- # analyzer_name: "Name", # required
2890
+ # analyzer_name: "AnalyzerName", # required
2759
2891
  # rule_name: "Name", # required
2760
2892
  # filter: { # required
2761
2893
  # "String" => {
@@ -2936,7 +3068,7 @@ module Aws::AccessAnalyzer
2936
3068
  tracer: tracer
2937
3069
  )
2938
3070
  context[:gem_name] = 'aws-sdk-accessanalyzer'
2939
- context[:gem_version] = '1.89.0'
3071
+ context[:gem_version] = '1.90.0'
2940
3072
  Seahorse::Client::Request.new(handlers, context)
2941
3073
  end
2942
3074
 
@@ -49,6 +49,7 @@ module Aws::AccessAnalyzer
49
49
  AnalyzedResourcesList = Shapes::ListShape.new(name: 'AnalyzedResourcesList')
50
50
  AnalyzerArn = Shapes::StringShape.new(name: 'AnalyzerArn')
51
51
  AnalyzerConfiguration = Shapes::UnionShape.new(name: 'AnalyzerConfiguration')
52
+ AnalyzerName = Shapes::StringShape.new(name: 'AnalyzerName')
52
53
  AnalyzerStatus = Shapes::StringShape.new(name: 'AnalyzerStatus')
53
54
  AnalyzerSummary = Shapes::StructureShape.new(name: 'AnalyzerSummary')
54
55
  AnalyzersList = Shapes::ListShape.new(name: 'AnalyzersList')
@@ -81,9 +82,12 @@ module Aws::AccessAnalyzer
81
82
  CreateAnalyzerRequest = Shapes::StructureShape.new(name: 'CreateAnalyzerRequest')
82
83
  CreateAnalyzerResponse = Shapes::StructureShape.new(name: 'CreateAnalyzerResponse')
83
84
  CreateArchiveRuleRequest = Shapes::StructureShape.new(name: 'CreateArchiveRuleRequest')
85
+ CreateServiceLinkedAnalyzerRequest = Shapes::StructureShape.new(name: 'CreateServiceLinkedAnalyzerRequest')
86
+ CreateServiceLinkedAnalyzerResponse = Shapes::StructureShape.new(name: 'CreateServiceLinkedAnalyzerResponse')
84
87
  Criterion = Shapes::StructureShape.new(name: 'Criterion')
85
88
  DeleteAnalyzerRequest = Shapes::StructureShape.new(name: 'DeleteAnalyzerRequest')
86
89
  DeleteArchiveRuleRequest = Shapes::StructureShape.new(name: 'DeleteArchiveRuleRequest')
90
+ DeleteServiceLinkedAnalyzerRequest = Shapes::StructureShape.new(name: 'DeleteServiceLinkedAnalyzerRequest')
87
91
  DynamodbStreamConfiguration = Shapes::StructureShape.new(name: 'DynamodbStreamConfiguration')
88
92
  DynamodbStreamPolicy = Shapes::StringShape.new(name: 'DynamodbStreamPolicy')
89
93
  DynamodbTableConfiguration = Shapes::StructureShape.new(name: 'DynamodbTableConfiguration')
@@ -435,7 +439,7 @@ module Aws::AccessAnalyzer
435
439
  AnalyzerConfiguration.struct_class = Types::AnalyzerConfiguration
436
440
 
437
441
  AnalyzerSummary.add_member(:arn, Shapes::ShapeRef.new(shape: AnalyzerArn, required: true, location_name: "arn"))
438
- AnalyzerSummary.add_member(:name, Shapes::ShapeRef.new(shape: Name, required: true, location_name: "name"))
442
+ AnalyzerSummary.add_member(:name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location_name: "name"))
439
443
  AnalyzerSummary.add_member(:type, Shapes::ShapeRef.new(shape: Type, required: true, location_name: "type"))
440
444
  AnalyzerSummary.add_member(:created_at, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "createdAt"))
441
445
  AnalyzerSummary.add_member(:last_resource_analyzed, Shapes::ShapeRef.new(shape: String, location_name: "lastResourceAnalyzed"))
@@ -444,6 +448,7 @@ module Aws::AccessAnalyzer
444
448
  AnalyzerSummary.add_member(:status, Shapes::ShapeRef.new(shape: AnalyzerStatus, required: true, location_name: "status"))
445
449
  AnalyzerSummary.add_member(:status_reason, Shapes::ShapeRef.new(shape: StatusReason, location_name: "statusReason"))
446
450
  AnalyzerSummary.add_member(:configuration, Shapes::ShapeRef.new(shape: AnalyzerConfiguration, location_name: "configuration"))
451
+ AnalyzerSummary.add_member(:managed_by, Shapes::ShapeRef.new(shape: String, location_name: "managedBy"))
447
452
  AnalyzerSummary.struct_class = Types::AnalyzerSummary
448
453
 
449
454
  AnalyzersList.member = Shapes::ShapeRef.new(shape: AnalyzerSummary)
@@ -559,7 +564,7 @@ module Aws::AccessAnalyzer
559
564
  CreateAccessPreviewResponse.add_member(:id, Shapes::ShapeRef.new(shape: AccessPreviewId, required: true, location_name: "id"))
560
565
  CreateAccessPreviewResponse.struct_class = Types::CreateAccessPreviewResponse
561
566
 
562
- CreateAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location_name: "analyzerName"))
567
+ CreateAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location_name: "analyzerName"))
563
568
  CreateAnalyzerRequest.add_member(:type, Shapes::ShapeRef.new(shape: Type, required: true, location_name: "type"))
564
569
  CreateAnalyzerRequest.add_member(:archive_rules, Shapes::ShapeRef.new(shape: InlineArchiveRulesList, location_name: "archiveRules"))
565
570
  CreateAnalyzerRequest.add_member(:tags, Shapes::ShapeRef.new(shape: TagsMap, location_name: "tags"))
@@ -570,27 +575,40 @@ module Aws::AccessAnalyzer
570
575
  CreateAnalyzerResponse.add_member(:arn, Shapes::ShapeRef.new(shape: AnalyzerArn, location_name: "arn"))
571
576
  CreateAnalyzerResponse.struct_class = Types::CreateAnalyzerResponse
572
577
 
573
- CreateArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
578
+ CreateArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
574
579
  CreateArchiveRuleRequest.add_member(:rule_name, Shapes::ShapeRef.new(shape: Name, required: true, location_name: "ruleName"))
575
580
  CreateArchiveRuleRequest.add_member(:filter, Shapes::ShapeRef.new(shape: FilterCriteriaMap, required: true, location_name: "filter"))
576
581
  CreateArchiveRuleRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken" => true}))
577
582
  CreateArchiveRuleRequest.struct_class = Types::CreateArchiveRuleRequest
578
583
 
584
+ CreateServiceLinkedAnalyzerRequest.add_member(:type, Shapes::ShapeRef.new(shape: Type, required: true, location_name: "type"))
585
+ CreateServiceLinkedAnalyzerRequest.add_member(:archive_rules, Shapes::ShapeRef.new(shape: InlineArchiveRulesList, location_name: "archiveRules"))
586
+ CreateServiceLinkedAnalyzerRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken" => true}))
587
+ CreateServiceLinkedAnalyzerRequest.add_member(:configuration, Shapes::ShapeRef.new(shape: AnalyzerConfiguration, location_name: "configuration"))
588
+ CreateServiceLinkedAnalyzerRequest.struct_class = Types::CreateServiceLinkedAnalyzerRequest
589
+
590
+ CreateServiceLinkedAnalyzerResponse.add_member(:arn, Shapes::ShapeRef.new(shape: AnalyzerArn, location_name: "arn"))
591
+ CreateServiceLinkedAnalyzerResponse.struct_class = Types::CreateServiceLinkedAnalyzerResponse
592
+
579
593
  Criterion.add_member(:eq, Shapes::ShapeRef.new(shape: ValueList, location_name: "eq"))
580
594
  Criterion.add_member(:neq, Shapes::ShapeRef.new(shape: ValueList, location_name: "neq"))
581
595
  Criterion.add_member(:contains, Shapes::ShapeRef.new(shape: ValueList, location_name: "contains"))
582
596
  Criterion.add_member(:exists, Shapes::ShapeRef.new(shape: Boolean, location_name: "exists"))
583
597
  Criterion.struct_class = Types::Criterion
584
598
 
585
- DeleteAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
599
+ DeleteAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
586
600
  DeleteAnalyzerRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "clientToken", metadata: {"idempotencyToken" => true}))
587
601
  DeleteAnalyzerRequest.struct_class = Types::DeleteAnalyzerRequest
588
602
 
589
- DeleteArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
603
+ DeleteArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
590
604
  DeleteArchiveRuleRequest.add_member(:rule_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "ruleName"))
591
605
  DeleteArchiveRuleRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "clientToken", metadata: {"idempotencyToken" => true}))
592
606
  DeleteArchiveRuleRequest.struct_class = Types::DeleteArchiveRuleRequest
593
607
 
608
+ DeleteServiceLinkedAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
609
+ DeleteServiceLinkedAnalyzerRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location: "querystring", location_name: "clientToken", metadata: {"idempotencyToken" => true}))
610
+ DeleteServiceLinkedAnalyzerRequest.struct_class = Types::DeleteServiceLinkedAnalyzerRequest
611
+
594
612
  DynamodbStreamConfiguration.add_member(:stream_policy, Shapes::ShapeRef.new(shape: DynamodbStreamPolicy, location_name: "streamPolicy"))
595
613
  DynamodbStreamConfiguration.struct_class = Types::DynamodbStreamConfiguration
596
614
 
@@ -761,13 +779,13 @@ module Aws::AccessAnalyzer
761
779
  GetAnalyzedResourceResponse.add_member(:resource, Shapes::ShapeRef.new(shape: AnalyzedResource, location_name: "resource"))
762
780
  GetAnalyzedResourceResponse.struct_class = Types::GetAnalyzedResourceResponse
763
781
 
764
- GetAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
782
+ GetAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
765
783
  GetAnalyzerRequest.struct_class = Types::GetAnalyzerRequest
766
784
 
767
785
  GetAnalyzerResponse.add_member(:analyzer, Shapes::ShapeRef.new(shape: AnalyzerSummary, required: true, location_name: "analyzer"))
768
786
  GetAnalyzerResponse.struct_class = Types::GetAnalyzerResponse
769
787
 
770
- GetArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
788
+ GetArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
771
789
  GetArchiveRuleRequest.add_member(:rule_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "ruleName"))
772
790
  GetArchiveRuleRequest.struct_class = Types::GetArchiveRuleRequest
773
791
 
@@ -964,7 +982,7 @@ module Aws::AccessAnalyzer
964
982
  ListAnalyzersResponse.add_member(:next_token, Shapes::ShapeRef.new(shape: Token, location_name: "nextToken"))
965
983
  ListAnalyzersResponse.struct_class = Types::ListAnalyzersResponse
966
984
 
967
- ListArchiveRulesRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
985
+ ListArchiveRulesRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
968
986
  ListArchiveRulesRequest.add_member(:next_token, Shapes::ShapeRef.new(shape: Token, location: "querystring", location_name: "nextToken"))
969
987
  ListArchiveRulesRequest.add_member(:max_results, Shapes::ShapeRef.new(shape: Integer, location: "querystring", location_name: "maxResults"))
970
988
  ListArchiveRulesRequest.struct_class = Types::ListArchiveRulesRequest
@@ -1290,14 +1308,14 @@ module Aws::AccessAnalyzer
1290
1308
  UnusedPermissionsRecommendedStep.add_member(:existing_policy_id, Shapes::ShapeRef.new(shape: String, location_name: "existingPolicyId"))
1291
1309
  UnusedPermissionsRecommendedStep.struct_class = Types::UnusedPermissionsRecommendedStep
1292
1310
 
1293
- UpdateAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
1311
+ UpdateAnalyzerRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
1294
1312
  UpdateAnalyzerRequest.add_member(:configuration, Shapes::ShapeRef.new(shape: AnalyzerConfiguration, location_name: "configuration"))
1295
1313
  UpdateAnalyzerRequest.struct_class = Types::UpdateAnalyzerRequest
1296
1314
 
1297
1315
  UpdateAnalyzerResponse.add_member(:configuration, Shapes::ShapeRef.new(shape: AnalyzerConfiguration, location_name: "configuration"))
1298
1316
  UpdateAnalyzerResponse.struct_class = Types::UpdateAnalyzerResponse
1299
1317
 
1300
- UpdateArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "analyzerName"))
1318
+ UpdateArchiveRuleRequest.add_member(:analyzer_name, Shapes::ShapeRef.new(shape: AnalyzerName, required: true, location: "uri", location_name: "analyzerName"))
1301
1319
  UpdateArchiveRuleRequest.add_member(:rule_name, Shapes::ShapeRef.new(shape: Name, required: true, location: "uri", location_name: "ruleName"))
1302
1320
  UpdateArchiveRuleRequest.add_member(:filter, Shapes::ShapeRef.new(shape: FilterCriteriaMap, required: true, location_name: "filter"))
1303
1321
  UpdateArchiveRuleRequest.add_member(:client_token, Shapes::ShapeRef.new(shape: String, location_name: "clientToken", metadata: {"idempotencyToken" => true}))
@@ -1477,6 +1495,20 @@ module Aws::AccessAnalyzer
1477
1495
  o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1478
1496
  end)
1479
1497
 
1498
+ api.add_operation(:create_service_linked_analyzer, Seahorse::Model::Operation.new.tap do |o|
1499
+ o.name = "CreateServiceLinkedAnalyzer"
1500
+ o.http_method = "PUT"
1501
+ o.http_request_uri = "/service-linked-analyzer"
1502
+ o.input = Shapes::ShapeRef.new(shape: CreateServiceLinkedAnalyzerRequest)
1503
+ o.output = Shapes::ShapeRef.new(shape: CreateServiceLinkedAnalyzerResponse)
1504
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
1505
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
1506
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1507
+ o.errors << Shapes::ShapeRef.new(shape: ServiceQuotaExceededException)
1508
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1509
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1510
+ end)
1511
+
1480
1512
  api.add_operation(:delete_analyzer, Seahorse::Model::Operation.new.tap do |o|
1481
1513
  o.name = "DeleteAnalyzer"
1482
1514
  o.http_method = "DELETE"
@@ -1503,6 +1535,20 @@ module Aws::AccessAnalyzer
1503
1535
  o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1504
1536
  end)
1505
1537
 
1538
+ api.add_operation(:delete_service_linked_analyzer, Seahorse::Model::Operation.new.tap do |o|
1539
+ o.name = "DeleteServiceLinkedAnalyzer"
1540
+ o.http_method = "DELETE"
1541
+ o.http_request_uri = "/service-linked-analyzer/{analyzerName}"
1542
+ o.input = Shapes::ShapeRef.new(shape: DeleteServiceLinkedAnalyzerRequest)
1543
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
1544
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
1545
+ o.errors << Shapes::ShapeRef.new(shape: ConflictException)
1546
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
1547
+ o.errors << Shapes::ShapeRef.new(shape: InternalServerException)
1548
+ o.errors << Shapes::ShapeRef.new(shape: ThrottlingException)
1549
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
1550
+ end)
1551
+
1506
1552
  api.add_operation(:generate_finding_recommendation, Seahorse::Model::Operation.new.tap do |o|
1507
1553
  o.name = "GenerateFindingRecommendation"
1508
1554
  o.http_method = "POST"
@@ -563,6 +563,13 @@ module Aws::AccessAnalyzer
563
563
  # [2]: https://docs.aws.amazon.com/access-analyzer/latest/APIReference/API_ListAnalyzers.html
564
564
  # @return [Types::AnalyzerConfiguration]
565
565
  #
566
+ # @!attribute [rw] managed_by
567
+ # The service principal that manages this analyzer (for example,
568
+ # `securityhubv2.amazonaws.com`). This field is only present for
569
+ # service-linked analyzers and is not included for customer-managed
570
+ # analyzers.
571
+ # @return [String]
572
+ #
566
573
  # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/AnalyzerSummary AWS API Documentation
567
574
  #
568
575
  class AnalyzerSummary < Struct.new(
@@ -575,7 +582,8 @@ module Aws::AccessAnalyzer
575
582
  :tags,
576
583
  :status,
577
584
  :status_reason,
578
- :configuration)
585
+ :configuration,
586
+ :managed_by)
579
587
  SENSITIVE = []
580
588
  include Aws::Structure
581
589
  end
@@ -1169,6 +1177,59 @@ module Aws::AccessAnalyzer
1169
1177
  include Aws::Structure
1170
1178
  end
1171
1179
 
1180
+ # Creates a service-linked analyzer.
1181
+ #
1182
+ # @!attribute [rw] type
1183
+ # The type of analyzer to create. Valid values are
1184
+ # `ACCOUNT_UNUSED_ACCESS` and `ORGANIZATION_UNUSED_ACCESS`.
1185
+ # @return [String]
1186
+ #
1187
+ # @!attribute [rw] archive_rules
1188
+ # Specifies the archive rules to add for the analyzer. Archive rules
1189
+ # automatically archive findings that meet the criteria you define for
1190
+ # the rule.
1191
+ # @return [Array<Types::InlineArchiveRule>]
1192
+ #
1193
+ # @!attribute [rw] client_token
1194
+ # A client token.
1195
+ #
1196
+ # **A suitable default value is auto-generated.** You should normally
1197
+ # not need to pass this option.
1198
+ # @return [String]
1199
+ #
1200
+ # @!attribute [rw] configuration
1201
+ # Specifies the configuration of the analyzer. The specified scope of
1202
+ # unused access is used for the configuration.
1203
+ # @return [Types::AnalyzerConfiguration]
1204
+ #
1205
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateServiceLinkedAnalyzerRequest AWS API Documentation
1206
+ #
1207
+ class CreateServiceLinkedAnalyzerRequest < Struct.new(
1208
+ :type,
1209
+ :archive_rules,
1210
+ :client_token,
1211
+ :configuration)
1212
+ SENSITIVE = []
1213
+ include Aws::Structure
1214
+ end
1215
+
1216
+ # The response to the request to create a service-linked analyzer.
1217
+ #
1218
+ # @!attribute [rw] arn
1219
+ # The ARN of the service-linked analyzer that was created by the
1220
+ # request. The analyzer name follows the format
1221
+ # `_AccessAnalyzerFor{ServiceName}-{Id}` where `Id` is a randomly
1222
+ # generated identifier.
1223
+ # @return [String]
1224
+ #
1225
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/CreateServiceLinkedAnalyzerResponse AWS API Documentation
1226
+ #
1227
+ class CreateServiceLinkedAnalyzerResponse < Struct.new(
1228
+ :arn)
1229
+ SENSITIVE = []
1230
+ include Aws::Structure
1231
+ end
1232
+
1172
1233
  # The criteria to use in the filter that defines the archive rule. For
1173
1234
  # more information on available filter keys, see [IAM Access Analyzer
1174
1235
  # filter keys][1].
@@ -1258,6 +1319,30 @@ module Aws::AccessAnalyzer
1258
1319
  include Aws::Structure
1259
1320
  end
1260
1321
 
1322
+ # Deletes a service-linked analyzer.
1323
+ #
1324
+ # @!attribute [rw] analyzer_name
1325
+ # The name of the service-linked analyzer to delete. Service-linked
1326
+ # analyzer names follow the format
1327
+ # `_AccessAnalyzerFor{ServiceName}-{Id}`.
1328
+ # @return [String]
1329
+ #
1330
+ # @!attribute [rw] client_token
1331
+ # A client token.
1332
+ #
1333
+ # **A suitable default value is auto-generated.** You should normally
1334
+ # not need to pass this option.
1335
+ # @return [String]
1336
+ #
1337
+ # @see http://docs.aws.amazon.com/goto/WebAPI/accessanalyzer-2019-11-01/DeleteServiceLinkedAnalyzerRequest AWS API Documentation
1338
+ #
1339
+ class DeleteServiceLinkedAnalyzerRequest < Struct.new(
1340
+ :analyzer_name,
1341
+ :client_token)
1342
+ SENSITIVE = []
1343
+ include Aws::Structure
1344
+ end
1345
+
1261
1346
  # The proposed access control configuration for a DynamoDB stream. You
1262
1347
  # can propose a configuration for a new DynamoDB stream or an existing
1263
1348
  # DynamoDB stream that you own by specifying the policy for the DynamoDB
@@ -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.89.0'
57
+ GEM_VERSION = '1.90.0'
58
58
 
59
59
  end
60
60
 
data/sig/client.rbs CHANGED
@@ -318,6 +318,54 @@ module Aws
318
318
  ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
319
319
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
320
320
 
321
+ interface _CreateServiceLinkedAnalyzerResponseSuccess
322
+ include ::Seahorse::Client::_ResponseSuccess[Types::CreateServiceLinkedAnalyzerResponse]
323
+ def arn: () -> ::String
324
+ end
325
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AccessAnalyzer/Client.html#create_service_linked_analyzer-instance_method
326
+ def create_service_linked_analyzer: (
327
+ type: ("ACCOUNT" | "ORGANIZATION" | "ACCOUNT_UNUSED_ACCESS" | "ORGANIZATION_UNUSED_ACCESS" | "ACCOUNT_INTERNAL_ACCESS" | "ORGANIZATION_INTERNAL_ACCESS"),
328
+ ?archive_rules: Array[
329
+ {
330
+ rule_name: ::String,
331
+ filter: Hash[::String, {
332
+ eq: Array[::String]?,
333
+ neq: Array[::String]?,
334
+ contains: Array[::String]?,
335
+ exists: bool?
336
+ }]
337
+ },
338
+ ],
339
+ ?client_token: ::String,
340
+ ?configuration: {
341
+ unused_access: {
342
+ unused_access_age: ::Integer?,
343
+ analysis_rule: {
344
+ exclusions: Array[
345
+ {
346
+ account_ids: Array[::String]?,
347
+ resource_tags: Array[
348
+ Hash[::String, ::String],
349
+ ]?
350
+ },
351
+ ]?
352
+ }?
353
+ }?,
354
+ internal_access: {
355
+ analysis_rule: {
356
+ inclusions: Array[
357
+ {
358
+ account_ids: Array[::String]?,
359
+ resource_types: Array[("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")]?,
360
+ resource_arns: Array[::String]?
361
+ },
362
+ ]?
363
+ }?
364
+ }?
365
+ }
366
+ ) -> _CreateServiceLinkedAnalyzerResponseSuccess
367
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateServiceLinkedAnalyzerResponseSuccess
368
+
321
369
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AccessAnalyzer/Client.html#delete_analyzer-instance_method
322
370
  def delete_analyzer: (
323
371
  analyzer_name: ::String,
@@ -333,6 +381,13 @@ module Aws
333
381
  ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
334
382
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
335
383
 
384
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AccessAnalyzer/Client.html#delete_service_linked_analyzer-instance_method
385
+ def delete_service_linked_analyzer: (
386
+ analyzer_name: ::String,
387
+ ?client_token: ::String
388
+ ) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
389
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> ::Seahorse::Client::_ResponseSuccess[::Aws::EmptyStructure]
390
+
336
391
  # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/AccessAnalyzer/Client.html#generate_finding_recommendation-instance_method
337
392
  def generate_finding_recommendation: (
338
393
  analyzer_arn: ::String,
data/sig/types.rbs CHANGED
@@ -135,6 +135,7 @@ module Aws::AccessAnalyzer
135
135
  attr_accessor status: ("ACTIVE" | "CREATING" | "DISABLED" | "FAILED")
136
136
  attr_accessor status_reason: Types::StatusReason
137
137
  attr_accessor configuration: Types::AnalyzerConfiguration
138
+ attr_accessor managed_by: ::String
138
139
  SENSITIVE: []
139
140
  end
140
141
 
@@ -309,6 +310,19 @@ module Aws::AccessAnalyzer
309
310
  SENSITIVE: []
310
311
  end
311
312
 
313
+ class CreateServiceLinkedAnalyzerRequest
314
+ attr_accessor type: ("ACCOUNT" | "ORGANIZATION" | "ACCOUNT_UNUSED_ACCESS" | "ORGANIZATION_UNUSED_ACCESS" | "ACCOUNT_INTERNAL_ACCESS" | "ORGANIZATION_INTERNAL_ACCESS")
315
+ attr_accessor archive_rules: ::Array[Types::InlineArchiveRule]
316
+ attr_accessor client_token: ::String
317
+ attr_accessor configuration: Types::AnalyzerConfiguration
318
+ SENSITIVE: []
319
+ end
320
+
321
+ class CreateServiceLinkedAnalyzerResponse
322
+ attr_accessor arn: ::String
323
+ SENSITIVE: []
324
+ end
325
+
312
326
  class Criterion
313
327
  attr_accessor eq: ::Array[::String]
314
328
  attr_accessor neq: ::Array[::String]
@@ -330,6 +344,12 @@ module Aws::AccessAnalyzer
330
344
  SENSITIVE: []
331
345
  end
332
346
 
347
+ class DeleteServiceLinkedAnalyzerRequest
348
+ attr_accessor analyzer_name: ::String
349
+ attr_accessor client_token: ::String
350
+ SENSITIVE: []
351
+ end
352
+
333
353
  class DynamodbStreamConfiguration
334
354
  attr_accessor stream_policy: ::String
335
355
  SENSITIVE: []
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-accessanalyzer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.89.0
4
+ version: 1.90.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services