aws-sdk-iam 1.12.0 → 1.13.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -102,13 +102,18 @@ module Aws::IAM
102
102
  DuplicateSSHPublicKeyException = Shapes::StructureShape.new(name: 'DuplicateSSHPublicKeyException')
103
103
  EnableMFADeviceRequest = Shapes::StructureShape.new(name: 'EnableMFADeviceRequest')
104
104
  EntityAlreadyExistsException = Shapes::StructureShape.new(name: 'EntityAlreadyExistsException')
105
+ EntityDetails = Shapes::StructureShape.new(name: 'EntityDetails')
106
+ EntityInfo = Shapes::StructureShape.new(name: 'EntityInfo')
105
107
  EntityTemporarilyUnmodifiableException = Shapes::StructureShape.new(name: 'EntityTemporarilyUnmodifiableException')
106
108
  EntityType = Shapes::StringShape.new(name: 'EntityType')
109
+ ErrorDetails = Shapes::StructureShape.new(name: 'ErrorDetails')
107
110
  EvalDecisionDetailsType = Shapes::MapShape.new(name: 'EvalDecisionDetailsType')
108
111
  EvalDecisionSourceType = Shapes::StringShape.new(name: 'EvalDecisionSourceType')
109
112
  EvaluationResult = Shapes::StructureShape.new(name: 'EvaluationResult')
110
113
  EvaluationResultsListType = Shapes::ListShape.new(name: 'EvaluationResultsListType')
111
114
  GenerateCredentialReportResponse = Shapes::StructureShape.new(name: 'GenerateCredentialReportResponse')
115
+ GenerateServiceLastAccessedDetailsRequest = Shapes::StructureShape.new(name: 'GenerateServiceLastAccessedDetailsRequest')
116
+ GenerateServiceLastAccessedDetailsResponse = Shapes::StructureShape.new(name: 'GenerateServiceLastAccessedDetailsResponse')
112
117
  GetAccessKeyLastUsedRequest = Shapes::StructureShape.new(name: 'GetAccessKeyLastUsedRequest')
113
118
  GetAccessKeyLastUsedResponse = Shapes::StructureShape.new(name: 'GetAccessKeyLastUsedResponse')
114
119
  GetAccountAuthorizationDetailsRequest = Shapes::StructureShape.new(name: 'GetAccountAuthorizationDetailsRequest')
@@ -143,6 +148,10 @@ module Aws::IAM
143
148
  GetSSHPublicKeyResponse = Shapes::StructureShape.new(name: 'GetSSHPublicKeyResponse')
144
149
  GetServerCertificateRequest = Shapes::StructureShape.new(name: 'GetServerCertificateRequest')
145
150
  GetServerCertificateResponse = Shapes::StructureShape.new(name: 'GetServerCertificateResponse')
151
+ GetServiceLastAccessedDetailsRequest = Shapes::StructureShape.new(name: 'GetServiceLastAccessedDetailsRequest')
152
+ GetServiceLastAccessedDetailsResponse = Shapes::StructureShape.new(name: 'GetServiceLastAccessedDetailsResponse')
153
+ GetServiceLastAccessedDetailsWithEntitiesRequest = Shapes::StructureShape.new(name: 'GetServiceLastAccessedDetailsWithEntitiesRequest')
154
+ GetServiceLastAccessedDetailsWithEntitiesResponse = Shapes::StructureShape.new(name: 'GetServiceLastAccessedDetailsWithEntitiesResponse')
146
155
  GetServiceLinkedRoleDeletionStatusRequest = Shapes::StructureShape.new(name: 'GetServiceLinkedRoleDeletionStatusRequest')
147
156
  GetServiceLinkedRoleDeletionStatusResponse = Shapes::StructureShape.new(name: 'GetServiceLinkedRoleDeletionStatusResponse')
148
157
  GetUserPolicyRequest = Shapes::StructureShape.new(name: 'GetUserPolicyRequest')
@@ -186,6 +195,9 @@ module Aws::IAM
186
195
  ListMFADevicesResponse = Shapes::StructureShape.new(name: 'ListMFADevicesResponse')
187
196
  ListOpenIDConnectProvidersRequest = Shapes::StructureShape.new(name: 'ListOpenIDConnectProvidersRequest')
188
197
  ListOpenIDConnectProvidersResponse = Shapes::StructureShape.new(name: 'ListOpenIDConnectProvidersResponse')
198
+ ListPoliciesGrantingServiceAccessEntry = Shapes::StructureShape.new(name: 'ListPoliciesGrantingServiceAccessEntry')
199
+ ListPoliciesGrantingServiceAccessRequest = Shapes::StructureShape.new(name: 'ListPoliciesGrantingServiceAccessRequest')
200
+ ListPoliciesGrantingServiceAccessResponse = Shapes::StructureShape.new(name: 'ListPoliciesGrantingServiceAccessResponse')
189
201
  ListPoliciesRequest = Shapes::StructureShape.new(name: 'ListPoliciesRequest')
190
202
  ListPoliciesResponse = Shapes::StructureShape.new(name: 'ListPoliciesResponse')
191
203
  ListPolicyVersionsRequest = Shapes::StructureShape.new(name: 'ListPolicyVersionsRequest')
@@ -232,6 +244,7 @@ module Aws::IAM
232
244
  PolicyDetail = Shapes::StructureShape.new(name: 'PolicyDetail')
233
245
  PolicyEvaluationDecisionType = Shapes::StringShape.new(name: 'PolicyEvaluationDecisionType')
234
246
  PolicyEvaluationException = Shapes::StructureShape.new(name: 'PolicyEvaluationException')
247
+ PolicyGrantingServiceAccess = Shapes::StructureShape.new(name: 'PolicyGrantingServiceAccess')
235
248
  PolicyGroup = Shapes::StructureShape.new(name: 'PolicyGroup')
236
249
  PolicyGroupListType = Shapes::ListShape.new(name: 'PolicyGroupListType')
237
250
  PolicyIdentifierType = Shapes::StringShape.new(name: 'PolicyIdentifierType')
@@ -280,10 +293,12 @@ module Aws::IAM
280
293
  ServerCertificate = Shapes::StructureShape.new(name: 'ServerCertificate')
281
294
  ServerCertificateMetadata = Shapes::StructureShape.new(name: 'ServerCertificateMetadata')
282
295
  ServiceFailureException = Shapes::StructureShape.new(name: 'ServiceFailureException')
296
+ ServiceLastAccessed = Shapes::StructureShape.new(name: 'ServiceLastAccessed')
283
297
  ServiceNotSupportedException = Shapes::StructureShape.new(name: 'ServiceNotSupportedException')
284
298
  ServiceSpecificCredential = Shapes::StructureShape.new(name: 'ServiceSpecificCredential')
285
299
  ServiceSpecificCredentialMetadata = Shapes::StructureShape.new(name: 'ServiceSpecificCredentialMetadata')
286
300
  ServiceSpecificCredentialsListType = Shapes::ListShape.new(name: 'ServiceSpecificCredentialsListType')
301
+ ServicesLastAccessed = Shapes::ListShape.new(name: 'ServicesLastAccessed')
287
302
  SetDefaultPolicyVersionRequest = Shapes::StructureShape.new(name: 'SetDefaultPolicyVersionRequest')
288
303
  SigningCertificate = Shapes::StructureShape.new(name: 'SigningCertificate')
289
304
  SimulateCustomPolicyRequest = Shapes::StructureShape.new(name: 'SimulateCustomPolicyRequest')
@@ -353,7 +368,9 @@ module Aws::IAM
353
368
  duplicateSSHPublicKeyMessage = Shapes::StringShape.new(name: 'duplicateSSHPublicKeyMessage')
354
369
  encodingType = Shapes::StringShape.new(name: 'encodingType')
355
370
  entityAlreadyExistsMessage = Shapes::StringShape.new(name: 'entityAlreadyExistsMessage')
371
+ entityDetailsListType = Shapes::ListShape.new(name: 'entityDetailsListType')
356
372
  entityListType = Shapes::ListShape.new(name: 'entityListType')
373
+ entityNameType = Shapes::StringShape.new(name: 'entityNameType')
357
374
  entityTemporarilyUnmodifiableMessage = Shapes::StringShape.new(name: 'entityTemporarilyUnmodifiableMessage')
358
375
  existingUserNameType = Shapes::StringShape.new(name: 'existingUserNameType')
359
376
  groupDetailListType = Shapes::ListShape.new(name: 'groupDetailListType')
@@ -363,13 +380,17 @@ module Aws::IAM
363
380
  idType = Shapes::StringShape.new(name: 'idType')
364
381
  instanceProfileListType = Shapes::ListShape.new(name: 'instanceProfileListType')
365
382
  instanceProfileNameType = Shapes::StringShape.new(name: 'instanceProfileNameType')
383
+ integerType = Shapes::IntegerShape.new(name: 'integerType')
366
384
  invalidAuthenticationCodeMessage = Shapes::StringShape.new(name: 'invalidAuthenticationCodeMessage')
367
385
  invalidCertificateMessage = Shapes::StringShape.new(name: 'invalidCertificateMessage')
368
386
  invalidInputMessage = Shapes::StringShape.new(name: 'invalidInputMessage')
369
387
  invalidPublicKeyMessage = Shapes::StringShape.new(name: 'invalidPublicKeyMessage')
370
388
  invalidUserTypeMessage = Shapes::StringShape.new(name: 'invalidUserTypeMessage')
389
+ jobIDType = Shapes::StringShape.new(name: 'jobIDType')
390
+ jobStatusType = Shapes::StringShape.new(name: 'jobStatusType')
371
391
  keyPairMismatchMessage = Shapes::StringShape.new(name: 'keyPairMismatchMessage')
372
392
  limitExceededMessage = Shapes::StringShape.new(name: 'limitExceededMessage')
393
+ listPolicyGrantingServiceAccessResponseListType = Shapes::ListShape.new(name: 'listPolicyGrantingServiceAccessResponseListType')
373
394
  malformedCertificateMessage = Shapes::StringShape.new(name: 'malformedCertificateMessage')
374
395
  malformedPolicyDocumentMessage = Shapes::StringShape.new(name: 'malformedPolicyDocumentMessage')
375
396
  markerType = Shapes::StringShape.new(name: 'markerType')
@@ -388,12 +409,15 @@ module Aws::IAM
388
409
  policyDocumentType = Shapes::StringShape.new(name: 'policyDocumentType')
389
410
  policyDocumentVersionListType = Shapes::ListShape.new(name: 'policyDocumentVersionListType')
390
411
  policyEvaluationErrorMessage = Shapes::StringShape.new(name: 'policyEvaluationErrorMessage')
412
+ policyGrantingServiceAccessListType = Shapes::ListShape.new(name: 'policyGrantingServiceAccessListType')
391
413
  policyListType = Shapes::ListShape.new(name: 'policyListType')
392
414
  policyNameListType = Shapes::ListShape.new(name: 'policyNameListType')
393
415
  policyNameType = Shapes::StringShape.new(name: 'policyNameType')
394
416
  policyNotAttachableMessage = Shapes::StringShape.new(name: 'policyNotAttachableMessage')
417
+ policyOwnerEntityType = Shapes::StringShape.new(name: 'policyOwnerEntityType')
395
418
  policyPathType = Shapes::StringShape.new(name: 'policyPathType')
396
419
  policyScopeType = Shapes::StringShape.new(name: 'policyScopeType')
420
+ policyType = Shapes::StringShape.new(name: 'policyType')
397
421
  policyVersionIdType = Shapes::StringShape.new(name: 'policyVersionIdType')
398
422
  privateKeyType = Shapes::StringShape.new(name: 'privateKeyType')
399
423
  publicKeyFingerprintType = Shapes::StringShape.new(name: 'publicKeyFingerprintType')
@@ -409,6 +433,9 @@ module Aws::IAM
409
433
  serverCertificateNameType = Shapes::StringShape.new(name: 'serverCertificateNameType')
410
434
  serviceFailureExceptionMessage = Shapes::StringShape.new(name: 'serviceFailureExceptionMessage')
411
435
  serviceName = Shapes::StringShape.new(name: 'serviceName')
436
+ serviceNameType = Shapes::StringShape.new(name: 'serviceNameType')
437
+ serviceNamespaceListType = Shapes::ListShape.new(name: 'serviceNamespaceListType')
438
+ serviceNamespaceType = Shapes::StringShape.new(name: 'serviceNamespaceType')
412
439
  serviceNotSupportedMessage = Shapes::StringShape.new(name: 'serviceNotSupportedMessage')
413
440
  servicePassword = Shapes::StringShape.new(name: 'servicePassword')
414
441
  serviceSpecificCredentialId = Shapes::StringShape.new(name: 'serviceSpecificCredentialId')
@@ -561,9 +588,9 @@ module Aws::IAM
561
588
  CreateRoleRequest.add_member(:role_name, Shapes::ShapeRef.new(shape: roleNameType, required: true, location_name: "RoleName"))
562
589
  CreateRoleRequest.add_member(:assume_role_policy_document, Shapes::ShapeRef.new(shape: policyDocumentType, required: true, location_name: "AssumeRolePolicyDocument"))
563
590
  CreateRoleRequest.add_member(:description, Shapes::ShapeRef.new(shape: roleDescriptionType, location_name: "Description"))
564
- CreateRoleRequest.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
565
591
  CreateRoleRequest.add_member(:max_session_duration, Shapes::ShapeRef.new(shape: roleMaxSessionDurationType, location_name: "MaxSessionDuration"))
566
592
  CreateRoleRequest.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: arnType, location_name: "PermissionsBoundary"))
593
+ CreateRoleRequest.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
567
594
  CreateRoleRequest.struct_class = Types::CreateRoleRequest
568
595
 
569
596
  CreateRoleResponse.add_member(:role, Shapes::ShapeRef.new(shape: Role, required: true, location_name: "Role"))
@@ -593,8 +620,8 @@ module Aws::IAM
593
620
 
594
621
  CreateUserRequest.add_member(:path, Shapes::ShapeRef.new(shape: pathType, location_name: "Path"))
595
622
  CreateUserRequest.add_member(:user_name, Shapes::ShapeRef.new(shape: userNameType, required: true, location_name: "UserName"))
596
- CreateUserRequest.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
597
623
  CreateUserRequest.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: arnType, location_name: "PermissionsBoundary"))
624
+ CreateUserRequest.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
598
625
  CreateUserRequest.struct_class = Types::CreateUserRequest
599
626
 
600
627
  CreateUserResponse.add_member(:user, Shapes::ShapeRef.new(shape: User, location_name: "User"))
@@ -710,6 +737,21 @@ module Aws::IAM
710
737
  EnableMFADeviceRequest.add_member(:authentication_code_2, Shapes::ShapeRef.new(shape: authenticationCodeType, required: true, location_name: "AuthenticationCode2"))
711
738
  EnableMFADeviceRequest.struct_class = Types::EnableMFADeviceRequest
712
739
 
740
+ EntityDetails.add_member(:entity_info, Shapes::ShapeRef.new(shape: EntityInfo, required: true, location_name: "EntityInfo"))
741
+ EntityDetails.add_member(:last_authenticated, Shapes::ShapeRef.new(shape: dateType, location_name: "LastAuthenticated"))
742
+ EntityDetails.struct_class = Types::EntityDetails
743
+
744
+ EntityInfo.add_member(:arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "Arn"))
745
+ EntityInfo.add_member(:name, Shapes::ShapeRef.new(shape: userNameType, required: true, location_name: "Name"))
746
+ EntityInfo.add_member(:type, Shapes::ShapeRef.new(shape: policyOwnerEntityType, required: true, location_name: "Type"))
747
+ EntityInfo.add_member(:id, Shapes::ShapeRef.new(shape: idType, required: true, location_name: "Id"))
748
+ EntityInfo.add_member(:path, Shapes::ShapeRef.new(shape: pathType, location_name: "Path"))
749
+ EntityInfo.struct_class = Types::EntityInfo
750
+
751
+ ErrorDetails.add_member(:message, Shapes::ShapeRef.new(shape: stringType, required: true, location_name: "Message"))
752
+ ErrorDetails.add_member(:code, Shapes::ShapeRef.new(shape: stringType, required: true, location_name: "Code"))
753
+ ErrorDetails.struct_class = Types::ErrorDetails
754
+
713
755
  EvalDecisionDetailsType.key = Shapes::ShapeRef.new(shape: EvalDecisionSourceType)
714
756
  EvalDecisionDetailsType.value = Shapes::ShapeRef.new(shape: PolicyEvaluationDecisionType)
715
757
 
@@ -729,6 +771,12 @@ module Aws::IAM
729
771
  GenerateCredentialReportResponse.add_member(:description, Shapes::ShapeRef.new(shape: ReportStateDescriptionType, location_name: "Description"))
730
772
  GenerateCredentialReportResponse.struct_class = Types::GenerateCredentialReportResponse
731
773
 
774
+ GenerateServiceLastAccessedDetailsRequest.add_member(:arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "Arn"))
775
+ GenerateServiceLastAccessedDetailsRequest.struct_class = Types::GenerateServiceLastAccessedDetailsRequest
776
+
777
+ GenerateServiceLastAccessedDetailsResponse.add_member(:job_id, Shapes::ShapeRef.new(shape: jobIDType, location_name: "JobId"))
778
+ GenerateServiceLastAccessedDetailsResponse.struct_class = Types::GenerateServiceLastAccessedDetailsResponse
779
+
732
780
  GetAccessKeyLastUsedRequest.add_member(:access_key_id, Shapes::ShapeRef.new(shape: accessKeyIdType, required: true, location_name: "AccessKeyId"))
733
781
  GetAccessKeyLastUsedRequest.struct_class = Types::GetAccessKeyLastUsedRequest
734
782
 
@@ -861,6 +909,35 @@ module Aws::IAM
861
909
  GetServerCertificateResponse.add_member(:server_certificate, Shapes::ShapeRef.new(shape: ServerCertificate, required: true, location_name: "ServerCertificate"))
862
910
  GetServerCertificateResponse.struct_class = Types::GetServerCertificateResponse
863
911
 
912
+ GetServiceLastAccessedDetailsRequest.add_member(:job_id, Shapes::ShapeRef.new(shape: jobIDType, required: true, location_name: "JobId"))
913
+ GetServiceLastAccessedDetailsRequest.add_member(:max_items, Shapes::ShapeRef.new(shape: maxItemsType, location_name: "MaxItems"))
914
+ GetServiceLastAccessedDetailsRequest.add_member(:marker, Shapes::ShapeRef.new(shape: markerType, location_name: "Marker"))
915
+ GetServiceLastAccessedDetailsRequest.struct_class = Types::GetServiceLastAccessedDetailsRequest
916
+
917
+ GetServiceLastAccessedDetailsResponse.add_member(:job_status, Shapes::ShapeRef.new(shape: jobStatusType, required: true, location_name: "JobStatus"))
918
+ GetServiceLastAccessedDetailsResponse.add_member(:job_creation_date, Shapes::ShapeRef.new(shape: dateType, required: true, location_name: "JobCreationDate"))
919
+ GetServiceLastAccessedDetailsResponse.add_member(:services_last_accessed, Shapes::ShapeRef.new(shape: ServicesLastAccessed, required: true, location_name: "ServicesLastAccessed"))
920
+ GetServiceLastAccessedDetailsResponse.add_member(:job_completion_date, Shapes::ShapeRef.new(shape: dateType, required: true, location_name: "JobCompletionDate"))
921
+ GetServiceLastAccessedDetailsResponse.add_member(:is_truncated, Shapes::ShapeRef.new(shape: booleanType, location_name: "IsTruncated"))
922
+ GetServiceLastAccessedDetailsResponse.add_member(:marker, Shapes::ShapeRef.new(shape: markerType, location_name: "Marker"))
923
+ GetServiceLastAccessedDetailsResponse.add_member(:error, Shapes::ShapeRef.new(shape: ErrorDetails, location_name: "Error"))
924
+ GetServiceLastAccessedDetailsResponse.struct_class = Types::GetServiceLastAccessedDetailsResponse
925
+
926
+ GetServiceLastAccessedDetailsWithEntitiesRequest.add_member(:job_id, Shapes::ShapeRef.new(shape: jobIDType, required: true, location_name: "JobId"))
927
+ GetServiceLastAccessedDetailsWithEntitiesRequest.add_member(:service_namespace, Shapes::ShapeRef.new(shape: serviceNamespaceType, required: true, location_name: "ServiceNamespace"))
928
+ GetServiceLastAccessedDetailsWithEntitiesRequest.add_member(:max_items, Shapes::ShapeRef.new(shape: maxItemsType, location_name: "MaxItems"))
929
+ GetServiceLastAccessedDetailsWithEntitiesRequest.add_member(:marker, Shapes::ShapeRef.new(shape: markerType, location_name: "Marker"))
930
+ GetServiceLastAccessedDetailsWithEntitiesRequest.struct_class = Types::GetServiceLastAccessedDetailsWithEntitiesRequest
931
+
932
+ GetServiceLastAccessedDetailsWithEntitiesResponse.add_member(:job_status, Shapes::ShapeRef.new(shape: jobStatusType, required: true, location_name: "JobStatus"))
933
+ GetServiceLastAccessedDetailsWithEntitiesResponse.add_member(:job_creation_date, Shapes::ShapeRef.new(shape: dateType, required: true, location_name: "JobCreationDate"))
934
+ GetServiceLastAccessedDetailsWithEntitiesResponse.add_member(:job_completion_date, Shapes::ShapeRef.new(shape: dateType, required: true, location_name: "JobCompletionDate"))
935
+ GetServiceLastAccessedDetailsWithEntitiesResponse.add_member(:entity_details_list, Shapes::ShapeRef.new(shape: entityDetailsListType, required: true, location_name: "EntityDetailsList"))
936
+ GetServiceLastAccessedDetailsWithEntitiesResponse.add_member(:is_truncated, Shapes::ShapeRef.new(shape: booleanType, location_name: "IsTruncated"))
937
+ GetServiceLastAccessedDetailsWithEntitiesResponse.add_member(:marker, Shapes::ShapeRef.new(shape: markerType, location_name: "Marker"))
938
+ GetServiceLastAccessedDetailsWithEntitiesResponse.add_member(:error, Shapes::ShapeRef.new(shape: ErrorDetails, location_name: "Error"))
939
+ GetServiceLastAccessedDetailsWithEntitiesResponse.struct_class = Types::GetServiceLastAccessedDetailsWithEntitiesResponse
940
+
864
941
  GetServiceLinkedRoleDeletionStatusRequest.add_member(:deletion_task_id, Shapes::ShapeRef.new(shape: DeletionTaskIdType, required: true, location_name: "DeletionTaskId"))
865
942
  GetServiceLinkedRoleDeletionStatusRequest.struct_class = Types::GetServiceLinkedRoleDeletionStatusRequest
866
943
 
@@ -1039,6 +1116,20 @@ module Aws::IAM
1039
1116
  ListOpenIDConnectProvidersResponse.add_member(:open_id_connect_provider_list, Shapes::ShapeRef.new(shape: OpenIDConnectProviderListType, location_name: "OpenIDConnectProviderList"))
1040
1117
  ListOpenIDConnectProvidersResponse.struct_class = Types::ListOpenIDConnectProvidersResponse
1041
1118
 
1119
+ ListPoliciesGrantingServiceAccessEntry.add_member(:service_namespace, Shapes::ShapeRef.new(shape: serviceNamespaceType, location_name: "ServiceNamespace"))
1120
+ ListPoliciesGrantingServiceAccessEntry.add_member(:policies, Shapes::ShapeRef.new(shape: policyGrantingServiceAccessListType, location_name: "Policies"))
1121
+ ListPoliciesGrantingServiceAccessEntry.struct_class = Types::ListPoliciesGrantingServiceAccessEntry
1122
+
1123
+ ListPoliciesGrantingServiceAccessRequest.add_member(:marker, Shapes::ShapeRef.new(shape: markerType, location_name: "Marker"))
1124
+ ListPoliciesGrantingServiceAccessRequest.add_member(:arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "Arn"))
1125
+ ListPoliciesGrantingServiceAccessRequest.add_member(:service_namespaces, Shapes::ShapeRef.new(shape: serviceNamespaceListType, required: true, location_name: "ServiceNamespaces"))
1126
+ ListPoliciesGrantingServiceAccessRequest.struct_class = Types::ListPoliciesGrantingServiceAccessRequest
1127
+
1128
+ ListPoliciesGrantingServiceAccessResponse.add_member(:policies_granting_service_access, Shapes::ShapeRef.new(shape: listPolicyGrantingServiceAccessResponseListType, required: true, location_name: "PoliciesGrantingServiceAccess"))
1129
+ ListPoliciesGrantingServiceAccessResponse.add_member(:is_truncated, Shapes::ShapeRef.new(shape: booleanType, location_name: "IsTruncated"))
1130
+ ListPoliciesGrantingServiceAccessResponse.add_member(:marker, Shapes::ShapeRef.new(shape: markerType, location_name: "Marker"))
1131
+ ListPoliciesGrantingServiceAccessResponse.struct_class = Types::ListPoliciesGrantingServiceAccessResponse
1132
+
1042
1133
  ListPoliciesRequest.add_member(:scope, Shapes::ShapeRef.new(shape: policyScopeType, location_name: "Scope"))
1043
1134
  ListPoliciesRequest.add_member(:only_attached, Shapes::ShapeRef.new(shape: booleanType, location_name: "OnlyAttached"))
1044
1135
  ListPoliciesRequest.add_member(:path_prefix, Shapes::ShapeRef.new(shape: policyPathType, location_name: "PathPrefix"))
@@ -1237,6 +1328,13 @@ module Aws::IAM
1237
1328
  PolicyDetail.add_member(:policy_document, Shapes::ShapeRef.new(shape: policyDocumentType, location_name: "PolicyDocument"))
1238
1329
  PolicyDetail.struct_class = Types::PolicyDetail
1239
1330
 
1331
+ PolicyGrantingServiceAccess.add_member(:policy_name, Shapes::ShapeRef.new(shape: policyNameType, required: true, location_name: "PolicyName"))
1332
+ PolicyGrantingServiceAccess.add_member(:policy_type, Shapes::ShapeRef.new(shape: policyType, required: true, location_name: "PolicyType"))
1333
+ PolicyGrantingServiceAccess.add_member(:policy_arn, Shapes::ShapeRef.new(shape: arnType, location_name: "PolicyArn"))
1334
+ PolicyGrantingServiceAccess.add_member(:entity_type, Shapes::ShapeRef.new(shape: policyOwnerEntityType, location_name: "EntityType"))
1335
+ PolicyGrantingServiceAccess.add_member(:entity_name, Shapes::ShapeRef.new(shape: entityNameType, location_name: "EntityName"))
1336
+ PolicyGrantingServiceAccess.struct_class = Types::PolicyGrantingServiceAccess
1337
+
1240
1338
  PolicyGroup.add_member(:group_name, Shapes::ShapeRef.new(shape: groupNameType, location_name: "GroupName"))
1241
1339
  PolicyGroup.add_member(:group_id, Shapes::ShapeRef.new(shape: idType, location_name: "GroupId"))
1242
1340
  PolicyGroup.struct_class = Types::PolicyGroup
@@ -1331,9 +1429,9 @@ module Aws::IAM
1331
1429
  Role.add_member(:create_date, Shapes::ShapeRef.new(shape: dateType, required: true, location_name: "CreateDate"))
1332
1430
  Role.add_member(:assume_role_policy_document, Shapes::ShapeRef.new(shape: policyDocumentType, location_name: "AssumeRolePolicyDocument"))
1333
1431
  Role.add_member(:description, Shapes::ShapeRef.new(shape: roleDescriptionType, location_name: "Description"))
1334
- Role.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
1335
1432
  Role.add_member(:max_session_duration, Shapes::ShapeRef.new(shape: roleMaxSessionDurationType, location_name: "MaxSessionDuration"))
1336
1433
  Role.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: AttachedPermissionsBoundary, location_name: "PermissionsBoundary"))
1434
+ Role.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
1337
1435
  Role.struct_class = Types::Role
1338
1436
 
1339
1437
  RoleDetail.add_member(:path, Shapes::ShapeRef.new(shape: pathType, location_name: "Path"))
@@ -1345,8 +1443,8 @@ module Aws::IAM
1345
1443
  RoleDetail.add_member(:instance_profile_list, Shapes::ShapeRef.new(shape: instanceProfileListType, location_name: "InstanceProfileList"))
1346
1444
  RoleDetail.add_member(:role_policy_list, Shapes::ShapeRef.new(shape: policyDetailListType, location_name: "RolePolicyList"))
1347
1445
  RoleDetail.add_member(:attached_managed_policies, Shapes::ShapeRef.new(shape: attachedPoliciesListType, location_name: "AttachedManagedPolicies"))
1348
- RoleDetail.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
1349
1446
  RoleDetail.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: AttachedPermissionsBoundary, location_name: "PermissionsBoundary"))
1447
+ RoleDetail.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
1350
1448
  RoleDetail.struct_class = Types::RoleDetail
1351
1449
 
1352
1450
  RoleUsageListType.member = Shapes::ShapeRef.new(shape: RoleUsageType)
@@ -1391,6 +1489,13 @@ module Aws::IAM
1391
1489
  ServerCertificateMetadata.add_member(:expiration, Shapes::ShapeRef.new(shape: dateType, location_name: "Expiration"))
1392
1490
  ServerCertificateMetadata.struct_class = Types::ServerCertificateMetadata
1393
1491
 
1492
+ ServiceLastAccessed.add_member(:service_name, Shapes::ShapeRef.new(shape: serviceNameType, required: true, location_name: "ServiceName"))
1493
+ ServiceLastAccessed.add_member(:last_authenticated, Shapes::ShapeRef.new(shape: dateType, location_name: "LastAuthenticated"))
1494
+ ServiceLastAccessed.add_member(:service_namespace, Shapes::ShapeRef.new(shape: serviceNamespaceType, required: true, location_name: "ServiceNamespace"))
1495
+ ServiceLastAccessed.add_member(:last_authenticated_entity, Shapes::ShapeRef.new(shape: arnType, location_name: "LastAuthenticatedEntity"))
1496
+ ServiceLastAccessed.add_member(:total_authenticated_entities, Shapes::ShapeRef.new(shape: integerType, location_name: "TotalAuthenticatedEntities"))
1497
+ ServiceLastAccessed.struct_class = Types::ServiceLastAccessed
1498
+
1394
1499
  ServiceSpecificCredential.add_member(:create_date, Shapes::ShapeRef.new(shape: dateType, required: true, location_name: "CreateDate"))
1395
1500
  ServiceSpecificCredential.add_member(:service_name, Shapes::ShapeRef.new(shape: serviceName, required: true, location_name: "ServiceName"))
1396
1501
  ServiceSpecificCredential.add_member(:service_user_name, Shapes::ShapeRef.new(shape: serviceUserName, required: true, location_name: "ServiceUserName"))
@@ -1410,6 +1515,8 @@ module Aws::IAM
1410
1515
 
1411
1516
  ServiceSpecificCredentialsListType.member = Shapes::ShapeRef.new(shape: ServiceSpecificCredentialMetadata)
1412
1517
 
1518
+ ServicesLastAccessed.member = Shapes::ShapeRef.new(shape: ServiceLastAccessed)
1519
+
1413
1520
  SetDefaultPolicyVersionRequest.add_member(:policy_arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "PolicyArn"))
1414
1521
  SetDefaultPolicyVersionRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: policyVersionIdType, required: true, location_name: "VersionId"))
1415
1522
  SetDefaultPolicyVersionRequest.struct_class = Types::SetDefaultPolicyVersionRequest
@@ -1591,8 +1698,8 @@ module Aws::IAM
1591
1698
  User.add_member(:arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "Arn"))
1592
1699
  User.add_member(:create_date, Shapes::ShapeRef.new(shape: dateType, required: true, location_name: "CreateDate"))
1593
1700
  User.add_member(:password_last_used, Shapes::ShapeRef.new(shape: dateType, location_name: "PasswordLastUsed"))
1594
- User.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
1595
1701
  User.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: AttachedPermissionsBoundary, location_name: "PermissionsBoundary"))
1702
+ User.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
1596
1703
  User.struct_class = Types::User
1597
1704
 
1598
1705
  UserDetail.add_member(:path, Shapes::ShapeRef.new(shape: pathType, location_name: "Path"))
@@ -1603,8 +1710,8 @@ module Aws::IAM
1603
1710
  UserDetail.add_member(:user_policy_list, Shapes::ShapeRef.new(shape: policyDetailListType, location_name: "UserPolicyList"))
1604
1711
  UserDetail.add_member(:group_list, Shapes::ShapeRef.new(shape: groupNameListType, location_name: "GroupList"))
1605
1712
  UserDetail.add_member(:attached_managed_policies, Shapes::ShapeRef.new(shape: attachedPoliciesListType, location_name: "AttachedManagedPolicies"))
1606
- UserDetail.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
1607
1713
  UserDetail.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: AttachedPermissionsBoundary, location_name: "PermissionsBoundary"))
1714
+ UserDetail.add_member(:tags, Shapes::ShapeRef.new(shape: tagListType, location_name: "Tags"))
1608
1715
  UserDetail.struct_class = Types::UserDetail
1609
1716
 
1610
1717
  VirtualMFADevice.add_member(:serial_number, Shapes::ShapeRef.new(shape: serialNumberType, required: true, location_name: "SerialNumber"))
@@ -1624,6 +1731,8 @@ module Aws::IAM
1624
1731
 
1625
1732
  clientIDListType.member = Shapes::ShapeRef.new(shape: clientIDType)
1626
1733
 
1734
+ entityDetailsListType.member = Shapes::ShapeRef.new(shape: EntityDetails)
1735
+
1627
1736
  entityListType.member = Shapes::ShapeRef.new(shape: EntityType)
1628
1737
 
1629
1738
  groupDetailListType.member = Shapes::ShapeRef.new(shape: GroupDetail)
@@ -1634,12 +1743,16 @@ module Aws::IAM
1634
1743
 
1635
1744
  instanceProfileListType.member = Shapes::ShapeRef.new(shape: InstanceProfile)
1636
1745
 
1746
+ listPolicyGrantingServiceAccessResponseListType.member = Shapes::ShapeRef.new(shape: ListPoliciesGrantingServiceAccessEntry)
1747
+
1637
1748
  mfaDeviceListType.member = Shapes::ShapeRef.new(shape: MFADevice)
1638
1749
 
1639
1750
  policyDetailListType.member = Shapes::ShapeRef.new(shape: PolicyDetail)
1640
1751
 
1641
1752
  policyDocumentVersionListType.member = Shapes::ShapeRef.new(shape: PolicyVersion)
1642
1753
 
1754
+ policyGrantingServiceAccessListType.member = Shapes::ShapeRef.new(shape: PolicyGrantingServiceAccess)
1755
+
1643
1756
  policyListType.member = Shapes::ShapeRef.new(shape: Policy)
1644
1757
 
1645
1758
  policyNameListType.member = Shapes::ShapeRef.new(shape: policyNameType)
@@ -1650,6 +1763,8 @@ module Aws::IAM
1650
1763
 
1651
1764
  serverCertificateMetadataListType.member = Shapes::ShapeRef.new(shape: ServerCertificateMetadata)
1652
1765
 
1766
+ serviceNamespaceListType.member = Shapes::ShapeRef.new(shape: serviceNamespaceType)
1767
+
1653
1768
  summaryMapType.key = Shapes::ShapeRef.new(shape: summaryKeyType)
1654
1769
  summaryMapType.value = Shapes::ShapeRef.new(shape: summaryValueType)
1655
1770
 
@@ -2281,6 +2396,16 @@ module Aws::IAM
2281
2396
  o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2282
2397
  end)
2283
2398
 
2399
+ api.add_operation(:generate_service_last_accessed_details, Seahorse::Model::Operation.new.tap do |o|
2400
+ o.name = "GenerateServiceLastAccessedDetails"
2401
+ o.http_method = "POST"
2402
+ o.http_request_uri = "/"
2403
+ o.input = Shapes::ShapeRef.new(shape: GenerateServiceLastAccessedDetailsRequest)
2404
+ o.output = Shapes::ShapeRef.new(shape: GenerateServiceLastAccessedDetailsResponse)
2405
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
2406
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
2407
+ end)
2408
+
2284
2409
  api.add_operation(:get_access_key_last_used, Seahorse::Model::Operation.new.tap do |o|
2285
2410
  o.name = "GetAccessKeyLastUsed"
2286
2411
  o.http_method = "POST"
@@ -2487,6 +2612,26 @@ module Aws::IAM
2487
2612
  o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2488
2613
  end)
2489
2614
 
2615
+ api.add_operation(:get_service_last_accessed_details, Seahorse::Model::Operation.new.tap do |o|
2616
+ o.name = "GetServiceLastAccessedDetails"
2617
+ o.http_method = "POST"
2618
+ o.http_request_uri = "/"
2619
+ o.input = Shapes::ShapeRef.new(shape: GetServiceLastAccessedDetailsRequest)
2620
+ o.output = Shapes::ShapeRef.new(shape: GetServiceLastAccessedDetailsResponse)
2621
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
2622
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
2623
+ end)
2624
+
2625
+ api.add_operation(:get_service_last_accessed_details_with_entities, Seahorse::Model::Operation.new.tap do |o|
2626
+ o.name = "GetServiceLastAccessedDetailsWithEntities"
2627
+ o.http_method = "POST"
2628
+ o.http_request_uri = "/"
2629
+ o.input = Shapes::ShapeRef.new(shape: GetServiceLastAccessedDetailsWithEntitiesRequest)
2630
+ o.output = Shapes::ShapeRef.new(shape: GetServiceLastAccessedDetailsWithEntitiesResponse)
2631
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
2632
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
2633
+ end)
2634
+
2490
2635
  api.add_operation(:get_service_linked_role_deletion_status, Seahorse::Model::Operation.new.tap do |o|
2491
2636
  o.name = "GetServiceLinkedRoleDeletionStatus"
2492
2637
  o.http_method = "POST"
@@ -2748,6 +2893,16 @@ module Aws::IAM
2748
2893
  )
2749
2894
  end)
2750
2895
 
2896
+ api.add_operation(:list_policies_granting_service_access, Seahorse::Model::Operation.new.tap do |o|
2897
+ o.name = "ListPoliciesGrantingServiceAccess"
2898
+ o.http_method = "POST"
2899
+ o.http_request_uri = "/"
2900
+ o.input = Shapes::ShapeRef.new(shape: ListPoliciesGrantingServiceAccessRequest)
2901
+ o.output = Shapes::ShapeRef.new(shape: ListPoliciesGrantingServiceAccessResponse)
2902
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
2903
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
2904
+ end)
2905
+
2751
2906
  api.add_operation(:list_policy_versions, Seahorse::Model::Operation.new.tap do |o|
2752
2907
  o.name = "ListPolicyVersions"
2753
2908
  o.http_method = "POST"
@@ -77,18 +77,18 @@ module Aws::IAM
77
77
  # websites that capture a user's last sign-in time, see the [Credential
78
78
  # Reports][2] topic in the *Using IAM* guide. If a password is used more
79
79
  # than once in a five-minute span, only the first use is returned in
80
- # this field. If the field is null (no value) then it indicates that
80
+ # this field. If the field is null (no value), then it indicates that
81
81
  # they never signed in with a password. This can be because:
82
82
  #
83
83
  # * The user never had a password.
84
84
  #
85
85
  # * A password exists but has not been used since IAM started tracking
86
- # this information on October 20th, 2014.
86
+ # this information on October 20, 2014.
87
87
  #
88
- # A null does not mean that the user *never* had a password. Also, if
89
- # the user does not currently have a password, but had one in the past,
90
- # then this field contains the date and time the most recent password
91
- # was used.
88
+ # A null valuedoes not mean that the user *never* had a password. Also,
89
+ # if the user does not currently have a password, but had one in the
90
+ # past, then this field contains the date and time the most recent
91
+ # password was used.
92
92
  #
93
93
  # This value is returned only in the GetUser and ListUsers operations.
94
94
  #
@@ -101,6 +101,18 @@ module Aws::IAM
101
101
  data[:password_last_used]
102
102
  end
103
103
 
104
+ # The ARN of the policy used to set the permissions boundary for the
105
+ # user.
106
+ #
107
+ # For more information about permissions boundaries, see [Permissions
108
+ # Boundaries for IAM Identities
109
+ # ](IAM/latest/UserGuide/access_policies_boundaries.html) in the *IAM
110
+ # User Guide*.
111
+ # @return [Types::AttachedPermissionsBoundary]
112
+ def permissions_boundary
113
+ data[:permissions_boundary]
114
+ end
115
+
104
116
  # A list of tags that are associated with the specified user. For more
105
117
  # information about tagging, see [Tagging IAM Identities][1] in the *IAM
106
118
  # User Guide*.
@@ -113,20 +125,6 @@ module Aws::IAM
113
125
  data[:tags]
114
126
  end
115
127
 
116
- # The ARN of the policy used to set the permissions boundary for the
117
- # user.
118
- #
119
- # For more information about permissions boundaries, see [Permissions
120
- # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
121
- #
122
- #
123
- #
124
- # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
125
- # @return [Types::AttachedPermissionsBoundary]
126
- def permissions_boundary
127
- data[:permissions_boundary]
128
- end
129
-
130
128
  # @!endgroup
131
129
 
132
130
  # @return [Client]
@@ -268,7 +266,7 @@ module Aws::IAM
268
266
  # @option options [String] :user_name
269
267
  # The name of the user.
270
268
  #
271
- # This parameter allows (per its [regex pattern][1]) a string of
269
+ # This parameter allows (through its [regex pattern][1]) a string of
272
270
  # characters consisting of upper and lowercase alphanumeric characters
273
271
  # with no spaces. You can also include any of the following characters:
274
272
  # \_+=,.@-
@@ -305,7 +303,7 @@ module Aws::IAM
305
303
  # @option options [String] :user_name
306
304
  # The name of the user whose MFA devices you want to list.
307
305
  #
308
- # This parameter allows (per its [regex pattern][1]) a string of
306
+ # This parameter allows (through its [regex pattern][1]) a string of
309
307
  # characters consisting of upper and lowercase alphanumeric characters
310
308
  # with no spaces. You can also include any of the following characters:
311
309
  # \_+=,.@-
@@ -343,7 +341,7 @@ module Aws::IAM
343
341
  # The name of the IAM user whose signing certificates you want to
344
342
  # examine.
345
343
  #
346
- # This parameter allows (per its [regex pattern][1]) a string of
344
+ # This parameter allows (through its [regex pattern][1]) a string of
347
345
  # characters consisting of upper and lowercase alphanumeric characters
348
346
  # with no spaces. You can also include any of the following characters:
349
347
  # \_+=,.@-