/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once /* Generic header includes */ #include #include #include #include #include #include #include #include #include /* End of generic header includes */ /* Service model headers required in WorkMailClient header */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include /* End of service model headers required in WorkMailClient header */ namespace Aws { namespace Http { class HttpClient; class HttpClientFactory; } // namespace Http namespace Utils { template< typename R, typename E> class Outcome; namespace Threading { class Executor; } // namespace Threading } // namespace Utils namespace Auth { class AWSCredentials; class AWSCredentialsProvider; } // namespace Auth namespace Client { class RetryStrategy; } // namespace Client namespace WorkMail { using WorkMailClientConfiguration = Aws::Client::GenericClientConfiguration; using WorkMailEndpointProviderBase = Aws::WorkMail::Endpoint::WorkMailEndpointProviderBase; using WorkMailEndpointProvider = Aws::WorkMail::Endpoint::WorkMailEndpointProvider; namespace Model { /* Service model forward declarations required in WorkMailClient header */ class AssociateDelegateToResourceRequest; class AssociateMemberToGroupRequest; class AssumeImpersonationRoleRequest; class CancelMailboxExportJobRequest; class CreateAliasRequest; class CreateAvailabilityConfigurationRequest; class CreateGroupRequest; class CreateImpersonationRoleRequest; class CreateMobileDeviceAccessRuleRequest; class CreateOrganizationRequest; class CreateResourceRequest; class CreateUserRequest; class DeleteAccessControlRuleRequest; class DeleteAliasRequest; class DeleteAvailabilityConfigurationRequest; class DeleteEmailMonitoringConfigurationRequest; class DeleteGroupRequest; class DeleteImpersonationRoleRequest; class DeleteMailboxPermissionsRequest; class DeleteMobileDeviceAccessOverrideRequest; class DeleteMobileDeviceAccessRuleRequest; class DeleteOrganizationRequest; class DeleteResourceRequest; class DeleteRetentionPolicyRequest; class DeleteUserRequest; class DeregisterFromWorkMailRequest; class DeregisterMailDomainRequest; class DescribeEmailMonitoringConfigurationRequest; class DescribeGroupRequest; class DescribeInboundDmarcSettingsRequest; class DescribeMailboxExportJobRequest; class DescribeOrganizationRequest; class DescribeResourceRequest; class DescribeUserRequest; class DisassociateDelegateFromResourceRequest; class DisassociateMemberFromGroupRequest; class GetAccessControlEffectRequest; class GetDefaultRetentionPolicyRequest; class GetImpersonationRoleRequest; class GetImpersonationRoleEffectRequest; class GetMailDomainRequest; class GetMailboxDetailsRequest; class GetMobileDeviceAccessEffectRequest; class GetMobileDeviceAccessOverrideRequest; class ListAccessControlRulesRequest; class ListAliasesRequest; class ListAvailabilityConfigurationsRequest; class ListGroupMembersRequest; class ListGroupsRequest; class ListImpersonationRolesRequest; class ListMailDomainsRequest; class ListMailboxExportJobsRequest; class ListMailboxPermissionsRequest; class ListMobileDeviceAccessOverridesRequest; class ListMobileDeviceAccessRulesRequest; class ListOrganizationsRequest; class ListResourceDelegatesRequest; class ListResourcesRequest; class ListTagsForResourceRequest; class ListUsersRequest; class PutAccessControlRuleRequest; class PutEmailMonitoringConfigurationRequest; class PutInboundDmarcSettingsRequest; class PutMailboxPermissionsRequest; class PutMobileDeviceAccessOverrideRequest; class PutRetentionPolicyRequest; class RegisterMailDomainRequest; class RegisterToWorkMailRequest; class ResetPasswordRequest; class StartMailboxExportJobRequest; class TagResourceRequest; class TestAvailabilityConfigurationRequest; class UntagResourceRequest; class UpdateAvailabilityConfigurationRequest; class UpdateDefaultMailDomainRequest; class UpdateImpersonationRoleRequest; class UpdateMailboxQuotaRequest; class UpdateMobileDeviceAccessRuleRequest; class UpdatePrimaryEmailAddressRequest; class UpdateResourceRequest; /* End of service model forward declarations required in WorkMailClient header */ /* Service model Outcome class definitions */ typedef Aws::Utils::Outcome AssociateDelegateToResourceOutcome; typedef Aws::Utils::Outcome AssociateMemberToGroupOutcome; typedef Aws::Utils::Outcome AssumeImpersonationRoleOutcome; typedef Aws::Utils::Outcome CancelMailboxExportJobOutcome; typedef Aws::Utils::Outcome CreateAliasOutcome; typedef Aws::Utils::Outcome CreateAvailabilityConfigurationOutcome; typedef Aws::Utils::Outcome CreateGroupOutcome; typedef Aws::Utils::Outcome CreateImpersonationRoleOutcome; typedef Aws::Utils::Outcome CreateMobileDeviceAccessRuleOutcome; typedef Aws::Utils::Outcome CreateOrganizationOutcome; typedef Aws::Utils::Outcome CreateResourceOutcome; typedef Aws::Utils::Outcome CreateUserOutcome; typedef Aws::Utils::Outcome DeleteAccessControlRuleOutcome; typedef Aws::Utils::Outcome DeleteAliasOutcome; typedef Aws::Utils::Outcome DeleteAvailabilityConfigurationOutcome; typedef Aws::Utils::Outcome DeleteEmailMonitoringConfigurationOutcome; typedef Aws::Utils::Outcome DeleteGroupOutcome; typedef Aws::Utils::Outcome DeleteImpersonationRoleOutcome; typedef Aws::Utils::Outcome DeleteMailboxPermissionsOutcome; typedef Aws::Utils::Outcome DeleteMobileDeviceAccessOverrideOutcome; typedef Aws::Utils::Outcome DeleteMobileDeviceAccessRuleOutcome; typedef Aws::Utils::Outcome DeleteOrganizationOutcome; typedef Aws::Utils::Outcome DeleteResourceOutcome; typedef Aws::Utils::Outcome DeleteRetentionPolicyOutcome; typedef Aws::Utils::Outcome DeleteUserOutcome; typedef Aws::Utils::Outcome DeregisterFromWorkMailOutcome; typedef Aws::Utils::Outcome DeregisterMailDomainOutcome; typedef Aws::Utils::Outcome DescribeEmailMonitoringConfigurationOutcome; typedef Aws::Utils::Outcome DescribeGroupOutcome; typedef Aws::Utils::Outcome DescribeInboundDmarcSettingsOutcome; typedef Aws::Utils::Outcome DescribeMailboxExportJobOutcome; typedef Aws::Utils::Outcome DescribeOrganizationOutcome; typedef Aws::Utils::Outcome DescribeResourceOutcome; typedef Aws::Utils::Outcome DescribeUserOutcome; typedef Aws::Utils::Outcome DisassociateDelegateFromResourceOutcome; typedef Aws::Utils::Outcome DisassociateMemberFromGroupOutcome; typedef Aws::Utils::Outcome GetAccessControlEffectOutcome; typedef Aws::Utils::Outcome GetDefaultRetentionPolicyOutcome; typedef Aws::Utils::Outcome GetImpersonationRoleOutcome; typedef Aws::Utils::Outcome GetImpersonationRoleEffectOutcome; typedef Aws::Utils::Outcome GetMailDomainOutcome; typedef Aws::Utils::Outcome GetMailboxDetailsOutcome; typedef Aws::Utils::Outcome GetMobileDeviceAccessEffectOutcome; typedef Aws::Utils::Outcome GetMobileDeviceAccessOverrideOutcome; typedef Aws::Utils::Outcome ListAccessControlRulesOutcome; typedef Aws::Utils::Outcome ListAliasesOutcome; typedef Aws::Utils::Outcome ListAvailabilityConfigurationsOutcome; typedef Aws::Utils::Outcome ListGroupMembersOutcome; typedef Aws::Utils::Outcome ListGroupsOutcome; typedef Aws::Utils::Outcome ListImpersonationRolesOutcome; typedef Aws::Utils::Outcome ListMailDomainsOutcome; typedef Aws::Utils::Outcome ListMailboxExportJobsOutcome; typedef Aws::Utils::Outcome ListMailboxPermissionsOutcome; typedef Aws::Utils::Outcome ListMobileDeviceAccessOverridesOutcome; typedef Aws::Utils::Outcome ListMobileDeviceAccessRulesOutcome; typedef Aws::Utils::Outcome ListOrganizationsOutcome; typedef Aws::Utils::Outcome ListResourceDelegatesOutcome; typedef Aws::Utils::Outcome ListResourcesOutcome; typedef Aws::Utils::Outcome ListTagsForResourceOutcome; typedef Aws::Utils::Outcome ListUsersOutcome; typedef Aws::Utils::Outcome PutAccessControlRuleOutcome; typedef Aws::Utils::Outcome PutEmailMonitoringConfigurationOutcome; typedef Aws::Utils::Outcome PutInboundDmarcSettingsOutcome; typedef Aws::Utils::Outcome PutMailboxPermissionsOutcome; typedef Aws::Utils::Outcome PutMobileDeviceAccessOverrideOutcome; typedef Aws::Utils::Outcome PutRetentionPolicyOutcome; typedef Aws::Utils::Outcome RegisterMailDomainOutcome; typedef Aws::Utils::Outcome RegisterToWorkMailOutcome; typedef Aws::Utils::Outcome ResetPasswordOutcome; typedef Aws::Utils::Outcome StartMailboxExportJobOutcome; typedef Aws::Utils::Outcome TagResourceOutcome; typedef Aws::Utils::Outcome TestAvailabilityConfigurationOutcome; typedef Aws::Utils::Outcome UntagResourceOutcome; typedef Aws::Utils::Outcome UpdateAvailabilityConfigurationOutcome; typedef Aws::Utils::Outcome UpdateDefaultMailDomainOutcome; typedef Aws::Utils::Outcome UpdateImpersonationRoleOutcome; typedef Aws::Utils::Outcome UpdateMailboxQuotaOutcome; typedef Aws::Utils::Outcome UpdateMobileDeviceAccessRuleOutcome; typedef Aws::Utils::Outcome UpdatePrimaryEmailAddressOutcome; typedef Aws::Utils::Outcome UpdateResourceOutcome; /* End of service model Outcome class definitions */ /* Service model Outcome callable definitions */ typedef std::future AssociateDelegateToResourceOutcomeCallable; typedef std::future AssociateMemberToGroupOutcomeCallable; typedef std::future AssumeImpersonationRoleOutcomeCallable; typedef std::future CancelMailboxExportJobOutcomeCallable; typedef std::future CreateAliasOutcomeCallable; typedef std::future CreateAvailabilityConfigurationOutcomeCallable; typedef std::future CreateGroupOutcomeCallable; typedef std::future CreateImpersonationRoleOutcomeCallable; typedef std::future CreateMobileDeviceAccessRuleOutcomeCallable; typedef std::future CreateOrganizationOutcomeCallable; typedef std::future CreateResourceOutcomeCallable; typedef std::future CreateUserOutcomeCallable; typedef std::future DeleteAccessControlRuleOutcomeCallable; typedef std::future DeleteAliasOutcomeCallable; typedef std::future DeleteAvailabilityConfigurationOutcomeCallable; typedef std::future DeleteEmailMonitoringConfigurationOutcomeCallable; typedef std::future DeleteGroupOutcomeCallable; typedef std::future DeleteImpersonationRoleOutcomeCallable; typedef std::future DeleteMailboxPermissionsOutcomeCallable; typedef std::future DeleteMobileDeviceAccessOverrideOutcomeCallable; typedef std::future DeleteMobileDeviceAccessRuleOutcomeCallable; typedef std::future DeleteOrganizationOutcomeCallable; typedef std::future DeleteResourceOutcomeCallable; typedef std::future DeleteRetentionPolicyOutcomeCallable; typedef std::future DeleteUserOutcomeCallable; typedef std::future DeregisterFromWorkMailOutcomeCallable; typedef std::future DeregisterMailDomainOutcomeCallable; typedef std::future DescribeEmailMonitoringConfigurationOutcomeCallable; typedef std::future DescribeGroupOutcomeCallable; typedef std::future DescribeInboundDmarcSettingsOutcomeCallable; typedef std::future DescribeMailboxExportJobOutcomeCallable; typedef std::future DescribeOrganizationOutcomeCallable; typedef std::future DescribeResourceOutcomeCallable; typedef std::future DescribeUserOutcomeCallable; typedef std::future DisassociateDelegateFromResourceOutcomeCallable; typedef std::future DisassociateMemberFromGroupOutcomeCallable; typedef std::future GetAccessControlEffectOutcomeCallable; typedef std::future GetDefaultRetentionPolicyOutcomeCallable; typedef std::future GetImpersonationRoleOutcomeCallable; typedef std::future GetImpersonationRoleEffectOutcomeCallable; typedef std::future GetMailDomainOutcomeCallable; typedef std::future GetMailboxDetailsOutcomeCallable; typedef std::future GetMobileDeviceAccessEffectOutcomeCallable; typedef std::future GetMobileDeviceAccessOverrideOutcomeCallable; typedef std::future ListAccessControlRulesOutcomeCallable; typedef std::future ListAliasesOutcomeCallable; typedef std::future ListAvailabilityConfigurationsOutcomeCallable; typedef std::future ListGroupMembersOutcomeCallable; typedef std::future ListGroupsOutcomeCallable; typedef std::future ListImpersonationRolesOutcomeCallable; typedef std::future ListMailDomainsOutcomeCallable; typedef std::future ListMailboxExportJobsOutcomeCallable; typedef std::future ListMailboxPermissionsOutcomeCallable; typedef std::future ListMobileDeviceAccessOverridesOutcomeCallable; typedef std::future ListMobileDeviceAccessRulesOutcomeCallable; typedef std::future ListOrganizationsOutcomeCallable; typedef std::future ListResourceDelegatesOutcomeCallable; typedef std::future ListResourcesOutcomeCallable; typedef std::future ListTagsForResourceOutcomeCallable; typedef std::future ListUsersOutcomeCallable; typedef std::future PutAccessControlRuleOutcomeCallable; typedef std::future PutEmailMonitoringConfigurationOutcomeCallable; typedef std::future PutInboundDmarcSettingsOutcomeCallable; typedef std::future PutMailboxPermissionsOutcomeCallable; typedef std::future PutMobileDeviceAccessOverrideOutcomeCallable; typedef std::future PutRetentionPolicyOutcomeCallable; typedef std::future RegisterMailDomainOutcomeCallable; typedef std::future RegisterToWorkMailOutcomeCallable; typedef std::future ResetPasswordOutcomeCallable; typedef std::future StartMailboxExportJobOutcomeCallable; typedef std::future TagResourceOutcomeCallable; typedef std::future TestAvailabilityConfigurationOutcomeCallable; typedef std::future UntagResourceOutcomeCallable; typedef std::future UpdateAvailabilityConfigurationOutcomeCallable; typedef std::future UpdateDefaultMailDomainOutcomeCallable; typedef std::future UpdateImpersonationRoleOutcomeCallable; typedef std::future UpdateMailboxQuotaOutcomeCallable; typedef std::future UpdateMobileDeviceAccessRuleOutcomeCallable; typedef std::future UpdatePrimaryEmailAddressOutcomeCallable; typedef std::future UpdateResourceOutcomeCallable; /* End of service model Outcome callable definitions */ } // namespace Model class WorkMailClient; /* Service model async handlers definitions */ typedef std::function&) > AssociateDelegateToResourceResponseReceivedHandler; typedef std::function&) > AssociateMemberToGroupResponseReceivedHandler; typedef std::function&) > AssumeImpersonationRoleResponseReceivedHandler; typedef std::function&) > CancelMailboxExportJobResponseReceivedHandler; typedef std::function&) > CreateAliasResponseReceivedHandler; typedef std::function&) > CreateAvailabilityConfigurationResponseReceivedHandler; typedef std::function&) > CreateGroupResponseReceivedHandler; typedef std::function&) > CreateImpersonationRoleResponseReceivedHandler; typedef std::function&) > CreateMobileDeviceAccessRuleResponseReceivedHandler; typedef std::function&) > CreateOrganizationResponseReceivedHandler; typedef std::function&) > CreateResourceResponseReceivedHandler; typedef std::function&) > CreateUserResponseReceivedHandler; typedef std::function&) > DeleteAccessControlRuleResponseReceivedHandler; typedef std::function&) > DeleteAliasResponseReceivedHandler; typedef std::function&) > DeleteAvailabilityConfigurationResponseReceivedHandler; typedef std::function&) > DeleteEmailMonitoringConfigurationResponseReceivedHandler; typedef std::function&) > DeleteGroupResponseReceivedHandler; typedef std::function&) > DeleteImpersonationRoleResponseReceivedHandler; typedef std::function&) > DeleteMailboxPermissionsResponseReceivedHandler; typedef std::function&) > DeleteMobileDeviceAccessOverrideResponseReceivedHandler; typedef std::function&) > DeleteMobileDeviceAccessRuleResponseReceivedHandler; typedef std::function&) > DeleteOrganizationResponseReceivedHandler; typedef std::function&) > DeleteResourceResponseReceivedHandler; typedef std::function&) > DeleteRetentionPolicyResponseReceivedHandler; typedef std::function&) > DeleteUserResponseReceivedHandler; typedef std::function&) > DeregisterFromWorkMailResponseReceivedHandler; typedef std::function&) > DeregisterMailDomainResponseReceivedHandler; typedef std::function&) > DescribeEmailMonitoringConfigurationResponseReceivedHandler; typedef std::function&) > DescribeGroupResponseReceivedHandler; typedef std::function&) > DescribeInboundDmarcSettingsResponseReceivedHandler; typedef std::function&) > DescribeMailboxExportJobResponseReceivedHandler; typedef std::function&) > DescribeOrganizationResponseReceivedHandler; typedef std::function&) > DescribeResourceResponseReceivedHandler; typedef std::function&) > DescribeUserResponseReceivedHandler; typedef std::function&) > DisassociateDelegateFromResourceResponseReceivedHandler; typedef std::function&) > DisassociateMemberFromGroupResponseReceivedHandler; typedef std::function&) > GetAccessControlEffectResponseReceivedHandler; typedef std::function&) > GetDefaultRetentionPolicyResponseReceivedHandler; typedef std::function&) > GetImpersonationRoleResponseReceivedHandler; typedef std::function&) > GetImpersonationRoleEffectResponseReceivedHandler; typedef std::function&) > GetMailDomainResponseReceivedHandler; typedef std::function&) > GetMailboxDetailsResponseReceivedHandler; typedef std::function&) > GetMobileDeviceAccessEffectResponseReceivedHandler; typedef std::function&) > GetMobileDeviceAccessOverrideResponseReceivedHandler; typedef std::function&) > ListAccessControlRulesResponseReceivedHandler; typedef std::function&) > ListAliasesResponseReceivedHandler; typedef std::function&) > ListAvailabilityConfigurationsResponseReceivedHandler; typedef std::function&) > ListGroupMembersResponseReceivedHandler; typedef std::function&) > ListGroupsResponseReceivedHandler; typedef std::function&) > ListImpersonationRolesResponseReceivedHandler; typedef std::function&) > ListMailDomainsResponseReceivedHandler; typedef std::function&) > ListMailboxExportJobsResponseReceivedHandler; typedef std::function&) > ListMailboxPermissionsResponseReceivedHandler; typedef std::function&) > ListMobileDeviceAccessOverridesResponseReceivedHandler; typedef std::function&) > ListMobileDeviceAccessRulesResponseReceivedHandler; typedef std::function&) > ListOrganizationsResponseReceivedHandler; typedef std::function&) > ListResourceDelegatesResponseReceivedHandler; typedef std::function&) > ListResourcesResponseReceivedHandler; typedef std::function&) > ListTagsForResourceResponseReceivedHandler; typedef std::function&) > ListUsersResponseReceivedHandler; typedef std::function&) > PutAccessControlRuleResponseReceivedHandler; typedef std::function&) > PutEmailMonitoringConfigurationResponseReceivedHandler; typedef std::function&) > PutInboundDmarcSettingsResponseReceivedHandler; typedef std::function&) > PutMailboxPermissionsResponseReceivedHandler; typedef std::function&) > PutMobileDeviceAccessOverrideResponseReceivedHandler; typedef std::function&) > PutRetentionPolicyResponseReceivedHandler; typedef std::function&) > RegisterMailDomainResponseReceivedHandler; typedef std::function&) > RegisterToWorkMailResponseReceivedHandler; typedef std::function&) > ResetPasswordResponseReceivedHandler; typedef std::function&) > StartMailboxExportJobResponseReceivedHandler; typedef std::function&) > TagResourceResponseReceivedHandler; typedef std::function&) > TestAvailabilityConfigurationResponseReceivedHandler; typedef std::function&) > UntagResourceResponseReceivedHandler; typedef std::function&) > UpdateAvailabilityConfigurationResponseReceivedHandler; typedef std::function&) > UpdateDefaultMailDomainResponseReceivedHandler; typedef std::function&) > UpdateImpersonationRoleResponseReceivedHandler; typedef std::function&) > UpdateMailboxQuotaResponseReceivedHandler; typedef std::function&) > UpdateMobileDeviceAccessRuleResponseReceivedHandler; typedef std::function&) > UpdatePrimaryEmailAddressResponseReceivedHandler; typedef std::function&) > UpdateResourceResponseReceivedHandler; /* End of service model async handlers definitions */ } // namespace WorkMail } // namespace Aws