aws-sdk-rolesanywhere 1.14.0 → 1.15.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: 10a15c0fede13d1ad9028644bbe1245bfe12a1cfa85b63c219a142fb3b1d6d17
4
- data.tar.gz: ba0ce7465c77413722107c92e2d866e7fae8dee5ac4d079013176f3d46420f12
3
+ metadata.gz: 637cc3eeb39959dfe8ec404f0e487502658182569de79781e61ac5b19f061f2d
4
+ data.tar.gz: f32773a806ab77450aa6d59b37d9555743668aa4c32d38129da76f184d55273b
5
5
  SHA512:
6
- metadata.gz: 2bb3a55c995dff380338a622791b2a0c38f450682d89135cab40663502828b9030cbb21c89a6285b1f3875c2dfe48330405dec03903eb3b0592e6e703b5e960b
7
- data.tar.gz: 34376dc34533a016ebb285b2e7c98bada99ce344a9868e5af12c12d7d5eb89bb30b56394b16187dd3c8e3fa46fd4ea9d7062ac82d699dc48d99f926b2186bebf
6
+ metadata.gz: fde4c015e45d4adceed8c7658b4c323d19fb28e8be5bbcdcd04c5c4d9b67d542a3ac3def181b07735089d7d3e11fa8053d55c8a3ff995e2cfc6ebe66feaa970f
7
+ data.tar.gz: 8f7ee5ab7e9d6da70e735f16ed7e32ff1dde06255aebae05f64a9aab92faea47217bafe87bcbcbd96b62ff1efa52b145def55febb9fcfb632e93fe0b87bb0299
data/CHANGELOG.md CHANGED
@@ -1,6 +1,11 @@
1
1
  Unreleased Changes
2
2
  ------------------
3
3
 
4
+ 1.15.0 (2024-04-18)
5
+ ------------------
6
+
7
+ * Feature - This release introduces the PutAttributeMapping and DeleteAttributeMapping APIs. IAM Roles Anywhere now provides the capability to define a set of mapping rules, allowing customers to specify which data is extracted from their X.509 end-entity certificates.
8
+
4
9
  1.14.0 (2024-04-02)
5
10
  ------------------
6
11
 
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.14.0
1
+ 1.15.0
@@ -453,6 +453,10 @@ module Aws::RolesAnywhere
453
453
  #
454
454
  # @example Response structure
455
455
  #
456
+ # resp.profile.attribute_mappings #=> Array
457
+ # resp.profile.attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
458
+ # resp.profile.attribute_mappings[0].mapping_rules #=> Array
459
+ # resp.profile.attribute_mappings[0].mapping_rules[0].specifier #=> String
456
460
  # resp.profile.created_at #=> Time
457
461
  # resp.profile.created_by #=> String
458
462
  # resp.profile.duration_seconds #=> Integer
@@ -560,6 +564,62 @@ module Aws::RolesAnywhere
560
564
  req.send_request(options)
561
565
  end
562
566
 
567
+ # Delete an entry from the attribute mapping rules enforced by a given
568
+ # profile.
569
+ #
570
+ # @option params [required, String] :certificate_field
571
+ # Fields (x509Subject, x509Issuer and x509SAN) within X.509
572
+ # certificates.
573
+ #
574
+ # @option params [required, String] :profile_id
575
+ # The unique identifier of the profile.
576
+ #
577
+ # @option params [Array<String>] :specifiers
578
+ # A list of specifiers of a certificate field; for example, CN, OU, UID
579
+ # from a Subject.
580
+ #
581
+ # @return [Types::DeleteAttributeMappingResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
582
+ #
583
+ # * {Types::DeleteAttributeMappingResponse#profile #profile} => Types::ProfileDetail
584
+ #
585
+ # @example Request syntax with placeholder values
586
+ #
587
+ # resp = client.delete_attribute_mapping({
588
+ # certificate_field: "x509Subject", # required, accepts x509Subject, x509Issuer, x509SAN
589
+ # profile_id: "Uuid", # required
590
+ # specifiers: ["String"],
591
+ # })
592
+ #
593
+ # @example Response structure
594
+ #
595
+ # resp.profile.attribute_mappings #=> Array
596
+ # resp.profile.attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
597
+ # resp.profile.attribute_mappings[0].mapping_rules #=> Array
598
+ # resp.profile.attribute_mappings[0].mapping_rules[0].specifier #=> String
599
+ # resp.profile.created_at #=> Time
600
+ # resp.profile.created_by #=> String
601
+ # resp.profile.duration_seconds #=> Integer
602
+ # resp.profile.enabled #=> Boolean
603
+ # resp.profile.managed_policy_arns #=> Array
604
+ # resp.profile.managed_policy_arns[0] #=> String
605
+ # resp.profile.name #=> String
606
+ # resp.profile.profile_arn #=> String
607
+ # resp.profile.profile_id #=> String
608
+ # resp.profile.require_instance_properties #=> Boolean
609
+ # resp.profile.role_arns #=> Array
610
+ # resp.profile.role_arns[0] #=> String
611
+ # resp.profile.session_policy #=> String
612
+ # resp.profile.updated_at #=> Time
613
+ #
614
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteAttributeMapping AWS API Documentation
615
+ #
616
+ # @overload delete_attribute_mapping(params = {})
617
+ # @param [Hash] params ({})
618
+ def delete_attribute_mapping(params = {}, options = {})
619
+ req = build_request(:delete_attribute_mapping, params)
620
+ req.send_request(options)
621
+ end
622
+
563
623
  # Deletes a certificate revocation list (CRL).
564
624
  #
565
625
  # <b>Required permissions: </b> `rolesanywhere:DeleteCrl`.
@@ -616,6 +676,10 @@ module Aws::RolesAnywhere
616
676
  #
617
677
  # @example Response structure
618
678
  #
679
+ # resp.profile.attribute_mappings #=> Array
680
+ # resp.profile.attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
681
+ # resp.profile.attribute_mappings[0].mapping_rules #=> Array
682
+ # resp.profile.attribute_mappings[0].mapping_rules[0].specifier #=> String
619
683
  # resp.profile.created_at #=> Time
620
684
  # resp.profile.created_by #=> String
621
685
  # resp.profile.duration_seconds #=> Integer
@@ -741,6 +805,10 @@ module Aws::RolesAnywhere
741
805
  #
742
806
  # @example Response structure
743
807
  #
808
+ # resp.profile.attribute_mappings #=> Array
809
+ # resp.profile.attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
810
+ # resp.profile.attribute_mappings[0].mapping_rules #=> Array
811
+ # resp.profile.attribute_mappings[0].mapping_rules[0].specifier #=> String
744
812
  # resp.profile.created_at #=> Time
745
813
  # resp.profile.created_by #=> String
746
814
  # resp.profile.duration_seconds #=> Integer
@@ -868,6 +936,10 @@ module Aws::RolesAnywhere
868
936
  #
869
937
  # @example Response structure
870
938
  #
939
+ # resp.profile.attribute_mappings #=> Array
940
+ # resp.profile.attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
941
+ # resp.profile.attribute_mappings[0].mapping_rules #=> Array
942
+ # resp.profile.attribute_mappings[0].mapping_rules[0].specifier #=> String
871
943
  # resp.profile.created_at #=> Time
872
944
  # resp.profile.created_by #=> String
873
945
  # resp.profile.duration_seconds #=> Integer
@@ -993,6 +1065,10 @@ module Aws::RolesAnywhere
993
1065
  #
994
1066
  # @example Response structure
995
1067
  #
1068
+ # resp.profile.attribute_mappings #=> Array
1069
+ # resp.profile.attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
1070
+ # resp.profile.attribute_mappings[0].mapping_rules #=> Array
1071
+ # resp.profile.attribute_mappings[0].mapping_rules[0].specifier #=> String
996
1072
  # resp.profile.created_at #=> Time
997
1073
  # resp.profile.created_by #=> String
998
1074
  # resp.profile.duration_seconds #=> Integer
@@ -1256,6 +1332,10 @@ module Aws::RolesAnywhere
1256
1332
  #
1257
1333
  # resp.next_token #=> String
1258
1334
  # resp.profiles #=> Array
1335
+ # resp.profiles[0].attribute_mappings #=> Array
1336
+ # resp.profiles[0].attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
1337
+ # resp.profiles[0].attribute_mappings[0].mapping_rules #=> Array
1338
+ # resp.profiles[0].attribute_mappings[0].mapping_rules[0].specifier #=> String
1259
1339
  # resp.profiles[0].created_at #=> Time
1260
1340
  # resp.profiles[0].created_by #=> String
1261
1341
  # resp.profiles[0].duration_seconds #=> Integer
@@ -1416,6 +1496,66 @@ module Aws::RolesAnywhere
1416
1496
  req.send_request(options)
1417
1497
  end
1418
1498
 
1499
+ # Put an entry in the attribute mapping rules that will be enforced by a
1500
+ # given profile. A mapping specifies a certificate field and one or more
1501
+ # specifiers that have contextual meanings.
1502
+ #
1503
+ # @option params [required, String] :certificate_field
1504
+ # Fields (x509Subject, x509Issuer and x509SAN) within X.509
1505
+ # certificates.
1506
+ #
1507
+ # @option params [required, Array<Types::MappingRule>] :mapping_rules
1508
+ # A list of mapping entries for every supported specifier or sub-field.
1509
+ #
1510
+ # @option params [required, String] :profile_id
1511
+ # The unique identifier of the profile.
1512
+ #
1513
+ # @return [Types::PutAttributeMappingResponse] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
1514
+ #
1515
+ # * {Types::PutAttributeMappingResponse#profile #profile} => Types::ProfileDetail
1516
+ #
1517
+ # @example Request syntax with placeholder values
1518
+ #
1519
+ # resp = client.put_attribute_mapping({
1520
+ # certificate_field: "x509Subject", # required, accepts x509Subject, x509Issuer, x509SAN
1521
+ # mapping_rules: [ # required
1522
+ # {
1523
+ # specifier: "MappingRuleSpecifierString", # required
1524
+ # },
1525
+ # ],
1526
+ # profile_id: "Uuid", # required
1527
+ # })
1528
+ #
1529
+ # @example Response structure
1530
+ #
1531
+ # resp.profile.attribute_mappings #=> Array
1532
+ # resp.profile.attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
1533
+ # resp.profile.attribute_mappings[0].mapping_rules #=> Array
1534
+ # resp.profile.attribute_mappings[0].mapping_rules[0].specifier #=> String
1535
+ # resp.profile.created_at #=> Time
1536
+ # resp.profile.created_by #=> String
1537
+ # resp.profile.duration_seconds #=> Integer
1538
+ # resp.profile.enabled #=> Boolean
1539
+ # resp.profile.managed_policy_arns #=> Array
1540
+ # resp.profile.managed_policy_arns[0] #=> String
1541
+ # resp.profile.name #=> String
1542
+ # resp.profile.profile_arn #=> String
1543
+ # resp.profile.profile_id #=> String
1544
+ # resp.profile.require_instance_properties #=> Boolean
1545
+ # resp.profile.role_arns #=> Array
1546
+ # resp.profile.role_arns[0] #=> String
1547
+ # resp.profile.session_policy #=> String
1548
+ # resp.profile.updated_at #=> Time
1549
+ #
1550
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/PutAttributeMapping AWS API Documentation
1551
+ #
1552
+ # @overload put_attribute_mapping(params = {})
1553
+ # @param [Hash] params ({})
1554
+ def put_attribute_mapping(params = {}, options = {})
1555
+ req = build_request(:put_attribute_mapping, params)
1556
+ req.send_request(options)
1557
+ end
1558
+
1419
1559
  # Attaches a list of *notification settings* to a trust anchor.
1420
1560
  #
1421
1561
  # A notification setting includes information such as event name,
@@ -1691,6 +1831,10 @@ module Aws::RolesAnywhere
1691
1831
  #
1692
1832
  # @example Response structure
1693
1833
  #
1834
+ # resp.profile.attribute_mappings #=> Array
1835
+ # resp.profile.attribute_mappings[0].certificate_field #=> String, one of "x509Subject", "x509Issuer", "x509SAN"
1836
+ # resp.profile.attribute_mappings[0].mapping_rules #=> Array
1837
+ # resp.profile.attribute_mappings[0].mapping_rules[0].specifier #=> String
1694
1838
  # resp.profile.created_at #=> Time
1695
1839
  # resp.profile.created_by #=> String
1696
1840
  # resp.profile.duration_seconds #=> Integer
@@ -1792,7 +1936,7 @@ module Aws::RolesAnywhere
1792
1936
  params: params,
1793
1937
  config: config)
1794
1938
  context[:gem_name] = 'aws-sdk-rolesanywhere'
1795
- context[:gem_version] = '1.14.0'
1939
+ context[:gem_version] = '1.15.0'
1796
1940
  Seahorse::Client::Request.new(handlers, context)
1797
1941
  end
1798
1942
 
@@ -15,8 +15,11 @@ module Aws::RolesAnywhere
15
15
 
16
16
  AccessDeniedException = Shapes::StructureShape.new(name: 'AccessDeniedException')
17
17
  AmazonResourceName = Shapes::StringShape.new(name: 'AmazonResourceName')
18
+ AttributeMapping = Shapes::StructureShape.new(name: 'AttributeMapping')
19
+ AttributeMappings = Shapes::ListShape.new(name: 'AttributeMappings')
18
20
  Blob = Shapes::BlobShape.new(name: 'Blob')
19
21
  Boolean = Shapes::BooleanShape.new(name: 'Boolean')
22
+ CertificateField = Shapes::StringShape.new(name: 'CertificateField')
20
23
  CreateProfileRequest = Shapes::StructureShape.new(name: 'CreateProfileRequest')
21
24
  CreateProfileRequestDurationSecondsInteger = Shapes::IntegerShape.new(name: 'CreateProfileRequestDurationSecondsInteger')
22
25
  CreateTrustAnchorRequest = Shapes::StructureShape.new(name: 'CreateTrustAnchorRequest')
@@ -25,6 +28,8 @@ module Aws::RolesAnywhere
25
28
  CrlDetail = Shapes::StructureShape.new(name: 'CrlDetail')
26
29
  CrlDetailResponse = Shapes::StructureShape.new(name: 'CrlDetailResponse')
27
30
  CrlDetails = Shapes::ListShape.new(name: 'CrlDetails')
31
+ DeleteAttributeMappingRequest = Shapes::StructureShape.new(name: 'DeleteAttributeMappingRequest')
32
+ DeleteAttributeMappingResponse = Shapes::StructureShape.new(name: 'DeleteAttributeMappingResponse')
28
33
  ImportCrlRequest = Shapes::StructureShape.new(name: 'ImportCrlRequest')
29
34
  ImportCrlRequestCrlDataBlob = Shapes::BlobShape.new(name: 'ImportCrlRequestCrlDataBlob')
30
35
  InstanceProperties = Shapes::ListShape.new(name: 'InstanceProperties')
@@ -43,6 +48,9 @@ module Aws::RolesAnywhere
43
48
  ListTrustAnchorsResponse = Shapes::StructureShape.new(name: 'ListTrustAnchorsResponse')
44
49
  ManagedPolicyList = Shapes::ListShape.new(name: 'ManagedPolicyList')
45
50
  ManagedPolicyListMemberString = Shapes::StringShape.new(name: 'ManagedPolicyListMemberString')
51
+ MappingRule = Shapes::StructureShape.new(name: 'MappingRule')
52
+ MappingRuleSpecifierString = Shapes::StringShape.new(name: 'MappingRuleSpecifierString')
53
+ MappingRules = Shapes::ListShape.new(name: 'MappingRules')
46
54
  NotificationChannel = Shapes::StringShape.new(name: 'NotificationChannel')
47
55
  NotificationEvent = Shapes::StringShape.new(name: 'NotificationEvent')
48
56
  NotificationSetting = Shapes::StructureShape.new(name: 'NotificationSetting')
@@ -58,6 +66,8 @@ module Aws::RolesAnywhere
58
66
  ProfileDetail = Shapes::StructureShape.new(name: 'ProfileDetail')
59
67
  ProfileDetailResponse = Shapes::StructureShape.new(name: 'ProfileDetailResponse')
60
68
  ProfileDetails = Shapes::ListShape.new(name: 'ProfileDetails')
69
+ PutAttributeMappingRequest = Shapes::StructureShape.new(name: 'PutAttributeMappingRequest')
70
+ PutAttributeMappingResponse = Shapes::StructureShape.new(name: 'PutAttributeMappingResponse')
61
71
  PutNotificationSettingsRequest = Shapes::StructureShape.new(name: 'PutNotificationSettingsRequest')
62
72
  PutNotificationSettingsResponse = Shapes::StructureShape.new(name: 'PutNotificationSettingsResponse')
63
73
  ResetNotificationSettingsRequest = Shapes::StructureShape.new(name: 'ResetNotificationSettingsRequest')
@@ -73,6 +83,7 @@ module Aws::RolesAnywhere
73
83
  Source = Shapes::StructureShape.new(name: 'Source')
74
84
  SourceData = Shapes::UnionShape.new(name: 'SourceData')
75
85
  SourceDataX509CertificateDataString = Shapes::StringShape.new(name: 'SourceDataX509CertificateDataString')
86
+ SpecifierList = Shapes::ListShape.new(name: 'SpecifierList')
76
87
  String = Shapes::StringShape.new(name: 'String')
77
88
  SubjectDetail = Shapes::StructureShape.new(name: 'SubjectDetail')
78
89
  SubjectDetailResponse = Shapes::StructureShape.new(name: 'SubjectDetailResponse')
@@ -106,6 +117,12 @@ module Aws::RolesAnywhere
106
117
  AccessDeniedException.add_member(:message, Shapes::ShapeRef.new(shape: String, location_name: "message"))
107
118
  AccessDeniedException.struct_class = Types::AccessDeniedException
108
119
 
120
+ AttributeMapping.add_member(:certificate_field, Shapes::ShapeRef.new(shape: CertificateField, location_name: "certificateField"))
121
+ AttributeMapping.add_member(:mapping_rules, Shapes::ShapeRef.new(shape: MappingRules, location_name: "mappingRules"))
122
+ AttributeMapping.struct_class = Types::AttributeMapping
123
+
124
+ AttributeMappings.member = Shapes::ShapeRef.new(shape: AttributeMapping)
125
+
109
126
  CreateProfileRequest.add_member(:duration_seconds, Shapes::ShapeRef.new(shape: CreateProfileRequestDurationSecondsInteger, location_name: "durationSeconds"))
110
127
  CreateProfileRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
111
128
  CreateProfileRequest.add_member(:managed_policy_arns, Shapes::ShapeRef.new(shape: ManagedPolicyList, location_name: "managedPolicyArns"))
@@ -148,6 +165,14 @@ module Aws::RolesAnywhere
148
165
 
149
166
  CrlDetails.member = Shapes::ShapeRef.new(shape: CrlDetail)
150
167
 
168
+ DeleteAttributeMappingRequest.add_member(:certificate_field, Shapes::ShapeRef.new(shape: CertificateField, required: true, location: "querystring", location_name: "certificateField"))
169
+ DeleteAttributeMappingRequest.add_member(:profile_id, Shapes::ShapeRef.new(shape: Uuid, required: true, location: "uri", location_name: "profileId"))
170
+ DeleteAttributeMappingRequest.add_member(:specifiers, Shapes::ShapeRef.new(shape: SpecifierList, location: "querystring", location_name: "specifiers"))
171
+ DeleteAttributeMappingRequest.struct_class = Types::DeleteAttributeMappingRequest
172
+
173
+ DeleteAttributeMappingResponse.add_member(:profile, Shapes::ShapeRef.new(shape: ProfileDetail, required: true, location_name: "profile"))
174
+ DeleteAttributeMappingResponse.struct_class = Types::DeleteAttributeMappingResponse
175
+
151
176
  ImportCrlRequest.add_member(:crl_data, Shapes::ShapeRef.new(shape: ImportCrlRequestCrlDataBlob, required: true, location_name: "crlData"))
152
177
  ImportCrlRequest.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
153
178
  ImportCrlRequest.add_member(:name, Shapes::ShapeRef.new(shape: ResourceName, required: true, location_name: "name"))
@@ -193,6 +218,11 @@ module Aws::RolesAnywhere
193
218
 
194
219
  ManagedPolicyList.member = Shapes::ShapeRef.new(shape: ManagedPolicyListMemberString)
195
220
 
221
+ MappingRule.add_member(:specifier, Shapes::ShapeRef.new(shape: MappingRuleSpecifierString, required: true, location_name: "specifier"))
222
+ MappingRule.struct_class = Types::MappingRule
223
+
224
+ MappingRules.member = Shapes::ShapeRef.new(shape: MappingRule)
225
+
196
226
  NotificationSetting.add_member(:channel, Shapes::ShapeRef.new(shape: NotificationChannel, location_name: "channel"))
197
227
  NotificationSetting.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, required: true, location_name: "enabled"))
198
228
  NotificationSetting.add_member(:event, Shapes::ShapeRef.new(shape: NotificationEvent, required: true, location_name: "event"))
@@ -216,6 +246,7 @@ module Aws::RolesAnywhere
216
246
 
217
247
  NotificationSettings.member = Shapes::ShapeRef.new(shape: NotificationSetting)
218
248
 
249
+ ProfileDetail.add_member(:attribute_mappings, Shapes::ShapeRef.new(shape: AttributeMappings, location_name: "attributeMappings"))
219
250
  ProfileDetail.add_member(:created_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, location_name: "createdAt"))
220
251
  ProfileDetail.add_member(:created_by, Shapes::ShapeRef.new(shape: String, location_name: "createdBy"))
221
252
  ProfileDetail.add_member(:duration_seconds, Shapes::ShapeRef.new(shape: Integer, location_name: "durationSeconds"))
@@ -235,6 +266,14 @@ module Aws::RolesAnywhere
235
266
 
236
267
  ProfileDetails.member = Shapes::ShapeRef.new(shape: ProfileDetail)
237
268
 
269
+ PutAttributeMappingRequest.add_member(:certificate_field, Shapes::ShapeRef.new(shape: CertificateField, required: true, location_name: "certificateField"))
270
+ PutAttributeMappingRequest.add_member(:mapping_rules, Shapes::ShapeRef.new(shape: MappingRules, required: true, location_name: "mappingRules"))
271
+ PutAttributeMappingRequest.add_member(:profile_id, Shapes::ShapeRef.new(shape: Uuid, required: true, location: "uri", location_name: "profileId"))
272
+ PutAttributeMappingRequest.struct_class = Types::PutAttributeMappingRequest
273
+
274
+ PutAttributeMappingResponse.add_member(:profile, Shapes::ShapeRef.new(shape: ProfileDetail, required: true, location_name: "profile"))
275
+ PutAttributeMappingResponse.struct_class = Types::PutAttributeMappingResponse
276
+
238
277
  PutNotificationSettingsRequest.add_member(:notification_settings, Shapes::ShapeRef.new(shape: NotificationSettings, required: true, location_name: "notificationSettings"))
239
278
  PutNotificationSettingsRequest.add_member(:trust_anchor_id, Shapes::ShapeRef.new(shape: Uuid, required: true, location_name: "trustAnchorId"))
240
279
  PutNotificationSettingsRequest.struct_class = Types::PutNotificationSettingsRequest
@@ -278,6 +317,8 @@ module Aws::RolesAnywhere
278
317
  SourceData.add_member_subclass(:unknown, Types::SourceData::Unknown)
279
318
  SourceData.struct_class = Types::SourceData
280
319
 
320
+ SpecifierList.member = Shapes::ShapeRef.new(shape: String)
321
+
281
322
  SubjectDetail.add_member(:created_at, Shapes::ShapeRef.new(shape: SyntheticTimestamp_date_time, location_name: "createdAt"))
282
323
  SubjectDetail.add_member(:credentials, Shapes::ShapeRef.new(shape: CredentialSummaries, location_name: "credentials"))
283
324
  SubjectDetail.add_member(:enabled, Shapes::ShapeRef.new(shape: Boolean, location_name: "enabled"))
@@ -400,6 +441,17 @@ module Aws::RolesAnywhere
400
441
  o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
401
442
  end)
402
443
 
444
+ api.add_operation(:delete_attribute_mapping, Seahorse::Model::Operation.new.tap do |o|
445
+ o.name = "DeleteAttributeMapping"
446
+ o.http_method = "DELETE"
447
+ o.http_request_uri = "/profiles/{profileId}/mappings"
448
+ o.input = Shapes::ShapeRef.new(shape: DeleteAttributeMappingRequest)
449
+ o.output = Shapes::ShapeRef.new(shape: DeleteAttributeMappingResponse)
450
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
451
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
452
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
453
+ end)
454
+
403
455
  api.add_operation(:delete_crl, Seahorse::Model::Operation.new.tap do |o|
404
456
  o.name = "DeleteCrl"
405
457
  o.http_method = "DELETE"
@@ -611,6 +663,17 @@ module Aws::RolesAnywhere
611
663
  )
612
664
  end)
613
665
 
666
+ api.add_operation(:put_attribute_mapping, Seahorse::Model::Operation.new.tap do |o|
667
+ o.name = "PutAttributeMapping"
668
+ o.http_method = "PUT"
669
+ o.http_request_uri = "/profiles/{profileId}/mappings"
670
+ o.input = Shapes::ShapeRef.new(shape: PutAttributeMappingRequest)
671
+ o.output = Shapes::ShapeRef.new(shape: PutAttributeMappingResponse)
672
+ o.errors << Shapes::ShapeRef.new(shape: ValidationException)
673
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
674
+ o.errors << Shapes::ShapeRef.new(shape: AccessDeniedException)
675
+ end)
676
+
614
677
  api.add_operation(:put_notification_settings, Seahorse::Model::Operation.new.tap do |o|
615
678
  o.name = "PutNotificationSettings"
616
679
  o.http_method = "PATCH"
@@ -40,6 +40,20 @@ module Aws::RolesAnywhere
40
40
  end
41
41
  end
42
42
 
43
+ class DeleteAttributeMapping
44
+ def self.build(context)
45
+ unless context.config.regional_endpoint
46
+ endpoint = context.config.endpoint.to_s
47
+ end
48
+ Aws::RolesAnywhere::EndpointParameters.new(
49
+ region: context.config.region,
50
+ use_dual_stack: context.config.use_dualstack_endpoint,
51
+ use_fips: context.config.use_fips_endpoint,
52
+ endpoint: endpoint,
53
+ )
54
+ end
55
+ end
56
+
43
57
  class DeleteCrl
44
58
  def self.build(context)
45
59
  unless context.config.regional_endpoint
@@ -306,6 +320,20 @@ module Aws::RolesAnywhere
306
320
  end
307
321
  end
308
322
 
323
+ class PutAttributeMapping
324
+ def self.build(context)
325
+ unless context.config.regional_endpoint
326
+ endpoint = context.config.endpoint.to_s
327
+ end
328
+ Aws::RolesAnywhere::EndpointParameters.new(
329
+ region: context.config.region,
330
+ use_dual_stack: context.config.use_dualstack_endpoint,
331
+ use_fips: context.config.use_fips_endpoint,
332
+ endpoint: endpoint,
333
+ )
334
+ end
335
+ end
336
+
309
337
  class PutNotificationSettings
310
338
  def self.build(context)
311
339
  unless context.config.regional_endpoint
@@ -62,6 +62,8 @@ module Aws::RolesAnywhere
62
62
  Aws::RolesAnywhere::Endpoints::CreateProfile.build(context)
63
63
  when :create_trust_anchor
64
64
  Aws::RolesAnywhere::Endpoints::CreateTrustAnchor.build(context)
65
+ when :delete_attribute_mapping
66
+ Aws::RolesAnywhere::Endpoints::DeleteAttributeMapping.build(context)
65
67
  when :delete_crl
66
68
  Aws::RolesAnywhere::Endpoints::DeleteCrl.build(context)
67
69
  when :delete_profile
@@ -100,6 +102,8 @@ module Aws::RolesAnywhere
100
102
  Aws::RolesAnywhere::Endpoints::ListTagsForResource.build(context)
101
103
  when :list_trust_anchors
102
104
  Aws::RolesAnywhere::Endpoints::ListTrustAnchors.build(context)
105
+ when :put_attribute_mapping
106
+ Aws::RolesAnywhere::Endpoints::PutAttributeMapping.build(context)
103
107
  when :put_notification_settings
104
108
  Aws::RolesAnywhere::Endpoints::PutNotificationSettings.build(context)
105
109
  when :reset_notification_settings
@@ -23,6 +23,27 @@ module Aws::RolesAnywhere
23
23
  include Aws::Structure
24
24
  end
25
25
 
26
+ # A mapping applied to the authenticating end-entity certificate.
27
+ #
28
+ # @!attribute [rw] certificate_field
29
+ # Fields (x509Subject, x509Issuer and x509SAN) within X.509
30
+ # certificates.
31
+ # @return [String]
32
+ #
33
+ # @!attribute [rw] mapping_rules
34
+ # A list of mapping entries for every supported specifier or
35
+ # sub-field.
36
+ # @return [Array<Types::MappingRule>]
37
+ #
38
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/AttributeMapping AWS API Documentation
39
+ #
40
+ class AttributeMapping < Struct.new(
41
+ :certificate_field,
42
+ :mapping_rules)
43
+ SENSITIVE = []
44
+ include Aws::Structure
45
+ end
46
+
26
47
  # @!attribute [rw] duration_seconds
27
48
  # Used to determine how long sessions vended using this profile are
28
49
  # valid for. See the `Expiration` section of the [CreateSession API
@@ -223,6 +244,42 @@ module Aws::RolesAnywhere
223
244
  include Aws::Structure
224
245
  end
225
246
 
247
+ # @!attribute [rw] certificate_field
248
+ # Fields (x509Subject, x509Issuer and x509SAN) within X.509
249
+ # certificates.
250
+ # @return [String]
251
+ #
252
+ # @!attribute [rw] profile_id
253
+ # The unique identifier of the profile.
254
+ # @return [String]
255
+ #
256
+ # @!attribute [rw] specifiers
257
+ # A list of specifiers of a certificate field; for example, CN, OU,
258
+ # UID from a Subject.
259
+ # @return [Array<String>]
260
+ #
261
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteAttributeMappingRequest AWS API Documentation
262
+ #
263
+ class DeleteAttributeMappingRequest < Struct.new(
264
+ :certificate_field,
265
+ :profile_id,
266
+ :specifiers)
267
+ SENSITIVE = []
268
+ include Aws::Structure
269
+ end
270
+
271
+ # @!attribute [rw] profile
272
+ # The state of the profile after a read or write operation.
273
+ # @return [Types::ProfileDetail]
274
+ #
275
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/DeleteAttributeMappingResponse AWS API Documentation
276
+ #
277
+ class DeleteAttributeMappingResponse < Struct.new(
278
+ :profile)
279
+ SENSITIVE = []
280
+ include Aws::Structure
281
+ end
282
+
226
283
  # @!attribute [rw] crl_data
227
284
  # The x509 v3 specified certificate revocation list (CRL).
228
285
  # @return [String]
@@ -401,6 +458,21 @@ module Aws::RolesAnywhere
401
458
  include Aws::Structure
402
459
  end
403
460
 
461
+ # A single mapping entry for each supported specifier or sub-field.
462
+ #
463
+ # @!attribute [rw] specifier
464
+ # Specifier within a certificate field, such as CN, OU, or UID from
465
+ # the Subject field.
466
+ # @return [String]
467
+ #
468
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/MappingRule AWS API Documentation
469
+ #
470
+ class MappingRule < Struct.new(
471
+ :specifier)
472
+ SENSITIVE = []
473
+ include Aws::Structure
474
+ end
475
+
404
476
  # Customizable notification settings that will be applied to
405
477
  # notification events. IAM Roles Anywhere consumes these settings while
406
478
  # notifying across multiple channels - CloudWatch metrics, EventBridge,
@@ -511,6 +583,10 @@ module Aws::RolesAnywhere
511
583
 
512
584
  # The state of the profile after a read or write operation.
513
585
  #
586
+ # @!attribute [rw] attribute_mappings
587
+ # A mapping applied to the authenticating end-entity certificate.
588
+ # @return [Array<Types::AttributeMapping>]
589
+ #
514
590
  # @!attribute [rw] created_at
515
591
  # The ISO-8601 timestamp when the profile was created.
516
592
  # @return [Time]
@@ -573,6 +649,7 @@ module Aws::RolesAnywhere
573
649
  # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/ProfileDetail AWS API Documentation
574
650
  #
575
651
  class ProfileDetail < Struct.new(
652
+ :attribute_mappings,
576
653
  :created_at,
577
654
  :created_by,
578
655
  :duration_seconds,
@@ -601,6 +678,42 @@ module Aws::RolesAnywhere
601
678
  include Aws::Structure
602
679
  end
603
680
 
681
+ # @!attribute [rw] certificate_field
682
+ # Fields (x509Subject, x509Issuer and x509SAN) within X.509
683
+ # certificates.
684
+ # @return [String]
685
+ #
686
+ # @!attribute [rw] mapping_rules
687
+ # A list of mapping entries for every supported specifier or
688
+ # sub-field.
689
+ # @return [Array<Types::MappingRule>]
690
+ #
691
+ # @!attribute [rw] profile_id
692
+ # The unique identifier of the profile.
693
+ # @return [String]
694
+ #
695
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/PutAttributeMappingRequest AWS API Documentation
696
+ #
697
+ class PutAttributeMappingRequest < Struct.new(
698
+ :certificate_field,
699
+ :mapping_rules,
700
+ :profile_id)
701
+ SENSITIVE = []
702
+ include Aws::Structure
703
+ end
704
+
705
+ # @!attribute [rw] profile
706
+ # The state of the profile after a read or write operation.
707
+ # @return [Types::ProfileDetail]
708
+ #
709
+ # @see http://docs.aws.amazon.com/goto/WebAPI/rolesanywhere-2018-05-10/PutAttributeMappingResponse AWS API Documentation
710
+ #
711
+ class PutAttributeMappingResponse < Struct.new(
712
+ :profile)
713
+ SENSITIVE = []
714
+ include Aws::Structure
715
+ end
716
+
604
717
  # @!attribute [rw] notification_settings
605
718
  # A list of notification settings to be associated to the trust
606
719
  # anchor.
@@ -52,6 +52,6 @@ require_relative 'aws-sdk-rolesanywhere/customizations'
52
52
  # @!group service
53
53
  module Aws::RolesAnywhere
54
54
 
55
- GEM_VERSION = '1.14.0'
55
+ GEM_VERSION = '1.15.0'
56
56
 
57
57
  end
data/sig/client.rbs CHANGED
@@ -126,6 +126,18 @@ module Aws
126
126
  ) -> _CreateTrustAnchorResponseSuccess
127
127
  | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _CreateTrustAnchorResponseSuccess
128
128
 
129
+ interface _DeleteAttributeMappingResponseSuccess
130
+ include ::Seahorse::Client::_ResponseSuccess[Types::DeleteAttributeMappingResponse]
131
+ def profile: () -> Types::ProfileDetail
132
+ end
133
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RolesAnywhere/Client.html#delete_attribute_mapping-instance_method
134
+ def delete_attribute_mapping: (
135
+ certificate_field: ("x509Subject" | "x509Issuer" | "x509SAN"),
136
+ profile_id: ::String,
137
+ ?specifiers: Array[::String]
138
+ ) -> _DeleteAttributeMappingResponseSuccess
139
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _DeleteAttributeMappingResponseSuccess
140
+
129
141
  interface _DeleteCrlResponseSuccess
130
142
  include ::Seahorse::Client::_ResponseSuccess[Types::CrlDetailResponse]
131
143
  def crl: () -> Types::CrlDetail
@@ -333,6 +345,22 @@ module Aws
333
345
  ) -> _ListTrustAnchorsResponseSuccess
334
346
  | (?Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _ListTrustAnchorsResponseSuccess
335
347
 
348
+ interface _PutAttributeMappingResponseSuccess
349
+ include ::Seahorse::Client::_ResponseSuccess[Types::PutAttributeMappingResponse]
350
+ def profile: () -> Types::ProfileDetail
351
+ end
352
+ # https://docs.aws.amazon.com/sdk-for-ruby/v3/api/Aws/RolesAnywhere/Client.html#put_attribute_mapping-instance_method
353
+ def put_attribute_mapping: (
354
+ certificate_field: ("x509Subject" | "x509Issuer" | "x509SAN"),
355
+ mapping_rules: Array[
356
+ {
357
+ specifier: ::String
358
+ },
359
+ ],
360
+ profile_id: ::String
361
+ ) -> _PutAttributeMappingResponseSuccess
362
+ | (Hash[Symbol, untyped] params, ?Hash[Symbol, untyped] options) -> _PutAttributeMappingResponseSuccess
363
+
336
364
  interface _PutNotificationSettingsResponseSuccess
337
365
  include ::Seahorse::Client::_ResponseSuccess[Types::PutNotificationSettingsResponse]
338
366
  def trust_anchor: () -> Types::TrustAnchorDetail
data/sig/types.rbs CHANGED
@@ -13,6 +13,12 @@ module Aws::RolesAnywhere
13
13
  SENSITIVE: []
14
14
  end
15
15
 
16
+ class AttributeMapping
17
+ attr_accessor certificate_field: ("x509Subject" | "x509Issuer" | "x509SAN")
18
+ attr_accessor mapping_rules: ::Array[Types::MappingRule]
19
+ SENSITIVE: []
20
+ end
21
+
16
22
  class CreateProfileRequest
17
23
  attr_accessor duration_seconds: ::Integer
18
24
  attr_accessor enabled: bool
@@ -61,6 +67,18 @@ module Aws::RolesAnywhere
61
67
  SENSITIVE: []
62
68
  end
63
69
 
70
+ class DeleteAttributeMappingRequest
71
+ attr_accessor certificate_field: ("x509Subject" | "x509Issuer" | "x509SAN")
72
+ attr_accessor profile_id: ::String
73
+ attr_accessor specifiers: ::Array[::String]
74
+ SENSITIVE: []
75
+ end
76
+
77
+ class DeleteAttributeMappingResponse
78
+ attr_accessor profile: Types::ProfileDetail
79
+ SENSITIVE: []
80
+ end
81
+
64
82
  class ImportCrlRequest
65
83
  attr_accessor crl_data: ::String
66
84
  attr_accessor enabled: bool
@@ -117,6 +135,11 @@ module Aws::RolesAnywhere
117
135
  SENSITIVE: []
118
136
  end
119
137
 
138
+ class MappingRule
139
+ attr_accessor specifier: ::String
140
+ SENSITIVE: []
141
+ end
142
+
120
143
  class NotificationSetting
121
144
  attr_accessor channel: ("ALL")
122
145
  attr_accessor enabled: bool
@@ -141,6 +164,7 @@ module Aws::RolesAnywhere
141
164
  end
142
165
 
143
166
  class ProfileDetail
167
+ attr_accessor attribute_mappings: ::Array[Types::AttributeMapping]
144
168
  attr_accessor created_at: ::Time
145
169
  attr_accessor created_by: ::String
146
170
  attr_accessor duration_seconds: ::Integer
@@ -161,6 +185,18 @@ module Aws::RolesAnywhere
161
185
  SENSITIVE: []
162
186
  end
163
187
 
188
+ class PutAttributeMappingRequest
189
+ attr_accessor certificate_field: ("x509Subject" | "x509Issuer" | "x509SAN")
190
+ attr_accessor mapping_rules: ::Array[Types::MappingRule]
191
+ attr_accessor profile_id: ::String
192
+ SENSITIVE: []
193
+ end
194
+
195
+ class PutAttributeMappingResponse
196
+ attr_accessor profile: Types::ProfileDetail
197
+ SENSITIVE: []
198
+ end
199
+
164
200
  class PutNotificationSettingsRequest
165
201
  attr_accessor notification_settings: ::Array[Types::NotificationSetting]
166
202
  attr_accessor trust_anchor_id: ::String
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-rolesanywhere
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.14.0
4
+ version: 1.15.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-04-02 00:00:00.000000000 Z
11
+ date: 2024-04-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core