/** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * SPDX-License-Identifier: Apache-2.0. */ #pragma once #include #include #include #include #include #include namespace Aws { namespace WorkMail { /** *

WorkMail is a secure, managed business email and calendaring service with * support for existing desktop and mobile email clients. You can access your * email, contacts, and calendars using Microsoft Outlook, your browser, or other * native iOS and Android email applications. You can integrate WorkMail with your * existing corporate directory and control both the keys that encrypt your data * and the location in which your data is stored.

The WorkMail API is * designed for the following scenarios:

  • Listing and describing * organizations

  • Managing users

    *
  • Managing groups

  • Managing resources

    *

All WorkMail API operations are Amazon-authenticated and * certificate-signed. They not only require the use of the AWS SDK, but also allow * for the exclusive use of AWS Identity and Access Management users and roles to * help facilitate access, trust, and permission policies. By creating a role and * allowing an IAM user to access the WorkMail site, the IAM user gains full * administrative visibility into the entire WorkMail organization (or as set in * the IAM policy). This includes, but is not limited to, the ability to create, * update, and delete users, groups, and resources. This allows developers to * perform the scenarios listed above, as well as give users the ability to grant * access on a selective basis using the IAM model.

*/ class AWS_WORKMAIL_API WorkMailClient : public Aws::Client::AWSJsonClient, public Aws::Client::ClientWithAsyncTemplateMethods { public: typedef Aws::Client::AWSJsonClient BASECLASS; static const char* SERVICE_NAME; static const char* ALLOCATION_TAG; typedef WorkMailClientConfiguration ClientConfigurationType; typedef WorkMailEndpointProvider EndpointProviderType; /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ WorkMailClient(const Aws::WorkMail::WorkMailClientConfiguration& clientConfiguration = Aws::WorkMail::WorkMailClientConfiguration(), std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG)); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ WorkMailClient(const Aws::Auth::AWSCredentials& credentials, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::WorkMail::WorkMailClientConfiguration& clientConfiguration = Aws::WorkMail::WorkMailClientConfiguration()); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ WorkMailClient(const std::shared_ptr& credentialsProvider, std::shared_ptr endpointProvider = Aws::MakeShared(ALLOCATION_TAG), const Aws::WorkMail::WorkMailClientConfiguration& clientConfiguration = Aws::WorkMail::WorkMailClientConfiguration()); /* Legacy constructors due deprecation */ /** * Initializes client to use DefaultCredentialProviderChain, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ WorkMailClient(const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use SimpleAWSCredentialsProvider, with default http client factory, and optional client config. If client config * is not specified, it will be initialized to default values. */ WorkMailClient(const Aws::Auth::AWSCredentials& credentials, const Aws::Client::ClientConfiguration& clientConfiguration); /** * Initializes client to use specified credentials provider with specified client config. If http client factory is not supplied, * the default http client factory will be used */ WorkMailClient(const std::shared_ptr& credentialsProvider, const Aws::Client::ClientConfiguration& clientConfiguration); /* End of legacy constructors due deprecation */ virtual ~WorkMailClient(); /** *

Adds a member (user or group) to the resource's set of * delegates.

See Also:

AWS * API Reference

*/ virtual Model::AssociateDelegateToResourceOutcome AssociateDelegateToResource(const Model::AssociateDelegateToResourceRequest& request) const; /** * A Callable wrapper for AssociateDelegateToResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AssociateDelegateToResourceOutcomeCallable AssociateDelegateToResourceCallable(const AssociateDelegateToResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::AssociateDelegateToResource, request); } /** * An Async wrapper for AssociateDelegateToResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AssociateDelegateToResourceAsync(const AssociateDelegateToResourceRequestT& request, const AssociateDelegateToResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::AssociateDelegateToResource, request, handler, context); } /** *

Adds a member (user or group) to the group's set.

See Also:

* AWS * API Reference

*/ virtual Model::AssociateMemberToGroupOutcome AssociateMemberToGroup(const Model::AssociateMemberToGroupRequest& request) const; /** * A Callable wrapper for AssociateMemberToGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AssociateMemberToGroupOutcomeCallable AssociateMemberToGroupCallable(const AssociateMemberToGroupRequestT& request) const { return SubmitCallable(&WorkMailClient::AssociateMemberToGroup, request); } /** * An Async wrapper for AssociateMemberToGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AssociateMemberToGroupAsync(const AssociateMemberToGroupRequestT& request, const AssociateMemberToGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::AssociateMemberToGroup, request, handler, context); } /** *

Assumes an impersonation role for the given WorkMail organization. This * method returns an authentication token you can use to make impersonated * calls.

See Also:

AWS * API Reference

*/ virtual Model::AssumeImpersonationRoleOutcome AssumeImpersonationRole(const Model::AssumeImpersonationRoleRequest& request) const; /** * A Callable wrapper for AssumeImpersonationRole that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::AssumeImpersonationRoleOutcomeCallable AssumeImpersonationRoleCallable(const AssumeImpersonationRoleRequestT& request) const { return SubmitCallable(&WorkMailClient::AssumeImpersonationRole, request); } /** * An Async wrapper for AssumeImpersonationRole that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void AssumeImpersonationRoleAsync(const AssumeImpersonationRoleRequestT& request, const AssumeImpersonationRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::AssumeImpersonationRole, request, handler, context); } /** *

Cancels a mailbox export job.

If the mailbox export job is near * completion, it might not be possible to cancel it.

See * Also:

AWS * API Reference

*/ virtual Model::CancelMailboxExportJobOutcome CancelMailboxExportJob(const Model::CancelMailboxExportJobRequest& request) const; /** * A Callable wrapper for CancelMailboxExportJob that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CancelMailboxExportJobOutcomeCallable CancelMailboxExportJobCallable(const CancelMailboxExportJobRequestT& request) const { return SubmitCallable(&WorkMailClient::CancelMailboxExportJob, request); } /** * An Async wrapper for CancelMailboxExportJob that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CancelMailboxExportJobAsync(const CancelMailboxExportJobRequestT& request, const CancelMailboxExportJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CancelMailboxExportJob, request, handler, context); } /** *

Adds an alias to the set of a given member (user or group) of * WorkMail.

See Also:

AWS * API Reference

*/ virtual Model::CreateAliasOutcome CreateAlias(const Model::CreateAliasRequest& request) const; /** * A Callable wrapper for CreateAlias that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateAliasOutcomeCallable CreateAliasCallable(const CreateAliasRequestT& request) const { return SubmitCallable(&WorkMailClient::CreateAlias, request); } /** * An Async wrapper for CreateAlias that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateAliasAsync(const CreateAliasRequestT& request, const CreateAliasResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CreateAlias, request, handler, context); } /** *

Creates an AvailabilityConfiguration for the given WorkMail * organization and domain.

See Also:

AWS * API Reference

*/ virtual Model::CreateAvailabilityConfigurationOutcome CreateAvailabilityConfiguration(const Model::CreateAvailabilityConfigurationRequest& request) const; /** * A Callable wrapper for CreateAvailabilityConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateAvailabilityConfigurationOutcomeCallable CreateAvailabilityConfigurationCallable(const CreateAvailabilityConfigurationRequestT& request) const { return SubmitCallable(&WorkMailClient::CreateAvailabilityConfiguration, request); } /** * An Async wrapper for CreateAvailabilityConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateAvailabilityConfigurationAsync(const CreateAvailabilityConfigurationRequestT& request, const CreateAvailabilityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CreateAvailabilityConfiguration, request, handler, context); } /** *

Creates a group that can be used in WorkMail by calling the * RegisterToWorkMail operation.

See Also:

AWS * API Reference

*/ virtual Model::CreateGroupOutcome CreateGroup(const Model::CreateGroupRequest& request) const; /** * A Callable wrapper for CreateGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateGroupOutcomeCallable CreateGroupCallable(const CreateGroupRequestT& request) const { return SubmitCallable(&WorkMailClient::CreateGroup, request); } /** * An Async wrapper for CreateGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateGroupAsync(const CreateGroupRequestT& request, const CreateGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CreateGroup, request, handler, context); } /** *

Creates an impersonation role for the given WorkMail organization.

* Idempotency ensures that an API request completes no more than one time. * With an idempotent request, if the original request completes successfully, any * subsequent retries also complete successfully without performing any further * actions.

See Also:

AWS * API Reference

*/ virtual Model::CreateImpersonationRoleOutcome CreateImpersonationRole(const Model::CreateImpersonationRoleRequest& request) const; /** * A Callable wrapper for CreateImpersonationRole that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateImpersonationRoleOutcomeCallable CreateImpersonationRoleCallable(const CreateImpersonationRoleRequestT& request) const { return SubmitCallable(&WorkMailClient::CreateImpersonationRole, request); } /** * An Async wrapper for CreateImpersonationRole that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateImpersonationRoleAsync(const CreateImpersonationRoleRequestT& request, const CreateImpersonationRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CreateImpersonationRole, request, handler, context); } /** *

Creates a new mobile device access rule for the specified WorkMail * organization.

See Also:

AWS * API Reference

*/ virtual Model::CreateMobileDeviceAccessRuleOutcome CreateMobileDeviceAccessRule(const Model::CreateMobileDeviceAccessRuleRequest& request) const; /** * A Callable wrapper for CreateMobileDeviceAccessRule that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateMobileDeviceAccessRuleOutcomeCallable CreateMobileDeviceAccessRuleCallable(const CreateMobileDeviceAccessRuleRequestT& request) const { return SubmitCallable(&WorkMailClient::CreateMobileDeviceAccessRule, request); } /** * An Async wrapper for CreateMobileDeviceAccessRule that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateMobileDeviceAccessRuleAsync(const CreateMobileDeviceAccessRuleRequestT& request, const CreateMobileDeviceAccessRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CreateMobileDeviceAccessRule, request, handler, context); } /** *

Creates a new WorkMail organization. Optionally, you can choose to associate * an existing AWS Directory Service directory with your organization. If an AWS * Directory Service directory ID is specified, the organization alias must match * the directory alias. If you choose not to associate an existing directory with * your organization, then we create a new WorkMail directory for you. For more * information, see Adding * an organization in the WorkMail Administrator Guide.

You can * associate multiple email domains with an organization, then choose your default * email domain from the WorkMail console. You can also associate a domain that is * managed in an Amazon Route 53 public hosted zone. For more information, see Adding * a domain and Choosing * the default domain in the WorkMail Administrator Guide.

*

Optionally, you can use a customer managed key from AWS Key Management * Service (AWS KMS) to encrypt email for your organization. If you don't associate * an AWS KMS key, WorkMail creates a default, AWS managed key for * you.

See Also:

AWS * API Reference

*/ virtual Model::CreateOrganizationOutcome CreateOrganization(const Model::CreateOrganizationRequest& request) const; /** * A Callable wrapper for CreateOrganization that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateOrganizationOutcomeCallable CreateOrganizationCallable(const CreateOrganizationRequestT& request) const { return SubmitCallable(&WorkMailClient::CreateOrganization, request); } /** * An Async wrapper for CreateOrganization that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateOrganizationAsync(const CreateOrganizationRequestT& request, const CreateOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CreateOrganization, request, handler, context); } /** *

Creates a new WorkMail resource.

See Also:

AWS * API Reference

*/ virtual Model::CreateResourceOutcome CreateResource(const Model::CreateResourceRequest& request) const; /** * A Callable wrapper for CreateResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateResourceOutcomeCallable CreateResourceCallable(const CreateResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::CreateResource, request); } /** * An Async wrapper for CreateResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateResourceAsync(const CreateResourceRequestT& request, const CreateResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CreateResource, request, handler, context); } /** *

Creates a user who can be used in WorkMail by calling the * RegisterToWorkMail operation.

See Also:

AWS * API Reference

*/ virtual Model::CreateUserOutcome CreateUser(const Model::CreateUserRequest& request) const; /** * A Callable wrapper for CreateUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::CreateUserOutcomeCallable CreateUserCallable(const CreateUserRequestT& request) const { return SubmitCallable(&WorkMailClient::CreateUser, request); } /** * An Async wrapper for CreateUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void CreateUserAsync(const CreateUserRequestT& request, const CreateUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::CreateUser, request, handler, context); } /** *

Deletes an access control rule for the specified WorkMail organization.

*

Deleting already deleted and non-existing rules does not produce an * error. In those cases, the service sends back an HTTP 200 response with an empty * HTTP body.

See Also:

AWS * API Reference

*/ virtual Model::DeleteAccessControlRuleOutcome DeleteAccessControlRule(const Model::DeleteAccessControlRuleRequest& request) const; /** * A Callable wrapper for DeleteAccessControlRule that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteAccessControlRuleOutcomeCallable DeleteAccessControlRuleCallable(const DeleteAccessControlRuleRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteAccessControlRule, request); } /** * An Async wrapper for DeleteAccessControlRule that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteAccessControlRuleAsync(const DeleteAccessControlRuleRequestT& request, const DeleteAccessControlRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteAccessControlRule, request, handler, context); } /** *

Remove one or more specified aliases from a set of aliases for a given * user.

See Also:

AWS * API Reference

*/ virtual Model::DeleteAliasOutcome DeleteAlias(const Model::DeleteAliasRequest& request) const; /** * A Callable wrapper for DeleteAlias that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteAliasOutcomeCallable DeleteAliasCallable(const DeleteAliasRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteAlias, request); } /** * An Async wrapper for DeleteAlias that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteAliasAsync(const DeleteAliasRequestT& request, const DeleteAliasResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteAlias, request, handler, context); } /** *

Deletes the AvailabilityConfiguration for the given WorkMail * organization and domain.

See Also:

AWS * API Reference

*/ virtual Model::DeleteAvailabilityConfigurationOutcome DeleteAvailabilityConfiguration(const Model::DeleteAvailabilityConfigurationRequest& request) const; /** * A Callable wrapper for DeleteAvailabilityConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteAvailabilityConfigurationOutcomeCallable DeleteAvailabilityConfigurationCallable(const DeleteAvailabilityConfigurationRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteAvailabilityConfiguration, request); } /** * An Async wrapper for DeleteAvailabilityConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteAvailabilityConfigurationAsync(const DeleteAvailabilityConfigurationRequestT& request, const DeleteAvailabilityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteAvailabilityConfiguration, request, handler, context); } /** *

Deletes the email monitoring configuration for a specified * organization.

See Also:

AWS * API Reference

*/ virtual Model::DeleteEmailMonitoringConfigurationOutcome DeleteEmailMonitoringConfiguration(const Model::DeleteEmailMonitoringConfigurationRequest& request) const; /** * A Callable wrapper for DeleteEmailMonitoringConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteEmailMonitoringConfigurationOutcomeCallable DeleteEmailMonitoringConfigurationCallable(const DeleteEmailMonitoringConfigurationRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteEmailMonitoringConfiguration, request); } /** * An Async wrapper for DeleteEmailMonitoringConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteEmailMonitoringConfigurationAsync(const DeleteEmailMonitoringConfigurationRequestT& request, const DeleteEmailMonitoringConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteEmailMonitoringConfiguration, request, handler, context); } /** *

Deletes a group from WorkMail.

See Also:

AWS * API Reference

*/ virtual Model::DeleteGroupOutcome DeleteGroup(const Model::DeleteGroupRequest& request) const; /** * A Callable wrapper for DeleteGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteGroupOutcomeCallable DeleteGroupCallable(const DeleteGroupRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteGroup, request); } /** * An Async wrapper for DeleteGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteGroupAsync(const DeleteGroupRequestT& request, const DeleteGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteGroup, request, handler, context); } /** *

Deletes an impersonation role for the given WorkMail * organization.

See Also:

AWS * API Reference

*/ virtual Model::DeleteImpersonationRoleOutcome DeleteImpersonationRole(const Model::DeleteImpersonationRoleRequest& request) const; /** * A Callable wrapper for DeleteImpersonationRole that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteImpersonationRoleOutcomeCallable DeleteImpersonationRoleCallable(const DeleteImpersonationRoleRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteImpersonationRole, request); } /** * An Async wrapper for DeleteImpersonationRole that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteImpersonationRoleAsync(const DeleteImpersonationRoleRequestT& request, const DeleteImpersonationRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteImpersonationRole, request, handler, context); } /** *

Deletes permissions granted to a member (user or group).

See * Also:

AWS * API Reference

*/ virtual Model::DeleteMailboxPermissionsOutcome DeleteMailboxPermissions(const Model::DeleteMailboxPermissionsRequest& request) const; /** * A Callable wrapper for DeleteMailboxPermissions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteMailboxPermissionsOutcomeCallable DeleteMailboxPermissionsCallable(const DeleteMailboxPermissionsRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteMailboxPermissions, request); } /** * An Async wrapper for DeleteMailboxPermissions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteMailboxPermissionsAsync(const DeleteMailboxPermissionsRequestT& request, const DeleteMailboxPermissionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteMailboxPermissions, request, handler, context); } /** *

Deletes the mobile device access override for the given WorkMail * organization, user, and device.

Deleting already deleted and * non-existing overrides does not produce an error. In those cases, the service * sends back an HTTP 200 response with an empty HTTP body.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteMobileDeviceAccessOverrideOutcome DeleteMobileDeviceAccessOverride(const Model::DeleteMobileDeviceAccessOverrideRequest& request) const; /** * A Callable wrapper for DeleteMobileDeviceAccessOverride that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteMobileDeviceAccessOverrideOutcomeCallable DeleteMobileDeviceAccessOverrideCallable(const DeleteMobileDeviceAccessOverrideRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteMobileDeviceAccessOverride, request); } /** * An Async wrapper for DeleteMobileDeviceAccessOverride that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteMobileDeviceAccessOverrideAsync(const DeleteMobileDeviceAccessOverrideRequestT& request, const DeleteMobileDeviceAccessOverrideResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteMobileDeviceAccessOverride, request, handler, context); } /** *

Deletes a mobile device access rule for the specified WorkMail * organization.

Deleting already deleted and non-existing rules does * not produce an error. In those cases, the service sends back an HTTP 200 * response with an empty HTTP body.

See Also:

AWS * API Reference

*/ virtual Model::DeleteMobileDeviceAccessRuleOutcome DeleteMobileDeviceAccessRule(const Model::DeleteMobileDeviceAccessRuleRequest& request) const; /** * A Callable wrapper for DeleteMobileDeviceAccessRule that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteMobileDeviceAccessRuleOutcomeCallable DeleteMobileDeviceAccessRuleCallable(const DeleteMobileDeviceAccessRuleRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteMobileDeviceAccessRule, request); } /** * An Async wrapper for DeleteMobileDeviceAccessRule that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteMobileDeviceAccessRuleAsync(const DeleteMobileDeviceAccessRuleRequestT& request, const DeleteMobileDeviceAccessRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteMobileDeviceAccessRule, request, handler, context); } /** *

Deletes an WorkMail organization and all underlying AWS resources managed by * WorkMail as part of the organization. You can choose whether to delete the * associated directory. For more information, see Removing * an organization in the WorkMail Administrator Guide.

See * Also:

AWS * API Reference

*/ virtual Model::DeleteOrganizationOutcome DeleteOrganization(const Model::DeleteOrganizationRequest& request) const; /** * A Callable wrapper for DeleteOrganization that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteOrganizationOutcomeCallable DeleteOrganizationCallable(const DeleteOrganizationRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteOrganization, request); } /** * An Async wrapper for DeleteOrganization that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteOrganizationAsync(const DeleteOrganizationRequestT& request, const DeleteOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteOrganization, request, handler, context); } /** *

Deletes the specified resource.

See Also:

AWS * API Reference

*/ virtual Model::DeleteResourceOutcome DeleteResource(const Model::DeleteResourceRequest& request) const; /** * A Callable wrapper for DeleteResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteResourceOutcomeCallable DeleteResourceCallable(const DeleteResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteResource, request); } /** * An Async wrapper for DeleteResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteResourceAsync(const DeleteResourceRequestT& request, const DeleteResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteResource, request, handler, context); } /** *

Deletes the specified retention policy from the specified * organization.

See Also:

AWS * API Reference

*/ virtual Model::DeleteRetentionPolicyOutcome DeleteRetentionPolicy(const Model::DeleteRetentionPolicyRequest& request) const; /** * A Callable wrapper for DeleteRetentionPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteRetentionPolicyOutcomeCallable DeleteRetentionPolicyCallable(const DeleteRetentionPolicyRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteRetentionPolicy, request); } /** * An Async wrapper for DeleteRetentionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteRetentionPolicyAsync(const DeleteRetentionPolicyRequestT& request, const DeleteRetentionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteRetentionPolicy, request, handler, context); } /** *

Deletes a user from WorkMail and all subsequent systems. Before you can * delete a user, the user state must be DISABLED. Use the * DescribeUser action to confirm the user state.

Deleting a user is * permanent and cannot be undone. WorkMail archives user mailboxes for 30 days * before they are permanently removed.

See Also:

AWS * API Reference

*/ virtual Model::DeleteUserOutcome DeleteUser(const Model::DeleteUserRequest& request) const; /** * A Callable wrapper for DeleteUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeleteUserOutcomeCallable DeleteUserCallable(const DeleteUserRequestT& request) const { return SubmitCallable(&WorkMailClient::DeleteUser, request); } /** * An Async wrapper for DeleteUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeleteUserAsync(const DeleteUserRequestT& request, const DeleteUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeleteUser, request, handler, context); } /** *

Mark a user, group, or resource as no longer used in WorkMail. This action * disassociates the mailbox and schedules it for clean-up. WorkMail keeps * mailboxes for 30 days before they are permanently removed. The functionality in * the console is Disable.

See Also:

AWS * API Reference

*/ virtual Model::DeregisterFromWorkMailOutcome DeregisterFromWorkMail(const Model::DeregisterFromWorkMailRequest& request) const; /** * A Callable wrapper for DeregisterFromWorkMail that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeregisterFromWorkMailOutcomeCallable DeregisterFromWorkMailCallable(const DeregisterFromWorkMailRequestT& request) const { return SubmitCallable(&WorkMailClient::DeregisterFromWorkMail, request); } /** * An Async wrapper for DeregisterFromWorkMail that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeregisterFromWorkMailAsync(const DeregisterFromWorkMailRequestT& request, const DeregisterFromWorkMailResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeregisterFromWorkMail, request, handler, context); } /** *

Removes a domain from WorkMail, stops email routing to WorkMail, and removes * the authorization allowing WorkMail use. SES keeps the domain because other * applications may use it. You must first remove any email address used by * WorkMail entities before you remove the domain.

See Also:

AWS * API Reference

*/ virtual Model::DeregisterMailDomainOutcome DeregisterMailDomain(const Model::DeregisterMailDomainRequest& request) const; /** * A Callable wrapper for DeregisterMailDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DeregisterMailDomainOutcomeCallable DeregisterMailDomainCallable(const DeregisterMailDomainRequestT& request) const { return SubmitCallable(&WorkMailClient::DeregisterMailDomain, request); } /** * An Async wrapper for DeregisterMailDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DeregisterMailDomainAsync(const DeregisterMailDomainRequestT& request, const DeregisterMailDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DeregisterMailDomain, request, handler, context); } /** *

Describes the current email monitoring configuration for a specified * organization.

See Also:

AWS * API Reference

*/ virtual Model::DescribeEmailMonitoringConfigurationOutcome DescribeEmailMonitoringConfiguration(const Model::DescribeEmailMonitoringConfigurationRequest& request) const; /** * A Callable wrapper for DescribeEmailMonitoringConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeEmailMonitoringConfigurationOutcomeCallable DescribeEmailMonitoringConfigurationCallable(const DescribeEmailMonitoringConfigurationRequestT& request) const { return SubmitCallable(&WorkMailClient::DescribeEmailMonitoringConfiguration, request); } /** * An Async wrapper for DescribeEmailMonitoringConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeEmailMonitoringConfigurationAsync(const DescribeEmailMonitoringConfigurationRequestT& request, const DescribeEmailMonitoringConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DescribeEmailMonitoringConfiguration, request, handler, context); } /** *

Returns the data available for the group.

See Also:

AWS * API Reference

*/ virtual Model::DescribeGroupOutcome DescribeGroup(const Model::DescribeGroupRequest& request) const; /** * A Callable wrapper for DescribeGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeGroupOutcomeCallable DescribeGroupCallable(const DescribeGroupRequestT& request) const { return SubmitCallable(&WorkMailClient::DescribeGroup, request); } /** * An Async wrapper for DescribeGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeGroupAsync(const DescribeGroupRequestT& request, const DescribeGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DescribeGroup, request, handler, context); } /** *

Lists the settings in a DMARC policy for a specified * organization.

See Also:

AWS * API Reference

*/ virtual Model::DescribeInboundDmarcSettingsOutcome DescribeInboundDmarcSettings(const Model::DescribeInboundDmarcSettingsRequest& request) const; /** * A Callable wrapper for DescribeInboundDmarcSettings that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeInboundDmarcSettingsOutcomeCallable DescribeInboundDmarcSettingsCallable(const DescribeInboundDmarcSettingsRequestT& request) const { return SubmitCallable(&WorkMailClient::DescribeInboundDmarcSettings, request); } /** * An Async wrapper for DescribeInboundDmarcSettings that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeInboundDmarcSettingsAsync(const DescribeInboundDmarcSettingsRequestT& request, const DescribeInboundDmarcSettingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DescribeInboundDmarcSettings, request, handler, context); } /** *

Describes the current status of a mailbox export job.

See * Also:

AWS * API Reference

*/ virtual Model::DescribeMailboxExportJobOutcome DescribeMailboxExportJob(const Model::DescribeMailboxExportJobRequest& request) const; /** * A Callable wrapper for DescribeMailboxExportJob that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeMailboxExportJobOutcomeCallable DescribeMailboxExportJobCallable(const DescribeMailboxExportJobRequestT& request) const { return SubmitCallable(&WorkMailClient::DescribeMailboxExportJob, request); } /** * An Async wrapper for DescribeMailboxExportJob that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeMailboxExportJobAsync(const DescribeMailboxExportJobRequestT& request, const DescribeMailboxExportJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DescribeMailboxExportJob, request, handler, context); } /** *

Provides more information regarding a given organization based on its * identifier.

See Also:

AWS * API Reference

*/ virtual Model::DescribeOrganizationOutcome DescribeOrganization(const Model::DescribeOrganizationRequest& request) const; /** * A Callable wrapper for DescribeOrganization that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeOrganizationOutcomeCallable DescribeOrganizationCallable(const DescribeOrganizationRequestT& request) const { return SubmitCallable(&WorkMailClient::DescribeOrganization, request); } /** * An Async wrapper for DescribeOrganization that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeOrganizationAsync(const DescribeOrganizationRequestT& request, const DescribeOrganizationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DescribeOrganization, request, handler, context); } /** *

Returns the data available for the resource.

See Also:

AWS * API Reference

*/ virtual Model::DescribeResourceOutcome DescribeResource(const Model::DescribeResourceRequest& request) const; /** * A Callable wrapper for DescribeResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeResourceOutcomeCallable DescribeResourceCallable(const DescribeResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::DescribeResource, request); } /** * An Async wrapper for DescribeResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeResourceAsync(const DescribeResourceRequestT& request, const DescribeResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DescribeResource, request, handler, context); } /** *

Provides information regarding the user.

See Also:

AWS * API Reference

*/ virtual Model::DescribeUserOutcome DescribeUser(const Model::DescribeUserRequest& request) const; /** * A Callable wrapper for DescribeUser that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DescribeUserOutcomeCallable DescribeUserCallable(const DescribeUserRequestT& request) const { return SubmitCallable(&WorkMailClient::DescribeUser, request); } /** * An Async wrapper for DescribeUser that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DescribeUserAsync(const DescribeUserRequestT& request, const DescribeUserResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DescribeUser, request, handler, context); } /** *

Removes a member from the resource's set of delegates.

See * Also:

AWS * API Reference

*/ virtual Model::DisassociateDelegateFromResourceOutcome DisassociateDelegateFromResource(const Model::DisassociateDelegateFromResourceRequest& request) const; /** * A Callable wrapper for DisassociateDelegateFromResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisassociateDelegateFromResourceOutcomeCallable DisassociateDelegateFromResourceCallable(const DisassociateDelegateFromResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::DisassociateDelegateFromResource, request); } /** * An Async wrapper for DisassociateDelegateFromResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisassociateDelegateFromResourceAsync(const DisassociateDelegateFromResourceRequestT& request, const DisassociateDelegateFromResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DisassociateDelegateFromResource, request, handler, context); } /** *

Removes a member from a group.

See Also:

AWS * API Reference

*/ virtual Model::DisassociateMemberFromGroupOutcome DisassociateMemberFromGroup(const Model::DisassociateMemberFromGroupRequest& request) const; /** * A Callable wrapper for DisassociateMemberFromGroup that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::DisassociateMemberFromGroupOutcomeCallable DisassociateMemberFromGroupCallable(const DisassociateMemberFromGroupRequestT& request) const { return SubmitCallable(&WorkMailClient::DisassociateMemberFromGroup, request); } /** * An Async wrapper for DisassociateMemberFromGroup that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void DisassociateMemberFromGroupAsync(const DisassociateMemberFromGroupRequestT& request, const DisassociateMemberFromGroupResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::DisassociateMemberFromGroup, request, handler, context); } /** *

Gets the effects of an organization's access control rules as they apply to a * specified IPv4 address, access protocol action, and user ID or impersonation * role ID. You must provide either the user ID or impersonation role ID. * Impersonation role ID can only be used with Action EWS.

See Also:

* AWS * API Reference

*/ virtual Model::GetAccessControlEffectOutcome GetAccessControlEffect(const Model::GetAccessControlEffectRequest& request) const; /** * A Callable wrapper for GetAccessControlEffect that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetAccessControlEffectOutcomeCallable GetAccessControlEffectCallable(const GetAccessControlEffectRequestT& request) const { return SubmitCallable(&WorkMailClient::GetAccessControlEffect, request); } /** * An Async wrapper for GetAccessControlEffect that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetAccessControlEffectAsync(const GetAccessControlEffectRequestT& request, const GetAccessControlEffectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::GetAccessControlEffect, request, handler, context); } /** *

Gets the default retention policy details for the specified * organization.

See Also:

AWS * API Reference

*/ virtual Model::GetDefaultRetentionPolicyOutcome GetDefaultRetentionPolicy(const Model::GetDefaultRetentionPolicyRequest& request) const; /** * A Callable wrapper for GetDefaultRetentionPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetDefaultRetentionPolicyOutcomeCallable GetDefaultRetentionPolicyCallable(const GetDefaultRetentionPolicyRequestT& request) const { return SubmitCallable(&WorkMailClient::GetDefaultRetentionPolicy, request); } /** * An Async wrapper for GetDefaultRetentionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetDefaultRetentionPolicyAsync(const GetDefaultRetentionPolicyRequestT& request, const GetDefaultRetentionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::GetDefaultRetentionPolicy, request, handler, context); } /** *

Gets the impersonation role details for the given WorkMail * organization.

See Also:

AWS * API Reference

*/ virtual Model::GetImpersonationRoleOutcome GetImpersonationRole(const Model::GetImpersonationRoleRequest& request) const; /** * A Callable wrapper for GetImpersonationRole that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetImpersonationRoleOutcomeCallable GetImpersonationRoleCallable(const GetImpersonationRoleRequestT& request) const { return SubmitCallable(&WorkMailClient::GetImpersonationRole, request); } /** * An Async wrapper for GetImpersonationRole that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetImpersonationRoleAsync(const GetImpersonationRoleRequestT& request, const GetImpersonationRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::GetImpersonationRole, request, handler, context); } /** *

Tests whether the given impersonation role can impersonate a target * user.

See Also:

AWS * API Reference

*/ virtual Model::GetImpersonationRoleEffectOutcome GetImpersonationRoleEffect(const Model::GetImpersonationRoleEffectRequest& request) const; /** * A Callable wrapper for GetImpersonationRoleEffect that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetImpersonationRoleEffectOutcomeCallable GetImpersonationRoleEffectCallable(const GetImpersonationRoleEffectRequestT& request) const { return SubmitCallable(&WorkMailClient::GetImpersonationRoleEffect, request); } /** * An Async wrapper for GetImpersonationRoleEffect that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetImpersonationRoleEffectAsync(const GetImpersonationRoleEffectRequestT& request, const GetImpersonationRoleEffectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::GetImpersonationRoleEffect, request, handler, context); } /** *

Gets details for a mail domain, including domain records required to * configure your domain with recommended security.

See Also:

AWS * API Reference

*/ virtual Model::GetMailDomainOutcome GetMailDomain(const Model::GetMailDomainRequest& request) const; /** * A Callable wrapper for GetMailDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetMailDomainOutcomeCallable GetMailDomainCallable(const GetMailDomainRequestT& request) const { return SubmitCallable(&WorkMailClient::GetMailDomain, request); } /** * An Async wrapper for GetMailDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetMailDomainAsync(const GetMailDomainRequestT& request, const GetMailDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::GetMailDomain, request, handler, context); } /** *

Requests a user's mailbox details for a specified organization and * user.

See Also:

AWS * API Reference

*/ virtual Model::GetMailboxDetailsOutcome GetMailboxDetails(const Model::GetMailboxDetailsRequest& request) const; /** * A Callable wrapper for GetMailboxDetails that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetMailboxDetailsOutcomeCallable GetMailboxDetailsCallable(const GetMailboxDetailsRequestT& request) const { return SubmitCallable(&WorkMailClient::GetMailboxDetails, request); } /** * An Async wrapper for GetMailboxDetails that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetMailboxDetailsAsync(const GetMailboxDetailsRequestT& request, const GetMailboxDetailsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::GetMailboxDetails, request, handler, context); } /** *

Simulates the effect of the mobile device access rules for the given * attributes of a sample access event. Use this method to test the effects of the * current set of mobile device access rules for the WorkMail organization for a * particular user's attributes.

See Also:

AWS * API Reference

*/ virtual Model::GetMobileDeviceAccessEffectOutcome GetMobileDeviceAccessEffect(const Model::GetMobileDeviceAccessEffectRequest& request) const; /** * A Callable wrapper for GetMobileDeviceAccessEffect that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetMobileDeviceAccessEffectOutcomeCallable GetMobileDeviceAccessEffectCallable(const GetMobileDeviceAccessEffectRequestT& request) const { return SubmitCallable(&WorkMailClient::GetMobileDeviceAccessEffect, request); } /** * An Async wrapper for GetMobileDeviceAccessEffect that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetMobileDeviceAccessEffectAsync(const GetMobileDeviceAccessEffectRequestT& request, const GetMobileDeviceAccessEffectResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::GetMobileDeviceAccessEffect, request, handler, context); } /** *

Gets the mobile device access override for the given WorkMail organization, * user, and device.

See Also:

AWS * API Reference

*/ virtual Model::GetMobileDeviceAccessOverrideOutcome GetMobileDeviceAccessOverride(const Model::GetMobileDeviceAccessOverrideRequest& request) const; /** * A Callable wrapper for GetMobileDeviceAccessOverride that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::GetMobileDeviceAccessOverrideOutcomeCallable GetMobileDeviceAccessOverrideCallable(const GetMobileDeviceAccessOverrideRequestT& request) const { return SubmitCallable(&WorkMailClient::GetMobileDeviceAccessOverride, request); } /** * An Async wrapper for GetMobileDeviceAccessOverride that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void GetMobileDeviceAccessOverrideAsync(const GetMobileDeviceAccessOverrideRequestT& request, const GetMobileDeviceAccessOverrideResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::GetMobileDeviceAccessOverride, request, handler, context); } /** *

Lists the access control rules for the specified organization.

See * Also:

AWS * API Reference

*/ virtual Model::ListAccessControlRulesOutcome ListAccessControlRules(const Model::ListAccessControlRulesRequest& request) const; /** * A Callable wrapper for ListAccessControlRules that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListAccessControlRulesOutcomeCallable ListAccessControlRulesCallable(const ListAccessControlRulesRequestT& request) const { return SubmitCallable(&WorkMailClient::ListAccessControlRules, request); } /** * An Async wrapper for ListAccessControlRules that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListAccessControlRulesAsync(const ListAccessControlRulesRequestT& request, const ListAccessControlRulesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListAccessControlRules, request, handler, context); } /** *

Creates a paginated call to list the aliases associated with a given * entity.

See Also:

AWS * API Reference

*/ virtual Model::ListAliasesOutcome ListAliases(const Model::ListAliasesRequest& request) const; /** * A Callable wrapper for ListAliases that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListAliasesOutcomeCallable ListAliasesCallable(const ListAliasesRequestT& request) const { return SubmitCallable(&WorkMailClient::ListAliases, request); } /** * An Async wrapper for ListAliases that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListAliasesAsync(const ListAliasesRequestT& request, const ListAliasesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListAliases, request, handler, context); } /** *

List all the AvailabilityConfiguration's for the given WorkMail * organization.

See Also:

AWS * API Reference

*/ virtual Model::ListAvailabilityConfigurationsOutcome ListAvailabilityConfigurations(const Model::ListAvailabilityConfigurationsRequest& request) const; /** * A Callable wrapper for ListAvailabilityConfigurations that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListAvailabilityConfigurationsOutcomeCallable ListAvailabilityConfigurationsCallable(const ListAvailabilityConfigurationsRequestT& request) const { return SubmitCallable(&WorkMailClient::ListAvailabilityConfigurations, request); } /** * An Async wrapper for ListAvailabilityConfigurations that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListAvailabilityConfigurationsAsync(const ListAvailabilityConfigurationsRequestT& request, const ListAvailabilityConfigurationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListAvailabilityConfigurations, request, handler, context); } /** *

Returns an overview of the members of a group. Users and groups can be * members of a group.

See Also:

AWS * API Reference

*/ virtual Model::ListGroupMembersOutcome ListGroupMembers(const Model::ListGroupMembersRequest& request) const; /** * A Callable wrapper for ListGroupMembers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListGroupMembersOutcomeCallable ListGroupMembersCallable(const ListGroupMembersRequestT& request) const { return SubmitCallable(&WorkMailClient::ListGroupMembers, request); } /** * An Async wrapper for ListGroupMembers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListGroupMembersAsync(const ListGroupMembersRequestT& request, const ListGroupMembersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListGroupMembers, request, handler, context); } /** *

Returns summaries of the organization's groups.

See Also:

AWS * API Reference

*/ virtual Model::ListGroupsOutcome ListGroups(const Model::ListGroupsRequest& request) const; /** * A Callable wrapper for ListGroups that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListGroupsOutcomeCallable ListGroupsCallable(const ListGroupsRequestT& request) const { return SubmitCallable(&WorkMailClient::ListGroups, request); } /** * An Async wrapper for ListGroups that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListGroupsAsync(const ListGroupsRequestT& request, const ListGroupsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListGroups, request, handler, context); } /** *

Lists all the impersonation roles for the given WorkMail * organization.

See Also:

AWS * API Reference

*/ virtual Model::ListImpersonationRolesOutcome ListImpersonationRoles(const Model::ListImpersonationRolesRequest& request) const; /** * A Callable wrapper for ListImpersonationRoles that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListImpersonationRolesOutcomeCallable ListImpersonationRolesCallable(const ListImpersonationRolesRequestT& request) const { return SubmitCallable(&WorkMailClient::ListImpersonationRoles, request); } /** * An Async wrapper for ListImpersonationRoles that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListImpersonationRolesAsync(const ListImpersonationRolesRequestT& request, const ListImpersonationRolesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListImpersonationRoles, request, handler, context); } /** *

Lists the mail domains in a given WorkMail organization.

See * Also:

AWS * API Reference

*/ virtual Model::ListMailDomainsOutcome ListMailDomains(const Model::ListMailDomainsRequest& request) const; /** * A Callable wrapper for ListMailDomains that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListMailDomainsOutcomeCallable ListMailDomainsCallable(const ListMailDomainsRequestT& request) const { return SubmitCallable(&WorkMailClient::ListMailDomains, request); } /** * An Async wrapper for ListMailDomains that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListMailDomainsAsync(const ListMailDomainsRequestT& request, const ListMailDomainsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListMailDomains, request, handler, context); } /** *

Lists the mailbox export jobs started for the specified organization within * the last seven days.

See Also:

AWS * API Reference

*/ virtual Model::ListMailboxExportJobsOutcome ListMailboxExportJobs(const Model::ListMailboxExportJobsRequest& request) const; /** * A Callable wrapper for ListMailboxExportJobs that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListMailboxExportJobsOutcomeCallable ListMailboxExportJobsCallable(const ListMailboxExportJobsRequestT& request) const { return SubmitCallable(&WorkMailClient::ListMailboxExportJobs, request); } /** * An Async wrapper for ListMailboxExportJobs that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListMailboxExportJobsAsync(const ListMailboxExportJobsRequestT& request, const ListMailboxExportJobsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListMailboxExportJobs, request, handler, context); } /** *

Lists the mailbox permissions associated with a user, group, or resource * mailbox.

See Also:

AWS * API Reference

*/ virtual Model::ListMailboxPermissionsOutcome ListMailboxPermissions(const Model::ListMailboxPermissionsRequest& request) const; /** * A Callable wrapper for ListMailboxPermissions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListMailboxPermissionsOutcomeCallable ListMailboxPermissionsCallable(const ListMailboxPermissionsRequestT& request) const { return SubmitCallable(&WorkMailClient::ListMailboxPermissions, request); } /** * An Async wrapper for ListMailboxPermissions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListMailboxPermissionsAsync(const ListMailboxPermissionsRequestT& request, const ListMailboxPermissionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListMailboxPermissions, request, handler, context); } /** *

Lists all the mobile device access overrides for any given combination of * WorkMail organization, user, or device.

See Also:

AWS * API Reference

*/ virtual Model::ListMobileDeviceAccessOverridesOutcome ListMobileDeviceAccessOverrides(const Model::ListMobileDeviceAccessOverridesRequest& request) const; /** * A Callable wrapper for ListMobileDeviceAccessOverrides that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListMobileDeviceAccessOverridesOutcomeCallable ListMobileDeviceAccessOverridesCallable(const ListMobileDeviceAccessOverridesRequestT& request) const { return SubmitCallable(&WorkMailClient::ListMobileDeviceAccessOverrides, request); } /** * An Async wrapper for ListMobileDeviceAccessOverrides that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListMobileDeviceAccessOverridesAsync(const ListMobileDeviceAccessOverridesRequestT& request, const ListMobileDeviceAccessOverridesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListMobileDeviceAccessOverrides, request, handler, context); } /** *

Lists the mobile device access rules for the specified WorkMail * organization.

See Also:

AWS * API Reference

*/ virtual Model::ListMobileDeviceAccessRulesOutcome ListMobileDeviceAccessRules(const Model::ListMobileDeviceAccessRulesRequest& request) const; /** * A Callable wrapper for ListMobileDeviceAccessRules that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListMobileDeviceAccessRulesOutcomeCallable ListMobileDeviceAccessRulesCallable(const ListMobileDeviceAccessRulesRequestT& request) const { return SubmitCallable(&WorkMailClient::ListMobileDeviceAccessRules, request); } /** * An Async wrapper for ListMobileDeviceAccessRules that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListMobileDeviceAccessRulesAsync(const ListMobileDeviceAccessRulesRequestT& request, const ListMobileDeviceAccessRulesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListMobileDeviceAccessRules, request, handler, context); } /** *

Returns summaries of the customer's organizations.

See Also:

* AWS * API Reference

*/ virtual Model::ListOrganizationsOutcome ListOrganizations(const Model::ListOrganizationsRequest& request) const; /** * A Callable wrapper for ListOrganizations that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListOrganizationsOutcomeCallable ListOrganizationsCallable(const ListOrganizationsRequestT& request) const { return SubmitCallable(&WorkMailClient::ListOrganizations, request); } /** * An Async wrapper for ListOrganizations that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListOrganizationsAsync(const ListOrganizationsRequestT& request, const ListOrganizationsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListOrganizations, request, handler, context); } /** *

Lists the delegates associated with a resource. Users and groups can be * resource delegates and answer requests on behalf of the resource.

See * Also:

AWS * API Reference

*/ virtual Model::ListResourceDelegatesOutcome ListResourceDelegates(const Model::ListResourceDelegatesRequest& request) const; /** * A Callable wrapper for ListResourceDelegates that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListResourceDelegatesOutcomeCallable ListResourceDelegatesCallable(const ListResourceDelegatesRequestT& request) const { return SubmitCallable(&WorkMailClient::ListResourceDelegates, request); } /** * An Async wrapper for ListResourceDelegates that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListResourceDelegatesAsync(const ListResourceDelegatesRequestT& request, const ListResourceDelegatesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListResourceDelegates, request, handler, context); } /** *

Returns summaries of the organization's resources.

See Also:

* AWS * API Reference

*/ virtual Model::ListResourcesOutcome ListResources(const Model::ListResourcesRequest& request) const; /** * A Callable wrapper for ListResources that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListResourcesOutcomeCallable ListResourcesCallable(const ListResourcesRequestT& request) const { return SubmitCallable(&WorkMailClient::ListResources, request); } /** * An Async wrapper for ListResources that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListResourcesAsync(const ListResourcesRequestT& request, const ListResourcesResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListResources, request, handler, context); } /** *

Lists the tags applied to an WorkMail organization resource.

See * Also:

AWS * API Reference

*/ virtual Model::ListTagsForResourceOutcome ListTagsForResource(const Model::ListTagsForResourceRequest& request) const; /** * A Callable wrapper for ListTagsForResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListTagsForResourceOutcomeCallable ListTagsForResourceCallable(const ListTagsForResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::ListTagsForResource, request); } /** * An Async wrapper for ListTagsForResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListTagsForResourceAsync(const ListTagsForResourceRequestT& request, const ListTagsForResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListTagsForResource, request, handler, context); } /** *

Returns summaries of the organization's users.

See Also:

AWS * API Reference

*/ virtual Model::ListUsersOutcome ListUsers(const Model::ListUsersRequest& request) const; /** * A Callable wrapper for ListUsers that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ListUsersOutcomeCallable ListUsersCallable(const ListUsersRequestT& request) const { return SubmitCallable(&WorkMailClient::ListUsers, request); } /** * An Async wrapper for ListUsers that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ListUsersAsync(const ListUsersRequestT& request, const ListUsersResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ListUsers, request, handler, context); } /** *

Adds a new access control rule for the specified organization. The rule * allows or denies access to the organization for the specified IPv4 addresses, * access protocol actions, user IDs and impersonation IDs. Adding a new rule with * the same name as an existing rule replaces the older rule.

See * Also:

AWS * API Reference

*/ virtual Model::PutAccessControlRuleOutcome PutAccessControlRule(const Model::PutAccessControlRuleRequest& request) const; /** * A Callable wrapper for PutAccessControlRule that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutAccessControlRuleOutcomeCallable PutAccessControlRuleCallable(const PutAccessControlRuleRequestT& request) const { return SubmitCallable(&WorkMailClient::PutAccessControlRule, request); } /** * An Async wrapper for PutAccessControlRule that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutAccessControlRuleAsync(const PutAccessControlRuleRequestT& request, const PutAccessControlRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::PutAccessControlRule, request, handler, context); } /** *

Creates or updates the email monitoring configuration for a specified * organization.

See Also:

AWS * API Reference

*/ virtual Model::PutEmailMonitoringConfigurationOutcome PutEmailMonitoringConfiguration(const Model::PutEmailMonitoringConfigurationRequest& request) const; /** * A Callable wrapper for PutEmailMonitoringConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutEmailMonitoringConfigurationOutcomeCallable PutEmailMonitoringConfigurationCallable(const PutEmailMonitoringConfigurationRequestT& request) const { return SubmitCallable(&WorkMailClient::PutEmailMonitoringConfiguration, request); } /** * An Async wrapper for PutEmailMonitoringConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutEmailMonitoringConfigurationAsync(const PutEmailMonitoringConfigurationRequestT& request, const PutEmailMonitoringConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::PutEmailMonitoringConfiguration, request, handler, context); } /** *

Enables or disables a DMARC policy for a given organization.

See * Also:

AWS * API Reference

*/ virtual Model::PutInboundDmarcSettingsOutcome PutInboundDmarcSettings(const Model::PutInboundDmarcSettingsRequest& request) const; /** * A Callable wrapper for PutInboundDmarcSettings that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutInboundDmarcSettingsOutcomeCallable PutInboundDmarcSettingsCallable(const PutInboundDmarcSettingsRequestT& request) const { return SubmitCallable(&WorkMailClient::PutInboundDmarcSettings, request); } /** * An Async wrapper for PutInboundDmarcSettings that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutInboundDmarcSettingsAsync(const PutInboundDmarcSettingsRequestT& request, const PutInboundDmarcSettingsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::PutInboundDmarcSettings, request, handler, context); } /** *

Sets permissions for a user, group, or resource. This replaces any * pre-existing permissions.

See Also:

AWS * API Reference

*/ virtual Model::PutMailboxPermissionsOutcome PutMailboxPermissions(const Model::PutMailboxPermissionsRequest& request) const; /** * A Callable wrapper for PutMailboxPermissions that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutMailboxPermissionsOutcomeCallable PutMailboxPermissionsCallable(const PutMailboxPermissionsRequestT& request) const { return SubmitCallable(&WorkMailClient::PutMailboxPermissions, request); } /** * An Async wrapper for PutMailboxPermissions that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutMailboxPermissionsAsync(const PutMailboxPermissionsRequestT& request, const PutMailboxPermissionsResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::PutMailboxPermissions, request, handler, context); } /** *

Creates or updates a mobile device access override for the given WorkMail * organization, user, and device.

See Also:

AWS * API Reference

*/ virtual Model::PutMobileDeviceAccessOverrideOutcome PutMobileDeviceAccessOverride(const Model::PutMobileDeviceAccessOverrideRequest& request) const; /** * A Callable wrapper for PutMobileDeviceAccessOverride that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutMobileDeviceAccessOverrideOutcomeCallable PutMobileDeviceAccessOverrideCallable(const PutMobileDeviceAccessOverrideRequestT& request) const { return SubmitCallable(&WorkMailClient::PutMobileDeviceAccessOverride, request); } /** * An Async wrapper for PutMobileDeviceAccessOverride that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutMobileDeviceAccessOverrideAsync(const PutMobileDeviceAccessOverrideRequestT& request, const PutMobileDeviceAccessOverrideResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::PutMobileDeviceAccessOverride, request, handler, context); } /** *

Puts a retention policy to the specified organization.

See * Also:

AWS * API Reference

*/ virtual Model::PutRetentionPolicyOutcome PutRetentionPolicy(const Model::PutRetentionPolicyRequest& request) const; /** * A Callable wrapper for PutRetentionPolicy that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::PutRetentionPolicyOutcomeCallable PutRetentionPolicyCallable(const PutRetentionPolicyRequestT& request) const { return SubmitCallable(&WorkMailClient::PutRetentionPolicy, request); } /** * An Async wrapper for PutRetentionPolicy that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void PutRetentionPolicyAsync(const PutRetentionPolicyRequestT& request, const PutRetentionPolicyResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::PutRetentionPolicy, request, handler, context); } /** *

Registers a new domain in WorkMail and SES, and configures it for use by * WorkMail. Emails received by SES for this domain are routed to the specified * WorkMail organization, and WorkMail has permanent permission to use the * specified domain for sending your users' emails.

See Also:

AWS * API Reference

*/ virtual Model::RegisterMailDomainOutcome RegisterMailDomain(const Model::RegisterMailDomainRequest& request) const; /** * A Callable wrapper for RegisterMailDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RegisterMailDomainOutcomeCallable RegisterMailDomainCallable(const RegisterMailDomainRequestT& request) const { return SubmitCallable(&WorkMailClient::RegisterMailDomain, request); } /** * An Async wrapper for RegisterMailDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RegisterMailDomainAsync(const RegisterMailDomainRequestT& request, const RegisterMailDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::RegisterMailDomain, request, handler, context); } /** *

Registers an existing and disabled user, group, or resource for WorkMail use * by associating a mailbox and calendaring capabilities. It performs no change if * the user, group, or resource is enabled and fails if the user, group, or * resource is deleted. This operation results in the accumulation of costs. For * more information, see Pricing. The equivalent * console functionality for this operation is Enable.

Users can * either be created by calling the CreateUser API operation or they can be * synchronized from your directory. For more information, see * DeregisterFromWorkMail.

See Also:

AWS * API Reference

*/ virtual Model::RegisterToWorkMailOutcome RegisterToWorkMail(const Model::RegisterToWorkMailRequest& request) const; /** * A Callable wrapper for RegisterToWorkMail that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::RegisterToWorkMailOutcomeCallable RegisterToWorkMailCallable(const RegisterToWorkMailRequestT& request) const { return SubmitCallable(&WorkMailClient::RegisterToWorkMail, request); } /** * An Async wrapper for RegisterToWorkMail that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void RegisterToWorkMailAsync(const RegisterToWorkMailRequestT& request, const RegisterToWorkMailResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::RegisterToWorkMail, request, handler, context); } /** *

Allows the administrator to reset the password for a user.

See * Also:

AWS * API Reference

*/ virtual Model::ResetPasswordOutcome ResetPassword(const Model::ResetPasswordRequest& request) const; /** * A Callable wrapper for ResetPassword that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::ResetPasswordOutcomeCallable ResetPasswordCallable(const ResetPasswordRequestT& request) const { return SubmitCallable(&WorkMailClient::ResetPassword, request); } /** * An Async wrapper for ResetPassword that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void ResetPasswordAsync(const ResetPasswordRequestT& request, const ResetPasswordResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::ResetPassword, request, handler, context); } /** *

Starts a mailbox export job to export MIME-format email messages and calendar * items from the specified mailbox to the specified Amazon Simple Storage Service * (Amazon S3) bucket. For more information, see Exporting * mailbox content in the WorkMail Administrator Guide.

See * Also:

AWS * API Reference

*/ virtual Model::StartMailboxExportJobOutcome StartMailboxExportJob(const Model::StartMailboxExportJobRequest& request) const; /** * A Callable wrapper for StartMailboxExportJob that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::StartMailboxExportJobOutcomeCallable StartMailboxExportJobCallable(const StartMailboxExportJobRequestT& request) const { return SubmitCallable(&WorkMailClient::StartMailboxExportJob, request); } /** * An Async wrapper for StartMailboxExportJob that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void StartMailboxExportJobAsync(const StartMailboxExportJobRequestT& request, const StartMailboxExportJobResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::StartMailboxExportJob, request, handler, context); } /** *

Applies the specified tags to the specified WorkMailorganization * resource.

See Also:

AWS * API Reference

*/ virtual Model::TagResourceOutcome TagResource(const Model::TagResourceRequest& request) const; /** * A Callable wrapper for TagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TagResourceOutcomeCallable TagResourceCallable(const TagResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::TagResource, request); } /** * An Async wrapper for TagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TagResourceAsync(const TagResourceRequestT& request, const TagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::TagResource, request, handler, context); } /** *

Performs a test on an availability provider to ensure that access is allowed. * For EWS, it verifies the provided credentials can be used to successfully log * in. For Lambda, it verifies that the Lambda function can be invoked and that the * resource access policy was configured to deny anonymous access. An anonymous * invocation is one done without providing either a SourceArn or * SourceAccount header.

The request must contain either * one provider definition (EwsProvider or * LambdaProvider) or the DomainName parameter. If the * DomainName parameter is provided, the configuration stored under * the DomainName will be tested.

See Also:

* AWS * API Reference

*/ virtual Model::TestAvailabilityConfigurationOutcome TestAvailabilityConfiguration(const Model::TestAvailabilityConfigurationRequest& request) const; /** * A Callable wrapper for TestAvailabilityConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::TestAvailabilityConfigurationOutcomeCallable TestAvailabilityConfigurationCallable(const TestAvailabilityConfigurationRequestT& request) const { return SubmitCallable(&WorkMailClient::TestAvailabilityConfiguration, request); } /** * An Async wrapper for TestAvailabilityConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void TestAvailabilityConfigurationAsync(const TestAvailabilityConfigurationRequestT& request, const TestAvailabilityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::TestAvailabilityConfiguration, request, handler, context); } /** *

Untags the specified tags from the specified WorkMail organization * resource.

See Also:

AWS * API Reference

*/ virtual Model::UntagResourceOutcome UntagResource(const Model::UntagResourceRequest& request) const; /** * A Callable wrapper for UntagResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UntagResourceOutcomeCallable UntagResourceCallable(const UntagResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::UntagResource, request); } /** * An Async wrapper for UntagResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UntagResourceAsync(const UntagResourceRequestT& request, const UntagResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::UntagResource, request, handler, context); } /** *

Updates an existing AvailabilityConfiguration for the given * WorkMail organization and domain.

See Also:

AWS * API Reference

*/ virtual Model::UpdateAvailabilityConfigurationOutcome UpdateAvailabilityConfiguration(const Model::UpdateAvailabilityConfigurationRequest& request) const; /** * A Callable wrapper for UpdateAvailabilityConfiguration that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateAvailabilityConfigurationOutcomeCallable UpdateAvailabilityConfigurationCallable(const UpdateAvailabilityConfigurationRequestT& request) const { return SubmitCallable(&WorkMailClient::UpdateAvailabilityConfiguration, request); } /** * An Async wrapper for UpdateAvailabilityConfiguration that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateAvailabilityConfigurationAsync(const UpdateAvailabilityConfigurationRequestT& request, const UpdateAvailabilityConfigurationResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::UpdateAvailabilityConfiguration, request, handler, context); } /** *

Updates the default mail domain for an organization. The default mail domain * is used by the WorkMail AWS Console to suggest an email address when enabling a * mail user. You can only have one default domain.

See Also:

AWS * API Reference

*/ virtual Model::UpdateDefaultMailDomainOutcome UpdateDefaultMailDomain(const Model::UpdateDefaultMailDomainRequest& request) const; /** * A Callable wrapper for UpdateDefaultMailDomain that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateDefaultMailDomainOutcomeCallable UpdateDefaultMailDomainCallable(const UpdateDefaultMailDomainRequestT& request) const { return SubmitCallable(&WorkMailClient::UpdateDefaultMailDomain, request); } /** * An Async wrapper for UpdateDefaultMailDomain that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateDefaultMailDomainAsync(const UpdateDefaultMailDomainRequestT& request, const UpdateDefaultMailDomainResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::UpdateDefaultMailDomain, request, handler, context); } /** *

Updates an impersonation role for the given WorkMail * organization.

See Also:

AWS * API Reference

*/ virtual Model::UpdateImpersonationRoleOutcome UpdateImpersonationRole(const Model::UpdateImpersonationRoleRequest& request) const; /** * A Callable wrapper for UpdateImpersonationRole that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateImpersonationRoleOutcomeCallable UpdateImpersonationRoleCallable(const UpdateImpersonationRoleRequestT& request) const { return SubmitCallable(&WorkMailClient::UpdateImpersonationRole, request); } /** * An Async wrapper for UpdateImpersonationRole that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateImpersonationRoleAsync(const UpdateImpersonationRoleRequestT& request, const UpdateImpersonationRoleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::UpdateImpersonationRole, request, handler, context); } /** *

Updates a user's current mailbox quota for a specified organization and * user.

See Also:

AWS * API Reference

*/ virtual Model::UpdateMailboxQuotaOutcome UpdateMailboxQuota(const Model::UpdateMailboxQuotaRequest& request) const; /** * A Callable wrapper for UpdateMailboxQuota that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateMailboxQuotaOutcomeCallable UpdateMailboxQuotaCallable(const UpdateMailboxQuotaRequestT& request) const { return SubmitCallable(&WorkMailClient::UpdateMailboxQuota, request); } /** * An Async wrapper for UpdateMailboxQuota that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateMailboxQuotaAsync(const UpdateMailboxQuotaRequestT& request, const UpdateMailboxQuotaResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::UpdateMailboxQuota, request, handler, context); } /** *

Updates a mobile device access rule for the specified WorkMail * organization.

See Also:

AWS * API Reference

*/ virtual Model::UpdateMobileDeviceAccessRuleOutcome UpdateMobileDeviceAccessRule(const Model::UpdateMobileDeviceAccessRuleRequest& request) const; /** * A Callable wrapper for UpdateMobileDeviceAccessRule that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateMobileDeviceAccessRuleOutcomeCallable UpdateMobileDeviceAccessRuleCallable(const UpdateMobileDeviceAccessRuleRequestT& request) const { return SubmitCallable(&WorkMailClient::UpdateMobileDeviceAccessRule, request); } /** * An Async wrapper for UpdateMobileDeviceAccessRule that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateMobileDeviceAccessRuleAsync(const UpdateMobileDeviceAccessRuleRequestT& request, const UpdateMobileDeviceAccessRuleResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::UpdateMobileDeviceAccessRule, request, handler, context); } /** *

Updates the primary email for a user, group, or resource. The current email * is moved into the list of aliases (or swapped between an existing alias and the * current primary email), and the email provided in the input is promoted as the * primary.

See Also:

AWS * API Reference

*/ virtual Model::UpdatePrimaryEmailAddressOutcome UpdatePrimaryEmailAddress(const Model::UpdatePrimaryEmailAddressRequest& request) const; /** * A Callable wrapper for UpdatePrimaryEmailAddress that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdatePrimaryEmailAddressOutcomeCallable UpdatePrimaryEmailAddressCallable(const UpdatePrimaryEmailAddressRequestT& request) const { return SubmitCallable(&WorkMailClient::UpdatePrimaryEmailAddress, request); } /** * An Async wrapper for UpdatePrimaryEmailAddress that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdatePrimaryEmailAddressAsync(const UpdatePrimaryEmailAddressRequestT& request, const UpdatePrimaryEmailAddressResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::UpdatePrimaryEmailAddress, request, handler, context); } /** *

Updates data for the resource. To have the latest information, it must be * preceded by a DescribeResource call. The dataset in the request should be * the one expected when performing another DescribeResource * call.

See Also:

AWS * API Reference

*/ virtual Model::UpdateResourceOutcome UpdateResource(const Model::UpdateResourceRequest& request) const; /** * A Callable wrapper for UpdateResource that returns a future to the operation so that it can be executed in parallel to other requests. */ template Model::UpdateResourceOutcomeCallable UpdateResourceCallable(const UpdateResourceRequestT& request) const { return SubmitCallable(&WorkMailClient::UpdateResource, request); } /** * An Async wrapper for UpdateResource that queues the request into a thread executor and triggers associated callback when operation has finished. */ template void UpdateResourceAsync(const UpdateResourceRequestT& request, const UpdateResourceResponseReceivedHandler& handler, const std::shared_ptr& context = nullptr) const { return SubmitAsync(&WorkMailClient::UpdateResource, request, handler, context); } void OverrideEndpoint(const Aws::String& endpoint); std::shared_ptr& accessEndpointProvider(); private: friend class Aws::Client::ClientWithAsyncTemplateMethods; void init(const WorkMailClientConfiguration& clientConfiguration); WorkMailClientConfiguration m_clientConfiguration; std::shared_ptr m_executor; std::shared_ptr m_endpointProvider; }; } // namespace WorkMail } // namespace Aws