/*
 * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
 * 
 * Licensed under the Apache License, Version 2.0 (the "License").
 * You may not use this file except in compliance with the License.
 * A copy of the License is located at
 * 
 *  http://aws.amazon.com/apache2.0
 * 
 * or in the "license" file accompanying this file. This file is distributed
 * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
 * express or implied. See the License for the specific language governing
 * permissions and limitations under the License.
 */
/*
 * Do not modify this file. This file is generated from the workmail-2017-10-01.normal.json service model.
 */
using System;
using System.Collections.Generic;
using Amazon.Runtime;
using Amazon.WorkMail.Model;
namespace Amazon.WorkMail
{
    /// 
    /// Interface for accessing 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.
    /// 
    /// 
    public partial interface IAmazonWorkMail : IAmazonService, IDisposable
    {
#if BCL45 || AWS_ASYNC_ENUMERABLES_API
        /// 
        /// Paginators for the service
        /// 
        IWorkMailPaginatorFactory Paginators { get; }
#endif
        
        #region  AssociateDelegateToResource
        /// 
        /// Adds a member (user or group) to the resource's set of delegates.
        /// 
        /// Container for the necessary parameters to execute the AssociateDelegateToResource service method.
        /// 
        /// The response from the AssociateDelegateToResource service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for AssociateDelegateToResource Operation
        AssociateDelegateToResourceResponse AssociateDelegateToResource(AssociateDelegateToResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the AssociateDelegateToResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateDelegateToResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndAssociateDelegateToResource
        ///         operation.
        /// REST API Reference for AssociateDelegateToResource Operation
        IAsyncResult BeginAssociateDelegateToResource(AssociateDelegateToResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  AssociateDelegateToResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginAssociateDelegateToResource.
        /// 
        /// Returns a  AssociateDelegateToResourceResult from WorkMail.
        /// REST API Reference for AssociateDelegateToResource Operation
        AssociateDelegateToResourceResponse EndAssociateDelegateToResource(IAsyncResult asyncResult);
        #endregion
        
        #region  AssociateMemberToGroup
        /// 
        /// Adds a member (user or group) to the group's set.
        /// 
        /// Container for the necessary parameters to execute the AssociateMemberToGroup service method.
        /// 
        /// The response from the AssociateMemberToGroup service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// You can't perform a write operation against a read-only directory.
        /// 
        /// REST API Reference for AssociateMemberToGroup Operation
        AssociateMemberToGroupResponse AssociateMemberToGroup(AssociateMemberToGroupRequest request);
        /// 
        /// Initiates the asynchronous execution of the AssociateMemberToGroup operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssociateMemberToGroup operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndAssociateMemberToGroup
        ///         operation.
        /// REST API Reference for AssociateMemberToGroup Operation
        IAsyncResult BeginAssociateMemberToGroup(AssociateMemberToGroupRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  AssociateMemberToGroup operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginAssociateMemberToGroup.
        /// 
        /// Returns a  AssociateMemberToGroupResult from WorkMail.
        /// REST API Reference for AssociateMemberToGroup Operation
        AssociateMemberToGroupResponse EndAssociateMemberToGroup(IAsyncResult asyncResult);
        #endregion
        
        #region  AssumeImpersonationRole
        /// 
        /// Assumes an impersonation role for the given WorkMail organization. This method returns
        /// an authentication token you can use to make impersonated calls.
        /// 
        /// Container for the necessary parameters to execute the AssumeImpersonationRole service method.
        /// 
        /// The response from the AssumeImpersonationRole service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for AssumeImpersonationRole Operation
        AssumeImpersonationRoleResponse AssumeImpersonationRole(AssumeImpersonationRoleRequest request);
        /// 
        /// Initiates the asynchronous execution of the AssumeImpersonationRole operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the AssumeImpersonationRole operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndAssumeImpersonationRole
        ///         operation.
        /// REST API Reference for AssumeImpersonationRole Operation
        IAsyncResult BeginAssumeImpersonationRole(AssumeImpersonationRoleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  AssumeImpersonationRole operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginAssumeImpersonationRole.
        /// 
        /// Returns a  AssumeImpersonationRoleResult from WorkMail.
        /// REST API Reference for AssumeImpersonationRole Operation
        AssumeImpersonationRoleResponse EndAssumeImpersonationRole(IAsyncResult asyncResult);
        #endregion
        
        #region  CancelMailboxExportJob
        /// 
        /// Cancels a mailbox export job.
        /// 
        ///   
        /// 
        /// If the mailbox export job is near completion, it might not be possible to cancel it.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the CancelMailboxExportJob service method.
        /// 
        /// The response from the CancelMailboxExportJob service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for CancelMailboxExportJob Operation
        CancelMailboxExportJobResponse CancelMailboxExportJob(CancelMailboxExportJobRequest request);
        /// 
        /// Initiates the asynchronous execution of the CancelMailboxExportJob operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CancelMailboxExportJob operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCancelMailboxExportJob
        ///         operation.
        /// REST API Reference for CancelMailboxExportJob Operation
        IAsyncResult BeginCancelMailboxExportJob(CancelMailboxExportJobRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CancelMailboxExportJob operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCancelMailboxExportJob.
        /// 
        /// Returns a  CancelMailboxExportJobResult from WorkMail.
        /// REST API Reference for CancelMailboxExportJob Operation
        CancelMailboxExportJobResponse EndCancelMailboxExportJob(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateAlias
        /// 
        /// Adds an alias to the set of a given member (user or group) of WorkMail.
        /// 
        /// Container for the necessary parameters to execute the CreateAlias service method.
        /// 
        /// The response from the CreateAlias service method, as returned by WorkMail.
        /// 
        /// The email address that you're trying to assign is already created for a different
        /// user, group, or resource.
        /// 
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// The domain specified is not found in your organization.
        /// 
        /// 
        /// After a domain has been added to the organization, it must be verified. The domain
        /// is not yet verified.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for CreateAlias Operation
        CreateAliasResponse CreateAlias(CreateAliasRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateAlias operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateAlias operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateAlias
        ///         operation.
        /// REST API Reference for CreateAlias Operation
        IAsyncResult BeginCreateAlias(CreateAliasRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateAlias operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateAlias.
        /// 
        /// Returns a  CreateAliasResult from WorkMail.
        /// REST API Reference for CreateAlias Operation
        CreateAliasResponse EndCreateAlias(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateAvailabilityConfiguration
        /// 
        /// Creates anAvailabilityConfiguration for the given WorkMail organization
        /// and domain.
        /// 
        /// Container for the necessary parameters to execute the CreateAvailabilityConfiguration service method.
        /// 
        /// The response from the CreateAvailabilityConfiguration service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// The user, group, or resource name isn't unique in WorkMail.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for CreateAvailabilityConfiguration Operation
        CreateAvailabilityConfigurationResponse CreateAvailabilityConfiguration(CreateAvailabilityConfigurationRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateAvailabilityConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateAvailabilityConfiguration operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateAvailabilityConfiguration
        ///         operation.
        /// REST API Reference for CreateAvailabilityConfiguration Operation
        IAsyncResult BeginCreateAvailabilityConfiguration(CreateAvailabilityConfigurationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateAvailabilityConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateAvailabilityConfiguration.
        /// 
        /// Returns a  CreateAvailabilityConfigurationResult from WorkMail.
        /// REST API Reference for CreateAvailabilityConfiguration Operation
        CreateAvailabilityConfigurationResponse EndCreateAvailabilityConfiguration(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateGroup
        /// 
        /// Creates a group that can be used in WorkMail by calling the RegisterToWorkMail
        /// operation.
        /// 
        /// Container for the necessary parameters to execute the CreateGroup service method.
        /// 
        /// The response from the CreateGroup service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The user, group, or resource name isn't unique in WorkMail.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// This user, group, or resource name is not allowed in WorkMail.
        /// 
        /// 
        /// You can't perform a write operation against a read-only directory.
        /// 
        /// REST API Reference for CreateGroup Operation
        CreateGroupResponse CreateGroup(CreateGroupRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateGroup operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateGroup operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateGroup
        ///         operation.
        /// REST API Reference for CreateGroup Operation
        IAsyncResult BeginCreateGroup(CreateGroupRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateGroup operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateGroup.
        /// 
        /// Returns a  CreateGroupResult from WorkMail.
        /// REST API Reference for CreateGroup Operation
        CreateGroupResponse EndCreateGroup(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateImpersonationRole
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateImpersonationRole service method.
        /// 
        /// The response from the CreateImpersonationRole service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for CreateImpersonationRole Operation
        CreateImpersonationRoleResponse CreateImpersonationRole(CreateImpersonationRoleRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateImpersonationRole operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateImpersonationRole operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateImpersonationRole
        ///         operation.
        /// REST API Reference for CreateImpersonationRole Operation
        IAsyncResult BeginCreateImpersonationRole(CreateImpersonationRoleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateImpersonationRole operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateImpersonationRole.
        /// 
        /// Returns a  CreateImpersonationRoleResult from WorkMail.
        /// REST API Reference for CreateImpersonationRole Operation
        CreateImpersonationRoleResponse EndCreateImpersonationRole(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateMobileDeviceAccessRule
        /// 
        /// Creates a new mobile device access rule for the specified WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the CreateMobileDeviceAccessRule service method.
        /// 
        /// The response from the CreateMobileDeviceAccessRule service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for CreateMobileDeviceAccessRule Operation
        CreateMobileDeviceAccessRuleResponse CreateMobileDeviceAccessRule(CreateMobileDeviceAccessRuleRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateMobileDeviceAccessRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateMobileDeviceAccessRule operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateMobileDeviceAccessRule
        ///         operation.
        /// REST API Reference for CreateMobileDeviceAccessRule Operation
        IAsyncResult BeginCreateMobileDeviceAccessRule(CreateMobileDeviceAccessRuleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateMobileDeviceAccessRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateMobileDeviceAccessRule.
        /// 
        /// Returns a  CreateMobileDeviceAccessRuleResult from WorkMail.
        /// REST API Reference for CreateMobileDeviceAccessRule Operation
        CreateMobileDeviceAccessRuleResponse EndCreateMobileDeviceAccessRule(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateOrganization
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateOrganization service method.
        /// 
        /// The response from the CreateOrganization service method, as returned by WorkMail.
        /// 
        /// The directory is already in use by another WorkMail organization in the same account
        /// and Region.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// The user, group, or resource name isn't unique in WorkMail.
        /// 
        /// REST API Reference for CreateOrganization Operation
        CreateOrganizationResponse CreateOrganization(CreateOrganizationRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateOrganization operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateOrganization operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateOrganization
        ///         operation.
        /// REST API Reference for CreateOrganization Operation
        IAsyncResult BeginCreateOrganization(CreateOrganizationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateOrganization operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateOrganization.
        /// 
        /// Returns a  CreateOrganizationResult from WorkMail.
        /// REST API Reference for CreateOrganization Operation
        CreateOrganizationResponse EndCreateOrganization(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateResource
        /// 
        /// Creates a new WorkMail resource.
        /// 
        /// Container for the necessary parameters to execute the CreateResource service method.
        /// 
        /// The response from the CreateResource service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The user, group, or resource name isn't unique in WorkMail.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// This user, group, or resource name is not allowed in WorkMail.
        /// 
        /// REST API Reference for CreateResource Operation
        CreateResourceResponse CreateResource(CreateResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateResource
        ///         operation.
        /// REST API Reference for CreateResource Operation
        IAsyncResult BeginCreateResource(CreateResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateResource.
        /// 
        /// Returns a  CreateResourceResult from WorkMail.
        /// REST API Reference for CreateResource Operation
        CreateResourceResponse EndCreateResource(IAsyncResult asyncResult);
        #endregion
        
        #region  CreateUser
        /// 
        /// Creates a user who can be used in WorkMail by calling the RegisterToWorkMail
        /// operation.
        /// 
        /// Container for the necessary parameters to execute the CreateUser service method.
        /// 
        /// The response from the CreateUser service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The supplied password doesn't match the minimum security constraints, such as length
        /// or use of special characters.
        /// 
        /// 
        /// The user, group, or resource name isn't unique in WorkMail.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// This user, group, or resource name is not allowed in WorkMail.
        /// 
        /// 
        /// You can't perform a write operation against a read-only directory.
        /// 
        /// REST API Reference for CreateUser Operation
        CreateUserResponse CreateUser(CreateUserRequest request);
        /// 
        /// Initiates the asynchronous execution of the CreateUser operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the CreateUser operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndCreateUser
        ///         operation.
        /// REST API Reference for CreateUser Operation
        IAsyncResult BeginCreateUser(CreateUserRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  CreateUser operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginCreateUser.
        /// 
        /// Returns a  CreateUserResult from WorkMail.
        /// REST API Reference for CreateUser Operation
        CreateUserResponse EndCreateUser(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteAccessControlRule
        /// 
        /// 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.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DeleteAccessControlRule service method.
        /// 
        /// The response from the DeleteAccessControlRule service method, as returned by WorkMail.
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteAccessControlRule Operation
        DeleteAccessControlRuleResponse DeleteAccessControlRule(DeleteAccessControlRuleRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteAccessControlRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteAccessControlRule operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteAccessControlRule
        ///         operation.
        /// REST API Reference for DeleteAccessControlRule Operation
        IAsyncResult BeginDeleteAccessControlRule(DeleteAccessControlRuleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteAccessControlRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteAccessControlRule.
        /// 
        /// Returns a  DeleteAccessControlRuleResult from WorkMail.
        /// REST API Reference for DeleteAccessControlRule Operation
        DeleteAccessControlRuleResponse EndDeleteAccessControlRule(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteAlias
        /// 
        /// Remove one or more specified aliases from a set of aliases for a given user.
        /// 
        /// Container for the necessary parameters to execute the DeleteAlias service method.
        /// 
        /// The response from the DeleteAlias service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteAlias Operation
        DeleteAliasResponse DeleteAlias(DeleteAliasRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteAlias operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteAlias operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteAlias
        ///         operation.
        /// REST API Reference for DeleteAlias Operation
        IAsyncResult BeginDeleteAlias(DeleteAliasRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteAlias operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteAlias.
        /// 
        /// Returns a  DeleteAliasResult from WorkMail.
        /// REST API Reference for DeleteAlias Operation
        DeleteAliasResponse EndDeleteAlias(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteAvailabilityConfiguration
        /// 
        /// Deletes the AvailabilityConfiguration for the given WorkMail organization
        /// and domain.
        /// 
        /// Container for the necessary parameters to execute the DeleteAvailabilityConfiguration service method.
        /// 
        /// The response from the DeleteAvailabilityConfiguration service method, as returned by WorkMail.
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteAvailabilityConfiguration Operation
        DeleteAvailabilityConfigurationResponse DeleteAvailabilityConfiguration(DeleteAvailabilityConfigurationRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteAvailabilityConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteAvailabilityConfiguration operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteAvailabilityConfiguration
        ///         operation.
        /// REST API Reference for DeleteAvailabilityConfiguration Operation
        IAsyncResult BeginDeleteAvailabilityConfiguration(DeleteAvailabilityConfigurationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteAvailabilityConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteAvailabilityConfiguration.
        /// 
        /// Returns a  DeleteAvailabilityConfigurationResult from WorkMail.
        /// REST API Reference for DeleteAvailabilityConfiguration Operation
        DeleteAvailabilityConfigurationResponse EndDeleteAvailabilityConfiguration(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteEmailMonitoringConfiguration
        /// 
        /// Deletes the email monitoring configuration for a specified organization.
        /// 
        /// Container for the necessary parameters to execute the DeleteEmailMonitoringConfiguration service method.
        /// 
        /// The response from the DeleteEmailMonitoringConfiguration service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteEmailMonitoringConfiguration Operation
        DeleteEmailMonitoringConfigurationResponse DeleteEmailMonitoringConfiguration(DeleteEmailMonitoringConfigurationRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteEmailMonitoringConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteEmailMonitoringConfiguration operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteEmailMonitoringConfiguration
        ///         operation.
        /// REST API Reference for DeleteEmailMonitoringConfiguration Operation
        IAsyncResult BeginDeleteEmailMonitoringConfiguration(DeleteEmailMonitoringConfigurationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteEmailMonitoringConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteEmailMonitoringConfiguration.
        /// 
        /// Returns a  DeleteEmailMonitoringConfigurationResult from WorkMail.
        /// REST API Reference for DeleteEmailMonitoringConfiguration Operation
        DeleteEmailMonitoringConfigurationResponse EndDeleteEmailMonitoringConfiguration(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteGroup
        /// 
        /// Deletes a group from WorkMail.
        /// 
        /// Container for the necessary parameters to execute the DeleteGroup service method.
        /// 
        /// The response from the DeleteGroup service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// You can't perform a write operation against a read-only directory.
        /// 
        /// REST API Reference for DeleteGroup Operation
        DeleteGroupResponse DeleteGroup(DeleteGroupRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteGroup operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteGroup operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteGroup
        ///         operation.
        /// REST API Reference for DeleteGroup Operation
        IAsyncResult BeginDeleteGroup(DeleteGroupRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteGroup operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteGroup.
        /// 
        /// Returns a  DeleteGroupResult from WorkMail.
        /// REST API Reference for DeleteGroup Operation
        DeleteGroupResponse EndDeleteGroup(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteImpersonationRole
        /// 
        /// Deletes an impersonation role for the given WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the DeleteImpersonationRole service method.
        /// 
        /// The response from the DeleteImpersonationRole service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteImpersonationRole Operation
        DeleteImpersonationRoleResponse DeleteImpersonationRole(DeleteImpersonationRoleRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteImpersonationRole operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteImpersonationRole operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteImpersonationRole
        ///         operation.
        /// REST API Reference for DeleteImpersonationRole Operation
        IAsyncResult BeginDeleteImpersonationRole(DeleteImpersonationRoleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteImpersonationRole operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteImpersonationRole.
        /// 
        /// Returns a  DeleteImpersonationRoleResult from WorkMail.
        /// REST API Reference for DeleteImpersonationRole Operation
        DeleteImpersonationRoleResponse EndDeleteImpersonationRole(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteMailboxPermissions
        /// 
        /// Deletes permissions granted to a member (user or group).
        /// 
        /// Container for the necessary parameters to execute the DeleteMailboxPermissions service method.
        /// 
        /// The response from the DeleteMailboxPermissions service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteMailboxPermissions Operation
        DeleteMailboxPermissionsResponse DeleteMailboxPermissions(DeleteMailboxPermissionsRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteMailboxPermissions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteMailboxPermissions operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteMailboxPermissions
        ///         operation.
        /// REST API Reference for DeleteMailboxPermissions Operation
        IAsyncResult BeginDeleteMailboxPermissions(DeleteMailboxPermissionsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteMailboxPermissions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteMailboxPermissions.
        /// 
        /// Returns a  DeleteMailboxPermissionsResult from WorkMail.
        /// REST API Reference for DeleteMailboxPermissions Operation
        DeleteMailboxPermissionsResponse EndDeleteMailboxPermissions(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteMobileDeviceAccessOverride
        /// 
        /// 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.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DeleteMobileDeviceAccessOverride service method.
        /// 
        /// The response from the DeleteMobileDeviceAccessOverride service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteMobileDeviceAccessOverride Operation
        DeleteMobileDeviceAccessOverrideResponse DeleteMobileDeviceAccessOverride(DeleteMobileDeviceAccessOverrideRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteMobileDeviceAccessOverride operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteMobileDeviceAccessOverride operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteMobileDeviceAccessOverride
        ///         operation.
        /// REST API Reference for DeleteMobileDeviceAccessOverride Operation
        IAsyncResult BeginDeleteMobileDeviceAccessOverride(DeleteMobileDeviceAccessOverrideRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteMobileDeviceAccessOverride operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteMobileDeviceAccessOverride.
        /// 
        /// Returns a  DeleteMobileDeviceAccessOverrideResult from WorkMail.
        /// REST API Reference for DeleteMobileDeviceAccessOverride Operation
        DeleteMobileDeviceAccessOverrideResponse EndDeleteMobileDeviceAccessOverride(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteMobileDeviceAccessRule
        /// 
        /// 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.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the DeleteMobileDeviceAccessRule service method.
        /// 
        /// The response from the DeleteMobileDeviceAccessRule service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteMobileDeviceAccessRule Operation
        DeleteMobileDeviceAccessRuleResponse DeleteMobileDeviceAccessRule(DeleteMobileDeviceAccessRuleRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteMobileDeviceAccessRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteMobileDeviceAccessRule operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteMobileDeviceAccessRule
        ///         operation.
        /// REST API Reference for DeleteMobileDeviceAccessRule Operation
        IAsyncResult BeginDeleteMobileDeviceAccessRule(DeleteMobileDeviceAccessRuleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteMobileDeviceAccessRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteMobileDeviceAccessRule.
        /// 
        /// Returns a  DeleteMobileDeviceAccessRuleResult from WorkMail.
        /// REST API Reference for DeleteMobileDeviceAccessRule Operation
        DeleteMobileDeviceAccessRuleResponse EndDeleteMobileDeviceAccessRule(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteOrganization
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the DeleteOrganization service method.
        /// 
        /// The response from the DeleteOrganization service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteOrganization Operation
        DeleteOrganizationResponse DeleteOrganization(DeleteOrganizationRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteOrganization operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteOrganization operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteOrganization
        ///         operation.
        /// REST API Reference for DeleteOrganization Operation
        IAsyncResult BeginDeleteOrganization(DeleteOrganizationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteOrganization operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteOrganization.
        /// 
        /// Returns a  DeleteOrganizationResult from WorkMail.
        /// REST API Reference for DeleteOrganization Operation
        DeleteOrganizationResponse EndDeleteOrganization(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteResource
        /// 
        /// Deletes the specified resource.
        /// 
        /// Container for the necessary parameters to execute the DeleteResource service method.
        /// 
        /// The response from the DeleteResource service method, as returned by WorkMail.
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteResource Operation
        DeleteResourceResponse DeleteResource(DeleteResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteResource
        ///         operation.
        /// REST API Reference for DeleteResource Operation
        IAsyncResult BeginDeleteResource(DeleteResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteResource.
        /// 
        /// Returns a  DeleteResourceResult from WorkMail.
        /// REST API Reference for DeleteResource Operation
        DeleteResourceResponse EndDeleteResource(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteRetentionPolicy
        /// 
        /// Deletes the specified retention policy from the specified organization.
        /// 
        /// Container for the necessary parameters to execute the DeleteRetentionPolicy service method.
        /// 
        /// The response from the DeleteRetentionPolicy service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeleteRetentionPolicy Operation
        DeleteRetentionPolicyResponse DeleteRetentionPolicy(DeleteRetentionPolicyRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteRetentionPolicy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteRetentionPolicy operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteRetentionPolicy
        ///         operation.
        /// REST API Reference for DeleteRetentionPolicy Operation
        IAsyncResult BeginDeleteRetentionPolicy(DeleteRetentionPolicyRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteRetentionPolicy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteRetentionPolicy.
        /// 
        /// Returns a  DeleteRetentionPolicyResult from WorkMail.
        /// REST API Reference for DeleteRetentionPolicy Operation
        DeleteRetentionPolicyResponse EndDeleteRetentionPolicy(IAsyncResult asyncResult);
        #endregion
        
        #region  DeleteUser
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteUser service method.
        /// 
        /// The response from the DeleteUser service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// You can't perform a write operation against a read-only directory.
        /// 
        /// REST API Reference for DeleteUser Operation
        DeleteUserResponse DeleteUser(DeleteUserRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeleteUser operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeleteUser operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeleteUser
        ///         operation.
        /// REST API Reference for DeleteUser Operation
        IAsyncResult BeginDeleteUser(DeleteUserRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeleteUser operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeleteUser.
        /// 
        /// Returns a  DeleteUserResult from WorkMail.
        /// REST API Reference for DeleteUser Operation
        DeleteUserResponse EndDeleteUser(IAsyncResult asyncResult);
        #endregion
        
        #region  DeregisterFromWorkMail
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the DeregisterFromWorkMail service method.
        /// 
        /// The response from the DeregisterFromWorkMail service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeregisterFromWorkMail Operation
        DeregisterFromWorkMailResponse DeregisterFromWorkMail(DeregisterFromWorkMailRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeregisterFromWorkMail operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeregisterFromWorkMail operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeregisterFromWorkMail
        ///         operation.
        /// REST API Reference for DeregisterFromWorkMail Operation
        IAsyncResult BeginDeregisterFromWorkMail(DeregisterFromWorkMailRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeregisterFromWorkMail operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeregisterFromWorkMail.
        /// 
        /// Returns a  DeregisterFromWorkMailResult from WorkMail.
        /// REST API Reference for DeregisterFromWorkMail Operation
        DeregisterFromWorkMailResponse EndDeregisterFromWorkMail(IAsyncResult asyncResult);
        #endregion
        
        #region  DeregisterMailDomain
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the DeregisterMailDomain service method.
        /// 
        /// The response from the DeregisterMailDomain service method, as returned by WorkMail.
        /// 
        /// You SES configuration has customizations that WorkMail cannot save. The error message
        /// lists the invalid setting. For examples of invalid settings, refer to CreateReceiptRule.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The domain you're trying to change is in use by another user or organization in your
        /// account. See the error message for details.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DeregisterMailDomain Operation
        DeregisterMailDomainResponse DeregisterMailDomain(DeregisterMailDomainRequest request);
        /// 
        /// Initiates the asynchronous execution of the DeregisterMailDomain operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DeregisterMailDomain operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDeregisterMailDomain
        ///         operation.
        /// REST API Reference for DeregisterMailDomain Operation
        IAsyncResult BeginDeregisterMailDomain(DeregisterMailDomainRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DeregisterMailDomain operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDeregisterMailDomain.
        /// 
        /// Returns a  DeregisterMailDomainResult from WorkMail.
        /// REST API Reference for DeregisterMailDomain Operation
        DeregisterMailDomainResponse EndDeregisterMailDomain(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeEmailMonitoringConfiguration
        /// 
        /// Describes the current email monitoring configuration for a specified organization.
        /// 
        /// Container for the necessary parameters to execute the DescribeEmailMonitoringConfiguration service method.
        /// 
        /// The response from the DescribeEmailMonitoringConfiguration service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for DescribeEmailMonitoringConfiguration Operation
        DescribeEmailMonitoringConfigurationResponse DescribeEmailMonitoringConfiguration(DescribeEmailMonitoringConfigurationRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeEmailMonitoringConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeEmailMonitoringConfiguration operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeEmailMonitoringConfiguration
        ///         operation.
        /// REST API Reference for DescribeEmailMonitoringConfiguration Operation
        IAsyncResult BeginDescribeEmailMonitoringConfiguration(DescribeEmailMonitoringConfigurationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeEmailMonitoringConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeEmailMonitoringConfiguration.
        /// 
        /// Returns a  DescribeEmailMonitoringConfigurationResult from WorkMail.
        /// REST API Reference for DescribeEmailMonitoringConfiguration Operation
        DescribeEmailMonitoringConfigurationResponse EndDescribeEmailMonitoringConfiguration(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeGroup
        /// 
        /// Returns the data available for the group.
        /// 
        /// Container for the necessary parameters to execute the DescribeGroup service method.
        /// 
        /// The response from the DescribeGroup service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DescribeGroup Operation
        DescribeGroupResponse DescribeGroup(DescribeGroupRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeGroup operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeGroup operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeGroup
        ///         operation.
        /// REST API Reference for DescribeGroup Operation
        IAsyncResult BeginDescribeGroup(DescribeGroupRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeGroup operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeGroup.
        /// 
        /// Returns a  DescribeGroupResult from WorkMail.
        /// REST API Reference for DescribeGroup Operation
        DescribeGroupResponse EndDescribeGroup(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeInboundDmarcSettings
        /// 
        /// Lists the settings in a DMARC policy for a specified organization.
        /// 
        /// Container for the necessary parameters to execute the DescribeInboundDmarcSettings service method.
        /// 
        /// The response from the DescribeInboundDmarcSettings service method, as returned by WorkMail.
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DescribeInboundDmarcSettings Operation
        DescribeInboundDmarcSettingsResponse DescribeInboundDmarcSettings(DescribeInboundDmarcSettingsRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeInboundDmarcSettings operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeInboundDmarcSettings operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeInboundDmarcSettings
        ///         operation.
        /// REST API Reference for DescribeInboundDmarcSettings Operation
        IAsyncResult BeginDescribeInboundDmarcSettings(DescribeInboundDmarcSettingsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeInboundDmarcSettings operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeInboundDmarcSettings.
        /// 
        /// Returns a  DescribeInboundDmarcSettingsResult from WorkMail.
        /// REST API Reference for DescribeInboundDmarcSettings Operation
        DescribeInboundDmarcSettingsResponse EndDescribeInboundDmarcSettings(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeMailboxExportJob
        /// 
        /// Describes the current status of a mailbox export job.
        /// 
        /// Container for the necessary parameters to execute the DescribeMailboxExportJob service method.
        /// 
        /// The response from the DescribeMailboxExportJob service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DescribeMailboxExportJob Operation
        DescribeMailboxExportJobResponse DescribeMailboxExportJob(DescribeMailboxExportJobRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeMailboxExportJob operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeMailboxExportJob operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeMailboxExportJob
        ///         operation.
        /// REST API Reference for DescribeMailboxExportJob Operation
        IAsyncResult BeginDescribeMailboxExportJob(DescribeMailboxExportJobRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeMailboxExportJob operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeMailboxExportJob.
        /// 
        /// Returns a  DescribeMailboxExportJobResult from WorkMail.
        /// REST API Reference for DescribeMailboxExportJob Operation
        DescribeMailboxExportJobResponse EndDescribeMailboxExportJob(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeOrganization
        /// 
        /// Provides more information regarding a given organization based on its identifier.
        /// 
        /// Container for the necessary parameters to execute the DescribeOrganization service method.
        /// 
        /// The response from the DescribeOrganization service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// REST API Reference for DescribeOrganization Operation
        DescribeOrganizationResponse DescribeOrganization(DescribeOrganizationRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeOrganization operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeOrganization operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeOrganization
        ///         operation.
        /// REST API Reference for DescribeOrganization Operation
        IAsyncResult BeginDescribeOrganization(DescribeOrganizationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeOrganization operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeOrganization.
        /// 
        /// Returns a  DescribeOrganizationResult from WorkMail.
        /// REST API Reference for DescribeOrganization Operation
        DescribeOrganizationResponse EndDescribeOrganization(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeResource
        /// 
        /// Returns the data available for the resource.
        /// 
        /// Container for the necessary parameters to execute the DescribeResource service method.
        /// 
        /// The response from the DescribeResource service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DescribeResource Operation
        DescribeResourceResponse DescribeResource(DescribeResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeResource
        ///         operation.
        /// REST API Reference for DescribeResource Operation
        IAsyncResult BeginDescribeResource(DescribeResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeResource.
        /// 
        /// Returns a  DescribeResourceResult from WorkMail.
        /// REST API Reference for DescribeResource Operation
        DescribeResourceResponse EndDescribeResource(IAsyncResult asyncResult);
        #endregion
        
        #region  DescribeUser
        /// 
        /// Provides information regarding the user.
        /// 
        /// Container for the necessary parameters to execute the DescribeUser service method.
        /// 
        /// The response from the DescribeUser service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DescribeUser Operation
        DescribeUserResponse DescribeUser(DescribeUserRequest request);
        /// 
        /// Initiates the asynchronous execution of the DescribeUser operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DescribeUser operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDescribeUser
        ///         operation.
        /// REST API Reference for DescribeUser Operation
        IAsyncResult BeginDescribeUser(DescribeUserRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DescribeUser operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDescribeUser.
        /// 
        /// Returns a  DescribeUserResult from WorkMail.
        /// REST API Reference for DescribeUser Operation
        DescribeUserResponse EndDescribeUser(IAsyncResult asyncResult);
        #endregion
        
        #region  DisassociateDelegateFromResource
        /// 
        /// Removes a member from the resource's set of delegates.
        /// 
        /// Container for the necessary parameters to execute the DisassociateDelegateFromResource service method.
        /// 
        /// The response from the DisassociateDelegateFromResource service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for DisassociateDelegateFromResource Operation
        DisassociateDelegateFromResourceResponse DisassociateDelegateFromResource(DisassociateDelegateFromResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the DisassociateDelegateFromResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DisassociateDelegateFromResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDisassociateDelegateFromResource
        ///         operation.
        /// REST API Reference for DisassociateDelegateFromResource Operation
        IAsyncResult BeginDisassociateDelegateFromResource(DisassociateDelegateFromResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DisassociateDelegateFromResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDisassociateDelegateFromResource.
        /// 
        /// Returns a  DisassociateDelegateFromResourceResult from WorkMail.
        /// REST API Reference for DisassociateDelegateFromResource Operation
        DisassociateDelegateFromResourceResponse EndDisassociateDelegateFromResource(IAsyncResult asyncResult);
        #endregion
        
        #region  DisassociateMemberFromGroup
        /// 
        /// Removes a member from a group.
        /// 
        /// Container for the necessary parameters to execute the DisassociateMemberFromGroup service method.
        /// 
        /// The response from the DisassociateMemberFromGroup service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// You can't perform a write operation against a read-only directory.
        /// 
        /// REST API Reference for DisassociateMemberFromGroup Operation
        DisassociateMemberFromGroupResponse DisassociateMemberFromGroup(DisassociateMemberFromGroupRequest request);
        /// 
        /// Initiates the asynchronous execution of the DisassociateMemberFromGroup operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the DisassociateMemberFromGroup operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndDisassociateMemberFromGroup
        ///         operation.
        /// REST API Reference for DisassociateMemberFromGroup Operation
        IAsyncResult BeginDisassociateMemberFromGroup(DisassociateMemberFromGroupRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  DisassociateMemberFromGroup operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginDisassociateMemberFromGroup.
        /// 
        /// Returns a  DisassociateMemberFromGroupResult from WorkMail.
        /// REST API Reference for DisassociateMemberFromGroup Operation
        DisassociateMemberFromGroupResponse EndDisassociateMemberFromGroup(IAsyncResult asyncResult);
        #endregion
        
        #region  GetAccessControlEffect
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the GetAccessControlEffect service method.
        /// 
        /// The response from the GetAccessControlEffect service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for GetAccessControlEffect Operation
        GetAccessControlEffectResponse GetAccessControlEffect(GetAccessControlEffectRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetAccessControlEffect operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetAccessControlEffect operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetAccessControlEffect
        ///         operation.
        /// REST API Reference for GetAccessControlEffect Operation
        IAsyncResult BeginGetAccessControlEffect(GetAccessControlEffectRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetAccessControlEffect operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetAccessControlEffect.
        /// 
        /// Returns a  GetAccessControlEffectResult from WorkMail.
        /// REST API Reference for GetAccessControlEffect Operation
        GetAccessControlEffectResponse EndGetAccessControlEffect(IAsyncResult asyncResult);
        #endregion
        
        #region  GetDefaultRetentionPolicy
        /// 
        /// Gets the default retention policy details for the specified organization.
        /// 
        /// Container for the necessary parameters to execute the GetDefaultRetentionPolicy service method.
        /// 
        /// The response from the GetDefaultRetentionPolicy service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for GetDefaultRetentionPolicy Operation
        GetDefaultRetentionPolicyResponse GetDefaultRetentionPolicy(GetDefaultRetentionPolicyRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetDefaultRetentionPolicy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetDefaultRetentionPolicy operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetDefaultRetentionPolicy
        ///         operation.
        /// REST API Reference for GetDefaultRetentionPolicy Operation
        IAsyncResult BeginGetDefaultRetentionPolicy(GetDefaultRetentionPolicyRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetDefaultRetentionPolicy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetDefaultRetentionPolicy.
        /// 
        /// Returns a  GetDefaultRetentionPolicyResult from WorkMail.
        /// REST API Reference for GetDefaultRetentionPolicy Operation
        GetDefaultRetentionPolicyResponse EndGetDefaultRetentionPolicy(IAsyncResult asyncResult);
        #endregion
        
        #region  GetImpersonationRole
        /// 
        /// Gets the impersonation role details for the given WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the GetImpersonationRole service method.
        /// 
        /// The response from the GetImpersonationRole service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for GetImpersonationRole Operation
        GetImpersonationRoleResponse GetImpersonationRole(GetImpersonationRoleRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetImpersonationRole operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetImpersonationRole operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetImpersonationRole
        ///         operation.
        /// REST API Reference for GetImpersonationRole Operation
        IAsyncResult BeginGetImpersonationRole(GetImpersonationRoleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetImpersonationRole operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetImpersonationRole.
        /// 
        /// Returns a  GetImpersonationRoleResult from WorkMail.
        /// REST API Reference for GetImpersonationRole Operation
        GetImpersonationRoleResponse EndGetImpersonationRole(IAsyncResult asyncResult);
        #endregion
        
        #region  GetImpersonationRoleEffect
        /// 
        /// Tests whether the given impersonation role can impersonate a target user.
        /// 
        /// Container for the necessary parameters to execute the GetImpersonationRoleEffect service method.
        /// 
        /// The response from the GetImpersonationRoleEffect service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for GetImpersonationRoleEffect Operation
        GetImpersonationRoleEffectResponse GetImpersonationRoleEffect(GetImpersonationRoleEffectRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetImpersonationRoleEffect operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetImpersonationRoleEffect operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetImpersonationRoleEffect
        ///         operation.
        /// REST API Reference for GetImpersonationRoleEffect Operation
        IAsyncResult BeginGetImpersonationRoleEffect(GetImpersonationRoleEffectRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetImpersonationRoleEffect operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetImpersonationRoleEffect.
        /// 
        /// Returns a  GetImpersonationRoleEffectResult from WorkMail.
        /// REST API Reference for GetImpersonationRoleEffect Operation
        GetImpersonationRoleEffectResponse EndGetImpersonationRoleEffect(IAsyncResult asyncResult);
        #endregion
        
        #region  GetMailboxDetails
        /// 
        /// Requests a user's mailbox details for a specified organization and user.
        /// 
        /// Container for the necessary parameters to execute the GetMailboxDetails service method.
        /// 
        /// The response from the GetMailboxDetails service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for GetMailboxDetails Operation
        GetMailboxDetailsResponse GetMailboxDetails(GetMailboxDetailsRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetMailboxDetails operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetMailboxDetails operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetMailboxDetails
        ///         operation.
        /// REST API Reference for GetMailboxDetails Operation
        IAsyncResult BeginGetMailboxDetails(GetMailboxDetailsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetMailboxDetails operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetMailboxDetails.
        /// 
        /// Returns a  GetMailboxDetailsResult from WorkMail.
        /// REST API Reference for GetMailboxDetails Operation
        GetMailboxDetailsResponse EndGetMailboxDetails(IAsyncResult asyncResult);
        #endregion
        
        #region  GetMailDomain
        /// 
        /// Gets details for a mail domain, including domain records required to configure your
        /// domain with recommended security.
        /// 
        /// Container for the necessary parameters to execute the GetMailDomain service method.
        /// 
        /// The response from the GetMailDomain service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The domain specified is not found in your organization.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for GetMailDomain Operation
        GetMailDomainResponse GetMailDomain(GetMailDomainRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetMailDomain operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetMailDomain operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetMailDomain
        ///         operation.
        /// REST API Reference for GetMailDomain Operation
        IAsyncResult BeginGetMailDomain(GetMailDomainRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetMailDomain operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetMailDomain.
        /// 
        /// Returns a  GetMailDomainResult from WorkMail.
        /// REST API Reference for GetMailDomain Operation
        GetMailDomainResponse EndGetMailDomain(IAsyncResult asyncResult);
        #endregion
        
        #region  GetMobileDeviceAccessEffect
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the GetMobileDeviceAccessEffect service method.
        /// 
        /// The response from the GetMobileDeviceAccessEffect service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for GetMobileDeviceAccessEffect Operation
        GetMobileDeviceAccessEffectResponse GetMobileDeviceAccessEffect(GetMobileDeviceAccessEffectRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetMobileDeviceAccessEffect operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetMobileDeviceAccessEffect operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetMobileDeviceAccessEffect
        ///         operation.
        /// REST API Reference for GetMobileDeviceAccessEffect Operation
        IAsyncResult BeginGetMobileDeviceAccessEffect(GetMobileDeviceAccessEffectRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetMobileDeviceAccessEffect operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetMobileDeviceAccessEffect.
        /// 
        /// Returns a  GetMobileDeviceAccessEffectResult from WorkMail.
        /// REST API Reference for GetMobileDeviceAccessEffect Operation
        GetMobileDeviceAccessEffectResponse EndGetMobileDeviceAccessEffect(IAsyncResult asyncResult);
        #endregion
        
        #region  GetMobileDeviceAccessOverride
        /// 
        /// Gets the mobile device access override for the given WorkMail organization, user,
        /// and device.
        /// 
        /// Container for the necessary parameters to execute the GetMobileDeviceAccessOverride service method.
        /// 
        /// The response from the GetMobileDeviceAccessOverride service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for GetMobileDeviceAccessOverride Operation
        GetMobileDeviceAccessOverrideResponse GetMobileDeviceAccessOverride(GetMobileDeviceAccessOverrideRequest request);
        /// 
        /// Initiates the asynchronous execution of the GetMobileDeviceAccessOverride operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the GetMobileDeviceAccessOverride operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndGetMobileDeviceAccessOverride
        ///         operation.
        /// REST API Reference for GetMobileDeviceAccessOverride Operation
        IAsyncResult BeginGetMobileDeviceAccessOverride(GetMobileDeviceAccessOverrideRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  GetMobileDeviceAccessOverride operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginGetMobileDeviceAccessOverride.
        /// 
        /// Returns a  GetMobileDeviceAccessOverrideResult from WorkMail.
        /// REST API Reference for GetMobileDeviceAccessOverride Operation
        GetMobileDeviceAccessOverrideResponse EndGetMobileDeviceAccessOverride(IAsyncResult asyncResult);
        #endregion
        
        #region  ListAccessControlRules
        /// 
        /// Lists the access control rules for the specified organization.
        /// 
        /// Container for the necessary parameters to execute the ListAccessControlRules service method.
        /// 
        /// The response from the ListAccessControlRules service method, as returned by WorkMail.
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListAccessControlRules Operation
        ListAccessControlRulesResponse ListAccessControlRules(ListAccessControlRulesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListAccessControlRules operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAccessControlRules operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListAccessControlRules
        ///         operation.
        /// REST API Reference for ListAccessControlRules Operation
        IAsyncResult BeginListAccessControlRules(ListAccessControlRulesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListAccessControlRules operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListAccessControlRules.
        /// 
        /// Returns a  ListAccessControlRulesResult from WorkMail.
        /// REST API Reference for ListAccessControlRules Operation
        ListAccessControlRulesResponse EndListAccessControlRules(IAsyncResult asyncResult);
        #endregion
        
        #region  ListAliases
        /// 
        /// Creates a paginated call to list the aliases associated with a given entity.
        /// 
        /// Container for the necessary parameters to execute the ListAliases service method.
        /// 
        /// The response from the ListAliases service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListAliases Operation
        ListAliasesResponse ListAliases(ListAliasesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListAliases operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAliases operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListAliases
        ///         operation.
        /// REST API Reference for ListAliases Operation
        IAsyncResult BeginListAliases(ListAliasesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListAliases operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListAliases.
        /// 
        /// Returns a  ListAliasesResult from WorkMail.
        /// REST API Reference for ListAliases Operation
        ListAliasesResponse EndListAliases(IAsyncResult asyncResult);
        #endregion
        
        #region  ListAvailabilityConfigurations
        /// 
        /// List all the AvailabilityConfiguration's for the given WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the ListAvailabilityConfigurations service method.
        /// 
        /// The response from the ListAvailabilityConfigurations service method, as returned by WorkMail.
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListAvailabilityConfigurations Operation
        ListAvailabilityConfigurationsResponse ListAvailabilityConfigurations(ListAvailabilityConfigurationsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListAvailabilityConfigurations operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListAvailabilityConfigurations operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListAvailabilityConfigurations
        ///         operation.
        /// REST API Reference for ListAvailabilityConfigurations Operation
        IAsyncResult BeginListAvailabilityConfigurations(ListAvailabilityConfigurationsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListAvailabilityConfigurations operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListAvailabilityConfigurations.
        /// 
        /// Returns a  ListAvailabilityConfigurationsResult from WorkMail.
        /// REST API Reference for ListAvailabilityConfigurations Operation
        ListAvailabilityConfigurationsResponse EndListAvailabilityConfigurations(IAsyncResult asyncResult);
        #endregion
        
        #region  ListGroupMembers
        /// 
        /// Returns an overview of the members of a group. Users and groups can be members of
        /// a group.
        /// 
        /// Container for the necessary parameters to execute the ListGroupMembers service method.
        /// 
        /// The response from the ListGroupMembers service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListGroupMembers Operation
        ListGroupMembersResponse ListGroupMembers(ListGroupMembersRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListGroupMembers operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListGroupMembers operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListGroupMembers
        ///         operation.
        /// REST API Reference for ListGroupMembers Operation
        IAsyncResult BeginListGroupMembers(ListGroupMembersRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListGroupMembers operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListGroupMembers.
        /// 
        /// Returns a  ListGroupMembersResult from WorkMail.
        /// REST API Reference for ListGroupMembers Operation
        ListGroupMembersResponse EndListGroupMembers(IAsyncResult asyncResult);
        #endregion
        
        #region  ListGroups
        /// 
        /// Returns summaries of the organization's groups.
        /// 
        /// Container for the necessary parameters to execute the ListGroups service method.
        /// 
        /// The response from the ListGroups service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListGroups Operation
        ListGroupsResponse ListGroups(ListGroupsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListGroups operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListGroups operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListGroups
        ///         operation.
        /// REST API Reference for ListGroups Operation
        IAsyncResult BeginListGroups(ListGroupsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListGroups operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListGroups.
        /// 
        /// Returns a  ListGroupsResult from WorkMail.
        /// REST API Reference for ListGroups Operation
        ListGroupsResponse EndListGroups(IAsyncResult asyncResult);
        #endregion
        
        #region  ListImpersonationRoles
        /// 
        /// Lists all the impersonation roles for the given WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the ListImpersonationRoles service method.
        /// 
        /// The response from the ListImpersonationRoles service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListImpersonationRoles Operation
        ListImpersonationRolesResponse ListImpersonationRoles(ListImpersonationRolesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListImpersonationRoles operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListImpersonationRoles operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListImpersonationRoles
        ///         operation.
        /// REST API Reference for ListImpersonationRoles Operation
        IAsyncResult BeginListImpersonationRoles(ListImpersonationRolesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListImpersonationRoles operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListImpersonationRoles.
        /// 
        /// Returns a  ListImpersonationRolesResult from WorkMail.
        /// REST API Reference for ListImpersonationRoles Operation
        ListImpersonationRolesResponse EndListImpersonationRoles(IAsyncResult asyncResult);
        #endregion
        
        #region  ListMailboxExportJobs
        /// 
        /// Lists the mailbox export jobs started for the specified organization within the last
        /// seven days.
        /// 
        /// Container for the necessary parameters to execute the ListMailboxExportJobs service method.
        /// 
        /// The response from the ListMailboxExportJobs service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListMailboxExportJobs Operation
        ListMailboxExportJobsResponse ListMailboxExportJobs(ListMailboxExportJobsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListMailboxExportJobs operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListMailboxExportJobs operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListMailboxExportJobs
        ///         operation.
        /// REST API Reference for ListMailboxExportJobs Operation
        IAsyncResult BeginListMailboxExportJobs(ListMailboxExportJobsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListMailboxExportJobs operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListMailboxExportJobs.
        /// 
        /// Returns a  ListMailboxExportJobsResult from WorkMail.
        /// REST API Reference for ListMailboxExportJobs Operation
        ListMailboxExportJobsResponse EndListMailboxExportJobs(IAsyncResult asyncResult);
        #endregion
        
        #region  ListMailboxPermissions
        /// 
        /// Lists the mailbox permissions associated with a user, group, or resource mailbox.
        /// 
        /// Container for the necessary parameters to execute the ListMailboxPermissions service method.
        /// 
        /// The response from the ListMailboxPermissions service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListMailboxPermissions Operation
        ListMailboxPermissionsResponse ListMailboxPermissions(ListMailboxPermissionsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListMailboxPermissions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListMailboxPermissions operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListMailboxPermissions
        ///         operation.
        /// REST API Reference for ListMailboxPermissions Operation
        IAsyncResult BeginListMailboxPermissions(ListMailboxPermissionsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListMailboxPermissions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListMailboxPermissions.
        /// 
        /// Returns a  ListMailboxPermissionsResult from WorkMail.
        /// REST API Reference for ListMailboxPermissions Operation
        ListMailboxPermissionsResponse EndListMailboxPermissions(IAsyncResult asyncResult);
        #endregion
        
        #region  ListMailDomains
        /// 
        /// Lists the mail domains in a given WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the ListMailDomains service method.
        /// 
        /// The response from the ListMailDomains service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListMailDomains Operation
        ListMailDomainsResponse ListMailDomains(ListMailDomainsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListMailDomains operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListMailDomains operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListMailDomains
        ///         operation.
        /// REST API Reference for ListMailDomains Operation
        IAsyncResult BeginListMailDomains(ListMailDomainsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListMailDomains operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListMailDomains.
        /// 
        /// Returns a  ListMailDomainsResult from WorkMail.
        /// REST API Reference for ListMailDomains Operation
        ListMailDomainsResponse EndListMailDomains(IAsyncResult asyncResult);
        #endregion
        
        #region  ListMobileDeviceAccessOverrides
        /// 
        /// Lists all the mobile device access overrides for any given combination of WorkMail
        /// organization, user, or device.
        /// 
        /// Container for the necessary parameters to execute the ListMobileDeviceAccessOverrides service method.
        /// 
        /// The response from the ListMobileDeviceAccessOverrides service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListMobileDeviceAccessOverrides Operation
        ListMobileDeviceAccessOverridesResponse ListMobileDeviceAccessOverrides(ListMobileDeviceAccessOverridesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListMobileDeviceAccessOverrides operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListMobileDeviceAccessOverrides operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListMobileDeviceAccessOverrides
        ///         operation.
        /// REST API Reference for ListMobileDeviceAccessOverrides Operation
        IAsyncResult BeginListMobileDeviceAccessOverrides(ListMobileDeviceAccessOverridesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListMobileDeviceAccessOverrides operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListMobileDeviceAccessOverrides.
        /// 
        /// Returns a  ListMobileDeviceAccessOverridesResult from WorkMail.
        /// REST API Reference for ListMobileDeviceAccessOverrides Operation
        ListMobileDeviceAccessOverridesResponse EndListMobileDeviceAccessOverrides(IAsyncResult asyncResult);
        #endregion
        
        #region  ListMobileDeviceAccessRules
        /// 
        /// Lists the mobile device access rules for the specified WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the ListMobileDeviceAccessRules service method.
        /// 
        /// The response from the ListMobileDeviceAccessRules service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListMobileDeviceAccessRules Operation
        ListMobileDeviceAccessRulesResponse ListMobileDeviceAccessRules(ListMobileDeviceAccessRulesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListMobileDeviceAccessRules operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListMobileDeviceAccessRules operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListMobileDeviceAccessRules
        ///         operation.
        /// REST API Reference for ListMobileDeviceAccessRules Operation
        IAsyncResult BeginListMobileDeviceAccessRules(ListMobileDeviceAccessRulesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListMobileDeviceAccessRules operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListMobileDeviceAccessRules.
        /// 
        /// Returns a  ListMobileDeviceAccessRulesResult from WorkMail.
        /// REST API Reference for ListMobileDeviceAccessRules Operation
        ListMobileDeviceAccessRulesResponse EndListMobileDeviceAccessRules(IAsyncResult asyncResult);
        #endregion
        
        #region  ListOrganizations
        /// 
        /// Returns summaries of the customer's organizations.
        /// 
        /// Container for the necessary parameters to execute the ListOrganizations service method.
        /// 
        /// The response from the ListOrganizations service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// REST API Reference for ListOrganizations Operation
        ListOrganizationsResponse ListOrganizations(ListOrganizationsRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListOrganizations operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListOrganizations operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListOrganizations
        ///         operation.
        /// REST API Reference for ListOrganizations Operation
        IAsyncResult BeginListOrganizations(ListOrganizationsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListOrganizations operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListOrganizations.
        /// 
        /// Returns a  ListOrganizationsResult from WorkMail.
        /// REST API Reference for ListOrganizations Operation
        ListOrganizationsResponse EndListOrganizations(IAsyncResult asyncResult);
        #endregion
        
        #region  ListResourceDelegates
        /// 
        /// Lists the delegates associated with a resource. Users and groups can be resource delegates
        /// and answer requests on behalf of the resource.
        /// 
        /// Container for the necessary parameters to execute the ListResourceDelegates service method.
        /// 
        /// The response from the ListResourceDelegates service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListResourceDelegates Operation
        ListResourceDelegatesResponse ListResourceDelegates(ListResourceDelegatesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListResourceDelegates operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListResourceDelegates operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListResourceDelegates
        ///         operation.
        /// REST API Reference for ListResourceDelegates Operation
        IAsyncResult BeginListResourceDelegates(ListResourceDelegatesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListResourceDelegates operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListResourceDelegates.
        /// 
        /// Returns a  ListResourceDelegatesResult from WorkMail.
        /// REST API Reference for ListResourceDelegates Operation
        ListResourceDelegatesResponse EndListResourceDelegates(IAsyncResult asyncResult);
        #endregion
        
        #region  ListResources
        /// 
        /// Returns summaries of the organization's resources.
        /// 
        /// Container for the necessary parameters to execute the ListResources service method.
        /// 
        /// The response from the ListResources service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListResources Operation
        ListResourcesResponse ListResources(ListResourcesRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListResources operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListResources operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListResources
        ///         operation.
        /// REST API Reference for ListResources Operation
        IAsyncResult BeginListResources(ListResourcesRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListResources operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListResources.
        /// 
        /// Returns a  ListResourcesResult from WorkMail.
        /// REST API Reference for ListResources Operation
        ListResourcesResponse EndListResources(IAsyncResult asyncResult);
        #endregion
        
        #region  ListTagsForResource
        /// 
        /// Lists the tags applied to an WorkMail organization resource.
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource service method.
        /// 
        /// The response from the ListTagsForResource service method, as returned by WorkMail.
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for ListTagsForResource Operation
        ListTagsForResourceResponse ListTagsForResource(ListTagsForResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListTagsForResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListTagsForResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListTagsForResource
        ///         operation.
        /// REST API Reference for ListTagsForResource Operation
        IAsyncResult BeginListTagsForResource(ListTagsForResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListTagsForResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListTagsForResource.
        /// 
        /// Returns a  ListTagsForResourceResult from WorkMail.
        /// REST API Reference for ListTagsForResource Operation
        ListTagsForResourceResponse EndListTagsForResource(IAsyncResult asyncResult);
        #endregion
        
        #region  ListUsers
        /// 
        /// Returns summaries of the organization's users.
        /// 
        /// Container for the necessary parameters to execute the ListUsers service method.
        /// 
        /// The response from the ListUsers service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for ListUsers Operation
        ListUsersResponse ListUsers(ListUsersRequest request);
        /// 
        /// Initiates the asynchronous execution of the ListUsers operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ListUsers operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndListUsers
        ///         operation.
        /// REST API Reference for ListUsers Operation
        IAsyncResult BeginListUsers(ListUsersRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ListUsers operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginListUsers.
        /// 
        /// Returns a  ListUsersResult from WorkMail.
        /// REST API Reference for ListUsers Operation
        ListUsersResponse EndListUsers(IAsyncResult asyncResult);
        #endregion
        
        #region  PutAccessControlRule
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the PutAccessControlRule service method.
        /// 
        /// The response from the PutAccessControlRule service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for PutAccessControlRule Operation
        PutAccessControlRuleResponse PutAccessControlRule(PutAccessControlRuleRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutAccessControlRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutAccessControlRule operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutAccessControlRule
        ///         operation.
        /// REST API Reference for PutAccessControlRule Operation
        IAsyncResult BeginPutAccessControlRule(PutAccessControlRuleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutAccessControlRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutAccessControlRule.
        /// 
        /// Returns a  PutAccessControlRuleResult from WorkMail.
        /// REST API Reference for PutAccessControlRule Operation
        PutAccessControlRuleResponse EndPutAccessControlRule(IAsyncResult asyncResult);
        #endregion
        
        #region  PutEmailMonitoringConfiguration
        /// 
        /// Creates or updates the email monitoring configuration for a specified organization.
        /// 
        /// Container for the necessary parameters to execute the PutEmailMonitoringConfiguration service method.
        /// 
        /// The response from the PutEmailMonitoringConfiguration service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for PutEmailMonitoringConfiguration Operation
        PutEmailMonitoringConfigurationResponse PutEmailMonitoringConfiguration(PutEmailMonitoringConfigurationRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutEmailMonitoringConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutEmailMonitoringConfiguration operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutEmailMonitoringConfiguration
        ///         operation.
        /// REST API Reference for PutEmailMonitoringConfiguration Operation
        IAsyncResult BeginPutEmailMonitoringConfiguration(PutEmailMonitoringConfigurationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutEmailMonitoringConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutEmailMonitoringConfiguration.
        /// 
        /// Returns a  PutEmailMonitoringConfigurationResult from WorkMail.
        /// REST API Reference for PutEmailMonitoringConfiguration Operation
        PutEmailMonitoringConfigurationResponse EndPutEmailMonitoringConfiguration(IAsyncResult asyncResult);
        #endregion
        
        #region  PutInboundDmarcSettings
        /// 
        /// Enables or disables a DMARC policy for a given organization.
        /// 
        /// Container for the necessary parameters to execute the PutInboundDmarcSettings service method.
        /// 
        /// The response from the PutInboundDmarcSettings service method, as returned by WorkMail.
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for PutInboundDmarcSettings Operation
        PutInboundDmarcSettingsResponse PutInboundDmarcSettings(PutInboundDmarcSettingsRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutInboundDmarcSettings operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutInboundDmarcSettings operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutInboundDmarcSettings
        ///         operation.
        /// REST API Reference for PutInboundDmarcSettings Operation
        IAsyncResult BeginPutInboundDmarcSettings(PutInboundDmarcSettingsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutInboundDmarcSettings operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutInboundDmarcSettings.
        /// 
        /// Returns a  PutInboundDmarcSettingsResult from WorkMail.
        /// REST API Reference for PutInboundDmarcSettings Operation
        PutInboundDmarcSettingsResponse EndPutInboundDmarcSettings(IAsyncResult asyncResult);
        #endregion
        
        #region  PutMailboxPermissions
        /// 
        /// Sets permissions for a user, group, or resource. This replaces any pre-existing permissions.
        /// 
        /// Container for the necessary parameters to execute the PutMailboxPermissions service method.
        /// 
        /// The response from the PutMailboxPermissions service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for PutMailboxPermissions Operation
        PutMailboxPermissionsResponse PutMailboxPermissions(PutMailboxPermissionsRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutMailboxPermissions operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutMailboxPermissions operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutMailboxPermissions
        ///         operation.
        /// REST API Reference for PutMailboxPermissions Operation
        IAsyncResult BeginPutMailboxPermissions(PutMailboxPermissionsRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutMailboxPermissions operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutMailboxPermissions.
        /// 
        /// Returns a  PutMailboxPermissionsResult from WorkMail.
        /// REST API Reference for PutMailboxPermissions Operation
        PutMailboxPermissionsResponse EndPutMailboxPermissions(IAsyncResult asyncResult);
        #endregion
        
        #region  PutMobileDeviceAccessOverride
        /// 
        /// Creates or updates a mobile device access override for the given WorkMail organization,
        /// user, and device.
        /// 
        /// Container for the necessary parameters to execute the PutMobileDeviceAccessOverride service method.
        /// 
        /// The response from the PutMobileDeviceAccessOverride service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for PutMobileDeviceAccessOverride Operation
        PutMobileDeviceAccessOverrideResponse PutMobileDeviceAccessOverride(PutMobileDeviceAccessOverrideRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutMobileDeviceAccessOverride operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutMobileDeviceAccessOverride operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutMobileDeviceAccessOverride
        ///         operation.
        /// REST API Reference for PutMobileDeviceAccessOverride Operation
        IAsyncResult BeginPutMobileDeviceAccessOverride(PutMobileDeviceAccessOverrideRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutMobileDeviceAccessOverride operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutMobileDeviceAccessOverride.
        /// 
        /// Returns a  PutMobileDeviceAccessOverrideResult from WorkMail.
        /// REST API Reference for PutMobileDeviceAccessOverride Operation
        PutMobileDeviceAccessOverrideResponse EndPutMobileDeviceAccessOverride(IAsyncResult asyncResult);
        #endregion
        
        #region  PutRetentionPolicy
        /// 
        /// Puts a retention policy to the specified organization.
        /// 
        /// Container for the necessary parameters to execute the PutRetentionPolicy service method.
        /// 
        /// The response from the PutRetentionPolicy service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for PutRetentionPolicy Operation
        PutRetentionPolicyResponse PutRetentionPolicy(PutRetentionPolicyRequest request);
        /// 
        /// Initiates the asynchronous execution of the PutRetentionPolicy operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the PutRetentionPolicy operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndPutRetentionPolicy
        ///         operation.
        /// REST API Reference for PutRetentionPolicy Operation
        IAsyncResult BeginPutRetentionPolicy(PutRetentionPolicyRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  PutRetentionPolicy operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginPutRetentionPolicy.
        /// 
        /// Returns a  PutRetentionPolicyResult from WorkMail.
        /// REST API Reference for PutRetentionPolicy Operation
        PutRetentionPolicyResponse EndPutRetentionPolicy(IAsyncResult asyncResult);
        #endregion
        
        #region  RegisterMailDomain
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the RegisterMailDomain service method.
        /// 
        /// The response from the RegisterMailDomain service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// The domain you're trying to change is in use by another user or organization in your
        /// account. See the error message for details.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for RegisterMailDomain Operation
        RegisterMailDomainResponse RegisterMailDomain(RegisterMailDomainRequest request);
        /// 
        /// Initiates the asynchronous execution of the RegisterMailDomain operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RegisterMailDomain operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndRegisterMailDomain
        ///         operation.
        /// REST API Reference for RegisterMailDomain Operation
        IAsyncResult BeginRegisterMailDomain(RegisterMailDomainRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  RegisterMailDomain operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRegisterMailDomain.
        /// 
        /// Returns a  RegisterMailDomainResult from WorkMail.
        /// REST API Reference for RegisterMailDomain Operation
        RegisterMailDomainResponse EndRegisterMailDomain(IAsyncResult asyncResult);
        #endregion
        
        #region  RegisterToWorkMail
        /// 
        /// 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.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RegisterToWorkMail service method.
        /// 
        /// The response from the RegisterToWorkMail service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// The email address that you're trying to assign is already created for a different
        /// user, group, or resource.
        /// 
        /// 
        /// The user, group, or resource that you're trying to register is already registered.
        /// 
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The domain specified is not found in your organization.
        /// 
        /// 
        /// After a domain has been added to the organization, it must be verified. The domain
        /// is not yet verified.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for RegisterToWorkMail Operation
        RegisterToWorkMailResponse RegisterToWorkMail(RegisterToWorkMailRequest request);
        /// 
        /// Initiates the asynchronous execution of the RegisterToWorkMail operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the RegisterToWorkMail operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndRegisterToWorkMail
        ///         operation.
        /// REST API Reference for RegisterToWorkMail Operation
        IAsyncResult BeginRegisterToWorkMail(RegisterToWorkMailRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  RegisterToWorkMail operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginRegisterToWorkMail.
        /// 
        /// Returns a  RegisterToWorkMailResult from WorkMail.
        /// REST API Reference for RegisterToWorkMail Operation
        RegisterToWorkMailResponse EndRegisterToWorkMail(IAsyncResult asyncResult);
        #endregion
        
        #region  ResetPassword
        /// 
        /// Allows the administrator to reset the password for a user.
        /// 
        /// Container for the necessary parameters to execute the ResetPassword service method.
        /// 
        /// The response from the ResetPassword service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The supplied password doesn't match the minimum security constraints, such as length
        /// or use of special characters.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// You can't perform a write operation against a read-only directory.
        /// 
        /// REST API Reference for ResetPassword Operation
        ResetPasswordResponse ResetPassword(ResetPasswordRequest request);
        /// 
        /// Initiates the asynchronous execution of the ResetPassword operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the ResetPassword operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndResetPassword
        ///         operation.
        /// REST API Reference for ResetPassword Operation
        IAsyncResult BeginResetPassword(ResetPasswordRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  ResetPassword operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginResetPassword.
        /// 
        /// Returns a  ResetPasswordResult from WorkMail.
        /// REST API Reference for ResetPassword Operation
        ResetPasswordResponse EndResetPassword(IAsyncResult asyncResult);
        #endregion
        
        #region  StartMailboxExportJob
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the StartMailboxExportJob service method.
        /// 
        /// The response from the StartMailboxExportJob service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for StartMailboxExportJob Operation
        StartMailboxExportJobResponse StartMailboxExportJob(StartMailboxExportJobRequest request);
        /// 
        /// Initiates the asynchronous execution of the StartMailboxExportJob operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the StartMailboxExportJob operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndStartMailboxExportJob
        ///         operation.
        /// REST API Reference for StartMailboxExportJob Operation
        IAsyncResult BeginStartMailboxExportJob(StartMailboxExportJobRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  StartMailboxExportJob operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginStartMailboxExportJob.
        /// 
        /// Returns a  StartMailboxExportJobResult from WorkMail.
        /// REST API Reference for StartMailboxExportJob Operation
        StartMailboxExportJobResponse EndStartMailboxExportJob(IAsyncResult asyncResult);
        #endregion
        
        #region  TagResource
        /// 
        /// Applies the specified tags to the specified WorkMailorganization resource.
        /// 
        /// Container for the necessary parameters to execute the TagResource service method.
        /// 
        /// The response from the TagResource service method, as returned by WorkMail.
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// 
        /// The resource can have up to 50 user-applied tags.
        /// 
        /// REST API Reference for TagResource Operation
        TagResourceResponse TagResource(TagResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the TagResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TagResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndTagResource
        ///         operation.
        /// REST API Reference for TagResource Operation
        IAsyncResult BeginTagResource(TagResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  TagResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginTagResource.
        /// 
        /// Returns a  TagResourceResult from WorkMail.
        /// REST API Reference for TagResource Operation
        TagResourceResponse EndTagResource(IAsyncResult asyncResult);
        #endregion
        
        #region  TestAvailabilityConfiguration
        /// 
        /// 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.
        /// 
        ///  
        /// 
        /// Container for the necessary parameters to execute the TestAvailabilityConfiguration service method.
        /// 
        /// The response from the TestAvailabilityConfiguration service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for TestAvailabilityConfiguration Operation
        TestAvailabilityConfigurationResponse TestAvailabilityConfiguration(TestAvailabilityConfigurationRequest request);
        /// 
        /// Initiates the asynchronous execution of the TestAvailabilityConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the TestAvailabilityConfiguration operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndTestAvailabilityConfiguration
        ///         operation.
        /// REST API Reference for TestAvailabilityConfiguration Operation
        IAsyncResult BeginTestAvailabilityConfiguration(TestAvailabilityConfigurationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  TestAvailabilityConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginTestAvailabilityConfiguration.
        /// 
        /// Returns a  TestAvailabilityConfigurationResult from WorkMail.
        /// REST API Reference for TestAvailabilityConfiguration Operation
        TestAvailabilityConfigurationResponse EndTestAvailabilityConfiguration(IAsyncResult asyncResult);
        #endregion
        
        #region  UntagResource
        /// 
        /// Untags the specified tags from the specified WorkMail organization resource.
        /// 
        /// Container for the necessary parameters to execute the UntagResource service method.
        /// 
        /// The response from the UntagResource service method, as returned by WorkMail.
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for UntagResource Operation
        UntagResourceResponse UntagResource(UntagResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the UntagResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UntagResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUntagResource
        ///         operation.
        /// REST API Reference for UntagResource Operation
        IAsyncResult BeginUntagResource(UntagResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UntagResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUntagResource.
        /// 
        /// Returns a  UntagResourceResult from WorkMail.
        /// REST API Reference for UntagResource Operation
        UntagResourceResponse EndUntagResource(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateAvailabilityConfiguration
        /// 
        /// Updates an existing AvailabilityConfiguration for the given WorkMail
        /// organization and domain.
        /// 
        /// Container for the necessary parameters to execute the UpdateAvailabilityConfiguration service method.
        /// 
        /// The response from the UpdateAvailabilityConfiguration service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for UpdateAvailabilityConfiguration Operation
        UpdateAvailabilityConfigurationResponse UpdateAvailabilityConfiguration(UpdateAvailabilityConfigurationRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateAvailabilityConfiguration operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateAvailabilityConfiguration operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateAvailabilityConfiguration
        ///         operation.
        /// REST API Reference for UpdateAvailabilityConfiguration Operation
        IAsyncResult BeginUpdateAvailabilityConfiguration(UpdateAvailabilityConfigurationRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateAvailabilityConfiguration operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateAvailabilityConfiguration.
        /// 
        /// Returns a  UpdateAvailabilityConfigurationResult from WorkMail.
        /// REST API Reference for UpdateAvailabilityConfiguration Operation
        UpdateAvailabilityConfigurationResponse EndUpdateAvailabilityConfiguration(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateDefaultMailDomain
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the UpdateDefaultMailDomain service method.
        /// 
        /// The response from the UpdateDefaultMailDomain service method, as returned by WorkMail.
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The domain specified is not found in your organization.
        /// 
        /// 
        /// After a domain has been added to the organization, it must be verified. The domain
        /// is not yet verified.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for UpdateDefaultMailDomain Operation
        UpdateDefaultMailDomainResponse UpdateDefaultMailDomain(UpdateDefaultMailDomainRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateDefaultMailDomain operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateDefaultMailDomain operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateDefaultMailDomain
        ///         operation.
        /// REST API Reference for UpdateDefaultMailDomain Operation
        IAsyncResult BeginUpdateDefaultMailDomain(UpdateDefaultMailDomainRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateDefaultMailDomain operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateDefaultMailDomain.
        /// 
        /// Returns a  UpdateDefaultMailDomainResult from WorkMail.
        /// REST API Reference for UpdateDefaultMailDomain Operation
        UpdateDefaultMailDomainResponse EndUpdateDefaultMailDomain(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateImpersonationRole
        /// 
        /// Updates an impersonation role for the given WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the UpdateImpersonationRole service method.
        /// 
        /// The response from the UpdateImpersonationRole service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The request exceeds the limit of the resource.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// The resource cannot be found.
        /// 
        /// REST API Reference for UpdateImpersonationRole Operation
        UpdateImpersonationRoleResponse UpdateImpersonationRole(UpdateImpersonationRoleRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateImpersonationRole operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateImpersonationRole operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateImpersonationRole
        ///         operation.
        /// REST API Reference for UpdateImpersonationRole Operation
        IAsyncResult BeginUpdateImpersonationRole(UpdateImpersonationRoleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateImpersonationRole operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateImpersonationRole.
        /// 
        /// Returns a  UpdateImpersonationRoleResult from WorkMail.
        /// REST API Reference for UpdateImpersonationRole Operation
        UpdateImpersonationRoleResponse EndUpdateImpersonationRole(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateMailboxQuota
        /// 
        /// Updates a user's current mailbox quota for a specified organization and user.
        /// 
        /// Container for the necessary parameters to execute the UpdateMailboxQuota service method.
        /// 
        /// The response from the UpdateMailboxQuota service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for UpdateMailboxQuota Operation
        UpdateMailboxQuotaResponse UpdateMailboxQuota(UpdateMailboxQuotaRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateMailboxQuota operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateMailboxQuota operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateMailboxQuota
        ///         operation.
        /// REST API Reference for UpdateMailboxQuota Operation
        IAsyncResult BeginUpdateMailboxQuota(UpdateMailboxQuotaRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateMailboxQuota operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateMailboxQuota.
        /// 
        /// Returns a  UpdateMailboxQuotaResult from WorkMail.
        /// REST API Reference for UpdateMailboxQuota Operation
        UpdateMailboxQuotaResponse EndUpdateMailboxQuota(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateMobileDeviceAccessRule
        /// 
        /// Updates a mobile device access rule for the specified WorkMail organization.
        /// 
        /// Container for the necessary parameters to execute the UpdateMobileDeviceAccessRule service method.
        /// 
        /// The response from the UpdateMobileDeviceAccessRule service method, as returned by WorkMail.
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for UpdateMobileDeviceAccessRule Operation
        UpdateMobileDeviceAccessRuleResponse UpdateMobileDeviceAccessRule(UpdateMobileDeviceAccessRuleRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateMobileDeviceAccessRule operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateMobileDeviceAccessRule operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateMobileDeviceAccessRule
        ///         operation.
        /// REST API Reference for UpdateMobileDeviceAccessRule Operation
        IAsyncResult BeginUpdateMobileDeviceAccessRule(UpdateMobileDeviceAccessRuleRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateMobileDeviceAccessRule operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateMobileDeviceAccessRule.
        /// 
        /// Returns a  UpdateMobileDeviceAccessRuleResult from WorkMail.
        /// REST API Reference for UpdateMobileDeviceAccessRule Operation
        UpdateMobileDeviceAccessRuleResponse EndUpdateMobileDeviceAccessRule(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdatePrimaryEmailAddress
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the UpdatePrimaryEmailAddress service method.
        /// 
        /// The response from the UpdatePrimaryEmailAddress service method, as returned by WorkMail.
        /// 
        /// The directory service doesn't recognize the credentials supplied by WorkMail.
        /// 
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// The email address that you're trying to assign is already created for a different
        /// user, group, or resource.
        /// 
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// One or more of the input parameters don't match the service's restrictions.
        /// 
        /// 
        /// The domain specified is not found in your organization.
        /// 
        /// 
        /// After a domain has been added to the organization, it must be verified. The domain
        /// is not yet verified.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// 
        /// You can't perform a write operation against a read-only directory.
        /// 
        /// REST API Reference for UpdatePrimaryEmailAddress Operation
        UpdatePrimaryEmailAddressResponse UpdatePrimaryEmailAddress(UpdatePrimaryEmailAddressRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdatePrimaryEmailAddress operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdatePrimaryEmailAddress operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdatePrimaryEmailAddress
        ///         operation.
        /// REST API Reference for UpdatePrimaryEmailAddress Operation
        IAsyncResult BeginUpdatePrimaryEmailAddress(UpdatePrimaryEmailAddressRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdatePrimaryEmailAddress operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdatePrimaryEmailAddress.
        /// 
        /// Returns a  UpdatePrimaryEmailAddressResult from WorkMail.
        /// REST API Reference for UpdatePrimaryEmailAddress Operation
        UpdatePrimaryEmailAddressResponse EndUpdatePrimaryEmailAddress(IAsyncResult asyncResult);
        #endregion
        
        #region  UpdateResource
        /// 
        /// 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.
        /// 
        /// Container for the necessary parameters to execute the UpdateResource service method.
        /// 
        /// The response from the UpdateResource service method, as returned by WorkMail.
        /// 
        /// The directory is unavailable. It might be located in another Region or deleted.
        /// 
        /// 
        /// The email address that you're trying to assign is already created for a different
        /// user, group, or resource.
        /// 
        /// 
        /// The identifier supplied for the user, group, or resource does not exist in your organization.
        /// 
        /// 
        /// You are performing an operation on a user, group, or resource that isn't in the expected
        /// state, such as trying to delete an active user.
        /// 
        /// 
        /// The configuration for a resource isn't valid. A resource must either be able to auto-respond
        /// to requests or have at least one delegate associated that can do so on its behalf.
        /// 
        /// 
        /// The domain specified is not found in your organization.
        /// 
        /// 
        /// After a domain has been added to the organization, it must be verified. The domain
        /// is not yet verified.
        /// 
        /// 
        /// The user, group, or resource name isn't unique in WorkMail.
        /// 
        /// 
        /// An operation received a valid organization identifier that either doesn't belong or
        /// exist in the system.
        /// 
        /// 
        /// The organization must have a valid state to perform certain operations on the organization
        /// or its members.
        /// 
        /// REST API Reference for UpdateResource Operation
        UpdateResourceResponse UpdateResource(UpdateResourceRequest request);
        /// 
        /// Initiates the asynchronous execution of the UpdateResource operation.
        /// 
        /// 
        /// Container for the necessary parameters to execute the UpdateResource operation on AmazonWorkMailClient.
        /// An AsyncCallback delegate that is invoked when the operation completes.
        /// A user-defined state object that is passed to the callback procedure. Retrieve this object from within the callback
        ///          procedure using the AsyncState property.
        /// 
        /// An IAsyncResult that can be used to poll or wait for results, or both; this value is also needed when invoking EndUpdateResource
        ///         operation.
        /// REST API Reference for UpdateResource Operation
        IAsyncResult BeginUpdateResource(UpdateResourceRequest request, AsyncCallback callback, object state);
        /// 
        /// Finishes the asynchronous execution of the  UpdateResource operation.
        /// 
        /// 
        /// The IAsyncResult returned by the call to BeginUpdateResource.
        /// 
        /// Returns a  UpdateResourceResult from WorkMail.
        /// REST API Reference for UpdateResource Operation
        UpdateResourceResponse EndUpdateResource(IAsyncResult asyncResult);
        #endregion
        
    }
}