Module: Aws::IAM::ClientApi Private

Includes:
Seahorse::Model
Defined in:
lib/aws-sdk-iam/client_api.rb

This module is part of a private API. You should avoid using this module if possible, as it may be removed or be changed in the future.

Constant Summary collapse

AccessAdvisorUsageGranularityType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'AccessAdvisorUsageGranularityType')
AccessDetail =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AccessDetail')
AccessDetails =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'AccessDetails')
AccessKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AccessKey')
AccessKeyLastUsed =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AccessKeyLastUsed')
AccessKeyMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AccessKeyMetadata')
ActionNameListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ActionNameListType')
ActionNameType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ActionNameType')
AddClientIDToOpenIDConnectProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AddClientIDToOpenIDConnectProviderRequest')
AddRoleToInstanceProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AddRoleToInstanceProfileRequest')
AddUserToGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AddUserToGroupRequest')
ArnListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ArnListType')
AttachGroupPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachGroupPolicyRequest')
AttachRolePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachRolePolicyRequest')
AttachUserPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachUserPolicyRequest')
AttachedPermissionsBoundary =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachedPermissionsBoundary')
AttachedPolicy =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'AttachedPolicy')
BootstrapDatum =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BlobShape.new(name: 'BootstrapDatum')
ChangePasswordRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ChangePasswordRequest')
ColumnNumber =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'ColumnNumber')
ConcurrentModificationException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ConcurrentModificationException')
ConcurrentModificationMessage =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ConcurrentModificationMessage')
ContextEntry =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ContextEntry')
ContextEntryListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ContextEntryListType')
ContextKeyNameType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContextKeyNameType')
ContextKeyNamesResultListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ContextKeyNamesResultListType')
ContextKeyTypeEnum =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContextKeyTypeEnum')
ContextKeyValueListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ContextKeyValueListType')
ContextKeyValueType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ContextKeyValueType')
CreateAccessKeyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateAccessKeyRequest')
CreateAccessKeyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateAccessKeyResponse')
CreateAccountAliasRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateAccountAliasRequest')
CreateGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateGroupRequest')
CreateGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateGroupResponse')
CreateInstanceProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateInstanceProfileRequest')
CreateInstanceProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateInstanceProfileResponse')
CreateLoginProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateLoginProfileRequest')
CreateLoginProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateLoginProfileResponse')
CreateOpenIDConnectProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateOpenIDConnectProviderRequest')
CreateOpenIDConnectProviderResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateOpenIDConnectProviderResponse')
CreatePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreatePolicyRequest')
CreatePolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreatePolicyResponse')
CreatePolicyVersionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreatePolicyVersionRequest')
CreatePolicyVersionResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreatePolicyVersionResponse')
CreateRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateRoleRequest')
CreateRoleResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateRoleResponse')
CreateSAMLProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateSAMLProviderRequest')
CreateSAMLProviderResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateSAMLProviderResponse')
CreateServiceLinkedRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateServiceLinkedRoleRequest')
CreateServiceLinkedRoleResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateServiceLinkedRoleResponse')
CreateServiceSpecificCredentialRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateServiceSpecificCredentialRequest')
CreateServiceSpecificCredentialResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateServiceSpecificCredentialResponse')
CreateUserRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateUserRequest')
CreateUserResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateUserResponse')
CreateVirtualMFADeviceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateVirtualMFADeviceRequest')
CreateVirtualMFADeviceResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CreateVirtualMFADeviceResponse')
CredentialReportExpiredException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CredentialReportExpiredException')
CredentialReportNotPresentException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CredentialReportNotPresentException')
CredentialReportNotReadyException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'CredentialReportNotReadyException')
DeactivateMFADeviceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeactivateMFADeviceRequest')
DeleteAccessKeyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteAccessKeyRequest')
DeleteAccountAliasRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteAccountAliasRequest')
DeleteConflictException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteConflictException')
DeleteGroupPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteGroupPolicyRequest')
DeleteGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteGroupRequest')
DeleteInstanceProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteInstanceProfileRequest')
DeleteLoginProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteLoginProfileRequest')
DeleteOpenIDConnectProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteOpenIDConnectProviderRequest')
DeletePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeletePolicyRequest')
DeletePolicyVersionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeletePolicyVersionRequest')
DeleteRolePermissionsBoundaryRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteRolePermissionsBoundaryRequest')
DeleteRolePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteRolePolicyRequest')
DeleteRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteRoleRequest')
DeleteSAMLProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteSAMLProviderRequest')
DeleteSSHPublicKeyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteSSHPublicKeyRequest')
DeleteServerCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteServerCertificateRequest')
DeleteServiceLinkedRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteServiceLinkedRoleRequest')
DeleteServiceLinkedRoleResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteServiceLinkedRoleResponse')
DeleteServiceSpecificCredentialRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteServiceSpecificCredentialRequest')
DeleteSigningCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteSigningCertificateRequest')
DeleteUserPermissionsBoundaryRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteUserPermissionsBoundaryRequest')
DeleteUserPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteUserPolicyRequest')
DeleteUserRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteUserRequest')
DeleteVirtualMFADeviceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeleteVirtualMFADeviceRequest')
DeletionTaskFailureReasonType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DeletionTaskFailureReasonType')
DeletionTaskIdType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DeletionTaskIdType')
DeletionTaskStatusType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'DeletionTaskStatusType')
DetachGroupPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachGroupPolicyRequest')
DetachRolePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachRolePolicyRequest')
DetachUserPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DetachUserPolicyRequest')
DuplicateCertificateException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DuplicateCertificateException')
DuplicateSSHPublicKeyException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'DuplicateSSHPublicKeyException')
EnableMFADeviceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EnableMFADeviceRequest')
EntityAlreadyExistsException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EntityAlreadyExistsException')
EntityDetails =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EntityDetails')
EntityInfo =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EntityInfo')
EntityTemporarilyUnmodifiableException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EntityTemporarilyUnmodifiableException')
EntityType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'EntityType')
ErrorDetails =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ErrorDetails')
EvalDecisionDetailsType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::MapShape.new(name: 'EvalDecisionDetailsType')
EvalDecisionSourceType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'EvalDecisionSourceType')
EvaluationResult =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'EvaluationResult')
EvaluationResultsListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'EvaluationResultsListType')
GenerateCredentialReportResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GenerateCredentialReportResponse')
GenerateOrganizationsAccessReportRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GenerateOrganizationsAccessReportRequest')
GenerateOrganizationsAccessReportResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GenerateOrganizationsAccessReportResponse')
GenerateServiceLastAccessedDetailsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GenerateServiceLastAccessedDetailsRequest')
GenerateServiceLastAccessedDetailsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GenerateServiceLastAccessedDetailsResponse')
GetAccessKeyLastUsedRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetAccessKeyLastUsedRequest')
GetAccessKeyLastUsedResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetAccessKeyLastUsedResponse')
GetAccountAuthorizationDetailsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetAccountAuthorizationDetailsRequest')
GetAccountAuthorizationDetailsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetAccountAuthorizationDetailsResponse')
GetAccountPasswordPolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetAccountPasswordPolicyResponse')
GetAccountSummaryResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetAccountSummaryResponse')
GetContextKeysForCustomPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetContextKeysForCustomPolicyRequest')
GetContextKeysForPolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetContextKeysForPolicyResponse')
GetContextKeysForPrincipalPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetContextKeysForPrincipalPolicyRequest')
GetCredentialReportResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetCredentialReportResponse')
GetGroupPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetGroupPolicyRequest')
GetGroupPolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetGroupPolicyResponse')
GetGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetGroupRequest')
GetGroupResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetGroupResponse')
GetInstanceProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetInstanceProfileRequest')
GetInstanceProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetInstanceProfileResponse')
GetLoginProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetLoginProfileRequest')
GetLoginProfileResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetLoginProfileResponse')
GetOpenIDConnectProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetOpenIDConnectProviderRequest')
GetOpenIDConnectProviderResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetOpenIDConnectProviderResponse')
GetOrganizationsAccessReportRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetOrganizationsAccessReportRequest')
GetOrganizationsAccessReportResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetOrganizationsAccessReportResponse')
GetPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPolicyRequest')
GetPolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPolicyResponse')
GetPolicyVersionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPolicyVersionRequest')
GetPolicyVersionResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetPolicyVersionResponse')
GetRolePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetRolePolicyRequest')
GetRolePolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetRolePolicyResponse')
GetRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetRoleRequest')
GetRoleResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetRoleResponse')
GetSAMLProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetSAMLProviderRequest')
GetSAMLProviderResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetSAMLProviderResponse')
GetSSHPublicKeyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetSSHPublicKeyRequest')
GetSSHPublicKeyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetSSHPublicKeyResponse')
GetServerCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetServerCertificateRequest')
GetServerCertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetServerCertificateResponse')
GetServiceLastAccessedDetailsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetServiceLastAccessedDetailsRequest')
GetServiceLastAccessedDetailsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetServiceLastAccessedDetailsResponse')
GetServiceLastAccessedDetailsWithEntitiesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetServiceLastAccessedDetailsWithEntitiesRequest')
GetServiceLastAccessedDetailsWithEntitiesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetServiceLastAccessedDetailsWithEntitiesResponse')
GetServiceLinkedRoleDeletionStatusRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetServiceLinkedRoleDeletionStatusRequest')
GetServiceLinkedRoleDeletionStatusResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetServiceLinkedRoleDeletionStatusResponse')
GetUserPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetUserPolicyRequest')
GetUserPolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetUserPolicyResponse')
GetUserRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetUserRequest')
GetUserResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GetUserResponse')
Group =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Group')
GroupDetail =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'GroupDetail')
InstanceProfile =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InstanceProfile')
InvalidAuthenticationCodeException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidAuthenticationCodeException')
InvalidCertificateException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidCertificateException')
InvalidInputException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidInputException')
InvalidPublicKeyException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidPublicKeyException')
InvalidUserTypeException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'InvalidUserTypeException')
KeyPairMismatchException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'KeyPairMismatchException')
LimitExceededException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LimitExceededException')
LineNumber =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::IntegerShape.new(name: 'LineNumber')
ListAccessKeysRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAccessKeysRequest')
ListAccessKeysResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAccessKeysResponse')
ListAccountAliasesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAccountAliasesRequest')
ListAccountAliasesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAccountAliasesResponse')
ListAttachedGroupPoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAttachedGroupPoliciesRequest')
ListAttachedGroupPoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAttachedGroupPoliciesResponse')
ListAttachedRolePoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAttachedRolePoliciesRequest')
ListAttachedRolePoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAttachedRolePoliciesResponse')
ListAttachedUserPoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAttachedUserPoliciesRequest')
ListAttachedUserPoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListAttachedUserPoliciesResponse')
ListEntitiesForPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListEntitiesForPolicyRequest')
ListEntitiesForPolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListEntitiesForPolicyResponse')
ListGroupPoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListGroupPoliciesRequest')
ListGroupPoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListGroupPoliciesResponse')
ListGroupsForUserRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListGroupsForUserRequest')
ListGroupsForUserResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListGroupsForUserResponse')
ListGroupsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListGroupsRequest')
ListGroupsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListGroupsResponse')
ListInstanceProfileTagsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListInstanceProfileTagsRequest')
ListInstanceProfileTagsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListInstanceProfileTagsResponse')
ListInstanceProfilesForRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListInstanceProfilesForRoleRequest')
ListInstanceProfilesForRoleResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListInstanceProfilesForRoleResponse')
ListInstanceProfilesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListInstanceProfilesRequest')
ListInstanceProfilesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListInstanceProfilesResponse')
ListMFADeviceTagsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListMFADeviceTagsRequest')
ListMFADeviceTagsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListMFADeviceTagsResponse')
ListMFADevicesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListMFADevicesRequest')
ListMFADevicesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListMFADevicesResponse')
ListOpenIDConnectProviderTagsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListOpenIDConnectProviderTagsRequest')
ListOpenIDConnectProviderTagsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListOpenIDConnectProviderTagsResponse')
ListOpenIDConnectProvidersRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListOpenIDConnectProvidersRequest')
ListOpenIDConnectProvidersResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListOpenIDConnectProvidersResponse')
ListPoliciesGrantingServiceAccessEntry =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPoliciesGrantingServiceAccessEntry')
ListPoliciesGrantingServiceAccessRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPoliciesGrantingServiceAccessRequest')
ListPoliciesGrantingServiceAccessResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPoliciesGrantingServiceAccessResponse')
ListPoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPoliciesRequest')
ListPoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPoliciesResponse')
ListPolicyTagsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPolicyTagsRequest')
ListPolicyTagsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPolicyTagsResponse')
ListPolicyVersionsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPolicyVersionsRequest')
ListPolicyVersionsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListPolicyVersionsResponse')
ListRolePoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListRolePoliciesRequest')
ListRolePoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListRolePoliciesResponse')
ListRoleTagsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListRoleTagsRequest')
ListRoleTagsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListRoleTagsResponse')
ListRolesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListRolesRequest')
ListRolesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListRolesResponse')
ListSAMLProviderTagsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSAMLProviderTagsRequest')
ListSAMLProviderTagsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSAMLProviderTagsResponse')
ListSAMLProvidersRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSAMLProvidersRequest')
ListSAMLProvidersResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSAMLProvidersResponse')
ListSSHPublicKeysRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSSHPublicKeysRequest')
ListSSHPublicKeysResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSSHPublicKeysResponse')
ListServerCertificateTagsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListServerCertificateTagsRequest')
ListServerCertificateTagsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListServerCertificateTagsResponse')
ListServerCertificatesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListServerCertificatesRequest')
ListServerCertificatesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListServerCertificatesResponse')
ListServiceSpecificCredentialsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListServiceSpecificCredentialsRequest')
ListServiceSpecificCredentialsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListServiceSpecificCredentialsResponse')
ListSigningCertificatesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSigningCertificatesRequest')
ListSigningCertificatesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListSigningCertificatesResponse')
ListUserPoliciesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListUserPoliciesRequest')
ListUserPoliciesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListUserPoliciesResponse')
ListUserTagsRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListUserTagsRequest')
ListUserTagsResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListUserTagsResponse')
ListUsersRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListUsersRequest')
ListUsersResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListUsersResponse')
ListVirtualMFADevicesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListVirtualMFADevicesRequest')
ListVirtualMFADevicesResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ListVirtualMFADevicesResponse')
LoginProfile =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'LoginProfile')
MFADevice =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MFADevice')
MalformedCertificateException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MalformedCertificateException')
MalformedPolicyDocumentException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'MalformedPolicyDocumentException')
ManagedPolicyDetail =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ManagedPolicyDetail')
ManagedPolicyDetailListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ManagedPolicyDetailListType')
NoSuchEntityException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'NoSuchEntityException')
OpenIDConnectProviderListEntry =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'OpenIDConnectProviderListEntry')
OpenIDConnectProviderListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'OpenIDConnectProviderListType')
OpenIDConnectProviderUrlType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'OpenIDConnectProviderUrlType')
OrganizationsDecisionDetail =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'OrganizationsDecisionDetail')
PasswordPolicy =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PasswordPolicy')
PasswordPolicyViolationException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PasswordPolicyViolationException')
PermissionsBoundaryAttachmentType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PermissionsBoundaryAttachmentType')
PermissionsBoundaryDecisionDetail =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PermissionsBoundaryDecisionDetail')
Policy =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Policy')
PolicyDetail =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyDetail')
PolicyEvaluationDecisionType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicyEvaluationDecisionType')
PolicyEvaluationException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyEvaluationException')
PolicyGrantingServiceAccess =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyGrantingServiceAccess')
PolicyGroup =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyGroup')
PolicyGroupListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'PolicyGroupListType')
PolicyIdentifierType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicyIdentifierType')
PolicyNotAttachableException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyNotAttachableException')
PolicyRole =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyRole')
PolicyRoleListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'PolicyRoleListType')
PolicySourceType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicySourceType')
PolicyUsageType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'PolicyUsageType')
PolicyUser =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyUser')
PolicyUserListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'PolicyUserListType')
PolicyVersion =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PolicyVersion')
Position =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Position')
PutGroupPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutGroupPolicyRequest')
PutRolePermissionsBoundaryRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutRolePermissionsBoundaryRequest')
PutRolePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutRolePolicyRequest')
PutUserPermissionsBoundaryRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutUserPermissionsBoundaryRequest')
PutUserPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'PutUserPolicyRequest')
ReasonType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReasonType')
RegionNameType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'RegionNameType')
RemoveClientIDFromOpenIDConnectProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RemoveClientIDFromOpenIDConnectProviderRequest')
RemoveRoleFromInstanceProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RemoveRoleFromInstanceProfileRequest')
RemoveUserFromGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RemoveUserFromGroupRequest')
ReportContentType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::BlobShape.new(name: 'ReportContentType')
ReportFormatType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReportFormatType')
ReportGenerationLimitExceededException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ReportGenerationLimitExceededException')
ReportStateDescriptionType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReportStateDescriptionType')
ReportStateType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ReportStateType')
ResetServiceSpecificCredentialRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ResetServiceSpecificCredentialRequest')
ResetServiceSpecificCredentialResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ResetServiceSpecificCredentialResponse')
ResourceHandlingOptionType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResourceHandlingOptionType')
ResourceNameListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ResourceNameListType')
ResourceNameType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'ResourceNameType')
ResourceSpecificResult =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ResourceSpecificResult')
ResourceSpecificResultListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ResourceSpecificResultListType')
ResyncMFADeviceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ResyncMFADeviceRequest')
Role =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Role')
RoleDetail =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RoleDetail')
RoleLastUsed =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RoleLastUsed')
RoleUsageListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'RoleUsageListType')
RoleUsageType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'RoleUsageType')
SAMLMetadataDocumentType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SAMLMetadataDocumentType')
SAMLProviderListEntry =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SAMLProviderListEntry')
SAMLProviderListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'SAMLProviderListType')
SAMLProviderNameType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StringShape.new(name: 'SAMLProviderNameType')
SSHPublicKey =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SSHPublicKey')
SSHPublicKeyListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'SSHPublicKeyListType')
SSHPublicKeyMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SSHPublicKeyMetadata')
ServerCertificate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServerCertificate')
ServerCertificateMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServerCertificateMetadata')
ServiceFailureException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServiceFailureException')
ServiceLastAccessed =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServiceLastAccessed')
ServiceNotSupportedException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServiceNotSupportedException')
ServiceSpecificCredential =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServiceSpecificCredential')
ServiceSpecificCredentialMetadata =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'ServiceSpecificCredentialMetadata')
ServiceSpecificCredentialsListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ServiceSpecificCredentialsListType')
ServicesLastAccessed =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'ServicesLastAccessed')
SetDefaultPolicyVersionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SetDefaultPolicyVersionRequest')
SetSecurityTokenServicePreferencesRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SetSecurityTokenServicePreferencesRequest')
SigningCertificate =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SigningCertificate')
SimulateCustomPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SimulateCustomPolicyRequest')
SimulatePolicyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SimulatePolicyResponse')
SimulatePrincipalPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'SimulatePrincipalPolicyRequest')
SimulationPolicyListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'SimulationPolicyListType')
Statement =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Statement')
StatementListType =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'StatementListType')
Tag =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'Tag')
TagInstanceProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagInstanceProfileRequest')
TagMFADeviceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagMFADeviceRequest')
TagOpenIDConnectProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagOpenIDConnectProviderRequest')
TagPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagPolicyRequest')
TagRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagRoleRequest')
TagSAMLProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagSAMLProviderRequest')
TagServerCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagServerCertificateRequest')
TagUserRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TagUserRequest')
TrackedActionLastAccessed =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'TrackedActionLastAccessed')
TrackedActionsLastAccessed =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::ListShape.new(name: 'TrackedActionsLastAccessed')
UnmodifiableEntityException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UnmodifiableEntityException')
UnrecognizedPublicKeyEncodingException =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UnrecognizedPublicKeyEncodingException')
UntagInstanceProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagInstanceProfileRequest')
UntagMFADeviceRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagMFADeviceRequest')
UntagOpenIDConnectProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagOpenIDConnectProviderRequest')
UntagPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagPolicyRequest')
UntagRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagRoleRequest')
UntagSAMLProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagSAMLProviderRequest')
UntagServerCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagServerCertificateRequest')
UntagUserRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UntagUserRequest')
UpdateAccessKeyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateAccessKeyRequest')
UpdateAccountPasswordPolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateAccountPasswordPolicyRequest')
UpdateAssumeRolePolicyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateAssumeRolePolicyRequest')
UpdateGroupRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateGroupRequest')
UpdateLoginProfileRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateLoginProfileRequest')
UpdateOpenIDConnectProviderThumbprintRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateOpenIDConnectProviderThumbprintRequest')
UpdateRoleDescriptionRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateRoleDescriptionRequest')
UpdateRoleDescriptionResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateRoleDescriptionResponse')
UpdateRoleRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateRoleRequest')
UpdateRoleResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateRoleResponse')
UpdateSAMLProviderRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateSAMLProviderRequest')
UpdateSAMLProviderResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateSAMLProviderResponse')
UpdateSSHPublicKeyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateSSHPublicKeyRequest')
UpdateServerCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateServerCertificateRequest')
UpdateServiceSpecificCredentialRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateServiceSpecificCredentialRequest')
UpdateSigningCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateSigningCertificateRequest')
UpdateUserRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UpdateUserRequest')
UploadSSHPublicKeyRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadSSHPublicKeyRequest')
UploadSSHPublicKeyResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadSSHPublicKeyResponse')
UploadServerCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadServerCertificateRequest')
UploadServerCertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadServerCertificateResponse')
UploadSigningCertificateRequest =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadSigningCertificateRequest')
UploadSigningCertificateResponse =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UploadSigningCertificateResponse')
User =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'User')
UserDetail =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'UserDetail')
VirtualMFADevice =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Shapes::StructureShape.new(name: 'VirtualMFADevice')
API =

This constant is part of a private API. You should avoid using this constant if possible, as it may be removed or be changed in the future.

Seahorse::Model::Api.new.tap do |api|

  api.version = "2010-05-08"

  api. = {
    "apiVersion" => "2010-05-08",
    "endpointPrefix" => "iam",
    "globalEndpoint" => "iam.amazonaws.com",
    "protocol" => "query",
    "serviceAbbreviation" => "IAM",
    "serviceFullName" => "AWS Identity and Access Management",
    "serviceId" => "IAM",
    "signatureVersion" => "v4",
    "uid" => "iam-2010-05-08",
    "xmlNamespace" => "https://iam.amazonaws.com/doc/2010-05-08/",
  }

  api.add_operation(:add_client_id_to_open_id_connect_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AddClientIDToOpenIDConnectProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: AddClientIDToOpenIDConnectProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:add_role_to_instance_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AddRoleToInstanceProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: AddRoleToInstanceProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:add_user_to_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AddUserToGroup"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: AddUserToGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:attach_group_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AttachGroupPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: AttachGroupPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: PolicyNotAttachableException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:attach_role_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AttachRolePolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: AttachRolePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: PolicyNotAttachableException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:attach_user_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "AttachUserPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: AttachUserPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: PolicyNotAttachableException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:change_password, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ChangePassword"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ChangePasswordRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidUserTypeException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: EntityTemporarilyUnmodifiableException)
    o.errors << Shapes::ShapeRef.new(shape: PasswordPolicyViolationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_access_key, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateAccessKey"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateAccessKeyRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateAccessKeyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_account_alias, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateAccountAlias"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateAccountAliasRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateGroup"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_instance_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateInstanceProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateInstanceProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateInstanceProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_login_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateLoginProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateLoginProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateLoginProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: PasswordPolicyViolationException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_open_id_connect_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateOpenIDConnectProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateOpenIDConnectProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateOpenIDConnectProviderResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreatePolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreatePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: CreatePolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_policy_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreatePolicyVersion"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreatePolicyVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: CreatePolicyVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_role, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateRole"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateRoleRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateRoleResponse)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_saml_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateSAMLProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateSAMLProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateSAMLProviderResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_service_linked_role, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateServiceLinkedRole"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateServiceLinkedRoleRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateServiceLinkedRoleResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_service_specific_credential, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateServiceSpecificCredential"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateServiceSpecificCredentialRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateServiceSpecificCredentialResponse)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceNotSupportedException)
  end)

  api.add_operation(:create_user, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateUser"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateUserRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateUserResponse)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:create_virtual_mfa_device, Seahorse::Model::Operation.new.tap do |o|
    o.name = "CreateVirtualMFADevice"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: CreateVirtualMFADeviceRequest)
    o.output = Shapes::ShapeRef.new(shape: CreateVirtualMFADeviceResponse)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:deactivate_mfa_device, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeactivateMFADevice"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeactivateMFADeviceRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: EntityTemporarilyUnmodifiableException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_access_key, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteAccessKey"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteAccessKeyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_account_alias, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteAccountAlias"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteAccountAliasRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_account_password_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteAccountPasswordPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteGroup"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_group_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteGroupPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteGroupPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_instance_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteInstanceProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteInstanceProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_login_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteLoginProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteLoginProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: EntityTemporarilyUnmodifiableException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_open_id_connect_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteOpenIDConnectProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteOpenIDConnectProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeletePolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeletePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_policy_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeletePolicyVersion"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeletePolicyVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_role, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteRole"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteRoleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_role_permissions_boundary, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteRolePermissionsBoundary"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteRolePermissionsBoundaryRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_role_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteRolePolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteRolePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_saml_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteSAMLProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteSAMLProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_ssh_public_key, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteSSHPublicKey"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteSSHPublicKeyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
  end)

  api.add_operation(:delete_server_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteServerCertificate"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteServerCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_service_linked_role, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteServiceLinkedRole"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteServiceLinkedRoleRequest)
    o.output = Shapes::ShapeRef.new(shape: DeleteServiceLinkedRoleResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_service_specific_credential, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteServiceSpecificCredential"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteServiceSpecificCredentialRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
  end)

  api.add_operation(:delete_signing_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteSigningCertificate"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteSigningCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_user, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteUser"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteUserRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_user_permissions_boundary, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteUserPermissionsBoundary"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteUserPermissionsBoundaryRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_user_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteUserPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteUserPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:delete_virtual_mfa_device, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DeleteVirtualMFADevice"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DeleteVirtualMFADeviceRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: DeleteConflictException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:detach_group_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DetachGroupPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DetachGroupPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:detach_role_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DetachRolePolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DetachRolePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:detach_user_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "DetachUserPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: DetachUserPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:enable_mfa_device, Seahorse::Model::Operation.new.tap do |o|
    o.name = "EnableMFADevice"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: EnableMFADeviceRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: EntityAlreadyExistsException)
    o.errors << Shapes::ShapeRef.new(shape: EntityTemporarilyUnmodifiableException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidAuthenticationCodeException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:generate_credential_report, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GenerateCredentialReport"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.output = Shapes::ShapeRef.new(shape: GenerateCredentialReportResponse)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:generate_organizations_access_report, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GenerateOrganizationsAccessReport"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GenerateOrganizationsAccessReportRequest)
    o.output = Shapes::ShapeRef.new(shape: GenerateOrganizationsAccessReportResponse)
    o.errors << Shapes::ShapeRef.new(shape: ReportGenerationLimitExceededException)
  end)

  api.add_operation(:generate_service_last_accessed_details, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GenerateServiceLastAccessedDetails"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GenerateServiceLastAccessedDetailsRequest)
    o.output = Shapes::ShapeRef.new(shape: GenerateServiceLastAccessedDetailsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:get_access_key_last_used, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetAccessKeyLastUsed"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetAccessKeyLastUsedRequest)
    o.output = Shapes::ShapeRef.new(shape: GetAccessKeyLastUsedResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
  end)

  api.add_operation(:get_account_authorization_details, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetAccountAuthorizationDetails"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetAccountAuthorizationDetailsRequest)
    o.output = Shapes::ShapeRef.new(shape: GetAccountAuthorizationDetailsResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:get_account_password_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetAccountPasswordPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.output = Shapes::ShapeRef.new(shape: GetAccountPasswordPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_account_summary, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetAccountSummary"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.output = Shapes::ShapeRef.new(shape: GetAccountSummaryResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_context_keys_for_custom_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetContextKeysForCustomPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetContextKeysForCustomPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetContextKeysForPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:get_context_keys_for_principal_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetContextKeysForPrincipalPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetContextKeysForPrincipalPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetContextKeysForPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:get_credential_report, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetCredentialReport"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.output = Shapes::ShapeRef.new(shape: GetCredentialReportResponse)
    o.errors << Shapes::ShapeRef.new(shape: CredentialReportNotPresentException)
    o.errors << Shapes::ShapeRef.new(shape: CredentialReportExpiredException)
    o.errors << Shapes::ShapeRef.new(shape: CredentialReportNotReadyException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetGroup"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: GetGroupResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:get_group_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetGroupPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetGroupPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetGroupPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_instance_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetInstanceProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetInstanceProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: GetInstanceProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_login_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetLoginProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetLoginProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: GetLoginProfileResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_open_id_connect_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetOpenIDConnectProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetOpenIDConnectProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: GetOpenIDConnectProviderResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_organizations_access_report, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetOrganizationsAccessReport"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetOrganizationsAccessReportRequest)
    o.output = Shapes::ShapeRef.new(shape: GetOrganizationsAccessReportResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
  end)

  api.add_operation(:get_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_policy_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetPolicyVersion"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetPolicyVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: GetPolicyVersionResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_role, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetRole"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetRoleRequest)
    o.output = Shapes::ShapeRef.new(shape: GetRoleResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_role_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetRolePolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetRolePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetRolePolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_saml_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetSAMLProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetSAMLProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: GetSAMLProviderResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_ssh_public_key, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetSSHPublicKey"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetSSHPublicKeyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetSSHPublicKeyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: UnrecognizedPublicKeyEncodingException)
  end)

  api.add_operation(:get_server_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetServerCertificate"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetServerCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: GetServerCertificateResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_service_last_accessed_details, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetServiceLastAccessedDetails"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetServiceLastAccessedDetailsRequest)
    o.output = Shapes::ShapeRef.new(shape: GetServiceLastAccessedDetailsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:get_service_last_accessed_details_with_entities, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetServiceLastAccessedDetailsWithEntities"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetServiceLastAccessedDetailsWithEntitiesRequest)
    o.output = Shapes::ShapeRef.new(shape: GetServiceLastAccessedDetailsWithEntitiesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:get_service_linked_role_deletion_status, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetServiceLinkedRoleDeletionStatus"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetServiceLinkedRoleDeletionStatusRequest)
    o.output = Shapes::ShapeRef.new(shape: GetServiceLinkedRoleDeletionStatusResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_user, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetUser"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetUserRequest)
    o.output = Shapes::ShapeRef.new(shape: GetUserResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:get_user_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "GetUserPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: GetUserPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: GetUserPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:list_access_keys, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAccessKeys"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListAccessKeysRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAccessKeysResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_account_aliases, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAccountAliases"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListAccountAliasesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAccountAliasesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_attached_group_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAttachedGroupPolicies"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListAttachedGroupPoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAttachedGroupPoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_attached_role_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAttachedRolePolicies"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListAttachedRolePoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAttachedRolePoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_attached_user_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListAttachedUserPolicies"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListAttachedUserPoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListAttachedUserPoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_entities_for_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListEntitiesForPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListEntitiesForPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: ListEntitiesForPolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_group_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListGroupPolicies"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListGroupPoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListGroupPoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_groups, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListGroups"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListGroupsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListGroupsResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_groups_for_user, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListGroupsForUser"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListGroupsForUserRequest)
    o.output = Shapes::ShapeRef.new(shape: ListGroupsForUserResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_instance_profile_tags, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListInstanceProfileTags"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListInstanceProfileTagsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListInstanceProfileTagsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:list_instance_profiles, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListInstanceProfiles"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListInstanceProfilesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListInstanceProfilesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_instance_profiles_for_role, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListInstanceProfilesForRole"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListInstanceProfilesForRoleRequest)
    o.output = Shapes::ShapeRef.new(shape: ListInstanceProfilesForRoleResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_mfa_device_tags, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListMFADeviceTags"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListMFADeviceTagsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListMFADeviceTagsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:list_mfa_devices, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListMFADevices"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListMFADevicesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListMFADevicesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_open_id_connect_provider_tags, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListOpenIDConnectProviderTags"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListOpenIDConnectProviderTagsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListOpenIDConnectProviderTagsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:list_open_id_connect_providers, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListOpenIDConnectProviders"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListOpenIDConnectProvidersRequest)
    o.output = Shapes::ShapeRef.new(shape: ListOpenIDConnectProvidersResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:list_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPolicies"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListPoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_policies_granting_service_access, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPoliciesGrantingServiceAccess"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListPoliciesGrantingServiceAccessRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPoliciesGrantingServiceAccessResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:list_policy_tags, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPolicyTags"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListPolicyTagsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPolicyTagsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:list_policy_versions, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListPolicyVersions"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListPolicyVersionsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListPolicyVersionsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_role_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListRolePolicies"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListRolePoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListRolePoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_role_tags, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListRoleTags"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListRoleTagsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListRoleTagsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:list_roles, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListRoles"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListRolesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListRolesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_saml_provider_tags, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListSAMLProviderTags"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListSAMLProviderTagsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListSAMLProviderTagsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
  end)

  api.add_operation(:list_saml_providers, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListSAMLProviders"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListSAMLProvidersRequest)
    o.output = Shapes::ShapeRef.new(shape: ListSAMLProvidersResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:list_ssh_public_keys, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListSSHPublicKeys"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListSSHPublicKeysRequest)
    o.output = Shapes::ShapeRef.new(shape: ListSSHPublicKeysResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_server_certificate_tags, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListServerCertificateTags"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListServerCertificateTagsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListServerCertificateTagsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:list_server_certificates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListServerCertificates"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListServerCertificatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListServerCertificatesResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_service_specific_credentials, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListServiceSpecificCredentials"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListServiceSpecificCredentialsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListServiceSpecificCredentialsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceNotSupportedException)
  end)

  api.add_operation(:list_signing_certificates, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListSigningCertificates"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListSigningCertificatesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListSigningCertificatesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_user_policies, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListUserPolicies"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListUserPoliciesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListUserPoliciesResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_user_tags, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListUserTags"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListUserTagsRequest)
    o.output = Shapes::ShapeRef.new(shape: ListUserTagsResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_users, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListUsers"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListUsersRequest)
    o.output = Shapes::ShapeRef.new(shape: ListUsersResponse)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:list_virtual_mfa_devices, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ListVirtualMFADevices"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ListVirtualMFADevicesRequest)
    o.output = Shapes::ShapeRef.new(shape: ListVirtualMFADevicesResponse)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:put_group_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutGroupPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: PutGroupPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:put_role_permissions_boundary, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutRolePermissionsBoundary"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: PutRolePermissionsBoundaryRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: PolicyNotAttachableException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:put_role_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutRolePolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: PutRolePolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:put_user_permissions_boundary, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutUserPermissionsBoundary"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: PutUserPermissionsBoundaryRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: PolicyNotAttachableException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:put_user_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "PutUserPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: PutUserPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: MalformedPolicyDocumentException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:remove_client_id_from_open_id_connect_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RemoveClientIDFromOpenIDConnectProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: RemoveClientIDFromOpenIDConnectProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:remove_role_from_instance_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RemoveRoleFromInstanceProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: RemoveRoleFromInstanceProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: UnmodifiableEntityException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:remove_user_from_group, Seahorse::Model::Operation.new.tap do |o|
    o.name = "RemoveUserFromGroup"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: RemoveUserFromGroupRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:reset_service_specific_credential, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ResetServiceSpecificCredential"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ResetServiceSpecificCredentialRequest)
    o.output = Shapes::ShapeRef.new(shape: ResetServiceSpecificCredentialResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
  end)

  api.add_operation(:resync_mfa_device, Seahorse::Model::Operation.new.tap do |o|
    o.name = "ResyncMFADevice"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: ResyncMFADeviceRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidAuthenticationCodeException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:set_default_policy_version, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SetDefaultPolicyVersion"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: SetDefaultPolicyVersionRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:set_security_token_service_preferences, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SetSecurityTokenServicePreferences"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: SetSecurityTokenServicePreferencesRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:simulate_custom_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SimulateCustomPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: SimulateCustomPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: SimulatePolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: PolicyEvaluationException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:simulate_principal_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "SimulatePrincipalPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: SimulatePrincipalPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: SimulatePolicyResponse)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: PolicyEvaluationException)
    o[:pager] = Aws::Pager.new(
      more_results: "is_truncated",
      limit_key: "max_items",
      tokens: {
        "marker" => "marker"
      }
    )
  end)

  api.add_operation(:tag_instance_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagInstanceProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: TagInstanceProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:tag_mfa_device, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagMFADevice"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: TagMFADeviceRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:tag_open_id_connect_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagOpenIDConnectProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: TagOpenIDConnectProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:tag_policy, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagPolicy"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: TagPolicyRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:tag_role, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagRole"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: TagRoleRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:tag_saml_provider, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagSAMLProvider"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: TagSAMLProviderRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:tag_server_certificate, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagServerCertificate"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: TagServerCertificateRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:tag_user, Seahorse::Model::Operation.new.tap do |o|
    o.name = "TagUser"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: TagUserRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:untag_instance_profile, Seahorse::Model::Operation.new.tap do |o|
    o.name = "UntagInstanceProfile"
    o.http_method = "POST"
    o.http_request_uri = "/"
    o.input = Shapes::ShapeRef.new(shape: UntagInstanceProfileRequest)
    o.output = Shapes::ShapeRef.new(shape: Shapes::StructureShape.new(struct_class: Aws::EmptyStructure))
    o.errors << Shapes::ShapeRef.new(shape: NoSuchEntityException)
    o.errors << Shapes::ShapeRef.new(shape: InvalidInputException)
    o.errors << Shapes::ShapeRef.new(shape: ConcurrentModificationException)
    o.errors << Shapes::ShapeRef.new(shape: ServiceFailureException)
  end)

  api.add_operation(:untag_mfa_device, Seahorse::Model::Operation.new.tap do |o|
    o.name =