export interface EwsAvailabilityProvider {
    /** The endpoint of the remote EWS server. */
    EwsEndpoint: string;
    /** The username used to authenticate the remote EWS server. */
    EwsUsername: string;
    /** The password used to authenticate the remote EWS server. */
    EwsPassword: string;
}
export interface LambdaAvailabilityProvider {
    /** The Amazon Resource Name (ARN) of the Lambda that acts as the availability provider. */
    LambdaArn: string;
}
export interface ImpersonationRule {
    /** The identifier of the rule. */
    ImpersonationRuleId: string;
    /** The rule name. */
    Name?: string;
    /** The rule description. */
    Description?: string;
    /** The effect of the rule when it matches the input. Allowed effect values are ALLOW or DENY. */
    Effect: 'ALLOW' | 'DENY';
    /** A list of user IDs that match the rule. */
    TargetUsers?: any[];
    /** A list of user IDs that don't match the rule. */
    NotTargetUsers?: any[];
}
export interface Domain {
    /** The fully qualified domain name. */
    DomainName: string;
    /** The hosted zone ID for a domain hosted in Route 53. Required when configuring a domain hosted in Route 53. */
    HostedZoneId?: string;
}
export interface ListGroupsFilters {
    /** Filters only groups with the provided name prefix. */
    NamePrefix?: string;
    /** Filters only groups with the provided primary email prefix. */
    PrimaryEmailPrefix?: string;
    /** Filters only groups with the provided state. */
    State?: 'ENABLED' | 'DISABLED' | 'DELETED';
}
export interface ListGroupsForEntityFilters {
    /** Filters only group names that start with the provided name prefix. */
    GroupNamePrefix?: string;
}
export interface ListResourcesFilters {
    /** Filters only resource that start with the entered name prefix . */
    NamePrefix?: string;
    /** Filters only resource with the provided primary email prefix. */
    PrimaryEmailPrefix?: string;
    /** Filters only resource with the provided state. */
    State?: 'ENABLED' | 'DISABLED' | 'DELETED';
}
export interface ListUsersFilters {
    /** Filters only users with the provided username prefix. */
    UsernamePrefix?: string;
    /** Filters only users with the provided display name prefix. */
    DisplayNamePrefix?: string;
    /** Filters only users with the provided email prefix. */
    PrimaryEmailPrefix?: string;
    /** Filters only users with the provided state. */
    State?: 'ENABLED' | 'DISABLED' | 'DELETED';
    /** Filters only users with the ID from the IAM Identity Center. */
    IdentityProviderUserIdPrefix?: string;
}
export interface IdentityCenterConfiguration {
    /** The Amazon Resource Name (ARN) of the of IAM Identity Center instance. Must be in the same AWS account and region as WorkMail organization. */
    InstanceArn: string;
    /** The Amazon Resource Name (ARN) of IAMIdentity Center Application for WorkMail. Must be created by the WorkMail API, see CreateIdentityCenterApplication. */
    ApplicationArn: string;
}
export interface PersonalAccessTokenConfiguration {
    /** The status of the Personal Access Token allowed for the organization. Active - Mailbox users can login to the web application and choose Settings to see the new Personal Access Tokens page to create a */
    Status: 'ACTIVE' | 'INACTIVE';
    /** The validity of the Personal Access Token status in days. */
    LifetimeInDays?: number;
}
export interface FolderConfiguration {
    /** The folder name. */
    Name: 'INBOX' | 'DELETED_ITEMS' | 'SENT_ITEMS' | 'DRAFTS' | 'JUNK_EMAIL';
    /** The action to take on the folder contents at the end of the folder configuration period. */
    Action: 'NONE' | 'DELETE' | 'PERMANENTLY_DELETE';
    /** The number of days for which the folder-configuration action applies. */
    Period?: number;
}
export interface Tag {
    /** The key of the tag. */
    Key: string;
    /** The value of the tag. */
    Value: string;
}
export interface BookingOptions {
    /** The resource's ability to automatically reply to requests. If disabled, delegates must be associated to the resource. */
    AutoAcceptRequests?: boolean;
    /** The resource's ability to automatically decline any recurring requests. */
    AutoDeclineRecurringRequests?: boolean;
    /** The resource's ability to automatically decline any conflicting requests. */
    AutoDeclineConflictingRequests?: boolean;
}
export interface AssociateDelegateToResourceInput {
    /** The member (user or group) to associate to the resource. The entity ID can accept UserId or GroupID, Username or Groupname, or email. Entity: 12345678-1234-1234-1234-123456789012 or S-1-1-12-123456789 */
    EntityId: string;
    /** The organization under which the resource exists. */
    OrganizationId: string;
    /** The resource for which members (users or groups) are associated. The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available: Resource ID: r-0123456789a0 */
    ResourceId: string;
}
export interface AssociateMemberToGroupInput {
    /** The group to which the member (user or group) is associated. The identifier can accept GroupId, Groupname, or email. The following identity formats are available: Group ID: 12345678-1234-1234-1234-123 */
    GroupId: string;
    /** The member (user or group) to associate to the group. The member ID can accept UserID or GroupId, Username or Groupname, or email. Member: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-1 */
    MemberId: string;
    /** The organization under which the group exists. */
    OrganizationId: string;
}
export interface AssumeImpersonationRoleInput {
    /** The impersonation role ID to assume. */
    ImpersonationRoleId: string;
    /** The WorkMail organization under which the impersonation role will be assumed. */
    OrganizationId: string;
}
export interface CancelMailboxExportJobInput {
    /** The idempotency token for the client request. */
    ClientToken: string;
    /** The job ID. */
    JobId: string;
    /** The organization ID. */
    OrganizationId: string;
}
export interface CreateAliasInput {
    /** The alias to add to the member set. */
    Alias: string;
    /** The member (user or group) to which this alias is added. */
    EntityId: string;
    /** The organization under which the member (user or group) exists. */
    OrganizationId: string;
}
export interface CreateAvailabilityConfigurationInput {
    /** The domain to which the provider applies. */
    DomainName: string;
    /** The WorkMail organization for which the AvailabilityConfiguration will be created. */
    OrganizationId: string;
    /** An idempotent token that ensures that an API request is executed only once. */
    ClientToken?: string;
    /** Exchange Web Services (EWS) availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider. */
    EwsProvider?: EwsAvailabilityProvider;
    /** Lambda availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider. */
    LambdaProvider?: LambdaAvailabilityProvider;
}
export interface CreateGroupInput {
    /** The name of the group. */
    Name: string;
    /** The organization under which the group is to be created. */
    OrganizationId: string;
    /** If this parameter is enabled, the group will be hidden from the address book. */
    HiddenFromGlobalAddressList?: boolean;
}
export interface CreateIdentityCenterApplicationInput {
    /** The Amazon Resource Name (ARN) of the instance. */
    InstanceArn: string;
    /** The name of the IAM Identity Center application. */
    Name: string;
    /** The idempotency token associated with the request. */
    ClientToken?: string;
}
export interface CreateImpersonationRoleInput {
    /** The name of the new impersonation role. */
    Name: string;
    /** The WorkMail organization to create the new impersonation role within. */
    OrganizationId: string;
    /** The list of rules for the impersonation role. */
    Rules: ImpersonationRule[];
    /** The impersonation role's type. The available impersonation role types are READ_ONLY or FULL_ACCESS. */
    Type: 'FULL_ACCESS' | 'READ_ONLY';
    /** The idempotency token for the client request. */
    ClientToken?: string;
    /** The description of the new impersonation role. */
    Description?: string;
}
export interface CreateMobileDeviceAccessRuleInput {
    /** The effect of the rule when it matches. Allowed values are ALLOW or DENY. */
    Effect: 'ALLOW' | 'DENY';
    /** The rule name. */
    Name: string;
    /** The WorkMail organization under which the rule will be created. */
    OrganizationId: string;
    /** The idempotency token for the client request. */
    ClientToken?: string;
    /** The rule description. */
    Description?: string;
    /** Device models that the rule will match. */
    DeviceModels?: string[];
    /** Device operating systems that the rule will match. */
    DeviceOperatingSystems?: string[];
    /** Device types that the rule will match. */
    DeviceTypes?: string[];
    /** Device user agents that the rule will match. */
    DeviceUserAgents?: string[];
    /** Device models that the rule will not match. All other device models will match. */
    NotDeviceModels?: string[];
    /** Device operating systems that the rule will not match. All other device operating systems will match. */
    NotDeviceOperatingSystems?: string[];
    /** Device types that the rule will not match. All other device types will match. */
    NotDeviceTypes?: string[];
    /** Device user agents that the rule will not match. All other device user agents will match. */
    NotDeviceUserAgents?: string[];
}
export interface CreateOrganizationInput {
    /** The organization alias. */
    Alias: string;
    /** The idempotency token associated with the request. */
    ClientToken?: string;
    /** The AWS Directory Service directory ID. */
    DirectoryId?: string;
    /** The email domains to associate with the organization. */
    Domains?: Domain[];
    /** When true, allows organization interoperability between WorkMail and Microsoft Exchange. If true, you must include a AD Connector directory ID in the request. */
    EnableInteroperability?: boolean;
    /** The Amazon Resource Name (ARN) of a customer managed key from AWS KMS. */
    KmsKeyArn?: string;
}
export interface CreateResourceInput {
    /** The name of the new resource. */
    Name: string;
    /** The identifier associated with the organization for which the resource is created. */
    OrganizationId: string;
    /** The type of the new resource. The available types are equipment and room. */
    Type: 'ROOM' | 'EQUIPMENT';
    /** Resource description. */
    Description?: string;
    /** If this parameter is enabled, the resource will be hidden from the address book. */
    HiddenFromGlobalAddressList?: boolean;
}
export interface CreateUserInput {
    /** The display name for the new user. */
    DisplayName: string;
    /** The name for the new user. WorkMail directory user names have a maximum length of 64. All others have a maximum length of 20. */
    Name: string;
    /** The identifier of the organization for which the user is created. */
    OrganizationId: string;
    /** The first name of the new user. */
    FirstName?: string;
    /** If this parameter is enabled, the user will be hidden from the address book. */
    HiddenFromGlobalAddressList?: boolean;
    /** User ID from the IAM Identity Center. If this parameter is empty it will be updated automatically when the user logs in for the first time to the mailbox associated with WorkMail. */
    IdentityProviderUserId?: string;
    /** The last name of the new user. */
    LastName?: string;
    /** The password for the new user. */
    Password?: string;
    /** The role of the new user. You cannot pass SYSTEM_USER or RESOURCE role in a single request. When a user role is not selected, the default role of USER is selected. */
    Role?: 'USER' | 'RESOURCE' | 'SYSTEM_USER' | 'REMOTE_USER';
}
export interface DeleteAccessControlRuleInput {
    /** The name of the access control rule. */
    Name: string;
    /** The identifier for the organization. */
    OrganizationId: string;
}
export interface DeleteAliasInput {
    /** The aliases to be removed from the user's set of aliases. Duplicate entries in the list are collapsed into single entries (the list is transformed into a set). */
    Alias: string;
    /** The identifier for the member (user or group) from which to have the aliases removed. */
    EntityId: string;
    /** The identifier for the organization under which the user exists. */
    OrganizationId: string;
}
export interface DeleteAvailabilityConfigurationInput {
    /** The domain for which the AvailabilityConfiguration will be deleted. */
    DomainName: string;
    /** The WorkMail organization for which the AvailabilityConfiguration will be deleted. */
    OrganizationId: string;
}
export interface DeleteEmailMonitoringConfigurationInput {
    /** The ID of the organization from which the email monitoring configuration is deleted. */
    OrganizationId: string;
}
export interface DeleteGroupInput {
    /** The identifier of the group to be deleted. The identifier can be the GroupId, or Groupname. The following identity formats are available: Group ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-123 */
    GroupId: string;
    /** The organization that contains the group. */
    OrganizationId: string;
}
export interface DeleteIdentityCenterApplicationInput {
    /** The Amazon Resource Name (ARN) of the application. */
    ApplicationArn: string;
}
export interface DeleteIdentityProviderConfigurationInput {
    /** The Organization ID. */
    OrganizationId: string;
}
export interface DeleteImpersonationRoleInput {
    /** The ID of the impersonation role to delete. */
    ImpersonationRoleId: string;
    /** The WorkMail organization from which to delete the impersonation role. */
    OrganizationId: string;
}
export interface DeleteMailboxPermissionsInput {
    /** The identifier of the entity that owns the mailbox. The identifier can be UserId or Group Id, Username or Groupname, or email. Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b */
    EntityId: string;
    /** The identifier of the entity for which to delete granted permissions. The identifier can be UserId, ResourceID, or Group Id, Username or Groupname, or email. Grantee ID: 12345678-1234-1234-1234-123456 */
    GranteeId: string;
    /** The identifier of the organization under which the member (user or group) exists. */
    OrganizationId: string;
}
export interface DeleteMobileDeviceAccessOverrideInput {
    /** The mobile device for which you delete the override. DeviceId is case insensitive. */
    DeviceId: string;
    /** The WorkMail organization for which the access override will be deleted. */
    OrganizationId: string;
    /** The WorkMail user for which you want to delete the override. Accepts the following types of user identities: User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-12 */
    UserId: string;
}
export interface DeleteMobileDeviceAccessRuleInput {
    /** The identifier of the rule to be deleted. */
    MobileDeviceAccessRuleId: string;
    /** The WorkMail organization under which the rule will be deleted. */
    OrganizationId: string;
}
export interface DeleteOrganizationInput {
    /** If true, deletes the AWS Directory Service directory associated with the organization. */
    DeleteDirectory: boolean;
    /** The organization ID. */
    OrganizationId: string;
    /** The idempotency token associated with the request. */
    ClientToken?: string;
    /** Deletes IAM Identity Center application for WorkMail. This action does not affect authentication settings for any organization. */
    DeleteIdentityCenterApplication?: boolean;
    /** Deletes a WorkMail organization even if the organization has enabled users. */
    ForceDelete?: boolean;
}
export interface DeletePersonalAccessTokenInput {
    /** The Organization ID. */
    OrganizationId: string;
    /** The Personal Access Token ID. */
    PersonalAccessTokenId: string;
}
export interface DeleteResourceInput {
    /** The identifier associated with the organization from which the resource is deleted. */
    OrganizationId: string;
    /** The identifier of the resource to be deleted. The identifier can accept ResourceId, or Resourcename. The following identity formats are available: Resource ID: r-0123456789a0123456789b0123456789 Resou */
    ResourceId: string;
}
export interface DeleteRetentionPolicyInput {
    /** The retention policy ID. */
    Id: string;
    /** The organization ID. */
    OrganizationId: string;
}
export interface DeleteUserInput {
    /** The organization that contains the user to be deleted. */
    OrganizationId: string;
    /** The identifier of the user to be deleted. The identifier can be the UserId or Username. The following identity formats are available: User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-12345678 */
    UserId: string;
}
export interface DeregisterFromWorkMailInput {
    /** The identifier for the member to be updated. The identifier can be UserId, ResourceId, or Group Id, Username, Resourcename, or Groupname, or email. Entity ID: 12345678-1234-1234-1234-123456789012, r-0 */
    EntityId: string;
    /** The identifier for the organization under which the WorkMail entity exists. */
    OrganizationId: string;
}
export interface DeregisterMailDomainInput {
    /** The domain to deregister in WorkMail and SES. */
    DomainName: string;
    /** The WorkMail organization for which the domain will be deregistered. */
    OrganizationId: string;
}
export interface DescribeEmailMonitoringConfigurationInput {
    /** The ID of the organization for which the email monitoring configuration is described. */
    OrganizationId: string;
}
export interface DescribeEntityInput {
    /** The email under which the entity exists. */
    Email: string;
    /** The identifier for the organization under which the entity exists. */
    OrganizationId: string;
}
export interface DescribeGroupInput {
    /** The identifier for the group to be described. The identifier can accept GroupId, Groupname, or email. The following identity formats are available: Group ID: 12345678-1234-1234-1234-123456789012 or S- */
    GroupId: string;
    /** The identifier for the organization under which the group exists. */
    OrganizationId: string;
}
export interface DescribeIdentityProviderConfigurationInput {
    /** The Organization ID. */
    OrganizationId: string;
}
export interface DescribeInboundDmarcSettingsInput {
    /** Lists the ID of the given organization. */
    OrganizationId: string;
}
export interface DescribeMailboxExportJobInput {
    /** The mailbox export job ID. */
    JobId: string;
    /** The organization ID. */
    OrganizationId: string;
}
export interface DescribeOrganizationInput {
    /** The identifier for the organization to be described. */
    OrganizationId: string;
}
export interface DescribeResourceInput {
    /** The identifier associated with the organization for which the resource is described. */
    OrganizationId: string;
    /** The identifier of the resource to be described. The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available: Resource ID: r-0123456789a0123456789b0123456 */
    ResourceId: string;
}
export interface DescribeUserInput {
    /** The identifier for the organization under which the user exists. */
    OrganizationId: string;
    /** The identifier for the user to be described. The identifier can be the UserId, Username, or email. The following identity formats are available: User ID: 12345678-1234-1234-1234-123456789012 or S-1-1- */
    UserId: string;
}
export interface DisassociateDelegateFromResourceInput {
    /** The identifier for the member (user, group) to be removed from the resource's delegates. The entity ID can accept UserId or GroupID, Username or Groupname, or email. Entity: 12345678-1234-1234-1234-12 */
    EntityId: string;
    /** The identifier for the organization under which the resource exists. */
    OrganizationId: string;
    /** The identifier of the resource from which delegates' set members are removed. The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available: Resource ID: r */
    ResourceId: string;
}
export interface DisassociateMemberFromGroupInput {
    /** The identifier for the group from which members are removed. The identifier can accept GroupId, Groupname, or email. The following identity formats are available: Group ID: 12345678-1234-1234-1234-123 */
    GroupId: string;
    /** The identifier for the member to be removed from the group. The member ID can accept UserID or GroupId, Username or Groupname, or email. Member ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-123 */
    MemberId: string;
    /** The identifier for the organization under which the group exists. */
    OrganizationId: string;
}
export interface GetAccessControlEffectInput {
    /** The access protocol action. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail. */
    Action: string;
    /** The IPv4 address. */
    IpAddress: string;
    /** The identifier for the organization. */
    OrganizationId: string;
    /** The impersonation role ID. */
    ImpersonationRoleId?: string;
    /** The user ID. */
    UserId?: string;
}
export interface GetDefaultRetentionPolicyInput {
    /** The organization ID. */
    OrganizationId: string;
}
export interface GetImpersonationRoleInput {
    /** The impersonation role ID to retrieve. */
    ImpersonationRoleId: string;
    /** The WorkMail organization from which to retrieve the impersonation role. */
    OrganizationId: string;
}
export interface GetImpersonationRoleEffectInput {
    /** The impersonation role ID to test. */
    ImpersonationRoleId: string;
    /** The WorkMail organization where the impersonation role is defined. */
    OrganizationId: string;
    /** The WorkMail organization user chosen to test the impersonation role. The following identity formats are available: User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-12345 */
    TargetUser: string;
}
export interface GetMailboxDetailsInput {
    /** The identifier for the organization that contains the user whose mailbox details are being requested. */
    OrganizationId: string;
    /** The identifier for the user whose mailbox details are being requested. The identifier can be the UserId, Username, or email. The following identity formats are available: User ID: 12345678-1234-1234-1 */
    UserId: string;
}
export interface GetMailDomainInput {
    /** The domain from which you want to retrieve details. */
    DomainName: string;
    /** The WorkMail organization for which the domain is retrieved. */
    OrganizationId: string;
}
export interface GetMobileDeviceAccessEffectInput {
    /** The WorkMail organization to simulate the access effect for. */
    OrganizationId: string;
    /** Device model the simulated user will report. */
    DeviceModel?: string;
    /** Device operating system the simulated user will report. */
    DeviceOperatingSystem?: string;
    /** Device type the simulated user will report. */
    DeviceType?: string;
    /** Device user agent the simulated user will report. */
    DeviceUserAgent?: string;
}
export interface GetMobileDeviceAccessOverrideInput {
    /** The mobile device to which the override applies. DeviceId is case insensitive. */
    DeviceId: string;
    /** The WorkMail organization to which you want to apply the override. */
    OrganizationId: string;
    /** Identifies the WorkMail user for the override. Accepts the following types of user identities: User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 Email addre */
    UserId: string;
}
export interface GetPersonalAccessTokenMetadataInput {
    /** The Organization ID. */
    OrganizationId: string;
    /** The Personal Access Token ID. */
    PersonalAccessTokenId: string;
}
export interface ListAccessControlRulesInput {
    /** The identifier for the organization. */
    OrganizationId: string;
}
export interface ListAliasesInput {
    /** The identifier for the entity for which to list the aliases. */
    EntityId: string;
    /** The identifier for the organization under which the entity exists. */
    OrganizationId: string;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not contain any tokens. */
    NextToken?: string;
}
export interface ListAvailabilityConfigurationsInput {
    /** The WorkMail organization for which the AvailabilityConfiguration's will be listed. */
    OrganizationId: string;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not require a token. */
    NextToken?: string;
}
export interface ListGroupMembersInput {
    /** The identifier for the group to which the members (users or groups) are associated. The identifier can accept GroupId, Groupname, or email. The following identity formats are available: Group ID: 1234 */
    GroupId: string;
    /** The identifier for the organization under which the group exists. */
    OrganizationId: string;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not contain any tokens. */
    NextToken?: string;
}
export interface ListGroupsInput {
    /** The identifier for the organization under which the groups exist. */
    OrganizationId: string;
    /** Limit the search results based on the filter criteria. Only one filter per request is supported. */
    Filters?: ListGroupsFilters;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not contain any tokens. */
    NextToken?: string;
}
export interface ListGroupsForEntityInput {
    /** The identifier for the entity. The entity ID can accept UserId or GroupID, Username or Groupname, or email. Entity ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1 */
    EntityId: string;
    /** The identifier for the organization under which the entity exists. */
    OrganizationId: string;
    /** Limit the search results based on the filter criteria. */
    Filters?: ListGroupsForEntityFilters;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not contain any tokens. */
    NextToken?: string;
}
export interface ListImpersonationRolesInput {
    /** The WorkMail organization to which the listed impersonation roles belong. */
    OrganizationId: string;
    /** The maximum number of results returned in a single call. */
    MaxResults?: number;
    /** The token used to retrieve the next page of results. The first call doesn't require a token. */
    NextToken?: string;
}
export interface ListMailboxExportJobsInput {
    /** The organization ID. */
    OrganizationId: string;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. */
    NextToken?: string;
}
export interface ListMailboxPermissionsInput {
    /** The identifier of the user, or resource for which to list mailbox permissions. The entity ID can accept UserId or ResourceId, Username or Resourcename, or email. Entity ID: 12345678-1234-1234-1234-123 */
    EntityId: string;
    /** The identifier of the organization under which the user, group, or resource exists. */
    OrganizationId: string;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not contain any tokens. */
    NextToken?: string;
}
export interface ListMailDomainsInput {
    /** The WorkMail organization for which to list domains. */
    OrganizationId: string;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not require a token. */
    NextToken?: string;
}
export interface ListMobileDeviceAccessOverridesInput {
    /** The WorkMail organization under which to list mobile device access overrides. */
    OrganizationId: string;
    /** The mobile device to which the access override applies. */
    DeviceId?: string;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not require a token. */
    NextToken?: string;
    /** The WorkMail user under which you list the mobile device access overrides. Accepts the following types of user identities: User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-12345678 */
    UserId?: string;
}
export interface ListMobileDeviceAccessRulesInput {
    /** The WorkMail organization for which to list the rules. */
    OrganizationId: string;
}
export interface ListOrganizationsInput {
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not contain any tokens. */
    NextToken?: string;
}
export interface ListPersonalAccessTokensInput {
    /** The Organization ID. */
    OrganizationId: string;
    /** The maximum amount of items that should be returned in a response. */
    MaxResults?: number;
    /** The token from the previous response to query the next page. */
    NextToken?: string;
    /** The WorkMail User ID. */
    UserId?: string;
}
export interface ListResourceDelegatesInput {
    /** The identifier for the organization that contains the resource for which delegates are listed. */
    OrganizationId: string;
    /** The identifier for the resource whose delegates are listed. The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available: Resource ID: r-0123456789a012345 */
    ResourceId: string;
    /** The number of maximum results in a page. */
    MaxResults?: number;
    /** The token used to paginate through the delegates associated with a resource. */
    NextToken?: string;
}
export interface ListResourcesInput {
    /** The identifier for the organization under which the resources exist. */
    OrganizationId: string;
    /** Limit the resource search results based on the filter criteria. You can only use one filter per request. */
    Filters?: ListResourcesFilters;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not contain any tokens. */
    NextToken?: string;
}
export interface ListTagsForResourceInput {
    /** The resource ARN. */
    ResourceARN: string;
}
export interface ListUsersInput {
    /** The identifier for the organization under which the users exist. */
    OrganizationId: string;
    /** Limit the user search results based on the filter criteria. You can only use one filter per request. */
    Filters?: ListUsersFilters;
    /** The maximum number of results to return in a single call. */
    MaxResults?: number;
    /** The token to use to retrieve the next page of results. The first call does not contain any tokens. */
    NextToken?: string;
}
export interface PutAccessControlRuleInput {
    /** The rule description. */
    Description: string;
    /** The rule effect. */
    Effect: 'ALLOW' | 'DENY';
    /** The rule name. */
    Name: string;
    /** The identifier of the organization. */
    OrganizationId: string;
    /** Access protocol actions to include in the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail. */
    Actions?: string[];
    /** Impersonation role IDs to include in the rule. */
    ImpersonationRoleIds?: string[];
    /** IPv4 CIDR ranges to include in the rule. */
    IpRanges?: string[];
    /** Access protocol actions to exclude from the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail. */
    NotActions?: string[];
    /** Impersonation role IDs to exclude from the rule. */
    NotImpersonationRoleIds?: string[];
    /** IPv4 CIDR ranges to exclude from the rule. */
    NotIpRanges?: string[];
    /** User IDs to exclude from the rule. */
    NotUserIds?: string[];
    /** User IDs to include in the rule. */
    UserIds?: string[];
}
export interface PutEmailMonitoringConfigurationInput {
    /** The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration. */
    LogGroupArn: string;
    /** The ID of the organization for which the email monitoring configuration is set. */
    OrganizationId: string;
    /** The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration. If absent, the IAM Role Arn of AWSServiceRoleForAmazonWorkMailEvents will be used. */
    RoleArn?: string;
}
export interface PutIdentityProviderConfigurationInput {
    /** The authentication mode used in WorkMail. */
    AuthenticationMode: 'IDENTITY_PROVIDER_ONLY' | 'IDENTITY_PROVIDER_AND_DIRECTORY';
    /** The details of the IAM Identity Center configuration. */
    IdentityCenterConfiguration: IdentityCenterConfiguration;
    /** The ID of the WorkMail Organization. */
    OrganizationId: string;
    /** The details of the Personal Access Token configuration. */
    PersonalAccessTokenConfiguration: PersonalAccessTokenConfiguration;
}
export interface PutInboundDmarcSettingsInput {
    /** Enforces or suspends a policy after it's applied. */
    Enforced: boolean;
    /** The ID of the organization that you are applying the DMARC policy to. */
    OrganizationId: string;
}
export interface PutMailboxPermissionsInput {
    /** The identifier of the user or resource for which to update mailbox permissions. The identifier can be UserId, ResourceID, or Group Id, Username, Resourcename, or Groupname, or email. Entity ID: 123456 */
    EntityId: string;
    /** The identifier of the user, group, or resource to which to grant the permissions. The identifier can be UserId, ResourceID, or Group Id, Username, Resourcename, or Groupname, or email. Grantee ID: 123 */
    GranteeId: string;
    /** The identifier of the organization under which the user, group, or resource exists. */
    OrganizationId: string;
    /** The permissions granted to the grantee. SEND_AS allows the grantee to send email as the owner of the mailbox (the grantee is not mentioned on these emails). SEND_ON_BEHALF allows the grantee to send e */
    PermissionValues: 'FULL_ACCESS' | 'SEND_AS' | 'SEND_ON_BEHALF'[];
}
export interface PutMobileDeviceAccessOverrideInput {
    /** The mobile device for which you create the override. DeviceId is case insensitive. */
    DeviceId: string;
    /** The effect of the override, ALLOW or DENY. */
    Effect: 'ALLOW' | 'DENY';
    /** Identifies the WorkMail organization for which you create the override. */
    OrganizationId: string;
    /** The WorkMail user for which you create the override. Accepts the following types of user identities: User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234 Email */
    UserId: string;
    /** A description of the override. */
    Description?: string;
}
export interface PutRetentionPolicyInput {
    /** The retention policy folder configurations. */
    FolderConfigurations: FolderConfiguration[];
    /** The retention policy name. */
    Name: string;
    /** The organization ID. */
    OrganizationId: string;
    /** The retention policy description. */
    Description?: string;
    /** The retention policy ID. */
    Id?: string;
}
export interface RegisterMailDomainInput {
    /** The name of the mail domain to create in WorkMail and SES. */
    DomainName: string;
    /** The WorkMail organization under which you're creating the domain. */
    OrganizationId: string;
    /** Idempotency token used when retrying requests. */
    ClientToken?: string;
}
export interface RegisterToWorkMailInput {
    /** The email for the user, group, or resource to be updated. */
    Email: string;
    /** The identifier for the user, group, or resource to be updated. The identifier can accept UserId, ResourceId, or GroupId, or Username, Resourcename, or Groupname. The following identity formats are ava */
    EntityId: string;
    /** The identifier for the organization under which the user, group, or resource exists. */
    OrganizationId: string;
}
export interface ResetPasswordInput {
    /** The identifier of the organization that contains the user for which the password is reset. */
    OrganizationId: string;
    /** The new password for the user. */
    Password: string;
    /** The identifier of the user for whom the password is reset. */
    UserId: string;
}
export interface StartMailboxExportJobInput {
    /** The idempotency token for the client request. */
    ClientToken: string;
    /** The identifier of the user or resource associated with the mailbox. The identifier can accept UserId or ResourceId, Username or Resourcename, or email. The following identity formats are available: En */
    EntityId: string;
    /** The Amazon Resource Name (ARN) of the symmetric AWS Key Management Service (AWS KMS) key that encrypts the exported mailbox content. */
    KmsKeyArn: string;
    /** The identifier associated with the organization. */
    OrganizationId: string;
    /** The ARN of the AWS Identity and Access Management (IAM) role that grants write permission to the S3 bucket. */
    RoleArn: string;
    /** The name of the S3 bucket. */
    S3BucketName: string;
    /** The S3 bucket prefix. */
    S3Prefix: string;
    /** The mailbox export job description. */
    Description?: string;
}
export interface TagResourceInput {
    /** The resource ARN. */
    ResourceARN: string;
    /** The tag key-value pairs. */
    Tags: Tag[];
}
export interface TestAvailabilityConfigurationInput {
    /** The WorkMail organization where the availability provider will be tested. */
    OrganizationId: string;
    /** The domain to which the provider applies. If this field is provided, a stored availability provider associated to this domain name will be tested. */
    DomainName?: string;
    EwsProvider?: EwsAvailabilityProvider;
    LambdaProvider?: LambdaAvailabilityProvider;
}
export interface UntagResourceInput {
    /** The resource ARN. */
    ResourceARN: string;
    /** The tag keys. */
    TagKeys: string[];
}
export interface UpdateAvailabilityConfigurationInput {
    /** The domain to which the provider applies the availability configuration. */
    DomainName: string;
    /** The WorkMail organization for which the AvailabilityConfiguration will be updated. */
    OrganizationId: string;
    /** The EWS availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider. The previously stored provider will be overridden by the one p */
    EwsProvider?: EwsAvailabilityProvider;
    /** The Lambda availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider. The previously stored provider will be overridden by the on */
    LambdaProvider?: LambdaAvailabilityProvider;
}
export interface UpdateDefaultMailDomainInput {
    /** The domain name that will become the default domain. */
    DomainName: string;
    /** The WorkMail organization for which to list domains. */
    OrganizationId: string;
}
export interface UpdateGroupInput {
    /** The identifier for the group to be updated. The identifier can accept GroupId, Groupname, or email. The following identity formats are available: Group ID: 12345678-1234-1234-1234-123456789012 or S-1- */
    GroupId: string;
    /** The identifier for the organization under which the group exists. */
    OrganizationId: string;
    /** If enabled, the group is hidden from the global address list. */
    HiddenFromGlobalAddressList?: boolean;
}
export interface UpdateImpersonationRoleInput {
    /** The ID of the impersonation role to update. */
    ImpersonationRoleId: string;
    /** The updated impersonation role name. */
    Name: string;
    /** The WorkMail organization that contains the impersonation role to update. */
    OrganizationId: string;
    /** The updated list of rules. */
    Rules: ImpersonationRule[];
    /** The updated impersonation role type. */
    Type: 'FULL_ACCESS' | 'READ_ONLY';
    /** The updated impersonation role description. */
    Description?: string;
}
export interface UpdateMailboxQuotaInput {
    /** The updated mailbox quota, in MB, for the specified user. */
    MailboxQuota: number;
    /** The identifier for the organization that contains the user for whom to update the mailbox quota. */
    OrganizationId: string;
    /** The identifer for the user for whom to update the mailbox quota. The identifier can be the UserId, Username, or email. The following identity formats are available: User ID: 12345678-1234-1234-1234-12 */
    UserId: string;
}
export interface UpdateMobileDeviceAccessRuleInput {
    /** The effect of the rule when it matches. Allowed values are ALLOW or DENY. */
    Effect: 'ALLOW' | 'DENY';
    /** The identifier of the rule to be updated. */
    MobileDeviceAccessRuleId: string;
    /** The updated rule name. */
    Name: string;
    /** The WorkMail organization under which the rule will be updated. */
    OrganizationId: string;
    /** The updated rule description. */
    Description?: string;
    /** Device models that the updated rule will match. */
    DeviceModels?: string[];
    /** Device operating systems that the updated rule will match. */
    DeviceOperatingSystems?: string[];
    /** Device types that the updated rule will match. */
    DeviceTypes?: string[];
    /** User agents that the updated rule will match. */
    DeviceUserAgents?: string[];
    /** Device models that the updated rule will not match. All other device models will match. */
    NotDeviceModels?: string[];
    /** Device operating systems that the updated rule will not match. All other device operating systems will match. */
    NotDeviceOperatingSystems?: string[];
    /** Device types that the updated rule will not match. All other device types will match. */
    NotDeviceTypes?: string[];
    /** User agents that the updated rule will not match. All other user agents will match. */
    NotDeviceUserAgents?: string[];
}
export interface UpdatePrimaryEmailAddressInput {
    /** The value of the email to be updated as primary. */
    Email: string;
    /** The user, group, or resource to update. The identifier can accept UseriD, ResourceId, or GroupId, Username, Resourcename, or Groupname, or email. The following identity formats are available: Entity I */
    EntityId: string;
    /** The organization that contains the user, group, or resource to update. */
    OrganizationId: string;
}
export interface UpdateResourceInput {
    /** The identifier associated with the organization for which the resource is updated. */
    OrganizationId: string;
    /** The identifier of the resource to be updated. The identifier can accept ResourceId, Resourcename, or email. The following identity formats are available: Resource ID: r-0123456789a0123456789b012345678 */
    ResourceId: string;
    /** The resource's booking options to be updated. */
    BookingOptions?: BookingOptions;
    /** Updates the resource description. */
    Description?: string;
    /** If enabled, the resource is hidden from the global address list. */
    HiddenFromGlobalAddressList?: boolean;
    /** The name of the resource to be updated. */
    Name?: string;
    /** Updates the resource type. */
    Type?: 'ROOM' | 'EQUIPMENT';
}
export interface UpdateUserInput {
    /** The identifier for the organization under which the user exists. */
    OrganizationId: string;
    /** The identifier for the user to be updated. The identifier can be the UserId, Username, or email. The following identity formats are available: User ID: 12345678-1234-1234-1234-123456789012 or S-1-1-12 */
    UserId: string;
    /** Updates the user's city. */
    City?: string;
    /** Updates the user's company. */
    Company?: string;
    /** Updates the user's country. */
    Country?: string;
    /** Updates the user's department. */
    Department?: string;
    /** Updates the display name of the user. */
    DisplayName?: string;
    /** Updates the user's first name. */
    FirstName?: string;
    /** If enabled, the user is hidden from the global address list. */
    HiddenFromGlobalAddressList?: boolean;
    /** User ID from the IAM Identity Center. If this parameter is empty it will be updated automatically when the user logs in for the first time to the mailbox associated with WorkMail. */
    IdentityProviderUserId?: string;
    /** Updates the user's initials. */
    Initials?: string;
    /** Updates the user's job title. */
    JobTitle?: string;
    /** Updates the user's last name. */
    LastName?: string;
    /** Updates the user's office. */
    Office?: string;
    /** Updates the user role. You cannot pass SYSTEM_USER or RESOURCE. */
    Role?: 'USER' | 'RESOURCE' | 'SYSTEM_USER' | 'REMOTE_USER';
    /** Updates the user's street address. */
    Street?: string;
    /** Updates the user's contact details. */
    Telephone?: string;
    /** Updates the user's zip code. */
    ZipCode?: string;
}
/** WorkMail service binding for Step Functions SDK integrations. */
export declare class WorkMail {
    constructor();
    associateDelegateToResource<T>(params: AssociateDelegateToResourceInput): Promise<T>;
    associateMemberToGroup<T>(params: AssociateMemberToGroupInput): Promise<T>;
    assumeImpersonationRole<T>(params: AssumeImpersonationRoleInput): Promise<T>;
    cancelMailboxExportJob<T>(params: CancelMailboxExportJobInput): Promise<T>;
    createAlias<T>(params: CreateAliasInput): Promise<T>;
    createAvailabilityConfiguration<T>(params: CreateAvailabilityConfigurationInput): Promise<T>;
    createGroup<T>(params: CreateGroupInput): Promise<T>;
    createIdentityCenterApplication<T>(params: CreateIdentityCenterApplicationInput): Promise<T>;
    createImpersonationRole<T>(params: CreateImpersonationRoleInput): Promise<T>;
    createMobileDeviceAccessRule<T>(params: CreateMobileDeviceAccessRuleInput): Promise<T>;
    createOrganization<T>(params: CreateOrganizationInput): Promise<T>;
    createResource<T>(params: CreateResourceInput): Promise<T>;
    createUser<T>(params: CreateUserInput): Promise<T>;
    deleteAccessControlRule<T>(params: DeleteAccessControlRuleInput): Promise<T>;
    deleteAlias<T>(params: DeleteAliasInput): Promise<T>;
    deleteAvailabilityConfiguration<T>(params: DeleteAvailabilityConfigurationInput): Promise<T>;
    deleteEmailMonitoringConfiguration<T>(params: DeleteEmailMonitoringConfigurationInput): Promise<T>;
    deleteGroup<T>(params: DeleteGroupInput): Promise<T>;
    deleteIdentityCenterApplication<T>(params: DeleteIdentityCenterApplicationInput): Promise<T>;
    deleteIdentityProviderConfiguration<T>(params: DeleteIdentityProviderConfigurationInput): Promise<T>;
    deleteImpersonationRole<T>(params: DeleteImpersonationRoleInput): Promise<T>;
    deleteMailboxPermissions<T>(params: DeleteMailboxPermissionsInput): Promise<T>;
    deleteMobileDeviceAccessOverride<T>(params: DeleteMobileDeviceAccessOverrideInput): Promise<T>;
    deleteMobileDeviceAccessRule<T>(params: DeleteMobileDeviceAccessRuleInput): Promise<T>;
    deleteOrganization<T>(params: DeleteOrganizationInput): Promise<T>;
    deletePersonalAccessToken<T>(params: DeletePersonalAccessTokenInput): Promise<T>;
    deleteResource<T>(params: DeleteResourceInput): Promise<T>;
    deleteRetentionPolicy<T>(params: DeleteRetentionPolicyInput): Promise<T>;
    deleteUser<T>(params: DeleteUserInput): Promise<T>;
    deregisterFromWorkMail<T>(params: DeregisterFromWorkMailInput): Promise<T>;
    deregisterMailDomain<T>(params: DeregisterMailDomainInput): Promise<T>;
    describeEmailMonitoringConfiguration<T>(params: DescribeEmailMonitoringConfigurationInput): Promise<T>;
    describeEntity<T>(params: DescribeEntityInput): Promise<T>;
    describeGroup<T>(params: DescribeGroupInput): Promise<T>;
    describeIdentityProviderConfiguration<T>(params: DescribeIdentityProviderConfigurationInput): Promise<T>;
    describeInboundDmarcSettings<T>(params: DescribeInboundDmarcSettingsInput): Promise<T>;
    describeMailboxExportJob<T>(params: DescribeMailboxExportJobInput): Promise<T>;
    describeOrganization<T>(params: DescribeOrganizationInput): Promise<T>;
    describeResource<T>(params: DescribeResourceInput): Promise<T>;
    describeUser<T>(params: DescribeUserInput): Promise<T>;
    disassociateDelegateFromResource<T>(params: DisassociateDelegateFromResourceInput): Promise<T>;
    disassociateMemberFromGroup<T>(params: DisassociateMemberFromGroupInput): Promise<T>;
    getAccessControlEffect<T>(params: GetAccessControlEffectInput): Promise<T>;
    getDefaultRetentionPolicy<T>(params: GetDefaultRetentionPolicyInput): Promise<T>;
    getImpersonationRole<T>(params: GetImpersonationRoleInput): Promise<T>;
    getImpersonationRoleEffect<T>(params: GetImpersonationRoleEffectInput): Promise<T>;
    getMailboxDetails<T>(params: GetMailboxDetailsInput): Promise<T>;
    getMailDomain<T>(params: GetMailDomainInput): Promise<T>;
    getMobileDeviceAccessEffect<T>(params: GetMobileDeviceAccessEffectInput): Promise<T>;
    getMobileDeviceAccessOverride<T>(params: GetMobileDeviceAccessOverrideInput): Promise<T>;
    getPersonalAccessTokenMetadata<T>(params: GetPersonalAccessTokenMetadataInput): Promise<T>;
    listAccessControlRules<T>(params: ListAccessControlRulesInput): Promise<T>;
    listAliases<T>(params: ListAliasesInput): Promise<T>;
    listAvailabilityConfigurations<T>(params: ListAvailabilityConfigurationsInput): Promise<T>;
    listGroupMembers<T>(params: ListGroupMembersInput): Promise<T>;
    listGroups<T>(params: ListGroupsInput): Promise<T>;
    listGroupsForEntity<T>(params: ListGroupsForEntityInput): Promise<T>;
    listImpersonationRoles<T>(params: ListImpersonationRolesInput): Promise<T>;
    listMailboxExportJobs<T>(params: ListMailboxExportJobsInput): Promise<T>;
    listMailboxPermissions<T>(params: ListMailboxPermissionsInput): Promise<T>;
    listMailDomains<T>(params: ListMailDomainsInput): Promise<T>;
    listMobileDeviceAccessOverrides<T>(params: ListMobileDeviceAccessOverridesInput): Promise<T>;
    listMobileDeviceAccessRules<T>(params: ListMobileDeviceAccessRulesInput): Promise<T>;
    listOrganizations<T>(params: ListOrganizationsInput): Promise<T>;
    listPersonalAccessTokens<T>(params: ListPersonalAccessTokensInput): Promise<T>;
    listResourceDelegates<T>(params: ListResourceDelegatesInput): Promise<T>;
    listResources<T>(params: ListResourcesInput): Promise<T>;
    listTagsForResource<T>(params: ListTagsForResourceInput): Promise<T>;
    listUsers<T>(params: ListUsersInput): Promise<T>;
    putAccessControlRule<T>(params: PutAccessControlRuleInput): Promise<T>;
    putEmailMonitoringConfiguration<T>(params: PutEmailMonitoringConfigurationInput): Promise<T>;
    putIdentityProviderConfiguration<T>(params: PutIdentityProviderConfigurationInput): Promise<T>;
    putInboundDmarcSettings<T>(params: PutInboundDmarcSettingsInput): Promise<T>;
    putMailboxPermissions<T>(params: PutMailboxPermissionsInput): Promise<T>;
    putMobileDeviceAccessOverride<T>(params: PutMobileDeviceAccessOverrideInput): Promise<T>;
    putRetentionPolicy<T>(params: PutRetentionPolicyInput): Promise<T>;
    registerMailDomain<T>(params: RegisterMailDomainInput): Promise<T>;
    registerToWorkMail<T>(params: RegisterToWorkMailInput): Promise<T>;
    resetPassword<T>(params: ResetPasswordInput): Promise<T>;
    startMailboxExportJob<T>(params: StartMailboxExportJobInput): Promise<T>;
    tagResource<T>(params: TagResourceInput): Promise<T>;
    testAvailabilityConfiguration<T>(params: TestAvailabilityConfigurationInput): Promise<T>;
    untagResource<T>(params: UntagResourceInput): Promise<T>;
    updateAvailabilityConfiguration<T>(params: UpdateAvailabilityConfigurationInput): Promise<T>;
    updateDefaultMailDomain<T>(params: UpdateDefaultMailDomainInput): Promise<T>;
    updateGroup<T>(params: UpdateGroupInput): Promise<T>;
    updateImpersonationRole<T>(params: UpdateImpersonationRoleInput): Promise<T>;
    updateMailboxQuota<T>(params: UpdateMailboxQuotaInput): Promise<T>;
    updateMobileDeviceAccessRule<T>(params: UpdateMobileDeviceAccessRuleInput): Promise<T>;
    updatePrimaryEmailAddress<T>(params: UpdatePrimaryEmailAddressInput): Promise<T>;
    updateResource<T>(params: UpdateResourceInput): Promise<T>;
    updateUser<T>(params: UpdateUserInput): Promise<T>;
}
//# sourceMappingURL=WorkMail.d.ts.map