aws-sdk-iam 1.5.0 → 1.6.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.
@@ -23,6 +23,7 @@ module Aws::IAM
23
23
  AttachGroupPolicyRequest = Shapes::StructureShape.new(name: 'AttachGroupPolicyRequest')
24
24
  AttachRolePolicyRequest = Shapes::StructureShape.new(name: 'AttachRolePolicyRequest')
25
25
  AttachUserPolicyRequest = Shapes::StructureShape.new(name: 'AttachUserPolicyRequest')
26
+ AttachedPermissionsBoundary = Shapes::StructureShape.new(name: 'AttachedPermissionsBoundary')
26
27
  AttachedPolicy = Shapes::StructureShape.new(name: 'AttachedPolicy')
27
28
  BootstrapDatum = Shapes::BlobShape.new(name: 'BootstrapDatum')
28
29
  ChangePasswordRequest = Shapes::StructureShape.new(name: 'ChangePasswordRequest')
@@ -75,6 +76,7 @@ module Aws::IAM
75
76
  DeleteOpenIDConnectProviderRequest = Shapes::StructureShape.new(name: 'DeleteOpenIDConnectProviderRequest')
76
77
  DeletePolicyRequest = Shapes::StructureShape.new(name: 'DeletePolicyRequest')
77
78
  DeletePolicyVersionRequest = Shapes::StructureShape.new(name: 'DeletePolicyVersionRequest')
79
+ DeleteRolePermissionsBoundaryRequest = Shapes::StructureShape.new(name: 'DeleteRolePermissionsBoundaryRequest')
78
80
  DeleteRolePolicyRequest = Shapes::StructureShape.new(name: 'DeleteRolePolicyRequest')
79
81
  DeleteRoleRequest = Shapes::StructureShape.new(name: 'DeleteRoleRequest')
80
82
  DeleteSAMLProviderRequest = Shapes::StructureShape.new(name: 'DeleteSAMLProviderRequest')
@@ -84,6 +86,7 @@ module Aws::IAM
84
86
  DeleteServiceLinkedRoleResponse = Shapes::StructureShape.new(name: 'DeleteServiceLinkedRoleResponse')
85
87
  DeleteServiceSpecificCredentialRequest = Shapes::StructureShape.new(name: 'DeleteServiceSpecificCredentialRequest')
86
88
  DeleteSigningCertificateRequest = Shapes::StructureShape.new(name: 'DeleteSigningCertificateRequest')
89
+ DeleteUserPermissionsBoundaryRequest = Shapes::StructureShape.new(name: 'DeleteUserPermissionsBoundaryRequest')
87
90
  DeleteUserPolicyRequest = Shapes::StructureShape.new(name: 'DeleteUserPolicyRequest')
88
91
  DeleteUserRequest = Shapes::StructureShape.new(name: 'DeleteUserRequest')
89
92
  DeleteVirtualMFADeviceRequest = Shapes::StructureShape.new(name: 'DeleteVirtualMFADeviceRequest')
@@ -218,6 +221,7 @@ module Aws::IAM
218
221
  OrganizationsDecisionDetail = Shapes::StructureShape.new(name: 'OrganizationsDecisionDetail')
219
222
  PasswordPolicy = Shapes::StructureShape.new(name: 'PasswordPolicy')
220
223
  PasswordPolicyViolationException = Shapes::StructureShape.new(name: 'PasswordPolicyViolationException')
224
+ PermissionsBoundaryAttachmentType = Shapes::StringShape.new(name: 'PermissionsBoundaryAttachmentType')
221
225
  Policy = Shapes::StructureShape.new(name: 'Policy')
222
226
  PolicyDetail = Shapes::StructureShape.new(name: 'PolicyDetail')
223
227
  PolicyEvaluationDecisionType = Shapes::StringShape.new(name: 'PolicyEvaluationDecisionType')
@@ -229,12 +233,15 @@ module Aws::IAM
229
233
  PolicyRole = Shapes::StructureShape.new(name: 'PolicyRole')
230
234
  PolicyRoleListType = Shapes::ListShape.new(name: 'PolicyRoleListType')
231
235
  PolicySourceType = Shapes::StringShape.new(name: 'PolicySourceType')
236
+ PolicyUsageType = Shapes::StringShape.new(name: 'PolicyUsageType')
232
237
  PolicyUser = Shapes::StructureShape.new(name: 'PolicyUser')
233
238
  PolicyUserListType = Shapes::ListShape.new(name: 'PolicyUserListType')
234
239
  PolicyVersion = Shapes::StructureShape.new(name: 'PolicyVersion')
235
240
  Position = Shapes::StructureShape.new(name: 'Position')
236
241
  PutGroupPolicyRequest = Shapes::StructureShape.new(name: 'PutGroupPolicyRequest')
242
+ PutRolePermissionsBoundaryRequest = Shapes::StructureShape.new(name: 'PutRolePermissionsBoundaryRequest')
237
243
  PutRolePolicyRequest = Shapes::StructureShape.new(name: 'PutRolePolicyRequest')
244
+ PutUserPermissionsBoundaryRequest = Shapes::StructureShape.new(name: 'PutUserPermissionsBoundaryRequest')
238
245
  PutUserPolicyRequest = Shapes::StructureShape.new(name: 'PutUserPolicyRequest')
239
246
  ReasonType = Shapes::StringShape.new(name: 'ReasonType')
240
247
  RegionNameType = Shapes::StringShape.new(name: 'RegionNameType')
@@ -456,6 +463,10 @@ module Aws::IAM
456
463
  AttachUserPolicyRequest.add_member(:policy_arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "PolicyArn"))
457
464
  AttachUserPolicyRequest.struct_class = Types::AttachUserPolicyRequest
458
465
 
466
+ AttachedPermissionsBoundary.add_member(:permissions_boundary_type, Shapes::ShapeRef.new(shape: PermissionsBoundaryAttachmentType, location_name: "PermissionsBoundaryType"))
467
+ AttachedPermissionsBoundary.add_member(:permissions_boundary_arn, Shapes::ShapeRef.new(shape: arnType, location_name: "PermissionsBoundaryArn"))
468
+ AttachedPermissionsBoundary.struct_class = Types::AttachedPermissionsBoundary
469
+
459
470
  AttachedPolicy.add_member(:policy_name, Shapes::ShapeRef.new(shape: policyNameType, location_name: "PolicyName"))
460
471
  AttachedPolicy.add_member(:policy_arn, Shapes::ShapeRef.new(shape: arnType, location_name: "PolicyArn"))
461
472
  AttachedPolicy.struct_class = Types::AttachedPolicy
@@ -536,6 +547,7 @@ module Aws::IAM
536
547
  CreateRoleRequest.add_member(:assume_role_policy_document, Shapes::ShapeRef.new(shape: policyDocumentType, required: true, location_name: "AssumeRolePolicyDocument"))
537
548
  CreateRoleRequest.add_member(:description, Shapes::ShapeRef.new(shape: roleDescriptionType, location_name: "Description"))
538
549
  CreateRoleRequest.add_member(:max_session_duration, Shapes::ShapeRef.new(shape: roleMaxSessionDurationType, location_name: "MaxSessionDuration"))
550
+ CreateRoleRequest.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: arnType, location_name: "PermissionsBoundary"))
539
551
  CreateRoleRequest.struct_class = Types::CreateRoleRequest
540
552
 
541
553
  CreateRoleResponse.add_member(:role, Shapes::ShapeRef.new(shape: Role, required: true, location_name: "Role"))
@@ -565,6 +577,7 @@ module Aws::IAM
565
577
 
566
578
  CreateUserRequest.add_member(:path, Shapes::ShapeRef.new(shape: pathType, location_name: "Path"))
567
579
  CreateUserRequest.add_member(:user_name, Shapes::ShapeRef.new(shape: userNameType, required: true, location_name: "UserName"))
580
+ CreateUserRequest.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: arnType, location_name: "PermissionsBoundary"))
568
581
  CreateUserRequest.struct_class = Types::CreateUserRequest
569
582
 
570
583
  CreateUserResponse.add_member(:user, Shapes::ShapeRef.new(shape: User, location_name: "User"))
@@ -611,6 +624,9 @@ module Aws::IAM
611
624
  DeletePolicyVersionRequest.add_member(:version_id, Shapes::ShapeRef.new(shape: policyVersionIdType, required: true, location_name: "VersionId"))
612
625
  DeletePolicyVersionRequest.struct_class = Types::DeletePolicyVersionRequest
613
626
 
627
+ DeleteRolePermissionsBoundaryRequest.add_member(:role_name, Shapes::ShapeRef.new(shape: roleNameType, required: true, location_name: "RoleName"))
628
+ DeleteRolePermissionsBoundaryRequest.struct_class = Types::DeleteRolePermissionsBoundaryRequest
629
+
614
630
  DeleteRolePolicyRequest.add_member(:role_name, Shapes::ShapeRef.new(shape: roleNameType, required: true, location_name: "RoleName"))
615
631
  DeleteRolePolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: policyNameType, required: true, location_name: "PolicyName"))
616
632
  DeleteRolePolicyRequest.struct_class = Types::DeleteRolePolicyRequest
@@ -642,6 +658,9 @@ module Aws::IAM
642
658
  DeleteSigningCertificateRequest.add_member(:certificate_id, Shapes::ShapeRef.new(shape: certificateIdType, required: true, location_name: "CertificateId"))
643
659
  DeleteSigningCertificateRequest.struct_class = Types::DeleteSigningCertificateRequest
644
660
 
661
+ DeleteUserPermissionsBoundaryRequest.add_member(:user_name, Shapes::ShapeRef.new(shape: userNameType, required: true, location_name: "UserName"))
662
+ DeleteUserPermissionsBoundaryRequest.struct_class = Types::DeleteUserPermissionsBoundaryRequest
663
+
645
664
  DeleteUserPolicyRequest.add_member(:user_name, Shapes::ShapeRef.new(shape: existingUserNameType, required: true, location_name: "UserName"))
646
665
  DeleteUserPolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: policyNameType, required: true, location_name: "PolicyName"))
647
666
  DeleteUserPolicyRequest.struct_class = Types::DeleteUserPolicyRequest
@@ -926,6 +945,7 @@ module Aws::IAM
926
945
  ListEntitiesForPolicyRequest.add_member(:policy_arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "PolicyArn"))
927
946
  ListEntitiesForPolicyRequest.add_member(:entity_filter, Shapes::ShapeRef.new(shape: EntityType, location_name: "EntityFilter"))
928
947
  ListEntitiesForPolicyRequest.add_member(:path_prefix, Shapes::ShapeRef.new(shape: pathType, location_name: "PathPrefix"))
948
+ ListEntitiesForPolicyRequest.add_member(:policy_usage_filter, Shapes::ShapeRef.new(shape: PolicyUsageType, location_name: "PolicyUsageFilter"))
929
949
  ListEntitiesForPolicyRequest.add_member(:marker, Shapes::ShapeRef.new(shape: markerType, location_name: "Marker"))
930
950
  ListEntitiesForPolicyRequest.add_member(:max_items, Shapes::ShapeRef.new(shape: maxItemsType, location_name: "MaxItems"))
931
951
  ListEntitiesForPolicyRequest.struct_class = Types::ListEntitiesForPolicyRequest
@@ -1005,6 +1025,7 @@ module Aws::IAM
1005
1025
  ListPoliciesRequest.add_member(:scope, Shapes::ShapeRef.new(shape: policyScopeType, location_name: "Scope"))
1006
1026
  ListPoliciesRequest.add_member(:only_attached, Shapes::ShapeRef.new(shape: booleanType, location_name: "OnlyAttached"))
1007
1027
  ListPoliciesRequest.add_member(:path_prefix, Shapes::ShapeRef.new(shape: policyPathType, location_name: "PathPrefix"))
1028
+ ListPoliciesRequest.add_member(:policy_usage_filter, Shapes::ShapeRef.new(shape: PolicyUsageType, location_name: "PolicyUsageFilter"))
1008
1029
  ListPoliciesRequest.add_member(:marker, Shapes::ShapeRef.new(shape: markerType, location_name: "Marker"))
1009
1030
  ListPoliciesRequest.add_member(:max_items, Shapes::ShapeRef.new(shape: maxItemsType, location_name: "MaxItems"))
1010
1031
  ListPoliciesRequest.struct_class = Types::ListPoliciesRequest
@@ -1132,6 +1153,7 @@ module Aws::IAM
1132
1153
  ManagedPolicyDetail.add_member(:path, Shapes::ShapeRef.new(shape: policyPathType, location_name: "Path"))
1133
1154
  ManagedPolicyDetail.add_member(:default_version_id, Shapes::ShapeRef.new(shape: policyVersionIdType, location_name: "DefaultVersionId"))
1134
1155
  ManagedPolicyDetail.add_member(:attachment_count, Shapes::ShapeRef.new(shape: attachmentCountType, location_name: "AttachmentCount"))
1156
+ ManagedPolicyDetail.add_member(:permissions_boundary_usage_count, Shapes::ShapeRef.new(shape: attachmentCountType, location_name: "PermissionsBoundaryUsageCount"))
1135
1157
  ManagedPolicyDetail.add_member(:is_attachable, Shapes::ShapeRef.new(shape: booleanType, location_name: "IsAttachable"))
1136
1158
  ManagedPolicyDetail.add_member(:description, Shapes::ShapeRef.new(shape: policyDescriptionType, location_name: "Description"))
1137
1159
  ManagedPolicyDetail.add_member(:create_date, Shapes::ShapeRef.new(shape: dateType, location_name: "CreateDate"))
@@ -1167,6 +1189,7 @@ module Aws::IAM
1167
1189
  Policy.add_member(:path, Shapes::ShapeRef.new(shape: policyPathType, location_name: "Path"))
1168
1190
  Policy.add_member(:default_version_id, Shapes::ShapeRef.new(shape: policyVersionIdType, location_name: "DefaultVersionId"))
1169
1191
  Policy.add_member(:attachment_count, Shapes::ShapeRef.new(shape: attachmentCountType, location_name: "AttachmentCount"))
1192
+ Policy.add_member(:permissions_boundary_usage_count, Shapes::ShapeRef.new(shape: attachmentCountType, location_name: "PermissionsBoundaryUsageCount"))
1170
1193
  Policy.add_member(:is_attachable, Shapes::ShapeRef.new(shape: booleanType, location_name: "IsAttachable"))
1171
1194
  Policy.add_member(:description, Shapes::ShapeRef.new(shape: policyDescriptionType, location_name: "Description"))
1172
1195
  Policy.add_member(:create_date, Shapes::ShapeRef.new(shape: dateType, location_name: "CreateDate"))
@@ -1210,11 +1233,19 @@ module Aws::IAM
1210
1233
  PutGroupPolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: policyDocumentType, required: true, location_name: "PolicyDocument"))
1211
1234
  PutGroupPolicyRequest.struct_class = Types::PutGroupPolicyRequest
1212
1235
 
1236
+ PutRolePermissionsBoundaryRequest.add_member(:role_name, Shapes::ShapeRef.new(shape: roleNameType, required: true, location_name: "RoleName"))
1237
+ PutRolePermissionsBoundaryRequest.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "PermissionsBoundary"))
1238
+ PutRolePermissionsBoundaryRequest.struct_class = Types::PutRolePermissionsBoundaryRequest
1239
+
1213
1240
  PutRolePolicyRequest.add_member(:role_name, Shapes::ShapeRef.new(shape: roleNameType, required: true, location_name: "RoleName"))
1214
1241
  PutRolePolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: policyNameType, required: true, location_name: "PolicyName"))
1215
1242
  PutRolePolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: policyDocumentType, required: true, location_name: "PolicyDocument"))
1216
1243
  PutRolePolicyRequest.struct_class = Types::PutRolePolicyRequest
1217
1244
 
1245
+ PutUserPermissionsBoundaryRequest.add_member(:user_name, Shapes::ShapeRef.new(shape: userNameType, required: true, location_name: "UserName"))
1246
+ PutUserPermissionsBoundaryRequest.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "PermissionsBoundary"))
1247
+ PutUserPermissionsBoundaryRequest.struct_class = Types::PutUserPermissionsBoundaryRequest
1248
+
1218
1249
  PutUserPolicyRequest.add_member(:user_name, Shapes::ShapeRef.new(shape: existingUserNameType, required: true, location_name: "UserName"))
1219
1250
  PutUserPolicyRequest.add_member(:policy_name, Shapes::ShapeRef.new(shape: policyNameType, required: true, location_name: "PolicyName"))
1220
1251
  PutUserPolicyRequest.add_member(:policy_document, Shapes::ShapeRef.new(shape: policyDocumentType, required: true, location_name: "PolicyDocument"))
@@ -1264,6 +1295,7 @@ module Aws::IAM
1264
1295
  Role.add_member(:assume_role_policy_document, Shapes::ShapeRef.new(shape: policyDocumentType, location_name: "AssumeRolePolicyDocument"))
1265
1296
  Role.add_member(:description, Shapes::ShapeRef.new(shape: roleDescriptionType, location_name: "Description"))
1266
1297
  Role.add_member(:max_session_duration, Shapes::ShapeRef.new(shape: roleMaxSessionDurationType, location_name: "MaxSessionDuration"))
1298
+ Role.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: AttachedPermissionsBoundary, location_name: "PermissionsBoundary"))
1267
1299
  Role.struct_class = Types::Role
1268
1300
 
1269
1301
  RoleDetail.add_member(:path, Shapes::ShapeRef.new(shape: pathType, location_name: "Path"))
@@ -1275,6 +1307,7 @@ module Aws::IAM
1275
1307
  RoleDetail.add_member(:instance_profile_list, Shapes::ShapeRef.new(shape: instanceProfileListType, location_name: "InstanceProfileList"))
1276
1308
  RoleDetail.add_member(:role_policy_list, Shapes::ShapeRef.new(shape: policyDetailListType, location_name: "RolePolicyList"))
1277
1309
  RoleDetail.add_member(:attached_managed_policies, Shapes::ShapeRef.new(shape: attachedPoliciesListType, location_name: "AttachedManagedPolicies"))
1310
+ RoleDetail.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: AttachedPermissionsBoundary, location_name: "PermissionsBoundary"))
1278
1311
  RoleDetail.struct_class = Types::RoleDetail
1279
1312
 
1280
1313
  RoleUsageListType.member = Shapes::ShapeRef.new(shape: RoleUsageType)
@@ -1499,6 +1532,7 @@ module Aws::IAM
1499
1532
  User.add_member(:arn, Shapes::ShapeRef.new(shape: arnType, required: true, location_name: "Arn"))
1500
1533
  User.add_member(:create_date, Shapes::ShapeRef.new(shape: dateType, required: true, location_name: "CreateDate"))
1501
1534
  User.add_member(:password_last_used, Shapes::ShapeRef.new(shape: dateType, location_name: "PasswordLastUsed"))
1535
+ User.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: AttachedPermissionsBoundary, location_name: "PermissionsBoundary"))
1502
1536
  User.struct_class = Types::User
1503
1537
 
1504
1538
  UserDetail.add_member(:path, Shapes::ShapeRef.new(shape: pathType, location_name: "Path"))
@@ -1509,6 +1543,7 @@ module Aws::IAM
1509
1543
  UserDetail.add_member(:user_policy_list, Shapes::ShapeRef.new(shape: policyDetailListType, location_name: "UserPolicyList"))
1510
1544
  UserDetail.add_member(:group_list, Shapes::ShapeRef.new(shape: groupNameListType, location_name: "GroupList"))
1511
1545
  UserDetail.add_member(:attached_managed_policies, Shapes::ShapeRef.new(shape: attachedPoliciesListType, location_name: "AttachedManagedPolicies"))
1546
+ UserDetail.add_member(:permissions_boundary, Shapes::ShapeRef.new(shape: AttachedPermissionsBoundary, location_name: "PermissionsBoundary"))
1512
1547
  UserDetail.struct_class = Types::UserDetail
1513
1548
 
1514
1549
  VirtualMFADevice.add_member(:serial_number, Shapes::ShapeRef.new(shape: serialNumberType, required: true, location_name: "SerialNumber"))
@@ -1978,6 +2013,17 @@ module Aws::IAM
1978
2013
  o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
1979
2014
  end)
1980
2015
 
2016
+ api.add_operation(:delete_role_permissions_boundary, Seahorse::Model::Operation.new.tap do |o|
2017
+ o.name = "DeleteRolePermissionsBoundary"
2018
+ o.http_method = "POST"
2019
+ o.http_request_uri = "/"
2020
+ o.input = Shapes::ShapeRef.new(shape: DeleteRolePermissionsBoundaryRequest)
2021
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2022
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
2023
+ o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
2024
+ o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2025
+ end)
2026
+
1981
2027
  api.add_operation(:delete_role_policy, Seahorse::Model::Operation.new.tap do |o|
1982
2028
  o.name = "DeleteRolePolicy"
1983
2029
  o.http_method = "POST"
@@ -2066,6 +2112,16 @@ module Aws::IAM
2066
2112
  o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2067
2113
  end)
2068
2114
 
2115
+ api.add_operation(:delete_user_permissions_boundary, Seahorse::Model::Operation.new.tap do |o|
2116
+ o.name = "DeleteUserPermissionsBoundary"
2117
+ o.http_method = "POST"
2118
+ o.http_request_uri = "/"
2119
+ o.input = Shapes::ShapeRef.new(shape: DeleteUserPermissionsBoundaryRequest)
2120
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2121
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
2122
+ o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2123
+ end)
2124
+
2069
2125
  api.add_operation(:delete_user_policy, Seahorse::Model::Operation.new.tap do |o|
2070
2126
  o.name = "DeleteUserPolicy"
2071
2127
  o.http_method = "POST"
@@ -2796,6 +2852,19 @@ module Aws::IAM
2796
2852
  o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2797
2853
  end)
2798
2854
 
2855
+ api.add_operation(:put_role_permissions_boundary, Seahorse::Model::Operation.new.tap do |o|
2856
+ o.name = "PutRolePermissionsBoundary"
2857
+ o.http_method = "POST"
2858
+ o.http_request_uri = "/"
2859
+ o.input = Shapes::ShapeRef.new(shape: PutRolePermissionsBoundaryRequest)
2860
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2861
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
2862
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
2863
+ o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
2864
+ o.errors << Shapes::ShapeRef.new(shape: PolicyNotAttachableException)
2865
+ o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2866
+ end)
2867
+
2799
2868
  api.add_operation(:put_role_policy, Seahorse::Model::Operation.new.tap do |o|
2800
2869
  o.name = "PutRolePolicy"
2801
2870
  o.http_method = "POST"
@@ -2809,6 +2878,18 @@ module Aws::IAM
2809
2878
  o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2810
2879
  end)
2811
2880
 
2881
+ api.add_operation(:put_user_permissions_boundary, Seahorse::Model::Operation.new.tap do |o|
2882
+ o.name = "PutUserPermissionsBoundary"
2883
+ o.http_method = "POST"
2884
+ o.http_request_uri = "/"
2885
+ o.input = Shapes::ShapeRef.new(shape: PutUserPermissionsBoundaryRequest)
2886
+ o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
2887
+ o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
2888
+ o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
2889
+ o.errors << Shapes::ShapeRef.new(shape: PolicyNotAttachableException)
2890
+ o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
2891
+ end)
2892
+
2812
2893
  api.add_operation(:put_user_policy, Seahorse::Model::Operation.new.tap do |o|
2813
2894
  o.name = "PutUserPolicy"
2814
2895
  o.http_method = "POST"
@@ -101,6 +101,20 @@ 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 ][1] in the *IAM User Guide*.
109
+ #
110
+ #
111
+ #
112
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
113
+ # @return [Types::AttachedPermissionsBoundary]
114
+ def permissions_boundary
115
+ data[:permissions_boundary]
116
+ end
117
+
104
118
  # @!endgroup
105
119
 
106
120
  # @return [Client]
@@ -76,6 +76,20 @@ module Aws::IAM
76
76
  data[:attachment_count]
77
77
  end
78
78
 
79
+ # The number of entities (users and roles) for which the policy is used
80
+ # to set the permissions boundary.
81
+ #
82
+ # For more information about permissions boundaries, see [Permissions
83
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
84
+ #
85
+ #
86
+ #
87
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
88
+ # @return [Integer]
89
+ def permissions_boundary_usage_count
90
+ data[:permissions_boundary_usage_count]
91
+ end
92
+
79
93
  # Specifies whether the policy can be attached to an IAM user, group, or
80
94
  # role.
81
95
  # @return [Boolean]
@@ -468,6 +482,7 @@ module Aws::IAM
468
482
  #
469
483
  # attached_groups = policy.attached_groups({
470
484
  # path_prefix: "pathType",
485
+ # policy_usage_filter: "PermissionsPolicy", # accepts PermissionsPolicy, PermissionsBoundary
471
486
  # })
472
487
  # @param [Hash] options ({})
473
488
  # @option options [String] :path_prefix
@@ -485,6 +500,16 @@ module Aws::IAM
485
500
  #
486
501
  #
487
502
  # [1]: http://wikipedia.org/wiki/regex
503
+ # @option options [String] :policy_usage_filter
504
+ # The policy usage method to use for filtering the results.
505
+ #
506
+ # To list only permissions policies,
507
+ # set `PolicyUsageFilter` to `PermissionsPolicy`. To list only the
508
+ # policies used to set permissions boundaries, set the value
509
+ # to `PermissionsBoundary`.
510
+ #
511
+ # This parameter is optional. If it is not included, all policies are
512
+ # returned.
488
513
  # @return [Group::Collection]
489
514
  def attached_groups(options = {})
490
515
  batches = Enumerator.new do |y|
@@ -512,6 +537,7 @@ module Aws::IAM
512
537
  #
513
538
  # attached_roles = policy.attached_roles({
514
539
  # path_prefix: "pathType",
540
+ # policy_usage_filter: "PermissionsPolicy", # accepts PermissionsPolicy, PermissionsBoundary
515
541
  # })
516
542
  # @param [Hash] options ({})
517
543
  # @option options [String] :path_prefix
@@ -529,6 +555,16 @@ module Aws::IAM
529
555
  #
530
556
  #
531
557
  # [1]: http://wikipedia.org/wiki/regex
558
+ # @option options [String] :policy_usage_filter
559
+ # The policy usage method to use for filtering the results.
560
+ #
561
+ # To list only permissions policies,
562
+ # set `PolicyUsageFilter` to `PermissionsPolicy`. To list only the
563
+ # policies used to set permissions boundaries, set the value
564
+ # to `PermissionsBoundary`.
565
+ #
566
+ # This parameter is optional. If it is not included, all policies are
567
+ # returned.
532
568
  # @return [Role::Collection]
533
569
  def attached_roles(options = {})
534
570
  batches = Enumerator.new do |y|
@@ -556,6 +592,7 @@ module Aws::IAM
556
592
  #
557
593
  # attached_users = policy.attached_users({
558
594
  # path_prefix: "pathType",
595
+ # policy_usage_filter: "PermissionsPolicy", # accepts PermissionsPolicy, PermissionsBoundary
559
596
  # })
560
597
  # @param [Hash] options ({})
561
598
  # @option options [String] :path_prefix
@@ -573,6 +610,16 @@ module Aws::IAM
573
610
  #
574
611
  #
575
612
  # [1]: http://wikipedia.org/wiki/regex
613
+ # @option options [String] :policy_usage_filter
614
+ # The policy usage method to use for filtering the results.
615
+ #
616
+ # To list only permissions policies,
617
+ # set `PolicyUsageFilter` to `PermissionsPolicy`. To list only the
618
+ # policies used to set permissions boundaries, set the value
619
+ # to `PermissionsBoundary`.
620
+ #
621
+ # This parameter is optional. If it is not included, all policies are
622
+ # returned.
576
623
  # @return [User::Collection]
577
624
  def attached_users(options = {})
578
625
  batches = Enumerator.new do |y|
@@ -98,7 +98,7 @@ module Aws::IAM
98
98
  # Specifies whether IAM user passwords must contain at least one of the
99
99
  # following non-alphanumeric characters:
100
100
  #
101
- # ! @ # $ % ^ &amp;amp; * ( ) \_ + - = \[ \] \\\{ \\} \| '
101
+ # ! @ # $ % ^ &amp; * ( ) \_ + - = \[ \] \\\{ \\} \| '
102
102
  #
103
103
  # If you do not specify a value for this parameter, then the operation
104
104
  # uses the default value of `false`. The result is that passwords do not
@@ -345,6 +345,7 @@ module Aws::IAM
345
345
  # assume_role_policy_document: "policyDocumentType", # required
346
346
  # description: "roleDescriptionType",
347
347
  # max_session_duration: 1,
348
+ # permissions_boundary: "arnType",
348
349
  # })
349
350
  # @param [Hash] options ({})
350
351
  # @option options [String] :path
@@ -420,6 +421,9 @@ module Aws::IAM
420
421
  #
421
422
  #
422
423
  # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
424
+ # @option options [String] :permissions_boundary
425
+ # The ARN of the policy that is used to set the permissions boundary for
426
+ # the role.
423
427
  # @return [Role]
424
428
  def create_role(options = {})
425
429
  resp = @client.create_role(options)
@@ -631,6 +635,7 @@ module Aws::IAM
631
635
  # user = iam.create_user({
632
636
  # path: "pathType",
633
637
  # user_name: "userNameType", # required
638
+ # permissions_boundary: "arnType",
634
639
  # })
635
640
  # @param [Hash] options ({})
636
641
  # @option options [String] :path
@@ -663,6 +668,9 @@ module Aws::IAM
663
668
  #
664
669
  #
665
670
  # [1]: http://wikipedia.org/wiki/regex
671
+ # @option options [String] :permissions_boundary
672
+ # The ARN of the policy that is used to set the permissions boundary for
673
+ # the user.
666
674
  # @return [User]
667
675
  def create_user(options = {})
668
676
  resp = @client.create_user(options)
@@ -843,6 +851,7 @@ module Aws::IAM
843
851
  # scope: "All", # accepts All, AWS, Local
844
852
  # only_attached: false,
845
853
  # path_prefix: "policyPathType",
854
+ # policy_usage_filter: "PermissionsPolicy", # accepts PermissionsPolicy, PermissionsBoundary
846
855
  # })
847
856
  # @param [Hash] options ({})
848
857
  # @option options [String] :scope
@@ -874,6 +883,16 @@ module Aws::IAM
874
883
  #
875
884
  #
876
885
  # [1]: http://wikipedia.org/wiki/regex
886
+ # @option options [String] :policy_usage_filter
887
+ # The policy usage method to use for filtering the results.
888
+ #
889
+ # To list only permissions policies,
890
+ # set `PolicyUsageFilter` to `PermissionsPolicy`. To list only the
891
+ # policies used to set permissions boundaries, set the value
892
+ # to `PermissionsBoundary`.
893
+ #
894
+ # This parameter is optional. If it is not included, all policies are
895
+ # returned.
877
896
  # @return [Policy::Collection]
878
897
  def policies(options = {})
879
898
  batches = Enumerator.new do |y|
@@ -98,6 +98,20 @@ module Aws::IAM
98
98
  data[:max_session_duration]
99
99
  end
100
100
 
101
+ # The ARN of the policy used to set the permissions boundary for the
102
+ # role.
103
+ #
104
+ # For more information about permissions boundaries, see [Permissions
105
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
106
+ #
107
+ #
108
+ #
109
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
110
+ # @return [Types::AttachedPermissionsBoundary]
111
+ def permissions_boundary
112
+ data[:permissions_boundary]
113
+ end
114
+
101
115
  # @!endgroup
102
116
 
103
117
  # @return [Client]
@@ -382,6 +382,37 @@ module Aws::IAM
382
382
  include Aws::Structure
383
383
  end
384
384
 
385
+ # Contains information about an attached permissions boundary.
386
+ #
387
+ # An attached permissions boundary is a managed policy that has been
388
+ # attached to a user or role to set the permissions boundary.
389
+ #
390
+ # For more information about permissions boundaries, see [Permissions
391
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
392
+ #
393
+ #
394
+ #
395
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
396
+ #
397
+ # @!attribute [rw] permissions_boundary_type
398
+ # The permissions boundary usage type that indicates what type of IAM
399
+ # resource is used as the permissions boundary for an entity. This
400
+ # data type can only have a value of `Policy`.
401
+ # @return [String]
402
+ #
403
+ # @!attribute [rw] permissions_boundary_arn
404
+ # The ARN of the policy used to set the permissions boundary for the
405
+ # user or role.
406
+ # @return [String]
407
+ #
408
+ # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/AttachedPermissionsBoundary AWS API Documentation
409
+ #
410
+ class AttachedPermissionsBoundary < Struct.new(
411
+ :permissions_boundary_type,
412
+ :permissions_boundary_arn)
413
+ include Aws::Structure
414
+ end
415
+
385
416
  # Contains information about an attached policy.
386
417
  #
387
418
  # An attached policy is a managed policy that has been attached to a
@@ -1046,6 +1077,7 @@ module Aws::IAM
1046
1077
  # assume_role_policy_document: "policyDocumentType", # required
1047
1078
  # description: "roleDescriptionType",
1048
1079
  # max_session_duration: 1,
1080
+ # permissions_boundary: "arnType",
1049
1081
  # }
1050
1082
  #
1051
1083
  # @!attribute [rw] path
@@ -1132,6 +1164,11 @@ module Aws::IAM
1132
1164
  # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use.html
1133
1165
  # @return [Integer]
1134
1166
  #
1167
+ # @!attribute [rw] permissions_boundary
1168
+ # The ARN of the policy that is used to set the permissions boundary
1169
+ # for the role.
1170
+ # @return [String]
1171
+ #
1135
1172
  # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateRoleRequest AWS API Documentation
1136
1173
  #
1137
1174
  class CreateRoleRequest < Struct.new(
@@ -1139,7 +1176,8 @@ module Aws::IAM
1139
1176
  :role_name,
1140
1177
  :assume_role_policy_document,
1141
1178
  :description,
1142
- :max_session_duration)
1179
+ :max_session_duration,
1180
+ :permissions_boundary)
1143
1181
  include Aws::Structure
1144
1182
  end
1145
1183
 
@@ -1323,6 +1361,7 @@ module Aws::IAM
1323
1361
  # {
1324
1362
  # path: "pathType",
1325
1363
  # user_name: "userNameType", # required
1364
+ # permissions_boundary: "arnType",
1326
1365
  # }
1327
1366
  #
1328
1367
  # @!attribute [rw] path
@@ -1360,11 +1399,17 @@ module Aws::IAM
1360
1399
  # [1]: http://wikipedia.org/wiki/regex
1361
1400
  # @return [String]
1362
1401
  #
1402
+ # @!attribute [rw] permissions_boundary
1403
+ # The ARN of the policy that is used to set the permissions boundary
1404
+ # for the user.
1405
+ # @return [String]
1406
+ #
1363
1407
  # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/CreateUserRequest AWS API Documentation
1364
1408
  #
1365
1409
  class CreateUserRequest < Struct.new(
1366
1410
  :path,
1367
- :user_name)
1411
+ :user_name,
1412
+ :permissions_boundary)
1368
1413
  include Aws::Structure
1369
1414
  end
1370
1415
 
@@ -1771,6 +1816,25 @@ module Aws::IAM
1771
1816
  include Aws::Structure
1772
1817
  end
1773
1818
 
1819
+ # @note When making an API call, you may pass DeleteRolePermissionsBoundaryRequest
1820
+ # data as a hash:
1821
+ #
1822
+ # {
1823
+ # role_name: "roleNameType", # required
1824
+ # }
1825
+ #
1826
+ # @!attribute [rw] role_name
1827
+ # The name (friendly name, not ARN) of the IAM role from which you
1828
+ # want to remove the permissions boundary.
1829
+ # @return [String]
1830
+ #
1831
+ # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteRolePermissionsBoundaryRequest AWS API Documentation
1832
+ #
1833
+ class DeleteRolePermissionsBoundaryRequest < Struct.new(
1834
+ :role_name)
1835
+ include Aws::Structure
1836
+ end
1837
+
1774
1838
  # @note When making an API call, you may pass DeleteRolePolicyRequest
1775
1839
  # data as a hash:
1776
1840
  #
@@ -2043,6 +2107,25 @@ module Aws::IAM
2043
2107
  include Aws::Structure
2044
2108
  end
2045
2109
 
2110
+ # @note When making an API call, you may pass DeleteUserPermissionsBoundaryRequest
2111
+ # data as a hash:
2112
+ #
2113
+ # {
2114
+ # user_name: "userNameType", # required
2115
+ # }
2116
+ #
2117
+ # @!attribute [rw] user_name
2118
+ # The name (friendly name, not ARN) of the IAM user from which you
2119
+ # want to remove the permissions boundary.
2120
+ # @return [String]
2121
+ #
2122
+ # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/DeleteUserPermissionsBoundaryRequest AWS API Documentation
2123
+ #
2124
+ class DeleteUserPermissionsBoundaryRequest < Struct.new(
2125
+ :user_name)
2126
+ include Aws::Structure
2127
+ end
2128
+
2046
2129
  # @note When making an API call, you may pass DeleteUserPolicyRequest
2047
2130
  # data as a hash:
2048
2131
  #
@@ -3552,6 +3635,29 @@ module Aws::IAM
3552
3635
  #
3553
3636
  # @!attribute [rw] user
3554
3637
  # A structure containing details about the IAM user.
3638
+ #
3639
+ # Due to a service issue, password last used data does not include
3640
+ # password use from May 3rd 2018 22:50 PDT to May 23rd 2018 14:08 PDT.
3641
+ # This affects [last sign-in][1] dates shown in the IAM console and
3642
+ # password last used dates in the [IAM credential report][2], and
3643
+ # returned by this GetUser API. If users signed in during the affected
3644
+ # time, the password last used date that is returned is the date the
3645
+ # user last signed in before May 3rd 2018. For users that signed in
3646
+ # after May 23rd 2018 14:08 PDT, the returned password last used date
3647
+ # is accurate.
3648
+ #
3649
+ # If you use password last used information to identify unused
3650
+ # credentials for deletion, such as deleting users who did not sign in
3651
+ # to AWS in the last 90 days, we recommend that you adjust your
3652
+ # evaluation window to include dates after May 23rd 2018.
3653
+ # Alternatively, if your users use access keys to access AWS
3654
+ # programmatically you can refer to access key last used information
3655
+ # because it is accurate for all dates.
3656
+ #
3657
+ #
3658
+ #
3659
+ # [1]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_finding-unused.html
3660
+ # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/id_credentials_getting-report.html
3555
3661
  # @return [Types::User]
3556
3662
  #
3557
3663
  # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/GetUserResponse AWS API Documentation
@@ -4228,6 +4334,7 @@ module Aws::IAM
4228
4334
  # policy_arn: "arnType", # required
4229
4335
  # entity_filter: "User", # accepts User, Role, Group, LocalManagedPolicy, AWSManagedPolicy
4230
4336
  # path_prefix: "pathType",
4337
+ # policy_usage_filter: "PermissionsPolicy", # accepts PermissionsPolicy, PermissionsBoundary
4231
4338
  # marker: "markerType",
4232
4339
  # max_items: 1,
4233
4340
  # }
@@ -4271,6 +4378,18 @@ module Aws::IAM
4271
4378
  # [1]: http://wikipedia.org/wiki/regex
4272
4379
  # @return [String]
4273
4380
  #
4381
+ # @!attribute [rw] policy_usage_filter
4382
+ # The policy usage method to use for filtering the results.
4383
+ #
4384
+ # To list only permissions policies,
4385
+ # set `PolicyUsageFilter` to `PermissionsPolicy`. To list only the
4386
+ # policies used to set permissions boundaries, set the value
4387
+ # to `PermissionsBoundary`.
4388
+ #
4389
+ # This parameter is optional. If it is not included, all policies are
4390
+ # returned.
4391
+ # @return [String]
4392
+ #
4274
4393
  # @!attribute [rw] marker
4275
4394
  # Use this parameter only when paginating results and only after you
4276
4395
  # receive a response indicating that the results are truncated. Set it
@@ -4297,6 +4416,7 @@ module Aws::IAM
4297
4416
  :policy_arn,
4298
4417
  :entity_filter,
4299
4418
  :path_prefix,
4419
+ :policy_usage_filter,
4300
4420
  :marker,
4301
4421
  :max_items)
4302
4422
  include Aws::Structure
@@ -4884,6 +5004,7 @@ module Aws::IAM
4884
5004
  # scope: "All", # accepts All, AWS, Local
4885
5005
  # only_attached: false,
4886
5006
  # path_prefix: "policyPathType",
5007
+ # policy_usage_filter: "PermissionsPolicy", # accepts PermissionsPolicy, PermissionsBoundary
4887
5008
  # marker: "markerType",
4888
5009
  # max_items: 1,
4889
5010
  # }
@@ -4923,6 +5044,18 @@ module Aws::IAM
4923
5044
  # [1]: http://wikipedia.org/wiki/regex
4924
5045
  # @return [String]
4925
5046
  #
5047
+ # @!attribute [rw] policy_usage_filter
5048
+ # The policy usage method to use for filtering the results.
5049
+ #
5050
+ # To list only permissions policies,
5051
+ # set `PolicyUsageFilter` to `PermissionsPolicy`. To list only the
5052
+ # policies used to set permissions boundaries, set the value
5053
+ # to `PermissionsBoundary`.
5054
+ #
5055
+ # This parameter is optional. If it is not included, all policies are
5056
+ # returned.
5057
+ # @return [String]
5058
+ #
4926
5059
  # @!attribute [rw] marker
4927
5060
  # Use this parameter only when paginating results and only after you
4928
5061
  # receive a response indicating that the results are truncated. Set it
@@ -4949,6 +5082,7 @@ module Aws::IAM
4949
5082
  :scope,
4950
5083
  :only_attached,
4951
5084
  :path_prefix,
5085
+ :policy_usage_filter,
4952
5086
  :marker,
4953
5087
  :max_items)
4954
5088
  include Aws::Structure
@@ -5937,6 +6071,18 @@ module Aws::IAM
5937
6071
  # policy is attached to.
5938
6072
  # @return [Integer]
5939
6073
  #
6074
+ # @!attribute [rw] permissions_boundary_usage_count
6075
+ # The number of entities (users and roles) for which the policy is
6076
+ # used as the permissions boundary.
6077
+ #
6078
+ # For more information about permissions boundaries, see [Permissions
6079
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
6080
+ #
6081
+ #
6082
+ #
6083
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
6084
+ # @return [Integer]
6085
+ #
5940
6086
  # @!attribute [rw] is_attachable
5941
6087
  # Specifies whether the policy can be attached to an IAM user, group,
5942
6088
  # or role.
@@ -5982,6 +6128,7 @@ module Aws::IAM
5982
6128
  :path,
5983
6129
  :default_version_id,
5984
6130
  :attachment_count,
6131
+ :permissions_boundary_usage_count,
5985
6132
  :is_attachable,
5986
6133
  :description,
5987
6134
  :create_date,
@@ -6156,6 +6303,18 @@ module Aws::IAM
6156
6303
  # attached to.
6157
6304
  # @return [Integer]
6158
6305
  #
6306
+ # @!attribute [rw] permissions_boundary_usage_count
6307
+ # The number of entities (users and roles) for which the policy is
6308
+ # used to set the permissions boundary.
6309
+ #
6310
+ # For more information about permissions boundaries, see [Permissions
6311
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
6312
+ #
6313
+ #
6314
+ #
6315
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
6316
+ # @return [Integer]
6317
+ #
6159
6318
  # @!attribute [rw] is_attachable
6160
6319
  # Specifies whether the policy can be attached to an IAM user, group,
6161
6320
  # or role.
@@ -6200,6 +6359,7 @@ module Aws::IAM
6200
6359
  :path,
6201
6360
  :default_version_id,
6202
6361
  :attachment_count,
6362
+ :permissions_boundary_usage_count,
6203
6363
  :is_attachable,
6204
6364
  :description,
6205
6365
  :create_date,
@@ -6484,6 +6644,32 @@ module Aws::IAM
6484
6644
  include Aws::Structure
6485
6645
  end
6486
6646
 
6647
+ # @note When making an API call, you may pass PutRolePermissionsBoundaryRequest
6648
+ # data as a hash:
6649
+ #
6650
+ # {
6651
+ # role_name: "roleNameType", # required
6652
+ # permissions_boundary: "arnType", # required
6653
+ # }
6654
+ #
6655
+ # @!attribute [rw] role_name
6656
+ # The name (friendly name, not ARN) of the IAM role for which you want
6657
+ # to set the permissions boundary.
6658
+ # @return [String]
6659
+ #
6660
+ # @!attribute [rw] permissions_boundary
6661
+ # The ARN of the policy that is used to set the permissions boundary
6662
+ # for the role.
6663
+ # @return [String]
6664
+ #
6665
+ # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutRolePermissionsBoundaryRequest AWS API Documentation
6666
+ #
6667
+ class PutRolePermissionsBoundaryRequest < Struct.new(
6668
+ :role_name,
6669
+ :permissions_boundary)
6670
+ include Aws::Structure
6671
+ end
6672
+
6487
6673
  # @note When making an API call, you may pass PutRolePolicyRequest
6488
6674
  # data as a hash:
6489
6675
  #
@@ -6548,6 +6734,32 @@ module Aws::IAM
6548
6734
  include Aws::Structure
6549
6735
  end
6550
6736
 
6737
+ # @note When making an API call, you may pass PutUserPermissionsBoundaryRequest
6738
+ # data as a hash:
6739
+ #
6740
+ # {
6741
+ # user_name: "userNameType", # required
6742
+ # permissions_boundary: "arnType", # required
6743
+ # }
6744
+ #
6745
+ # @!attribute [rw] user_name
6746
+ # The name (friendly name, not ARN) of the IAM user for which you want
6747
+ # to set the permissions boundary.
6748
+ # @return [String]
6749
+ #
6750
+ # @!attribute [rw] permissions_boundary
6751
+ # The ARN of the policy that is used to set the permissions boundary
6752
+ # for the user.
6753
+ # @return [String]
6754
+ #
6755
+ # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/PutUserPermissionsBoundaryRequest AWS API Documentation
6756
+ #
6757
+ class PutUserPermissionsBoundaryRequest < Struct.new(
6758
+ :user_name,
6759
+ :permissions_boundary)
6760
+ include Aws::Structure
6761
+ end
6762
+
6551
6763
  # @note When making an API call, you may pass PutUserPolicyRequest
6552
6764
  # data as a hash:
6553
6765
  #
@@ -6963,6 +7175,18 @@ module Aws::IAM
6963
7175
  # `duration-seconds` CLI parameter.
6964
7176
  # @return [Integer]
6965
7177
  #
7178
+ # @!attribute [rw] permissions_boundary
7179
+ # The ARN of the policy used to set the permissions boundary for the
7180
+ # role.
7181
+ #
7182
+ # For more information about permissions boundaries, see [Permissions
7183
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
7184
+ #
7185
+ #
7186
+ #
7187
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
7188
+ # @return [Types::AttachedPermissionsBoundary]
7189
+ #
6966
7190
  # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/Role AWS API Documentation
6967
7191
  #
6968
7192
  class Role < Struct.new(
@@ -6973,7 +7197,8 @@ module Aws::IAM
6973
7197
  :create_date,
6974
7198
  :assume_role_policy_document,
6975
7199
  :description,
6976
- :max_session_duration)
7200
+ :max_session_duration,
7201
+ :permissions_boundary)
6977
7202
  include Aws::Structure
6978
7203
  end
6979
7204
 
@@ -7045,6 +7270,18 @@ module Aws::IAM
7045
7270
  # the role's access (permissions) policies.
7046
7271
  # @return [Array<Types::AttachedPolicy>]
7047
7272
  #
7273
+ # @!attribute [rw] permissions_boundary
7274
+ # The ARN of the policy used to set the permissions boundary for the
7275
+ # role.
7276
+ #
7277
+ # For more information about permissions boundaries, see [Permissions
7278
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
7279
+ #
7280
+ #
7281
+ #
7282
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
7283
+ # @return [Types::AttachedPermissionsBoundary]
7284
+ #
7048
7285
  # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/RoleDetail AWS API Documentation
7049
7286
  #
7050
7287
  class RoleDetail < Struct.new(
@@ -7056,7 +7293,8 @@ module Aws::IAM
7056
7293
  :assume_role_policy_document,
7057
7294
  :instance_profile_list,
7058
7295
  :role_policy_list,
7059
- :attached_managed_policies)
7296
+ :attached_managed_policies,
7297
+ :permissions_boundary)
7060
7298
  include Aws::Structure
7061
7299
  end
7062
7300
 
@@ -7561,16 +7799,22 @@ module Aws::IAM
7561
7799
  # @return [String]
7562
7800
  #
7563
7801
  # @!attribute [rw] resource_owner
7564
- # An AWS account ID that specifies the owner of any simulated resource
7565
- # that does not identify its owner in the resource ARN, such as an S3
7566
- # bucket or object. If `ResourceOwner` is specified, it is also used
7567
- # as the account owner of any `ResourcePolicy` included in the
7568
- # simulation. If the `ResourceOwner` parameter is not specified, then
7569
- # the owner of the resources and the resource policy defaults to the
7570
- # account of the identity provided in `CallerArn`. This parameter is
7571
- # required only if you specify a resource-based policy and account
7572
- # that owns the resource is different from the account that owns the
7573
- # simulated calling user `CallerArn`.
7802
+ # An ARN representing the AWS account ID that specifies the owner of
7803
+ # any simulated resource that does not identify its owner in the
7804
+ # resource ARN, such as an S3 bucket or object. If `ResourceOwner` is
7805
+ # specified, it is also used as the account owner of any
7806
+ # `ResourcePolicy` included in the simulation. If the `ResourceOwner`
7807
+ # parameter is not specified, then the owner of the resources and the
7808
+ # resource policy defaults to the account of the identity provided in
7809
+ # `CallerArn`. This parameter is required only if you specify a
7810
+ # resource-based policy and account that owns the resource is
7811
+ # different from the account that owns the simulated calling user
7812
+ # `CallerArn`.
7813
+ #
7814
+ # The ARN for an account uses the following syntax:
7815
+ # `arn:aws:iam::AWS-account-ID:root`. For example, to represent the
7816
+ # account with the 112233445566 ID, use the following ARN:
7817
+ # `arn:aws:iam::112233445566-ID:root`.
7574
7818
  # @return [String]
7575
7819
  #
7576
7820
  # @!attribute [rw] caller_arn
@@ -8055,7 +8299,7 @@ module Aws::IAM
8055
8299
  # Specifies whether IAM user passwords must contain at least one of
8056
8300
  # the following non-alphanumeric characters:
8057
8301
  #
8058
- # ! @ # $ % ^ &amp;amp; * ( ) \_ + - = \[ \] \\\{ \\} \| '
8302
+ # ! @ # $ % ^ &amp; * ( ) \_ + - = \[ \] \\\{ \\} \| '
8059
8303
  #
8060
8304
  # If you do not specify a value for this parameter, then the operation
8061
8305
  # uses the default value of `false`. The result is that passwords do
@@ -8787,7 +9031,9 @@ module Aws::IAM
8787
9031
  #
8788
9032
  # @!attribute [rw] ssh_public_key_body
8789
9033
  # The SSH public key. The public key must be encoded in ssh-rsa format
8790
- # or PEM format.
9034
+ # or PEM format. The miminum bit-length of the public key is 2048
9035
+ # bits. For example, you can generate a 2048-bit key, and the
9036
+ # resulting PEM file is 1679 bytes long.
8791
9037
  #
8792
9038
  # The [regex pattern][1] used to validate this parameter is a string
8793
9039
  # of characters consisting of the following:
@@ -9108,6 +9354,18 @@ module Aws::IAM
9108
9354
  # [2]: http://docs.aws.amazon.com/IAM/latest/UserGuide/credential-reports.html
9109
9355
  # @return [Time]
9110
9356
  #
9357
+ # @!attribute [rw] permissions_boundary
9358
+ # The ARN of the policy used to set the permissions boundary for the
9359
+ # user.
9360
+ #
9361
+ # For more information about permissions boundaries, see [Permissions
9362
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
9363
+ #
9364
+ #
9365
+ #
9366
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
9367
+ # @return [Types::AttachedPermissionsBoundary]
9368
+ #
9111
9369
  # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/User AWS API Documentation
9112
9370
  #
9113
9371
  class User < Struct.new(
@@ -9116,7 +9374,8 @@ module Aws::IAM
9116
9374
  :user_id,
9117
9375
  :arn,
9118
9376
  :create_date,
9119
- :password_last_used)
9377
+ :password_last_used,
9378
+ :permissions_boundary)
9120
9379
  include Aws::Structure
9121
9380
  end
9122
9381
 
@@ -9182,6 +9441,18 @@ module Aws::IAM
9182
9441
  # A list of the managed policies attached to the user.
9183
9442
  # @return [Array<Types::AttachedPolicy>]
9184
9443
  #
9444
+ # @!attribute [rw] permissions_boundary
9445
+ # The ARN of the policy used to set the permissions boundary for the
9446
+ # user.
9447
+ #
9448
+ # For more information about permissions boundaries, see [Permissions
9449
+ # Boundaries for IAM Identities ][1] in the *IAM User Guide*.
9450
+ #
9451
+ #
9452
+ #
9453
+ # [1]: https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html
9454
+ # @return [Types::AttachedPermissionsBoundary]
9455
+ #
9185
9456
  # @see http://docs.aws.amazon.com/goto/WebAPI/iam-2010-05-08/UserDetail AWS API Documentation
9186
9457
  #
9187
9458
  class UserDetail < Struct.new(
@@ -9192,7 +9463,8 @@ module Aws::IAM
9192
9463
  :create_date,
9193
9464
  :user_policy_list,
9194
9465
  :group_list,
9195
- :attached_managed_policies)
9466
+ :attached_managed_policies,
9467
+ :permissions_boundary)
9196
9468
  include Aws::Structure
9197
9469
  end
9198
9470