Module Smaws_Client_WorkMail

WorkMail client library built on EIO.

Types

type unsupported_operation_exception = {
  1. message : string option;
}

You can't perform a write operation against a read-only directory.

type organization_state_exception = {
  1. message : string option;
}

The organization must have a valid state to perform certain operations on the organization or its members.

type organization_not_found_exception = {
  1. message : string option;
}

An operation received a valid organization identifier that either doesn't belong or exist in the system.

type invalid_parameter_exception = {
  1. message : string option;
}

One or more of the input parameters don't match the service's restrictions.

type entity_state_exception = {
  1. message : string option;
}

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.

type entity_not_found_exception = {
  1. message : string option;
}

The identifier supplied for the user, group, or resource does not exist in your organization.

type directory_unavailable_exception = {
  1. message : string option;
}

The directory is unavailable. It might be located in another Region or deleted.

type directory_service_authentication_failed_exception = {
  1. message : string option;
}

The directory service doesn't recognize the credentials supplied by WorkMail.

type update_user_response = unit
type user_role =
  1. | REMOTE_USER
  2. | SYSTEM_USER
  3. | RESOURCE
  4. | USER
type update_user_request = {
  1. office : string option;
    (*

    Updates the user's office.

    *)
  2. country : string option;
    (*

    Updates the user's country.

    *)
  3. department : string option;
    (*

    Updates the user's department.

    *)
  4. zip_code : string option;
    (*

    Updates the user's zipcode.

    *)
  5. company : string option;
    (*

    Updates the user's company.

    *)
  6. city : string option;
    (*

    Updates the user's city.

    *)
  7. job_title : string option;
    (*

    Updates the user's job title.

    *)
  8. street : string option;
    (*

    Updates the user's street address.

    *)
  9. telephone : string option;
    (*

    Updates the user's contact details.

    *)
  10. initials : string option;
    (*

    Updates the user's initials.

    *)
  11. hidden_from_global_address_list : bool option;
    (*

    If enabled, the user is hidden from the global address list.

    *)
  12. last_name : string option;
    (*

    Updates the user's last name.

    *)
  13. first_name : string option;
    (*

    Updates the user's first name.

    *)
  14. display_name : string option;
    (*

    Updates the display name of the user.

    *)
  15. role : user_role option;
    (*

    Updates the user role.

    You cannot pass SYSTEM_USER or RESOURCE.

    *)
  16. user_id : 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-1234567890-123456789-123456789-1234
    • Email address: user@domain.tld
    • User name: user
    *)
  17. organization_id : string;
    (*

    The identifier for the organization under which the user exists.

    *)
}
type name_availability_exception = {
  1. message : string option;
}

The user, group, or resource name isn't unique in WorkMail.

type mail_domain_state_exception = {
  1. message : string option;
}

After a domain has been added to the organization, it must be verified. The domain is not yet verified.

type mail_domain_not_found_exception = {
  1. message : string option;
}

The domain specified is not found in your organization.

type invalid_configuration_exception = {
  1. message : string option;
}

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.

type email_address_in_use_exception = {
  1. message : string option;
}

The email address that you're trying to assign is already created for a different user, group, or resource.

type update_resource_response = unit
type booking_options = {
  1. auto_decline_conflicting_requests : bool option;
    (*

    The resource's ability to automatically decline any conflicting requests.

    *)
  2. auto_decline_recurring_requests : bool option;
    (*

    The resource's ability to automatically decline any recurring requests.

    *)
  3. auto_accept_requests : bool option;
    (*

    The resource's ability to automatically reply to requests. If disabled, delegates must be associated to the resource.

    *)
}

At least one delegate must be associated to the resource to disable automatic replies from the resource.

type resource_type =
  1. | EQUIPMENT
  2. | ROOM
type update_resource_request = {
  1. hidden_from_global_address_list : bool option;
    (*

    If enabled, the resource is hidden from the global address list.

    *)
  2. type_ : resource_type option;
    (*

    Updates the resource type.

    *)
  3. description : string option;
    (*

    Updates the resource description.

    *)
  4. booking_options : booking_options option;
    (*

    The resource's booking options to be updated.

    *)
  5. name : string option;
    (*

    The name of the resource to be updated.

    *)
  6. resource_id : 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-0123456789a0123456789b0123456789
    • Email address: resource@domain.tld
    • Resource name: resource
    *)
  7. organization_id : string;
    (*

    The identifier associated with the organization for which the resource is updated.

    *)
}
type update_primary_email_address_response = unit
type update_primary_email_address_request = {
  1. email : string;
    (*

    The value of the email to be updated as primary.

    *)
  2. entity_id : 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 ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: entity@domain.tld
    • Entity name: entity
    *)
  3. organization_id : string;
    (*

    The organization that contains the user, group, or resource to update.

    *)
}
type update_mobile_device_access_rule_response = unit
type mobile_device_access_rule_effect =
  1. | DENY
  2. | ALLOW
type update_mobile_device_access_rule_request = {
  1. not_device_user_agents : string list option;
    (*

    User agents that the updated rule will not match. All other user agents will match.

    *)
  2. device_user_agents : string list option;
    (*

    User agents that the updated rule will match.

    *)
  3. not_device_operating_systems : string list option;
    (*

    Device operating systems that the updated rule will not match. All other device operating systems will match.

    *)
  4. device_operating_systems : string list option;
    (*

    Device operating systems that the updated rule will match.

    *)
  5. not_device_models : string list option;
    (*

    Device models that the updated rule will not match. All other device models will match.

    *)
  6. device_models : string list option;
    (*

    Device models that the updated rule will match.

    *)
  7. not_device_types : string list option;
    (*

    Device types that the updated rule will not match. All other device types will match.

    *)
  8. device_types : string list option;
    (*

    Device types that the updated rule will match.

    *)
  9. effect_ : mobile_device_access_rule_effect;
    (*

    The effect of the rule when it matches. Allowed values are ALLOW or DENY.

    *)
  10. description : string option;
    (*

    The updated rule description.

    *)
  11. name : string;
    (*

    The updated rule name.

    *)
  12. mobile_device_access_rule_id : string;
    (*

    The identifier of the rule to be updated.

    *)
  13. organization_id : string;
    (*

    The WorkMail organization under which the rule will be updated.

    *)
}
type update_mailbox_quota_response = unit
type update_mailbox_quota_request = {
  1. mailbox_quota : int;
    (*

    The updated mailbox quota, in MB, for the specified user.

    *)
  2. user_id : 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-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: user@domain.tld
    • User name: user
    *)
  3. organization_id : string;
    (*

    The identifier for the organization that contains the user for whom to update the mailbox quota.

    *)
}
type resource_not_found_exception = {
  1. message : string option;
}

The resource cannot be found.

type limit_exceeded_exception = {
  1. message : string option;
}

The request exceeds the limit of the resource.

type update_impersonation_role_response = unit
type impersonation_role_type =
  1. | READ_ONLY
  2. | FULL_ACCESS
type access_effect =
  1. | DENY
  2. | ALLOW
type impersonation_rule = {
  1. not_target_users : string list option;
    (*

    A list of user IDs that don't match the rule.

    *)
  2. target_users : string list option;
    (*

    A list of user IDs that match the rule.

    *)
  3. effect_ : access_effect;
    (*

    The effect of the rule when it matches the input. Allowed effect values are ALLOW or DENY.

    *)
  4. description : string option;
    (*

    The rule description.

    *)
  5. name : string option;
    (*

    The rule name.

    *)
  6. impersonation_rule_id : string;
    (*

    The identifier of the rule.

    *)
}

The rules for the given impersonation role.

type update_impersonation_role_request = {
  1. rules : impersonation_rule list;
    (*

    The updated list of rules.

    *)
  2. description : string option;
    (*

    The updated impersonation role description.

    *)
  3. type_ : impersonation_role_type;
    (*

    The updated impersonation role type.

    *)
  4. name : string;
    (*

    The updated impersonation role name.

    *)
  5. impersonation_role_id : string;
    (*

    The ID of the impersonation role to update.

    *)
  6. organization_id : string;
    (*

    The WorkMail organization that contains the impersonation role to update.

    *)
}
type update_group_response = unit
type update_group_request = {
  1. hidden_from_global_address_list : bool option;
    (*

    If enabled, the group is hidden from the global address list.

    *)
  2. group_id : string;
    (*

    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-1-12-1234567890-123456789-123456789-1234
    • Email address: group@domain.tld
    • Group name: group
    *)
  3. organization_id : string;
    (*

    The identifier for the organization under which the group exists.

    *)
}
type update_default_mail_domain_response = unit
type update_default_mail_domain_request = {
  1. domain_name : string;
    (*

    The domain name that will become the default domain.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization for which to list domains.

    *)
}
type update_availability_configuration_response = unit
type ews_availability_provider = {
  1. ews_password : string;
    (*

    The password used to authenticate the remote EWS server.

    *)
  2. ews_username : string;
    (*

    The username used to authenticate the remote EWS server.

    *)
  3. ews_endpoint : string;
    (*

    The endpoint of the remote EWS server.

    *)
}

Describes an EWS based availability provider. This is only used as input to the service.

type lambda_availability_provider = {
  1. lambda_arn : string;
    (*

    The Amazon Resource Name (ARN) of the Lambda that acts as the availability provider.

    *)
}

Describes a Lambda based availability provider.

type update_availability_configuration_request = {
  1. lambda_provider : lambda_availability_provider option;
    (*

    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 one provided.

    *)
  2. ews_provider : ews_availability_provider option;
    (*

    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 provided.

    *)
  3. domain_name : string;
    (*

    The domain to which the provider applies the availability configuration.

    *)
  4. organization_id : string;
    (*

    The WorkMail organization for which the AvailabilityConfiguration will be updated.

    *)
}
type untag_resource_response = unit
type untag_resource_request = {
  1. tag_keys : string list;
    (*

    The tag keys.

    *)
  2. resource_ar_n : string;
    (*

    The resource ARN.

    *)
}
type test_availability_configuration_response = {
  1. failure_reason : string option;
    (*

    String containing the reason for a failed test if TestPassed is false.

    *)
  2. test_passed : bool option;
    (*

    Boolean indicating whether the test passed or failed.

    *)
}
type test_availability_configuration_request = {
  1. lambda_provider : lambda_availability_provider option;
  2. ews_provider : ews_availability_provider option;
  3. domain_name : string option;
    (*

    The domain to which the provider applies. If this field is provided, a stored availability provider associated to this domain name will be tested.

    *)
  4. organization_id : string;
    (*

    The WorkMail organization where the availability provider will be tested.

    *)
}
type too_many_tags_exception = {
  1. message : string option;
}

The resource can have up to 50 user-applied tags.

type tag_resource_response = unit
type tag = {
  1. value : string;
    (*

    The value of the tag.

    *)
  2. key : string;
    (*

    The key of the tag.

    *)
}

Describes a tag applied to a resource.

type tag_resource_request = {
  1. tags : tag list;
    (*

    The tag key-value pairs.

    *)
  2. resource_ar_n : string;
    (*

    The resource ARN.

    *)
}
type start_mailbox_export_job_response = {
  1. job_id : string option;
    (*

    The job ID.

    *)
}
type start_mailbox_export_job_request = {
  1. s3_prefix : string;
    (*

    The S3 bucket prefix.

    *)
  2. s3_bucket_name : string;
    (*

    The name of the S3 bucket.

    *)
  3. kms_key_arn : string;
    (*

    The Amazon Resource Name (ARN) of the symmetric AWS Key Management Service (AWS KMS) key that encrypts the exported mailbox content.

    *)
  4. role_arn : string;
    (*

    The ARN of the AWS Identity and Access Management (IAM) role that grants write permission to the S3 bucket.

    *)
  5. description : string option;
    (*

    The mailbox export job description.

    *)
  6. entity_id : 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:

    • Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789 , or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: entity@domain.tld
    • Entity name: entity
    *)
  7. organization_id : string;
    (*

    The identifier associated with the organization.

    *)
  8. client_token : string;
    (*

    The idempotency token for the client request.

    *)
}
type invalid_password_exception = {
  1. message : string option;
}

The supplied password doesn't match the minimum security constraints, such as length or use of special characters.

type reset_password_response = unit
type reset_password_request = {
  1. password : string;
    (*

    The new password for the user.

    *)
  2. user_id : string;
    (*

    The identifier of the user for whom the password is reset.

    *)
  3. organization_id : string;
    (*

    The identifier of the organization that contains the user for which the password is reset.

    *)
}
type entity_already_registered_exception = {
  1. message : string option;
}

The user, group, or resource that you're trying to register is already registered.

type register_to_work_mail_response = unit
type register_to_work_mail_request = {
  1. email : string;
    (*

    The email for the user, group, or resource to be updated.

    *)
  2. entity_id : 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 available:

    • Entity ID: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, or S-1-1-12-1234567890-123456789-123456789-1234
    • Entity name: entity
    *)
  3. organization_id : string;
    (*

    The identifier for the organization under which the user, group, or resource exists.

    *)
}
type mail_domain_in_use_exception = {
  1. message : string option;
}

The domain you're trying to change is in use by another user or organization in your account. See the error message for details.

type register_mail_domain_response = unit
type register_mail_domain_request = {
  1. domain_name : string;
    (*

    The name of the mail domain to create in WorkMail and SES.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization under which you're creating the domain.

    *)
  3. client_token : string option;
    (*

    Idempotency token used when retrying requests.

    *)
}
type put_retention_policy_response = unit
type folder_name =
  1. | JUNK_EMAIL
  2. | DRAFTS
  3. | SENT_ITEMS
  4. | DELETED_ITEMS
  5. | INBOX
type retention_action =
  1. | PERMANENTLY_DELETE
  2. | DELETE
  3. | NONE
type folder_configuration = {
  1. period : int option;
    (*

    The number of days for which the folder-configuration action applies.

    *)
  2. action : retention_action;
    (*

    The action to take on the folder contents at the end of the folder configuration period.

    *)
  3. name : folder_name;
    (*

    The folder name.

    *)
}

The configuration applied to an organization's folders by its retention policy.

type put_retention_policy_request = {
  1. folder_configurations : folder_configuration list;
    (*

    The retention policy folder configurations.

    *)
  2. description : string option;
    (*

    The retention policy description.

    *)
  3. name : string;
    (*

    The retention policy name.

    *)
  4. id : string option;
    (*

    The retention policy ID.

    *)
  5. organization_id : string;
    (*

    The organization ID.

    *)
}
type put_mobile_device_access_override_response = unit
type put_mobile_device_access_override_request = {
  1. description : string option;
    (*

    A description of the override.

    *)
  2. effect_ : mobile_device_access_rule_effect;
    (*

    The effect of the override, ALLOW or DENY.

    *)
  3. device_id : string;
    (*

    The mobile device for which you create the override. DeviceId is case insensitive.

    *)
  4. user_id : 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 address: user@domain.tld
    • User name: user
    *)
  5. organization_id : string;
    (*

    Identifies the WorkMail organization for which you create the override.

    *)
}
type put_mailbox_permissions_response = unit
type permission_type =
  1. | SEND_ON_BEHALF
  2. | SEND_AS
  3. | FULL_ACCESS
type put_mailbox_permissions_request = {
  1. permission_values : permission_type list;
    (*

    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 email on behalf of the owner of the mailbox (the grantee is not mentioned as the physical sender of these emails). FULL_ACCESS allows the grantee full access to the mailbox, irrespective of other folder-level permissions set on the mailbox.

    *)
  2. grantee_id : 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: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: grantee@domain.tld
    • Grantee name: grantee
    *)
  3. entity_id : string;
    (*

    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: 12345678-1234-1234-1234-123456789012, r-0123456789a0123456789b0123456789, or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: entity@domain.tld
    • Entity name: entity
    *)
  4. organization_id : string;
    (*

    The identifier of the organization under which the user, group, or resource exists.

    *)
}
type put_inbound_dmarc_settings_response = unit
type put_inbound_dmarc_settings_request = {
  1. enforced : bool;
    (*

    Enforces or suspends a policy after it's applied.

    *)
  2. organization_id : string;
    (*

    The ID of the organization that you are applying the DMARC policy to.

    *)
}
type put_email_monitoring_configuration_response = unit
type put_email_monitoring_configuration_request = {
  1. log_group_arn : string;
    (*

    The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration.

    *)
  2. role_arn : string;
    (*

    The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration.

    *)
  3. organization_id : string;
    (*

    The ID of the organization for which the email monitoring configuration is set.

    *)
}
type put_access_control_rule_response = unit
type access_control_rule_effect =
  1. | DENY
  2. | ALLOW
type put_access_control_rule_request = {
  1. not_impersonation_role_ids : string list option;
    (*

    Impersonation role IDs to exclude from the rule.

    *)
  2. impersonation_role_ids : string list option;
    (*

    Impersonation role IDs to include in the rule.

    *)
  3. organization_id : string;
    (*

    The identifier of the organization.

    *)
  4. not_user_ids : string list option;
    (*

    User IDs to exclude from the rule.

    *)
  5. user_ids : string list option;
    (*

    User IDs to include in the rule.

    *)
  6. not_actions : string list option;
    (*

    Access protocol actions to exclude from the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

    *)
  7. actions : string list option;
    (*

    Access protocol actions to include in the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

    *)
  8. not_ip_ranges : string list option;
    (*

    IPv4 CIDR ranges to exclude from the rule.

    *)
  9. ip_ranges : string list option;
    (*

    IPv4 CIDR ranges to include in the rule.

    *)
  10. description : string;
    (*

    The rule description.

    *)
  11. effect_ : access_control_rule_effect;
    (*

    The rule effect.

    *)
  12. name : string;
    (*

    The rule name.

    *)
}
type entity_state =
  1. | DELETED
  2. | DISABLED
  3. | ENABLED
type user = {
  1. disabled_date : float option;
    (*

    The date indicating when the user was disabled from WorkMail use.

    *)
  2. enabled_date : float option;
    (*

    The date indicating when the user was enabled for WorkMail use.

    *)
  3. user_role : user_role option;
    (*

    The role of the user.

    *)
  4. state : entity_state option;
    (*

    The state of the user, which can be ENABLED, DISABLED, or DELETED.

    *)
  5. display_name : string option;
    (*

    The display name of the user.

    *)
  6. name : string option;
    (*

    The name of the user.

    *)
  7. email : string option;
    (*

    The email of the user.

    *)
  8. id : string option;
    (*

    The identifier of the user.

    *)
}

The representation of an WorkMail user.

type list_users_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. This value is `null` when there are no more results to return.

    *)
  2. users : user list option;
    (*

    The overview of users for an organization.

    *)
}
type list_users_filters = {
  1. state : entity_state option;
    (*

    Filters only users with the provided state.

    *)
  2. primary_email_prefix : string option;
    (*

    Filters only users with the provided email prefix.

    *)
  3. display_name_prefix : string option;
    (*

    Filters only users with the provided display name prefix.

    *)
  4. username_prefix : string option;
    (*

    Filters only users with the provided username prefix.

    *)
}

Filtering options for ListUsers operation. This is only used as input to Operation.

type list_users_request = {
  1. filters : list_users_filters option;
    (*

    Limit the user search results based on the filter criteria. You can only use one filter per request.

    *)
  2. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  3. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
  4. organization_id : string;
    (*

    The identifier for the organization under which the users exist.

    *)
}
type list_tags_for_resource_response = {
  1. tags : tag list option;
    (*

    A list of tag key-value pairs.

    *)
}
type list_tags_for_resource_request = {
  1. resource_ar_n : string;
    (*

    The resource ARN.

    *)
}
type resource = {
  1. description : string option;
    (*

    Resource description.

    *)
  2. disabled_date : float option;
    (*

    The date indicating when the resource was disabled from WorkMail use.

    *)
  3. enabled_date : float option;
    (*

    The date indicating when the resource was enabled for WorkMail use.

    *)
  4. state : entity_state option;
    (*

    The state of the resource, which can be ENABLED, DISABLED, or DELETED.

    *)
  5. type_ : resource_type option;
    (*

    The type of the resource: equipment or room.

    *)
  6. name : string option;
    (*

    The name of the resource.

    *)
  7. email : string option;
    (*

    The email of the resource.

    *)
  8. id : string option;
    (*

    The identifier of the resource.

    *)
}

The representation of a resource.

type list_resources_response = {
  1. next_token : string option;
    (*

    The token used to paginate through all the organization's resources. While results are still available, it has an associated value. When the last page is reached, the token is empty.

    *)
  2. resources : resource list option;
    (*

    One page of the organization's resource representation.

    *)
}
type list_resources_filters = {
  1. state : entity_state option;
    (*

    Filters only resource with the provided state.

    *)
  2. primary_email_prefix : string option;
    (*

    Filters only resource with the provided primary email prefix.

    *)
  3. name_prefix : string option;
    (*

    Filters only resource that start with the entered name prefix .

    *)
}

Filtering options for ListResources operation. This is only used as input to Operation.

type list_resources_request = {
  1. filters : list_resources_filters option;
    (*

    Limit the resource search results based on the filter criteria. You can only use one filter per request.

    *)
  2. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  3. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
  4. organization_id : string;
    (*

    The identifier for the organization under which the resources exist.

    *)
}
type member_type =
  1. | USER
  2. | GROUP
type delegate = {
  1. type_ : member_type;
    (*

    The type of the delegate: user or group.

    *)
  2. id : string;
    (*

    The identifier for the user or group associated as the resource's delegate.

    *)
}

The name of the attribute, which is one of the values defined in the UserAttribute enumeration.

type list_resource_delegates_response = {
  1. next_token : string option;
    (*

    The token used to paginate through the delegates associated with a resource. While results are still available, it has an associated value. When the last page is reached, the token is empty.

    *)
  2. delegates : delegate list option;
    (*

    One page of the resource's delegates.

    *)
}
type list_resource_delegates_request = {
  1. max_results : int option;
    (*

    The number of maximum results in a page.

    *)
  2. next_token : string option;
    (*

    The token used to paginate through the delegates associated with a resource.

    *)
  3. resource_id : 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-0123456789a0123456789b0123456789
    • Email address: resource@domain.tld
    • Resource name: resource
    *)
  4. organization_id : string;
    (*

    The identifier for the organization that contains the resource for which delegates are listed.

    *)
}
type organization_summary = {
  1. state : string option;
    (*

    The state associated with the organization.

    *)
  2. error_message : string option;
    (*

    The error message associated with the organization. It is only present if unexpected behavior has occurred with regards to the organization. It provides insight or solutions regarding unexpected behavior.

    *)
  3. default_mail_domain : string option;
    (*

    The default email domain associated with the organization.

    *)
  4. alias : string option;
    (*

    The alias associated with the organization.

    *)
  5. organization_id : string option;
    (*

    The identifier associated with the organization.

    *)
}

The representation of an organization.

type list_organizations_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The value is "null" when there are no more results to return.

    *)
  2. organization_summaries : organization_summary list option;
    (*

    The overview of owned organizations presented as a list of organization summaries.

    *)
}
type list_organizations_request = {
  1. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  2. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
}
type mobile_device_access_rule = {
  1. date_modified : float option;
    (*

    The date and time at which an access rule was modified.

    *)
  2. date_created : float option;
    (*

    The date and time at which an access rule was created.

    *)
  3. not_device_user_agents : string list option;
    (*

    Device user agents that a rule will not match. All other device user agents will match.

    *)
  4. device_user_agents : string list option;
    (*

    Device user agents that a rule will match.

    *)
  5. not_device_operating_systems : string list option;
    (*

    Device operating systems that a rule will not match. All other device types will match.

    *)
  6. device_operating_systems : string list option;
    (*

    Device operating systems that a rule will match.

    *)
  7. not_device_models : string list option;
    (*

    Device models that a rule will not match. All other device models will match.

    *)
  8. device_models : string list option;
    (*

    Device models that a rule will match.

    *)
  9. not_device_types : string list option;
    (*

    Device types that a rule will not match. All other device types will match.

    *)
  10. device_types : string list option;
    (*

    Device types that a rule will match.

    *)
  11. effect_ : mobile_device_access_rule_effect option;
    (*

    The effect of the rule when it matches. Allowed values are ALLOW or DENY.

    *)
  12. description : string option;
    (*

    The description of a mobile access rule.

    *)
  13. name : string option;
    (*

    The name of a mobile access rule.

    *)
  14. mobile_device_access_rule_id : string option;
    (*

    The ID assigned to a mobile access rule.

    *)
}

A rule that controls access to mobile devices for an WorkMail group.

type list_mobile_device_access_rules_response = {
  1. rules : mobile_device_access_rule list option;
    (*

    The list of mobile device access rules that exist under the specified WorkMail organization.

    *)
}
type list_mobile_device_access_rules_request = {
  1. organization_id : string;
    (*

    The WorkMail organization for which to list the rules.

    *)
}
type mobile_device_access_override = {
  1. date_modified : float option;
    (*

    The date the override was last modified.

    *)
  2. date_created : float option;
    (*

    The date the override was first created.

    *)
  3. description : string option;
    (*

    A description of the override.

    *)
  4. effect_ : mobile_device_access_rule_effect option;
    (*

    The effect of the override, ALLOW or DENY.

    *)
  5. device_id : string option;
    (*

    The device to which the override applies.

    *)
  6. user_id : string option;
    (*

    The WorkMail user to which the access override applies.

    *)
}

The override object.

type list_mobile_device_access_overrides_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The value is “null” when there are no more results to return.

    *)
  2. overrides : mobile_device_access_override list option;
    (*

    The list of mobile device access overrides that exist for the specified WorkMail organization and user.

    *)
}
type list_mobile_device_access_overrides_request = {
  1. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  2. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not require a token.

    *)
  3. device_id : string option;
    (*

    The mobile device to which the access override applies.

    *)
  4. user_id : string option;
    (*

    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-123456789-123456789-1234
    • Email address: user@domain.tld
    • User name: user
    *)
  5. organization_id : string;
    (*

    The WorkMail organization under which to list mobile device access overrides.

    *)
}
type mail_domain_summary = {
  1. default_domain : bool option;
    (*

    Whether the domain is default or not.

    *)
  2. domain_name : string option;
    (*

    The domain name.

    *)
}

The data for a given domain.

type list_mail_domains_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The value becomes null when there are no more results to return.

    *)
  2. mail_domains : mail_domain_summary list option;
    (*

    The list of mail domain summaries, specifying domains that exist in the specified WorkMail organization, along with the information about whether the domain is or isn't the default.

    *)
}
type list_mail_domains_request = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not require a token.

    *)
  2. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  3. organization_id : string;
    (*

    The WorkMail organization for which to list domains.

    *)
}
type permission = {
  1. permission_values : permission_type list;
    (*

    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 email on behalf of the owner of the mailbox (the grantee is not mentioned as the physical sender of these emails). FULL_ACCESS allows the grantee full access to the mailbox, irrespective of other folder-level permissions set on the mailbox.

    *)
  2. grantee_type : member_type;
    (*

    The type of user, group, or resource referred to in GranteeId.

    *)
  3. grantee_id : string;
    (*

    The identifier of the user, group, or resource to which the permissions are granted.

    *)
}

Permission granted to a user, group, or resource to access a certain aspect of another user, group, or resource mailbox.

type list_mailbox_permissions_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The value is "null" when there are no more results to return.

    *)
  2. permissions : permission list option;
    (*

    One page of the user, group, or resource mailbox permissions.

    *)
}
type list_mailbox_permissions_request = {
  1. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  2. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
  3. entity_id : string;
    (*

    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-123456789012, or r-0123456789a0123456789b0123456789
    • Email address: entity@domain.tld
    • Entity name: entity
    *)
  4. organization_id : string;
    (*

    The identifier of the organization under which the user, group, or resource exists.

    *)
}
type mailbox_export_job_state =
  1. | CANCELLED
  2. | FAILED
  3. | COMPLETED
  4. | RUNNING
type mailbox_export_job = {
  1. end_time : float option;
    (*

    The mailbox export job end timestamp.

    *)
  2. start_time : float option;
    (*

    The mailbox export job start timestamp.

    *)
  3. state : mailbox_export_job_state option;
    (*

    The state of the mailbox export job.

    *)
  4. estimated_progress : int option;
    (*

    The estimated progress of the mailbox export job, in percentage points.

    *)
  5. s3_path : string option;
    (*

    The path to the S3 bucket and file that the mailbox export job exports to.

    *)
  6. s3_bucket_name : string option;
    (*

    The name of the S3 bucket.

    *)
  7. description : string option;
    (*

    The mailbox export job description.

    *)
  8. entity_id : string option;
    (*

    The identifier of the user or resource associated with the mailbox.

    *)
  9. job_id : string option;
    (*

    The identifier of the mailbox export job.

    *)
}

The details of a mailbox export job, including the user or resource ID associated with the mailbox and the S3 bucket that the mailbox contents are exported to.

type list_mailbox_export_jobs_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results.

    *)
  2. jobs : mailbox_export_job list option;
    (*

    The mailbox export job details.

    *)
}
type list_mailbox_export_jobs_request = {
  1. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  2. next_token : string option;
    (*

    The token to use to retrieve the next page of results.

    *)
  3. organization_id : string;
    (*

    The organization ID.

    *)
}
type impersonation_role = {
  1. date_modified : float option;
    (*

    The date when the impersonation role was last modified.

    *)
  2. date_created : float option;
    (*

    The date when the impersonation role was created.

    *)
  3. type_ : impersonation_role_type option;
    (*

    The impersonation role type.

    *)
  4. name : string option;
    (*

    The impersonation role name.

    *)
  5. impersonation_role_id : string option;
    (*

    The identifier of the impersonation role.

    *)
}

An impersonation role for the given WorkMail organization.

type list_impersonation_roles_response = {
  1. next_token : string option;
    (*

    The token to retrieve the next page of results. The value is null when there are no results to return.

    *)
  2. roles : impersonation_role list option;
    (*

    The list of impersonation roles under the given WorkMail organization.

    *)
}
type list_impersonation_roles_request = {
  1. max_results : int option;
    (*

    The maximum number of results returned in a single call.

    *)
  2. next_token : string option;
    (*

    The token used to retrieve the next page of results. The first call doesn't require a token.

    *)
  3. organization_id : string;
    (*

    The WorkMail organization to which the listed impersonation roles belong.

    *)
}
type group_identifier = {
  1. group_name : string option;
    (*

    Group name that matched the group.

    *)
  2. group_id : string option;
    (*

    Group ID that matched the group.

    *)
}

The identifier that contains the Group ID and name of a group.

type list_groups_for_entity_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. This value is `null` when there are no more results to return.

    *)
  2. groups : group_identifier list option;
    (*

    The overview of groups in an organization.

    *)
}
type list_groups_for_entity_filters = {
  1. group_name_prefix : string option;
    (*

    Filters only group names that start with the provided name prefix.

    *)
}

Filtering options for ListGroupsForEntity operation. This is only used as input to Operation.

type list_groups_for_entity_request = {
  1. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  2. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
  3. filters : list_groups_for_entity_filters option;
    (*

    Limit the search results based on the filter criteria.

    *)
  4. entity_id : string;
    (*

    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-1234
    • Email address: entity@domain.tld
    • Entity name: entity
    *)
  5. organization_id : string;
    (*

    The identifier for the organization under which the entity exists.

    *)
}
type group = {
  1. disabled_date : float option;
    (*

    The date indicating when the group was disabled from WorkMail use.

    *)
  2. enabled_date : float option;
    (*

    The date indicating when the group was enabled for WorkMail use.

    *)
  3. state : entity_state option;
    (*

    The state of the group, which can be ENABLED, DISABLED, or DELETED.

    *)
  4. name : string option;
    (*

    The name of the group.

    *)
  5. email : string option;
    (*

    The email of the group.

    *)
  6. id : string option;
    (*

    The identifier of the group.

    *)
}

The representation of an WorkMail group.

type list_groups_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The value is "null" when there are no more results to return.

    *)
  2. groups : group list option;
    (*

    The overview of groups for an organization.

    *)
}
type list_groups_filters = {
  1. state : entity_state option;
    (*

    Filters only groups with the provided state.

    *)
  2. primary_email_prefix : string option;
    (*

    Filters only groups with the provided primary email prefix.

    *)
  3. name_prefix : string option;
    (*

    Filters only groups with the provided name prefix.

    *)
}

Filtering options for ListGroups operation. This is only used as input to Operation.

type list_groups_request = {
  1. filters : list_groups_filters option;
    (*

    Limit the search results based on the filter criteria. Only one filter per request is supported.

    *)
  2. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  3. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
  4. organization_id : string;
    (*

    The identifier for the organization under which the groups exist.

    *)
}
type member = {
  1. disabled_date : float option;
    (*

    The date indicating when the member was disabled from WorkMail use.

    *)
  2. enabled_date : float option;
    (*

    The date indicating when the member was enabled for WorkMail use.

    *)
  3. state : entity_state option;
    (*

    The state of the member, which can be ENABLED, DISABLED, or DELETED.

    *)
  4. type_ : member_type option;
    (*

    A member can be a user or group.

    *)
  5. name : string option;
    (*

    The name of the member.

    *)
  6. id : string option;
    (*

    The identifier of the member.

    *)
}

The representation of a user or group.

type list_group_members_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
  2. members : member list option;
    (*

    The members associated to the group.

    *)
}
type list_group_members_request = {
  1. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  2. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
  3. group_id : string;
    (*

    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: 12345678-1234-1234-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: group@domain.tld
    • Group name: group
    *)
  4. organization_id : string;
    (*

    The identifier for the organization under which the group exists.

    *)
}
type availability_provider_type =
  1. | LAMBDA
  2. | EWS
type redacted_ews_availability_provider = {
  1. ews_username : string option;
    (*

    The username used to authenticate the remote EWS server.

    *)
  2. ews_endpoint : string option;
    (*

    The endpoint of the remote EWS server.

    *)
}

Describes an EWS based availability provider when returned from the service. It does not contain the password of the endpoint.

type availability_configuration = {
  1. date_modified : float option;
    (*

    The date and time at which the availability configuration was last modified.

    *)
  2. date_created : float option;
    (*

    The date and time at which the availability configuration was created.

    *)
  3. lambda_provider : lambda_availability_provider option;
    (*

    If ProviderType is LAMBDA then this field contains LambdaAvailabilityProvider. Otherwise, it is not required.

    *)
  4. ews_provider : redacted_ews_availability_provider option;
    (*

    If ProviderType is EWS, then this field contains RedactedEwsAvailabilityProvider. Otherwise, it is not required.

    *)
  5. provider_type : availability_provider_type option;
    (*

    Displays the provider type that applies to this domain.

    *)
  6. domain_name : string option;
    (*

    Displays the domain to which the provider applies.

    *)
}

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

type list_availability_configurations_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The value is null when there are no further results to return.

    *)
  2. availability_configurations : availability_configuration list option;
    (*

    The list of AvailabilityConfiguration's that exist for the specified WorkMail organization.

    *)
}
type list_availability_configurations_request = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not require a token.

    *)
  2. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  3. organization_id : string;
    (*

    The WorkMail organization for which the AvailabilityConfiguration's will be listed.

    *)
}
type list_aliases_response = {
  1. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The value is "null" when there are no more results to return.

    *)
  2. aliases : string list option;
    (*

    The entity's paginated aliases.

    *)
}
type list_aliases_request = {
  1. max_results : int option;
    (*

    The maximum number of results to return in a single call.

    *)
  2. next_token : string option;
    (*

    The token to use to retrieve the next page of results. The first call does not contain any tokens.

    *)
  3. entity_id : string;
    (*

    The identifier for the entity for which to list the aliases.

    *)
  4. organization_id : string;
    (*

    The identifier for the organization under which the entity exists.

    *)
}
type access_control_rule = {
  1. not_impersonation_role_ids : string list option;
    (*

    Impersonation role IDs to exclude from the rule.

    *)
  2. impersonation_role_ids : string list option;
    (*

    Impersonation role IDs to include in the rule.

    *)
  3. date_modified : float option;
    (*

    The date that the rule was modified.

    *)
  4. date_created : float option;
    (*

    The date that the rule was created.

    *)
  5. not_user_ids : string list option;
    (*

    User IDs to exclude from the rule.

    *)
  6. user_ids : string list option;
    (*

    User IDs to include in the rule.

    *)
  7. not_actions : string list option;
    (*

    Access protocol actions to exclude from the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

    *)
  8. actions : string list option;
    (*

    Access protocol actions to include in the rule. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

    *)
  9. not_ip_ranges : string list option;
    (*

    IPv4 CIDR ranges to exclude from the rule.

    *)
  10. ip_ranges : string list option;
    (*

    IPv4 CIDR ranges to include in the rule.

    *)
  11. description : string option;
    (*

    The rule description.

    *)
  12. effect_ : access_control_rule_effect option;
    (*

    The rule effect.

    *)
  13. name : string option;
    (*

    The rule name.

    *)
}

A rule that controls access to an WorkMail organization.

type list_access_control_rules_response = {
  1. rules : access_control_rule list option;
    (*

    The access control rules.

    *)
}
type list_access_control_rules_request = {
  1. organization_id : string;
    (*

    The identifier for the organization.

    *)
}
type get_mobile_device_access_override_response = {
  1. date_modified : float option;
    (*

    The date the description was last modified.

    *)
  2. date_created : float option;
    (*

    The date the override was first created.

    *)
  3. description : string option;
    (*

    A description of the override.

    *)
  4. effect_ : mobile_device_access_rule_effect option;
    (*

    The effect of the override, ALLOW or DENY.

    *)
  5. device_id : string option;
    (*

    The device to which the access override applies.

    *)
  6. user_id : string option;
    (*

    The WorkMail user to which the access override applies.

    *)
}
type get_mobile_device_access_override_request = {
  1. device_id : string;
    (*

    The mobile device to which the override applies. DeviceId is case insensitive.

    *)
  2. user_id : 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 address: user@domain.tld
    • User name: user
    *)
  3. organization_id : string;
    (*

    The WorkMail organization to which you want to apply the override.

    *)
}
type mobile_device_access_matched_rule = {
  1. name : string option;
    (*

    Name of a rule that a simulated user matches.

    *)
  2. mobile_device_access_rule_id : string option;
    (*

    Identifier of the rule that a simulated user matches.

    *)
}

The rule that a simulated user matches.

type get_mobile_device_access_effect_response = {
  1. matched_rules : mobile_device_access_matched_rule list option;
    (*

    A list of the rules which matched the simulated user input and produced the effect.

    *)
  2. effect_ : mobile_device_access_rule_effect option;
    (*

    The effect of the simulated access, ALLOW or DENY, after evaluating mobile device access rules in the WorkMail organization for the simulated user parameters.

    *)
}
type get_mobile_device_access_effect_request = {
  1. device_user_agent : string option;
    (*

    Device user agent the simulated user will report.

    *)
  2. device_operating_system : string option;
    (*

    Device operating system the simulated user will report.

    *)
  3. device_model : string option;
    (*

    Device model the simulated user will report.

    *)
  4. device_type : string option;
    (*

    Device type the simulated user will report.

    *)
  5. organization_id : string;
    (*

    The WorkMail organization to simulate the access effect for.

    *)
}
type dns_record = {
  1. value : string option;
    (*

    The value returned by the DNS for a query to that hostname and record type.

    *)
  2. hostname : string option;
    (*

    The DNS hostname.- For example, domain.example.com.

    *)
  3. type_ : string option;
    (*

    The RFC 1035 record type. Possible values: CNAME, A, MX.

    *)
}

A DNS record uploaded to your DNS provider.

type dns_record_verification_status =
  1. | FAILED
  2. | VERIFIED
  3. | PENDING
type get_mail_domain_response = {
  1. dkim_verification_status : dns_record_verification_status option;
    (*

    Indicates the status of a DKIM verification.

    *)
  2. ownership_verification_status : dns_record_verification_status option;
    (*

    Indicates the status of the domain ownership verification.

    *)
  3. is_default : bool option;
    (*

    Specifies whether the domain is the default domain for your organization.

    *)
  4. is_test_domain : bool option;
    (*

    Specifies whether the domain is a test domain provided by WorkMail, or a custom domain.

    *)
  5. records : dns_record list option;
    (*

    A list of the DNS records that WorkMail recommends adding in your DNS provider for the best user experience. The records configure your domain with DMARC, SPF, DKIM, and direct incoming email traffic to SES. See admin guide for more details.

    *)
}
type get_mail_domain_request = {
  1. domain_name : string;
    (*

    The domain from which you want to retrieve details.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization for which the domain is retrieved.

    *)
}
type get_mailbox_details_response = {
  1. mailbox_size : float option;
    (*

    The current mailbox size, in MB, for the specified user.

    *)
  2. mailbox_quota : int option;
    (*

    The maximum allowed mailbox size, in MB, for the specified user.

    *)
}
type get_mailbox_details_request = {
  1. user_id : 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-1234-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: user@domain.tld
    • User name: user
    *)
  2. organization_id : string;
    (*

    The identifier for the organization that contains the user whose mailbox details are being requested.

    *)
}
type impersonation_matched_rule = {
  1. name : string option;
    (*

    The name of the rule that matched the input.

    *)
  2. impersonation_rule_id : string option;
    (*

    The ID of the rule that matched the input

    *)
}

The impersonation rule that matched the input.

type get_impersonation_role_effect_response = {
  1. matched_rules : impersonation_matched_rule list option;
    (*

    A list of the rules that match the input and produce the configured effect.

    *)
  2. effect_ : access_effect option;
    (*

    Effect of the impersonation role on the target user based on its rules. Available effects are ALLOW or DENY.

    *)
  3. type_ : impersonation_role_type option;
    (*

    The impersonation role type.

    *)
}
type get_impersonation_role_effect_request = {
  1. target_user : 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-123456789-1234
    • Email address: user@domain.tld
    • User name: user
    *)
  2. impersonation_role_id : string;
    (*

    The impersonation role ID to test.

    *)
  3. organization_id : string;
    (*

    The WorkMail organization where the impersonation role is defined.

    *)
}
type get_impersonation_role_response = {
  1. date_modified : float option;
    (*

    The date when the impersonation role was last modified.

    *)
  2. date_created : float option;
    (*

    The date when the impersonation role was created.

    *)
  3. rules : impersonation_rule list option;
    (*

    The list of rules for the given impersonation role.

    *)
  4. description : string option;
    (*

    The impersonation role description.

    *)
  5. type_ : impersonation_role_type option;
    (*

    The impersonation role type.

    *)
  6. name : string option;
    (*

    The impersonation role name.

    *)
  7. impersonation_role_id : string option;
    (*

    The impersonation role ID.

    *)
}
type get_impersonation_role_request = {
  1. impersonation_role_id : string;
    (*

    The impersonation role ID to retrieve.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization from which to retrieve the impersonation role.

    *)
}
type get_default_retention_policy_response = {
  1. folder_configurations : folder_configuration list option;
    (*

    The retention policy folder configurations.

    *)
  2. description : string option;
    (*

    The retention policy description.

    *)
  3. name : string option;
    (*

    The retention policy name.

    *)
  4. id : string option;
    (*

    The retention policy ID.

    *)
}
type get_default_retention_policy_request = {
  1. organization_id : string;
    (*

    The organization ID.

    *)
}
type get_access_control_effect_response = {
  1. matched_rules : string list option;
    (*

    The rules that match the given parameters, resulting in an effect.

    *)
  2. effect_ : access_control_rule_effect option;
    (*

    The rule effect.

    *)
}
type get_access_control_effect_request = {
  1. impersonation_role_id : string option;
    (*

    The impersonation role ID.

    *)
  2. user_id : string option;
    (*

    The user ID.

    *)
  3. action : string;
    (*

    The access protocol action. Valid values include ActiveSync, AutoDiscover, EWS, IMAP, SMTP, WindowsOutlook, and WebMail.

    *)
  4. ip_address : string;
    (*

    The IPv4 address.

    *)
  5. organization_id : string;
    (*

    The identifier for the organization.

    *)
}
type disassociate_member_from_group_response = unit
type disassociate_member_from_group_request = {
  1. member_id : 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-1234567890-123456789-123456789-1234
    • Email address: member@domain.tld
    • Member name: member
    *)
  2. group_id : string;
    (*

    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-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: group@domain.tld
    • Group name: group
    *)
  3. organization_id : string;
    (*

    The identifier for the organization under which the group exists.

    *)
}
type disassociate_delegate_from_resource_response = unit
type disassociate_delegate_from_resource_request = {
  1. entity_id : string;
    (*

    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-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: entity@domain.tld
    • Entity: entity
    *)
  2. resource_id : 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-0123456789a0123456789b0123456789
    • Email address: resource@domain.tld
    • Resource name: resource
    *)
  3. organization_id : string;
    (*

    The identifier for the organization under which the resource exists.

    *)
}
type describe_user_response = {
  1. office : string option;
    (*

    Office where the user is located.

    *)
  2. country : string option;
    (*

    Country where the user is located.

    *)
  3. department : string option;
    (*

    Department of the user.

    *)
  4. zip_code : string option;
    (*

    Zip code of the user.

    *)
  5. company : string option;
    (*

    Company of the user.

    *)
  6. city : string option;
    (*

    City where the user is located.

    *)
  7. job_title : string option;
    (*

    Job title of the user.

    *)
  8. street : string option;
    (*

    Street where the user is located.

    *)
  9. telephone : string option;
    (*

    User's contact number.

    *)
  10. initials : string option;
    (*

    Initials of the user.

    *)
  11. hidden_from_global_address_list : bool option;
    (*

    If enabled, the user is hidden from the global address list.

    *)
  12. last_name : string option;
    (*

    Last name of the user.

    *)
  13. first_name : string option;
    (*

    First name of the user.

    *)
  14. mailbox_deprovisioned_date : float option;
    (*

    The date when the mailbox was removed for the user.

    *)
  15. mailbox_provisioned_date : float option;
    (*

    The date when the mailbox was created for the user.

    *)
  16. disabled_date : float option;
    (*

    The date and time at which the user was disabled for WorkMail usage, in UNIX epoch time format.

    *)
  17. enabled_date : float option;
    (*

    The date and time at which the user was enabled for WorkMailusage, in UNIX epoch time format.

    *)
  18. user_role : user_role option;
    (*

    In certain cases, other entities are modeled as users. If interoperability is enabled, resources are imported into WorkMail as users. Because different WorkMail organizations rely on different directory types, administrators can distinguish between an unregistered user (account is disabled and has a user role) and the directory administrators. The values are USER, RESOURCE, SYSTEM_USER, and REMOTE_USER.

    *)
  19. state : entity_state option;
    (*

    The state of a user: enabled (registered to WorkMail) or disabled (deregistered or never registered to WorkMail).

    *)
  20. display_name : string option;
    (*

    The display name of the user.

    *)
  21. email : string option;
    (*

    The email of the user.

    *)
  22. name : string option;
    (*

    The name for the user.

    *)
  23. user_id : string option;
    (*

    The identifier for the described user.

    *)
}
type describe_user_request = {
  1. user_id : 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-12-1234567890-123456789-123456789-1234
    • Email address: user@domain.tld
    • User name: user
    *)
  2. organization_id : string;
    (*

    The identifier for the organization under which the user exists.

    *)
}
type describe_resource_response = {
  1. hidden_from_global_address_list : bool option;
    (*

    If enabled, the resource is hidden from the global address list.

    *)
  2. description : string option;
    (*

    Description of the resource.

    *)
  3. disabled_date : float option;
    (*

    The date and time when a resource was disabled from WorkMail, in UNIX epoch time format.

    *)
  4. enabled_date : float option;
    (*

    The date and time when a resource was enabled for WorkMail, in UNIX epoch time format.

    *)
  5. state : entity_state option;
    (*

    The state of the resource: enabled (registered to WorkMail), disabled (deregistered or never registered to WorkMail), or deleted.

    *)
  6. booking_options : booking_options option;
    (*

    The booking options for the described resource.

    *)
  7. type_ : resource_type option;
    (*

    The type of the described resource.

    *)
  8. name : string option;
    (*

    The name of the described resource.

    *)
  9. email : string option;
    (*

    The email of the described resource.

    *)
  10. resource_id : string option;
    (*

    The identifier of the described resource.

    *)
}
type describe_resource_request = {
  1. resource_id : 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-0123456789a0123456789b0123456789
    • Email address: resource@domain.tld
    • Resource name: resource
    *)
  2. organization_id : string;
    (*

    The identifier associated with the organization for which the resource is described.

    *)
}
type describe_organization_response = {
  1. interoperability_enabled : bool option;
    (*

    Indicates if interoperability is enabled for this organization.

    *)
  2. migration_admin : string option;
    (*

    The user ID of the migration admin if migration is enabled for the organization.

    *)
  3. ar_n : string option;
    (*

    The Amazon Resource Name (ARN) of the organization.

    *)
  4. error_message : string option;
    (*

    (Optional) The error message indicating if unexpected behavior was encountered with regards to the organization.

    *)
  5. completed_date : float option;
    (*

    The date at which the organization became usable in the WorkMail context, in UNIX epoch time format.

    *)
  6. default_mail_domain : string option;
    (*

    The default mail domain associated with the organization.

    *)
  7. directory_type : string option;
    (*

    The type of directory associated with the WorkMail organization.

    *)
  8. directory_id : string option;
    (*

    The identifier for the directory associated with an WorkMail organization.

    *)
  9. state : string option;
    (*

    The state of an organization.

    *)
  10. alias : string option;
    (*

    The alias for an organization.

    *)
  11. organization_id : string option;
    (*

    The identifier of an organization.

    *)
}
type describe_organization_request = {
  1. organization_id : string;
    (*

    The identifier for the organization to be described.

    *)
}
type describe_mailbox_export_job_response = {
  1. end_time : float option;
    (*

    The mailbox export job end timestamp.

    *)
  2. start_time : float option;
    (*

    The mailbox export job start timestamp.

    *)
  3. error_info : string option;
    (*

    Error information for failed mailbox export jobs.

    *)
  4. state : mailbox_export_job_state option;
    (*

    The state of the mailbox export job.

    *)
  5. estimated_progress : int option;
    (*

    The estimated progress of the mailbox export job, in percentage points.

    *)
  6. s3_path : string option;
    (*

    The path to the S3 bucket and file that the mailbox export job is exporting to.

    *)
  7. s3_prefix : string option;
    (*

    The S3 bucket prefix.

    *)
  8. s3_bucket_name : string option;
    (*

    The name of the S3 bucket.

    *)
  9. kms_key_arn : string option;
    (*

    The Amazon Resource Name (ARN) of the symmetric AWS Key Management Service (AWS KMS) key that encrypts the exported mailbox content.

    *)
  10. role_arn : string option;
    (*

    The ARN of the AWS Identity and Access Management (IAM) role that grants write permission to the Amazon Simple Storage Service (Amazon S3) bucket.

    *)
  11. description : string option;
    (*

    The mailbox export job description.

    *)
  12. entity_id : string option;
    (*

    The identifier of the user or resource associated with the mailbox.

    *)
}
type describe_mailbox_export_job_request = {
  1. organization_id : string;
    (*

    The organization ID.

    *)
  2. job_id : string;
    (*

    The mailbox export job ID.

    *)
}
type describe_inbound_dmarc_settings_response = {
  1. enforced : bool option;
    (*

    Lists the enforcement setting of the applied policy.

    *)
}
type describe_inbound_dmarc_settings_request = {
  1. organization_id : string;
    (*

    Lists the ID of the given organization.

    *)
}
type describe_group_response = {
  1. hidden_from_global_address_list : bool option;
    (*

    If the value is set to true, the group is hidden from the address book.

    *)
  2. disabled_date : float option;
    (*

    The date and time when a user was deregistered from WorkMail, in UNIX epoch time format.

    *)
  3. enabled_date : float option;
    (*

    The date and time when a user was registered to WorkMail, in UNIX epoch time format.

    *)
  4. state : entity_state option;
    (*

    The state of the user: enabled (registered to WorkMail) or disabled (deregistered or never registered to WorkMail).

    *)
  5. email : string option;
    (*

    The email of the described group.

    *)
  6. name : string option;
    (*

    The name of the described group.

    *)
  7. group_id : string option;
    (*

    The identifier of the described group.

    *)
}
type describe_group_request = {
  1. group_id : string;
    (*

    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-1-1-12-1234567890-123456789-123456789-1234
    • Email address: group@domain.tld
    • Group name: group
    *)
  2. organization_id : string;
    (*

    The identifier for the organization under which the group exists.

    *)
}
type entity_type =
  1. | RESOURCE
  2. | USER
  3. | GROUP
type describe_entity_response = {
  1. type_ : entity_type option;
    (*

    Entity type.

    *)
  2. name : string option;
    (*

    Username, GroupName, or ResourceName based on entity type.

    *)
  3. entity_id : string option;
    (*

    The entity ID under which the entity exists.

    *)
}
type describe_entity_request = {
  1. email : string;
    (*

    The email under which the entity exists.

    *)
  2. organization_id : string;
    (*

    The identifier for the organization under which the entity exists.

    *)
}
type describe_email_monitoring_configuration_response = {
  1. log_group_arn : string option;
    (*

    The Amazon Resource Name (ARN) of the CloudWatch Log group associated with the email monitoring configuration.

    *)
  2. role_arn : string option;
    (*

    The Amazon Resource Name (ARN) of the IAM Role associated with the email monitoring configuration.

    *)
}
type describe_email_monitoring_configuration_request = {
  1. organization_id : string;
    (*

    The ID of the organization for which the email monitoring configuration is described.

    *)
}
type invalid_custom_ses_configuration_exception = {
  1. message : string option;
}

You SES configuration has customizations that WorkMail cannot save. The error message lists the invalid setting. For examples of invalid settings, refer to CreateReceiptRule.

type deregister_mail_domain_response = unit
type deregister_mail_domain_request = {
  1. domain_name : string;
    (*

    The domain to deregister in WorkMail and SES.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization for which the domain will be deregistered.

    *)
}
type deregister_from_work_mail_response = unit
type deregister_from_work_mail_request = {
  1. entity_id : string;
    (*

    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-0123456789a0123456789b0123456789, or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: entity@domain.tld
    • Entity name: entity
    *)
  2. organization_id : string;
    (*

    The identifier for the organization under which the WorkMail entity exists.

    *)
}
type delete_user_response = unit
type delete_user_request = {
  1. user_id : 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-1234567890-123456789-123456789-1234
    • User name: user
    *)
  2. organization_id : string;
    (*

    The organization that contains the user to be deleted.

    *)
}
type delete_retention_policy_response = unit
type delete_retention_policy_request = {
  1. id : string;
    (*

    The retention policy ID.

    *)
  2. organization_id : string;
    (*

    The organization ID.

    *)
}
type delete_resource_response = unit
type delete_resource_request = {
  1. resource_id : 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
    • Resource name: resource
    *)
  2. organization_id : string;
    (*

    The identifier associated with the organization from which the resource is deleted.

    *)
}
type delete_organization_response = {
  1. state : string option;
    (*

    The state of the organization.

    *)
  2. organization_id : string option;
    (*

    The organization ID.

    *)
}
type delete_organization_request = {
  1. force_delete : bool option;
    (*

    Deletes a WorkMail organization even if the organization has enabled users.

    *)
  2. delete_directory : bool;
    (*

    If true, deletes the AWS Directory Service directory associated with the organization.

    *)
  3. organization_id : string;
    (*

    The organization ID.

    *)
  4. client_token : string option;
    (*

    The idempotency token associated with the request.

    *)
}
type delete_mobile_device_access_rule_response = unit
type delete_mobile_device_access_rule_request = {
  1. mobile_device_access_rule_id : string;
    (*

    The identifier of the rule to be deleted.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization under which the rule will be deleted.

    *)
}
type delete_mobile_device_access_override_response = unit
type delete_mobile_device_access_override_request = {
  1. device_id : string;
    (*

    The mobile device for which you delete the override. DeviceId is case insensitive.

    *)
  2. user_id : 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-1234
    • Email address: user@domain.tld
    • User name: user
    *)
  3. organization_id : string;
    (*

    The WorkMail organization for which the access override will be deleted.

    *)
}
type delete_mailbox_permissions_response = unit
type delete_mailbox_permissions_request = {
  1. grantee_id : 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-123456789012,r-0123456789a0123456789b0123456789, or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: grantee@domain.tld
    • Grantee name: grantee
    *)
  2. entity_id : string;
    (*

    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-0123456789a0123456789b0123456789, or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: entity@domain.tld
    • Entity name: entity
    *)
  3. organization_id : string;
    (*

    The identifier of the organization under which the member (user or group) exists.

    *)
}
type delete_impersonation_role_response = unit
type delete_impersonation_role_request = {
  1. impersonation_role_id : string;
    (*

    The ID of the impersonation role to delete.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization from which to delete the impersonation role.

    *)
}
type delete_group_response = unit
type delete_group_request = {
  1. group_id : string;
    (*

    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-1234567890-123456789-123456789-1234
    • Group name: group
    *)
  2. organization_id : string;
    (*

    The organization that contains the group.

    *)
}
type delete_email_monitoring_configuration_response = unit
type delete_email_monitoring_configuration_request = {
  1. organization_id : string;
    (*

    The ID of the organization from which the email monitoring configuration is deleted.

    *)
}
type delete_availability_configuration_response = unit
type delete_availability_configuration_request = {
  1. domain_name : string;
    (*

    The domain for which the AvailabilityConfiguration will be deleted.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization for which the AvailabilityConfiguration will be deleted.

    *)
}
type delete_alias_response = unit
type delete_alias_request = {
  1. alias : string;
    (*

    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).

    *)
  2. entity_id : string;
    (*

    The identifier for the member (user or group) from which to have the aliases removed.

    *)
  3. organization_id : string;
    (*

    The identifier for the organization under which the user exists.

    *)
}
type delete_access_control_rule_response = unit
type delete_access_control_rule_request = {
  1. name : string;
    (*

    The name of the access control rule.

    *)
  2. organization_id : string;
    (*

    The identifier for the organization.

    *)
}
type reserved_name_exception = {
  1. message : string option;
}

This user, group, or resource name is not allowed in WorkMail.

type create_user_response = {
  1. user_id : string option;
    (*

    The identifier for the new user.

    *)
}
type create_user_request = {
  1. hidden_from_global_address_list : bool option;
    (*

    If this parameter is enabled, the user will be hidden from the address book.

    *)
  2. last_name : string option;
    (*

    The last name of the new user.

    *)
  3. first_name : string option;
    (*

    The first name of the new user.

    *)
  4. role : user_role option;
    (*

    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.

    *)
  5. password : string option;
    (*

    The password for the new user.

    *)
  6. display_name : string;
    (*

    The display name for the new user.

    *)
  7. name : 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.

    *)
  8. organization_id : string;
    (*

    The identifier of the organization for which the user is created.

    *)
}
type create_resource_response = {
  1. resource_id : string option;
    (*

    The identifier of the new resource.

    *)
}
type create_resource_request = {
  1. hidden_from_global_address_list : bool option;
    (*

    If this parameter is enabled, the resource will be hidden from the address book.

    *)
  2. description : string option;
    (*

    Resource description.

    *)
  3. type_ : resource_type;
    (*

    The type of the new resource. The available types are equipment and room.

    *)
  4. name : string;
    (*

    The name of the new resource.

    *)
  5. organization_id : string;
    (*

    The identifier associated with the organization for which the resource is created.

    *)
}
type directory_in_use_exception = {
  1. message : string option;
}

The directory is already in use by another WorkMail organization in the same account and Region.

type create_organization_response = {
  1. organization_id : string option;
    (*

    The organization ID.

    *)
}
type domain = {
  1. hosted_zone_id : string option;
    (*

    The hosted zone ID for a domain hosted in Route 53. Required when configuring a domain hosted in Route 53.

    *)
  2. domain_name : string;
    (*

    The fully qualified domain name.

    *)
}

The domain to associate with an WorkMail organization.

When you configure a domain hosted in Amazon Route 53 (Route 53), all recommended DNS records are added to the organization when you create it. For more information, see Adding a domain in the WorkMail Administrator Guide.

type create_organization_request = {
  1. enable_interoperability : bool option;
    (*

    When true, allows organization interoperability between WorkMail and Microsoft Exchange. If true, you must include a AD Connector directory ID in the request.

    *)
  2. kms_key_arn : string option;
    (*

    The Amazon Resource Name (ARN) of a customer managed key from AWS KMS.

    *)
  3. domains : domain list option;
    (*

    The email domains to associate with the organization.

    *)
  4. client_token : string option;
    (*

    The idempotency token associated with the request.

    *)
  5. alias : string;
    (*

    The organization alias.

    *)
  6. directory_id : string option;
    (*

    The AWS Directory Service directory ID.

    *)
}
type create_mobile_device_access_rule_response = {
  1. mobile_device_access_rule_id : string option;
    (*

    The identifier for the newly created mobile device access rule.

    *)
}
type create_mobile_device_access_rule_request = {
  1. not_device_user_agents : string list option;
    (*

    Device user agents that the rule will not match. All other device user agents will match.

    *)
  2. device_user_agents : string list option;
    (*

    Device user agents that the rule will match.

    *)
  3. not_device_operating_systems : string list option;
    (*

    Device operating systems that the rule will not match. All other device operating systems will match.

    *)
  4. device_operating_systems : string list option;
    (*

    Device operating systems that the rule will match.

    *)
  5. not_device_models : string list option;
    (*

    Device models that the rule will not match. All other device models will match.

    *)
  6. device_models : string list option;
    (*

    Device models that the rule will match.

    *)
  7. not_device_types : string list option;
    (*

    Device types that the rule will not match. All other device types will match.

    *)
  8. device_types : string list option;
    (*

    Device types that the rule will match.

    *)
  9. effect_ : mobile_device_access_rule_effect;
    (*

    The effect of the rule when it matches. Allowed values are ALLOW or DENY.

    *)
  10. description : string option;
    (*

    The rule description.

    *)
  11. name : string;
    (*

    The rule name.

    *)
  12. client_token : string option;
    (*

    The idempotency token for the client request.

    *)
  13. organization_id : string;
    (*

    The WorkMail organization under which the rule will be created.

    *)
}
type create_impersonation_role_response = {
  1. impersonation_role_id : string option;
    (*

    The new impersonation role ID.

    *)
}
type create_impersonation_role_request = {
  1. rules : impersonation_rule list;
    (*

    The list of rules for the impersonation role.

    *)
  2. description : string option;
    (*

    The description of the new impersonation role.

    *)
  3. type_ : impersonation_role_type;
    (*

    The impersonation role's type. The available impersonation role types are READ_ONLY or FULL_ACCESS.

    *)
  4. name : string;
    (*

    The name of the new impersonation role.

    *)
  5. organization_id : string;
    (*

    The WorkMail organization to create the new impersonation role within.

    *)
  6. client_token : string option;
    (*

    The idempotency token for the client request.

    *)
}
type create_group_response = {
  1. group_id : string option;
    (*

    The identifier of the group.

    *)
}
type create_group_request = {
  1. hidden_from_global_address_list : bool option;
    (*

    If this parameter is enabled, the group will be hidden from the address book.

    *)
  2. name : string;
    (*

    The name of the group.

    *)
  3. organization_id : string;
    (*

    The organization under which the group is to be created.

    *)
}
type create_availability_configuration_response = unit
type create_availability_configuration_request = {
  1. lambda_provider : lambda_availability_provider option;
    (*

    Lambda availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider.

    *)
  2. ews_provider : ews_availability_provider option;
    (*

    Exchange Web Services (EWS) availability provider definition. The request must contain exactly one provider definition, either EwsProvider or LambdaProvider.

    *)
  3. domain_name : string;
    (*

    The domain to which the provider applies.

    *)
  4. organization_id : string;
    (*

    The WorkMail organization for which the AvailabilityConfiguration will be created.

    *)
  5. client_token : string option;
    (*

    An idempotent token that ensures that an API request is executed only once.

    *)
}
type create_alias_response = unit
type create_alias_request = {
  1. alias : string;
    (*

    The alias to add to the member set.

    *)
  2. entity_id : string;
    (*

    The member (user or group) to which this alias is added.

    *)
  3. organization_id : string;
    (*

    The organization under which the member (user or group) exists.

    *)
}
type cancel_mailbox_export_job_response = unit
type cancel_mailbox_export_job_request = {
  1. organization_id : string;
    (*

    The organization ID.

    *)
  2. job_id : string;
    (*

    The job ID.

    *)
  3. client_token : string;
    (*

    The idempotency token for the client request.

    *)
}
type assume_impersonation_role_response = {
  1. expires_in : int option;
    (*

    The authentication token's validity, in seconds.

    *)
  2. token : string option;
    (*

    The authentication token for the impersonation role.

    *)
}
type assume_impersonation_role_request = {
  1. impersonation_role_id : string;
    (*

    The impersonation role ID to assume.

    *)
  2. organization_id : string;
    (*

    The WorkMail organization under which the impersonation role will be assumed.

    *)
}
type associate_member_to_group_response = unit
type associate_member_to_group_request = {
  1. member_id : 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-123456789-123456789-1234
    • Email address: member@domain.tld
    • Member name: member
    *)
  2. group_id : string;
    (*

    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-123456789012 or S-1-1-12-1234567890-123456789-123456789-1234
    • Email address: group@domain.tld
    • Group name: group
    *)
  3. organization_id : string;
    (*

    The organization under which the group exists.

    *)
}
type associate_delegate_to_resource_response = unit
type associate_delegate_to_resource_request = {
  1. entity_id : string;
    (*

    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-1234567890-123456789-123456789-1234
    • Email address: entity@domain.tld
    • Entity: entity
    *)
  2. resource_id : 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-0123456789a0123456789b0123456789
    • Email address: resource@domain.tld
    • Resource name: resource
    *)
  3. organization_id : string;
    (*

    The organization under which the resource exists.

    *)
}

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:

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.

type base_document = Smaws_Lib.Json.t

Builders

val make_update_user_response : unit -> update_user_response

Create a update_user_response type

val make_update_user_request : ?office:string -> ?country:string -> ?department:string -> ?zip_code:string -> ?company:string -> ?city:string -> ?job_title:string -> ?street:string -> ?telephone:string -> ?initials:string -> ?hidden_from_global_address_list:bool -> ?last_name:string -> ?first_name:string -> ?display_name:string -> ?role:user_role -> user_id:string -> organization_id:string -> unit -> update_user_request

Create a update_user_request type

val make_update_resource_response : unit -> update_resource_response
val make_booking_options : ?auto_decline_conflicting_requests:bool -> ?auto_decline_recurring_requests:bool -> ?auto_accept_requests:bool -> unit -> booking_options

Create a booking_options type

val make_update_resource_request : ?hidden_from_global_address_list:bool -> ?type_:resource_type -> ?description:string -> ?booking_options:booking_options -> ?name:string -> resource_id:string -> organization_id:string -> unit -> update_resource_request
val make_update_primary_email_address_response : unit -> update_primary_email_address_response
val make_update_primary_email_address_request : email:string -> entity_id:string -> organization_id:string -> unit -> update_primary_email_address_request
val make_update_mobile_device_access_rule_response : unit -> update_mobile_device_access_rule_response
val make_update_mobile_device_access_rule_request : ?not_device_user_agents:string list -> ?device_user_agents:string list -> ?not_device_operating_systems:string list -> ?device_operating_systems:string list -> ?not_device_models:string list -> ?device_models:string list -> ?not_device_types:string list -> ?device_types:string list -> ?description:string -> effect_:mobile_device_access_rule_effect -> name:string -> mobile_device_access_rule_id:string -> organization_id:string -> unit -> update_mobile_device_access_rule_request
val make_update_mailbox_quota_response : unit -> update_mailbox_quota_response
val make_update_mailbox_quota_request : mailbox_quota:int -> user_id:string -> organization_id:string -> unit -> update_mailbox_quota_request
val make_update_impersonation_role_response : unit -> update_impersonation_role_response
val make_impersonation_rule : ?not_target_users:string list -> ?target_users:string list -> ?description:string -> ?name:string -> effect_:access_effect -> impersonation_rule_id:string -> unit -> impersonation_rule

Create a impersonation_rule type

val make_update_impersonation_role_request : ?description:string -> rules:impersonation_rule list -> type_:impersonation_role_type -> name:string -> impersonation_role_id:string -> organization_id:string -> unit -> update_impersonation_role_request
val make_update_group_response : unit -> update_group_response

Create a update_group_response type

val make_update_group_request : ?hidden_from_global_address_list:bool -> group_id:string -> organization_id:string -> unit -> update_group_request

Create a update_group_request type

val make_update_default_mail_domain_response : unit -> update_default_mail_domain_response
val make_update_default_mail_domain_request : domain_name:string -> organization_id:string -> unit -> update_default_mail_domain_request
val make_update_availability_configuration_response : unit -> update_availability_configuration_response
val make_ews_availability_provider : ews_password:string -> ews_username:string -> ews_endpoint:string -> unit -> ews_availability_provider
val make_lambda_availability_provider : lambda_arn:string -> unit -> lambda_availability_provider
val make_update_availability_configuration_request : ?lambda_provider:lambda_availability_provider -> ?ews_provider:ews_availability_provider -> domain_name:string -> organization_id:string -> unit -> update_availability_configuration_request
val make_untag_resource_response : unit -> untag_resource_response
val make_untag_resource_request : tag_keys:string list -> resource_ar_n:string -> unit -> untag_resource_request
val make_test_availability_configuration_response : ?failure_reason:string -> ?test_passed:bool -> unit -> test_availability_configuration_response
val make_test_availability_configuration_request : ?lambda_provider:lambda_availability_provider -> ?ews_provider:ews_availability_provider -> ?domain_name:string -> organization_id:string -> unit -> test_availability_configuration_request
val make_tag_resource_response : unit -> tag_resource_response

Create a tag_resource_response type

val make_tag : value:string -> key:string -> unit -> tag

Create a tag type

val make_tag_resource_request : tags:tag list -> resource_ar_n:string -> unit -> tag_resource_request

Create a tag_resource_request type

val make_start_mailbox_export_job_response : ?job_id:string -> unit -> start_mailbox_export_job_response
val make_start_mailbox_export_job_request : ?description:string -> s3_prefix:string -> s3_bucket_name:string -> kms_key_arn:string -> role_arn:string -> entity_id:string -> organization_id:string -> client_token:string -> unit -> start_mailbox_export_job_request
val make_reset_password_response : unit -> reset_password_response
val make_reset_password_request : password:string -> user_id:string -> organization_id:string -> unit -> reset_password_request
val make_register_to_work_mail_response : unit -> register_to_work_mail_response
val make_register_to_work_mail_request : email:string -> entity_id:string -> organization_id:string -> unit -> register_to_work_mail_request
val make_register_mail_domain_response : unit -> register_mail_domain_response
val make_register_mail_domain_request : ?client_token:string -> domain_name:string -> organization_id:string -> unit -> register_mail_domain_request
val make_put_retention_policy_response : unit -> put_retention_policy_response
val make_folder_configuration : ?period:int -> action:retention_action -> name:folder_name -> unit -> folder_configuration

Create a folder_configuration type

val make_put_retention_policy_request : ?description:string -> ?id:string -> folder_configurations:folder_configuration list -> name:string -> organization_id:string -> unit -> put_retention_policy_request
val make_put_mobile_device_access_override_response : unit -> put_mobile_device_access_override_response
val make_put_mobile_device_access_override_request : ?description:string -> effect_:mobile_device_access_rule_effect -> device_id:string -> user_id:string -> organization_id:string -> unit -> put_mobile_device_access_override_request
val make_put_mailbox_permissions_response : unit -> put_mailbox_permissions_response
val make_put_mailbox_permissions_request : permission_values:permission_type list -> grantee_id:string -> entity_id:string -> organization_id:string -> unit -> put_mailbox_permissions_request
val make_put_inbound_dmarc_settings_response : unit -> put_inbound_dmarc_settings_response
val make_put_inbound_dmarc_settings_request : enforced:bool -> organization_id:string -> unit -> put_inbound_dmarc_settings_request
val make_put_email_monitoring_configuration_response : unit -> put_email_monitoring_configuration_response
val make_put_email_monitoring_configuration_request : log_group_arn:string -> role_arn:string -> organization_id:string -> unit -> put_email_monitoring_configuration_request
val make_put_access_control_rule_response : unit -> put_access_control_rule_response
val make_put_access_control_rule_request : ?not_impersonation_role_ids:string list -> ?impersonation_role_ids:string list -> ?not_user_ids:string list -> ?user_ids:string list -> ?not_actions:string list -> ?actions:string list -> ?not_ip_ranges:string list -> ?ip_ranges:string list -> organization_id:string -> description:string -> effect_:access_control_rule_effect -> name:string -> unit -> put_access_control_rule_request
val make_user : ?disabled_date:float -> ?enabled_date:float -> ?user_role:user_role -> ?state:entity_state -> ?display_name:string -> ?name:string -> ?email:string -> ?id:string -> unit -> user

Create a user type

val make_list_users_response : ?next_token:string -> ?users:user list -> unit -> list_users_response

Create a list_users_response type

val make_list_users_filters : ?state:entity_state -> ?primary_email_prefix:string -> ?display_name_prefix:string -> ?username_prefix:string -> unit -> list_users_filters

Create a list_users_filters type

val make_list_users_request : ?filters:list_users_filters -> ?max_results:int -> ?next_token:string -> organization_id:string -> unit -> list_users_request

Create a list_users_request type

val make_list_tags_for_resource_response : ?tags:tag list -> unit -> list_tags_for_resource_response
val make_list_tags_for_resource_request : resource_ar_n:string -> unit -> list_tags_for_resource_request
val make_resource : ?description:string -> ?disabled_date:float -> ?enabled_date:float -> ?state:entity_state -> ?type_:resource_type -> ?name:string -> ?email:string -> ?id:string -> unit -> resource

Create a resource type

val make_list_resources_response : ?next_token:string -> ?resources:resource list -> unit -> list_resources_response
val make_list_resources_filters : ?state:entity_state -> ?primary_email_prefix:string -> ?name_prefix:string -> unit -> list_resources_filters
val make_list_resources_request : ?filters:list_resources_filters -> ?max_results:int -> ?next_token:string -> organization_id:string -> unit -> list_resources_request
val make_delegate : type_:member_type -> id:string -> unit -> delegate

Create a delegate type

val make_list_resource_delegates_response : ?next_token:string -> ?delegates:delegate list -> unit -> list_resource_delegates_response
val make_list_resource_delegates_request : ?max_results:int -> ?next_token:string -> resource_id:string -> organization_id:string -> unit -> list_resource_delegates_request
val make_organization_summary : ?state:string -> ?error_message:string -> ?default_mail_domain:string -> ?alias:string -> ?organization_id:string -> unit -> organization_summary

Create a organization_summary type

val make_list_organizations_response : ?next_token:string -> ?organization_summaries:organization_summary list -> unit -> list_organizations_response
val make_list_organizations_request : ?max_results:int -> ?next_token:string -> unit -> list_organizations_request
val make_mobile_device_access_rule : ?date_modified:float -> ?date_created:float -> ?not_device_user_agents:string list -> ?device_user_agents:string list -> ?not_device_operating_systems:string list -> ?device_operating_systems:string list -> ?not_device_models:string list -> ?device_models:string list -> ?not_device_types:string list -> ?device_types:string list -> ?effect_:mobile_device_access_rule_effect -> ?description:string -> ?name:string -> ?mobile_device_access_rule_id:string -> unit -> mobile_device_access_rule
val make_list_mobile_device_access_rules_response : ?rules:mobile_device_access_rule list -> unit -> list_mobile_device_access_rules_response
val make_list_mobile_device_access_rules_request : organization_id:string -> unit -> list_mobile_device_access_rules_request
val make_mobile_device_access_override : ?date_modified:float -> ?date_created:float -> ?description:string -> ?effect_:mobile_device_access_rule_effect -> ?device_id:string -> ?user_id:string -> unit -> mobile_device_access_override
val make_list_mobile_device_access_overrides_response : ?next_token:string -> ?overrides:mobile_device_access_override list -> unit -> list_mobile_device_access_overrides_response
val make_list_mobile_device_access_overrides_request : ?max_results:int -> ?next_token:string -> ?device_id:string -> ?user_id:string -> organization_id:string -> unit -> list_mobile_device_access_overrides_request
val make_mail_domain_summary : ?default_domain:bool -> ?domain_name:string -> unit -> mail_domain_summary

Create a mail_domain_summary type

val make_list_mail_domains_response : ?next_token:string -> ?mail_domains:mail_domain_summary list -> unit -> list_mail_domains_response
val make_list_mail_domains_request : ?next_token:string -> ?max_results:int -> organization_id:string -> unit -> list_mail_domains_request
val make_permission : permission_values:permission_type list -> grantee_type:member_type -> grantee_id:string -> unit -> permission

Create a permission type

val make_list_mailbox_permissions_response : ?next_token:string -> ?permissions:permission list -> unit -> list_mailbox_permissions_response
val make_list_mailbox_permissions_request : ?max_results:int -> ?next_token:string -> entity_id:string -> organization_id:string -> unit -> list_mailbox_permissions_request
val make_mailbox_export_job : ?end_time:float -> ?start_time:float -> ?state:mailbox_export_job_state -> ?estimated_progress:int -> ?s3_path:string -> ?s3_bucket_name:string -> ?description:string -> ?entity_id:string -> ?job_id:string -> unit -> mailbox_export_job

Create a mailbox_export_job type

val make_list_mailbox_export_jobs_response : ?next_token:string -> ?jobs:mailbox_export_job list -> unit -> list_mailbox_export_jobs_response
val make_list_mailbox_export_jobs_request : ?max_results:int -> ?next_token:string -> organization_id:string -> unit -> list_mailbox_export_jobs_request
val make_impersonation_role : ?date_modified:float -> ?date_created:float -> ?type_:impersonation_role_type -> ?name:string -> ?impersonation_role_id:string -> unit -> impersonation_role

Create a impersonation_role type

val make_list_impersonation_roles_response : ?next_token:string -> ?roles:impersonation_role list -> unit -> list_impersonation_roles_response
val make_list_impersonation_roles_request : ?max_results:int -> ?next_token:string -> organization_id:string -> unit -> list_impersonation_roles_request
val make_group_identifier : ?group_name:string -> ?group_id:string -> unit -> group_identifier

Create a group_identifier type

val make_list_groups_for_entity_response : ?next_token:string -> ?groups:group_identifier list -> unit -> list_groups_for_entity_response
val make_list_groups_for_entity_filters : ?group_name_prefix:string -> unit -> list_groups_for_entity_filters
val make_list_groups_for_entity_request : ?max_results:int -> ?next_token:string -> ?filters:list_groups_for_entity_filters -> entity_id:string -> organization_id:string -> unit -> list_groups_for_entity_request
val make_group : ?disabled_date:float -> ?enabled_date:float -> ?state:entity_state -> ?name:string -> ?email:string -> ?id:string -> unit -> group

Create a group type

val make_list_groups_response : ?next_token:string -> ?groups:group list -> unit -> list_groups_response

Create a list_groups_response type

val make_list_groups_filters : ?state:entity_state -> ?primary_email_prefix:string -> ?name_prefix:string -> unit -> list_groups_filters

Create a list_groups_filters type

val make_list_groups_request : ?filters:list_groups_filters -> ?max_results:int -> ?next_token:string -> organization_id:string -> unit -> list_groups_request

Create a list_groups_request type

val make_member : ?disabled_date:float -> ?enabled_date:float -> ?state:entity_state -> ?type_:member_type -> ?name:string -> ?id:string -> unit -> member

Create a member type

val make_list_group_members_response : ?next_token:string -> ?members:member list -> unit -> list_group_members_response
val make_list_group_members_request : ?max_results:int -> ?next_token:string -> group_id:string -> organization_id:string -> unit -> list_group_members_request
val make_redacted_ews_availability_provider : ?ews_username:string -> ?ews_endpoint:string -> unit -> redacted_ews_availability_provider
val make_availability_configuration : ?date_modified:float -> ?date_created:float -> ?lambda_provider:lambda_availability_provider -> ?ews_provider:redacted_ews_availability_provider -> ?provider_type:availability_provider_type -> ?domain_name:string -> unit -> availability_configuration
val make_list_availability_configurations_response : ?next_token:string -> ?availability_configurations:availability_configuration list -> unit -> list_availability_configurations_response
val make_list_availability_configurations_request : ?next_token:string -> ?max_results:int -> organization_id:string -> unit -> list_availability_configurations_request
val make_list_aliases_response : ?next_token:string -> ?aliases:string list -> unit -> list_aliases_response

Create a list_aliases_response type

val make_list_aliases_request : ?max_results:int -> ?next_token:string -> entity_id:string -> organization_id:string -> unit -> list_aliases_request

Create a list_aliases_request type

val make_access_control_rule : ?not_impersonation_role_ids:string list -> ?impersonation_role_ids:string list -> ?date_modified:float -> ?date_created:float -> ?not_user_ids:string list -> ?user_ids:string list -> ?not_actions:string list -> ?actions:string list -> ?not_ip_ranges:string list -> ?ip_ranges:string list -> ?description:string -> ?effect_:access_control_rule_effect -> ?name:string -> unit -> access_control_rule

Create a access_control_rule type

val make_list_access_control_rules_response : ?rules:access_control_rule list -> unit -> list_access_control_rules_response
val make_list_access_control_rules_request : organization_id:string -> unit -> list_access_control_rules_request
val make_get_mobile_device_access_override_response : ?date_modified:float -> ?date_created:float -> ?description:string -> ?effect_:mobile_device_access_rule_effect -> ?device_id:string -> ?user_id:string -> unit -> get_mobile_device_access_override_response
val make_get_mobile_device_access_override_request : device_id:string -> user_id:string -> organization_id:string -> unit -> get_mobile_device_access_override_request
val make_mobile_device_access_matched_rule : ?name:string -> ?mobile_device_access_rule_id:string -> unit -> mobile_device_access_matched_rule
val make_get_mobile_device_access_effect_response : ?matched_rules:mobile_device_access_matched_rule list -> ?effect_:mobile_device_access_rule_effect -> unit -> get_mobile_device_access_effect_response
val make_get_mobile_device_access_effect_request : ?device_user_agent:string -> ?device_operating_system:string -> ?device_model:string -> ?device_type:string -> organization_id:string -> unit -> get_mobile_device_access_effect_request
val make_dns_record : ?value:string -> ?hostname:string -> ?type_:string -> unit -> dns_record

Create a dns_record type

val make_get_mail_domain_response : ?dkim_verification_status:dns_record_verification_status -> ?ownership_verification_status:dns_record_verification_status -> ?is_default:bool -> ?is_test_domain:bool -> ?records:dns_record list -> unit -> get_mail_domain_response
val make_get_mail_domain_request : domain_name:string -> organization_id:string -> unit -> get_mail_domain_request
val make_get_mailbox_details_response : ?mailbox_size:float -> ?mailbox_quota:int -> unit -> get_mailbox_details_response
val make_get_mailbox_details_request : user_id:string -> organization_id:string -> unit -> get_mailbox_details_request
val make_impersonation_matched_rule : ?name:string -> ?impersonation_rule_id:string -> unit -> impersonation_matched_rule
val make_get_impersonation_role_effect_response : ?matched_rules:impersonation_matched_rule list -> ?effect_:access_effect -> ?type_:impersonation_role_type -> unit -> get_impersonation_role_effect_response
val make_get_impersonation_role_effect_request : target_user:string -> impersonation_role_id:string -> organization_id:string -> unit -> get_impersonation_role_effect_request
val make_get_impersonation_role_response : ?date_modified:float -> ?date_created:float -> ?rules:impersonation_rule list -> ?description:string -> ?type_:impersonation_role_type -> ?name:string -> ?impersonation_role_id:string -> unit -> get_impersonation_role_response
val make_get_impersonation_role_request : impersonation_role_id:string -> organization_id:string -> unit -> get_impersonation_role_request
val make_get_default_retention_policy_response : ?folder_configurations:folder_configuration list -> ?description:string -> ?name:string -> ?id:string -> unit -> get_default_retention_policy_response
val make_get_default_retention_policy_request : organization_id:string -> unit -> get_default_retention_policy_request
val make_get_access_control_effect_response : ?matched_rules:string list -> ?effect_:access_control_rule_effect -> unit -> get_access_control_effect_response
val make_get_access_control_effect_request : ?impersonation_role_id:string -> ?user_id:string -> action:string -> ip_address:string -> organization_id:string -> unit -> get_access_control_effect_request
val make_disassociate_member_from_group_response : unit -> disassociate_member_from_group_response
val make_disassociate_member_from_group_request : member_id:string -> group_id:string -> organization_id:string -> unit -> disassociate_member_from_group_request
val make_disassociate_delegate_from_resource_response : unit -> disassociate_delegate_from_resource_response
val make_disassociate_delegate_from_resource_request : entity_id:string -> resource_id:string -> organization_id:string -> unit -> disassociate_delegate_from_resource_request
val make_describe_user_response : ?office:string -> ?country:string -> ?department:string -> ?zip_code:string -> ?company:string -> ?city:string -> ?job_title:string -> ?street:string -> ?telephone:string -> ?initials:string -> ?hidden_from_global_address_list:bool -> ?last_name:string -> ?first_name:string -> ?mailbox_deprovisioned_date:float -> ?mailbox_provisioned_date:float -> ?disabled_date:float -> ?enabled_date:float -> ?user_role:user_role -> ?state:entity_state -> ?display_name:string -> ?email:string -> ?name:string -> ?user_id:string -> unit -> describe_user_response
val make_describe_user_request : user_id:string -> organization_id:string -> unit -> describe_user_request

Create a describe_user_request type

val make_describe_resource_response : ?hidden_from_global_address_list:bool -> ?description:string -> ?disabled_date:float -> ?enabled_date:float -> ?state:entity_state -> ?booking_options:booking_options -> ?type_:resource_type -> ?name:string -> ?email:string -> ?resource_id:string -> unit -> describe_resource_response
val make_describe_resource_request : resource_id:string -> organization_id:string -> unit -> describe_resource_request
val make_describe_organization_response : ?interoperability_enabled:bool -> ?migration_admin:string -> ?ar_n:string -> ?error_message:string -> ?completed_date:float -> ?default_mail_domain:string -> ?directory_type:string -> ?directory_id:string -> ?state:string -> ?alias:string -> ?organization_id:string -> unit -> describe_organization_response
val make_describe_organization_request : organization_id:string -> unit -> describe_organization_request
val make_describe_mailbox_export_job_response : ?end_time:float -> ?start_time:float -> ?error_info:string -> ?state:mailbox_export_job_state -> ?estimated_progress:int -> ?s3_path:string -> ?s3_prefix:string -> ?s3_bucket_name:string -> ?kms_key_arn:string -> ?role_arn:string -> ?description:string -> ?entity_id:string -> unit -> describe_mailbox_export_job_response
val make_describe_mailbox_export_job_request : organization_id:string -> job_id:string -> unit -> describe_mailbox_export_job_request
val make_describe_inbound_dmarc_settings_response : ?enforced:bool -> unit -> describe_inbound_dmarc_settings_response
val make_describe_inbound_dmarc_settings_request : organization_id:string -> unit -> describe_inbound_dmarc_settings_request
val make_describe_group_response : ?hidden_from_global_address_list:bool -> ?disabled_date:float -> ?enabled_date:float -> ?state:entity_state -> ?email:string -> ?name:string -> ?group_id:string -> unit -> describe_group_response
val make_describe_group_request : group_id:string -> organization_id:string -> unit -> describe_group_request
val make_describe_entity_response : ?type_:entity_type -> ?name:string -> ?entity_id:string -> unit -> describe_entity_response
val make_describe_entity_request : email:string -> organization_id:string -> unit -> describe_entity_request
val make_describe_email_monitoring_configuration_response : ?log_group_arn:string -> ?role_arn:string -> unit -> describe_email_monitoring_configuration_response
val make_describe_email_monitoring_configuration_request : organization_id:string -> unit -> describe_email_monitoring_configuration_request
val make_deregister_mail_domain_response : unit -> deregister_mail_domain_response
val make_deregister_mail_domain_request : domain_name:string -> organization_id:string -> unit -> deregister_mail_domain_request
val make_deregister_from_work_mail_response : unit -> deregister_from_work_mail_response
val make_deregister_from_work_mail_request : entity_id:string -> organization_id:string -> unit -> deregister_from_work_mail_request
val make_delete_user_response : unit -> delete_user_response

Create a delete_user_response type

val make_delete_user_request : user_id:string -> organization_id:string -> unit -> delete_user_request

Create a delete_user_request type

val make_delete_retention_policy_response : unit -> delete_retention_policy_response
val make_delete_retention_policy_request : id:string -> organization_id:string -> unit -> delete_retention_policy_request
val make_delete_resource_response : unit -> delete_resource_response
val make_delete_resource_request : resource_id:string -> organization_id:string -> unit -> delete_resource_request
val make_delete_organization_response : ?state:string -> ?organization_id:string -> unit -> delete_organization_response
val make_delete_organization_request : ?force_delete:bool -> ?client_token:string -> delete_directory:bool -> organization_id:string -> unit -> delete_organization_request
val make_delete_mobile_device_access_rule_response : unit -> delete_mobile_device_access_rule_response
val make_delete_mobile_device_access_rule_request : mobile_device_access_rule_id:string -> organization_id:string -> unit -> delete_mobile_device_access_rule_request
val make_delete_mobile_device_access_override_response : unit -> delete_mobile_device_access_override_response
val make_delete_mobile_device_access_override_request : device_id:string -> user_id:string -> organization_id:string -> unit -> delete_mobile_device_access_override_request
val make_delete_mailbox_permissions_response : unit -> delete_mailbox_permissions_response
val make_delete_mailbox_permissions_request : grantee_id:string -> entity_id:string -> organization_id:string -> unit -> delete_mailbox_permissions_request
val make_delete_impersonation_role_response : unit -> delete_impersonation_role_response
val make_delete_impersonation_role_request : impersonation_role_id:string -> organization_id:string -> unit -> delete_impersonation_role_request
val make_delete_group_response : unit -> delete_group_response

Create a delete_group_response type

val make_delete_group_request : group_id:string -> organization_id:string -> unit -> delete_group_request

Create a delete_group_request type

val make_delete_email_monitoring_configuration_response : unit -> delete_email_monitoring_configuration_response
val make_delete_email_monitoring_configuration_request : organization_id:string -> unit -> delete_email_monitoring_configuration_request
val make_delete_availability_configuration_response : unit -> delete_availability_configuration_response
val make_delete_availability_configuration_request : domain_name:string -> organization_id:string -> unit -> delete_availability_configuration_request
val make_delete_alias_response : unit -> delete_alias_response

Create a delete_alias_response type

val make_delete_alias_request : alias:string -> entity_id:string -> organization_id:string -> unit -> delete_alias_request

Create a delete_alias_request type

val make_delete_access_control_rule_response : unit -> delete_access_control_rule_response
val make_delete_access_control_rule_request : name:string -> organization_id:string -> unit -> delete_access_control_rule_request
val make_create_user_response : ?user_id:string -> unit -> create_user_response

Create a create_user_response type

val make_create_user_request : ?hidden_from_global_address_list:bool -> ?last_name:string -> ?first_name:string -> ?role:user_role -> ?password:string -> display_name:string -> name:string -> organization_id:string -> unit -> create_user_request

Create a create_user_request type

val make_create_resource_response : ?resource_id:string -> unit -> create_resource_response
val make_create_resource_request : ?hidden_from_global_address_list:bool -> ?description:string -> type_:resource_type -> name:string -> organization_id:string -> unit -> create_resource_request
val make_create_organization_response : ?organization_id:string -> unit -> create_organization_response
val make_domain : ?hosted_zone_id:string -> domain_name:string -> unit -> domain

Create a domain type

val make_create_organization_request : ?enable_interoperability:bool -> ?kms_key_arn:string -> ?domains:domain list -> ?client_token:string -> ?directory_id:string -> alias:string -> unit -> create_organization_request
val make_create_mobile_device_access_rule_response : ?mobile_device_access_rule_id:string -> unit -> create_mobile_device_access_rule_response
val make_create_mobile_device_access_rule_request : ?not_device_user_agents:string list -> ?device_user_agents:string list -> ?not_device_operating_systems:string list -> ?device_operating_systems:string list -> ?not_device_models:string list -> ?device_models:string list -> ?not_device_types:string list -> ?device_types:string list -> ?description:string -> ?client_token:string -> effect_:mobile_device_access_rule_effect -> name:string -> organization_id:string -> unit -> create_mobile_device_access_rule_request
val make_create_impersonation_role_response : ?impersonation_role_id:string -> unit -> create_impersonation_role_response
val make_create_impersonation_role_request : ?description:string -> ?client_token:string -> rules:impersonation_rule list -> type_:impersonation_role_type -> name:string -> organization_id:string -> unit -> create_impersonation_role_request
val make_create_group_response : ?group_id:string -> unit -> create_group_response

Create a create_group_response type

val make_create_group_request : ?hidden_from_global_address_list:bool -> name:string -> organization_id:string -> unit -> create_group_request

Create a create_group_request type

val make_create_availability_configuration_response : unit -> create_availability_configuration_response
val make_create_availability_configuration_request : ?lambda_provider:lambda_availability_provider -> ?ews_provider:ews_availability_provider -> ?client_token:string -> domain_name:string -> organization_id:string -> unit -> create_availability_configuration_request
val make_create_alias_response : unit -> create_alias_response

Create a create_alias_response type

val make_create_alias_request : alias:string -> entity_id:string -> organization_id:string -> unit -> create_alias_request

Create a create_alias_request type

val make_cancel_mailbox_export_job_response : unit -> cancel_mailbox_export_job_response
val make_cancel_mailbox_export_job_request : organization_id:string -> job_id:string -> client_token:string -> unit -> cancel_mailbox_export_job_request
val make_assume_impersonation_role_response : ?expires_in:int -> ?token:string -> unit -> assume_impersonation_role_response
val make_assume_impersonation_role_request : impersonation_role_id:string -> organization_id:string -> unit -> assume_impersonation_role_request
val make_associate_member_to_group_response : unit -> associate_member_to_group_response
val make_associate_member_to_group_request : member_id:string -> group_id:string -> organization_id:string -> unit -> associate_member_to_group_request
val make_associate_delegate_to_resource_response : unit -> associate_delegate_to_resource_response
val make_associate_delegate_to_resource_request : entity_id:string -> resource_id:string -> organization_id:string -> unit -> associate_delegate_to_resource_request

Operations

module AssociateDelegateToResource : sig ... end
module AssociateMemberToGroup : sig ... end
module AssumeImpersonationRole : sig ... end
module CancelMailboxExportJob : sig ... end
module CreateAlias : sig ... end
module CreateAvailabilityConfiguration : sig ... end
module CreateGroup : sig ... end
module CreateImpersonationRole : sig ... end
module CreateMobileDeviceAccessRule : sig ... end
module CreateOrganization : sig ... end
module CreateResource : sig ... end
module CreateUser : sig ... end
module DeleteAccessControlRule : sig ... end
module DeleteAlias : sig ... end
module DeleteAvailabilityConfiguration : sig ... end
module DeleteGroup : sig ... end
module DeleteImpersonationRole : sig ... end
module DeleteMailboxPermissions : sig ... end
module DeleteMobileDeviceAccessRule : sig ... end
module DeleteOrganization : sig ... end
module DeleteResource : sig ... end
module DeleteRetentionPolicy : sig ... end
module DeleteUser : sig ... end
module DeregisterFromWorkMail : sig ... end
module DeregisterMailDomain : sig ... end
module DescribeEntity : sig ... end
module DescribeGroup : sig ... end
module DescribeInboundDmarcSettings : sig ... end
module DescribeMailboxExportJob : sig ... end
module DescribeOrganization : sig ... end
module DescribeResource : sig ... end
module DescribeUser : sig ... end
module DisassociateMemberFromGroup : sig ... end
module GetAccessControlEffect : sig ... end
module GetDefaultRetentionPolicy : sig ... end
module GetImpersonationRole : sig ... end
module GetImpersonationRoleEffect : sig ... end
module GetMailboxDetails : sig ... end
module GetMailDomain : sig ... end
module GetMobileDeviceAccessEffect : sig ... end
module GetMobileDeviceAccessOverride : sig ... end
module ListAccessControlRules : sig ... end
module ListAliases : sig ... end
module ListAvailabilityConfigurations : sig ... end
module ListGroupMembers : sig ... end
module ListGroups : sig ... end
module ListGroupsForEntity : sig ... end
module ListImpersonationRoles : sig ... end
module ListMailboxExportJobs : sig ... end
module ListMailboxPermissions : sig ... end
module ListMailDomains : sig ... end
module ListMobileDeviceAccessOverrides : sig ... end
module ListMobileDeviceAccessRules : sig ... end
module ListOrganizations : sig ... end
module ListResourceDelegates : sig ... end
module ListResources : sig ... end
module ListTagsForResource : sig ... end
module ListUsers : sig ... end
module PutAccessControlRule : sig ... end
module PutEmailMonitoringConfiguration : sig ... end
module PutInboundDmarcSettings : sig ... end
module PutMailboxPermissions : sig ... end
module PutMobileDeviceAccessOverride : sig ... end
module PutRetentionPolicy : sig ... end
module RegisterMailDomain : sig ... end
module RegisterToWorkMail : sig ... end
module ResetPassword : sig ... end
module StartMailboxExportJob : sig ... end
module TagResource : sig ... end
module TestAvailabilityConfiguration : sig ... end
module UntagResource : sig ... end
module UpdateAvailabilityConfiguration : sig ... end
module UpdateDefaultMailDomain : sig ... end
module UpdateGroup : sig ... end
module UpdateImpersonationRole : sig ... end
module UpdateMailboxQuota : sig ... end
module UpdateMobileDeviceAccessRule : sig ... end
module UpdatePrimaryEmailAddress : sig ... end
module UpdateResource : sig ... end
module UpdateUser : sig ... end