aws-sdk-rolesanywhere 1.14.0 → 1.15.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: 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