Module Smaws_Client_WorkMail.Types

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

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

type nonrec 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 nonrec 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 nonrec invalid_parameter_exception = {
  1. message : string_ option;
}

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

type nonrec 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 nonrec entity_not_found_exception = {
  1. message : string_ option;
}

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

type nonrec directory_unavailable_exception = {
  1. message : string_ option;
}

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

type nonrec directory_service_authentication_failed_exception = {
  1. message : string_ option;
}

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

type nonrec update_user_response = unit
type nonrec organization_id = string
type nonrec entity_identifier = string
type nonrec user_role =
  1. | REMOTE_USER
  2. | SYSTEM_USER
  3. | RESOURCE
  4. | USER
type nonrec user_attribute = string
type nonrec boolean_object = bool
type nonrec identity_provider_user_id_for_update = string
type nonrec update_user_request = {
  1. identity_provider_user_id : identity_provider_user_id_for_update option;
    (*

    User ID from the IAM Identity Center. If this parameter is empty it will be updated automatically when the user logs in for the first time to the mailbox associated with WorkMail.

    *)
  2. office : user_attribute option;
    (*

    Updates the user's office.

    *)
  3. country : user_attribute option;
    (*

    Updates the user's country.

    *)
  4. department : user_attribute option;
    (*

    Updates the user's department.

    *)
  5. zip_code : user_attribute option;
    (*

    Updates the user's zip code.

    *)
  6. company : user_attribute option;
    (*

    Updates the user's company.

    *)
  7. city : user_attribute option;
    (*

    Updates the user's city.

    *)
  8. job_title : user_attribute option;
    (*

    Updates the user's job title.

    *)
  9. street : user_attribute option;
    (*

    Updates the user's street address.

    *)
  10. telephone : user_attribute option;
    (*

    Updates the user's contact details.

    *)
  11. initials : user_attribute option;
    (*

    Updates the user's initials.

    *)
  12. hidden_from_global_address_list : boolean_object option;
    (*

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

    *)
  13. last_name : user_attribute option;
    (*

    Updates the user's last name.

    *)
  14. first_name : user_attribute option;
    (*

    Updates the user's first name.

    *)
  15. display_name : user_attribute option;
    (*

    Updates the display name of the user.

    *)
  16. role : user_role option;
    (*

    Updates the user role.

    You cannot pass SYSTEM_USER or RESOURCE.

    *)
  17. user_id : entity_identifier;
    (*

    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
    *)
  18. organization_id : organization_id;
    (*

    The identifier for the organization under which the user exists.

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

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

type nonrec 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 nonrec mail_domain_not_found_exception = {
  1. message : string_ option;
}

The domain specified is not found in your organization.

type nonrec 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 nonrec 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 nonrec update_resource_response = unit
type nonrec resource_name = string
type nonrec boolean_ = bool
type nonrec booking_options = {
  1. auto_decline_conflicting_requests : boolean_ option;
    (*

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

    *)
  2. auto_decline_recurring_requests : boolean_ option;
    (*

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

    *)
  3. auto_accept_requests : boolean_ 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 nonrec new_resource_description = string
type nonrec resource_type =
  1. | EQUIPMENT
  2. | ROOM
type nonrec update_resource_request = {
  1. hidden_from_global_address_list : boolean_object option;
    (*

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

    *)
  2. type_ : resource_type option;
    (*

    Updates the resource type.

    *)
  3. description : new_resource_description option;
    (*

    Updates the resource description.

    *)
  4. booking_options : booking_options option;
    (*

    The resource's booking options to be updated.

    *)
  5. name : resource_name option;
    (*

    The name of the resource to be updated.

    *)
  6. resource_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

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

    The value of the email to be updated as primary.

    *)
  2. entity_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

    *)
}
type nonrec update_mobile_device_access_rule_response = unit
type nonrec mobile_device_access_rule_id = string
type nonrec mobile_device_access_rule_name = string
type nonrec mobile_device_access_rule_description = string
type nonrec mobile_device_access_rule_effect =
  1. | DENY
  2. | ALLOW
type nonrec device_type = string
type nonrec device_type_list = device_type list
type nonrec device_model = string
type nonrec device_model_list = device_model list
type nonrec device_operating_system = string
type nonrec device_operating_system_list = device_operating_system list
type nonrec device_user_agent = string
type nonrec device_user_agent_list = device_user_agent list
type nonrec update_mobile_device_access_rule_request = {
  1. not_device_user_agents : device_user_agent_list option;
    (*

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

    *)
  2. device_user_agents : device_user_agent_list option;
    (*

    User agents that the updated rule will match.

    *)
  3. not_device_operating_systems : device_operating_system_list option;
    (*

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

    *)
  4. device_operating_systems : device_operating_system_list option;
    (*

    Device operating systems that the updated rule will match.

    *)
  5. not_device_models : device_model_list option;
    (*

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

    *)
  6. device_models : device_model_list option;
    (*

    Device models that the updated rule will match.

    *)
  7. not_device_types : device_type_list option;
    (*

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

    *)
  8. device_types : device_type_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 : mobile_device_access_rule_description option;
    (*

    The updated rule description.

    *)
  11. name : mobile_device_access_rule_name;
    (*

    The updated rule name.

    *)
  12. mobile_device_access_rule_id : mobile_device_access_rule_id;
    (*

    The identifier of the rule to be updated.

    *)
  13. organization_id : organization_id;
    (*

    The WorkMail organization under which the rule will be updated.

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

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

    *)
  2. user_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

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

The resource cannot be found.

type nonrec limit_exceeded_exception = {
  1. message : string_ option;
}

The request exceeds the limit of the resource.

type nonrec update_impersonation_role_response = unit
type nonrec impersonation_role_id = string
type nonrec impersonation_role_name = string
type nonrec impersonation_role_type =
  1. | READ_ONLY
  2. | FULL_ACCESS
type nonrec impersonation_role_description = string
type nonrec impersonation_rule_id = string
type nonrec impersonation_rule_name = string
type nonrec impersonation_rule_description = string
type nonrec access_effect =
  1. | DENY
  2. | ALLOW
type nonrec target_users = entity_identifier list
type nonrec impersonation_rule = {
  1. not_target_users : target_users option;
    (*

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

    *)
  2. target_users : target_users 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 : impersonation_rule_description option;
    (*

    The rule description.

    *)
  5. name : impersonation_rule_name option;
    (*

    The rule name.

    *)
  6. impersonation_rule_id : impersonation_rule_id;
    (*

    The identifier of the rule.

    *)
}

The rules for the given impersonation role.

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

    The updated list of rules.

    *)
  2. description : impersonation_role_description option;
    (*

    The updated impersonation role description.

    *)
  3. type_ : impersonation_role_type;
    (*

    The updated impersonation role type.

    *)
  4. name : impersonation_role_name;
    (*

    The updated impersonation role name.

    *)
  5. impersonation_role_id : impersonation_role_id;
    (*

    The ID of the impersonation role to update.

    *)
  6. organization_id : organization_id;
    (*

    The WorkMail organization that contains the impersonation role to update.

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

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

    *)
  2. group_id : entity_identifier;
    (*

    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 : organization_id;
    (*

    The identifier for the organization under which the group exists.

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

    The domain name that will become the default domain.

    *)
  2. organization_id : organization_id;
    (*

    The WorkMail organization for which to list domains.

    *)
}
type nonrec update_availability_configuration_response = unit
type nonrec domain_name = string
type nonrec url = string
type nonrec external_user_name = string
type nonrec password = string
type nonrec ews_availability_provider = {
  1. ews_password : password;
    (*

    The password used to authenticate the remote EWS server.

    *)
  2. ews_username : external_user_name;
    (*

    The username used to authenticate the remote EWS server.

    *)
  3. ews_endpoint : url;
    (*

    The endpoint of the remote EWS server.

    *)
}

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

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

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

    *)
}

Describes a Lambda based availability provider.

type nonrec 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 : domain_name;
    (*

    The domain to which the provider applies the availability configuration.

    *)
  4. organization_id : organization_id;
    (*

    The WorkMail organization for which the AvailabilityConfiguration will be updated.

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

    The tag keys.

    *)
  2. resource_ar_n : amazon_resource_name;
    (*

    The resource ARN.

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

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

    *)
  2. test_passed : boolean_ option;
    (*

    Boolean indicating whether the test passed or failed.

    *)
}
type nonrec test_availability_configuration_request = {
  1. lambda_provider : lambda_availability_provider option;
  2. ews_provider : ews_availability_provider option;
  3. domain_name : domain_name 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 : organization_id;
    (*

    The WorkMail organization where the availability provider will be tested.

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

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

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

    The value of the tag.

    *)
  2. key : tag_key;
    (*

    The key of the tag.

    *)
}

Describes a tag applied to a resource.

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

    The tag key-value pairs.

    *)
  2. resource_ar_n : amazon_resource_name;
    (*

    The resource ARN.

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

    The job ID.

    *)
}
type nonrec idempotency_client_token = string
type nonrec description = string
type nonrec role_arn = string
type nonrec kms_key_arn = string
type nonrec s3_bucket_name = string
type nonrec s3_object_key = string
type nonrec start_mailbox_export_job_request = {
  1. s3_prefix : s3_object_key;
    (*

    The S3 bucket prefix.

    *)
  2. s3_bucket_name : s3_bucket_name;
    (*

    The name of the S3 bucket.

    *)
  3. kms_key_arn : kms_key_arn;
    (*

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

    *)
  4. role_arn : role_arn;
    (*

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

    *)
  5. description : description option;
    (*

    The mailbox export job description.

    *)
  6. entity_id : entity_identifier;
    (*

    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 : organization_id;
    (*

    The identifier associated with the organization.

    *)
  8. client_token : idempotency_client_token;
    (*

    The idempotency token for the client request.

    *)
}
type nonrec 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 nonrec reset_password_response = unit
type nonrec work_mail_identifier = string
type nonrec reset_password_request = {
  1. password : password;
    (*

    The new password for the user.

    *)
  2. user_id : work_mail_identifier;
    (*

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

    *)
  3. organization_id : organization_id;
    (*

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

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

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

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

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

    *)
  2. entity_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

    *)
}
type nonrec 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 nonrec register_mail_domain_response = unit
type nonrec register_mail_domain_request = {
  1. domain_name : work_mail_domain_name;
    (*

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

    *)
  2. organization_id : organization_id;
    (*

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

    *)
  3. client_token : idempotency_client_token option;
    (*

    Idempotency token used when retrying requests.

    *)
}
type nonrec put_retention_policy_response = unit
type nonrec short_string = string
type nonrec policy_description = string
type nonrec folder_name =
  1. | JUNK_EMAIL
  2. | DRAFTS
  3. | SENT_ITEMS
  4. | DELETED_ITEMS
  5. | INBOX
type nonrec retention_action =
  1. | PERMANENTLY_DELETE
  2. | DELETE
  3. | NONE
type nonrec retention_period = int
type nonrec folder_configuration = {
  1. period : retention_period 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 nonrec folder_configurations = folder_configuration list
type nonrec put_retention_policy_request = {
  1. folder_configurations : folder_configurations;
    (*

    The retention policy folder configurations.

    *)
  2. description : policy_description option;
    (*

    The retention policy description.

    *)
  3. name : short_string;
    (*

    The retention policy name.

    *)
  4. id : short_string option;
    (*

    The retention policy ID.

    *)
  5. organization_id : organization_id;
    (*

    The organization ID.

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

    A description of the override.

    *)
  2. effect_ : mobile_device_access_rule_effect;
    (*

    The effect of the override, ALLOW or DENY.

    *)
  3. device_id : device_id;
    (*

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

    *)
  4. user_id : entity_identifier;
    (*

    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 : organization_id;
    (*

    Identifies the WorkMail organization for which you create the override.

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

    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 : entity_identifier;
    (*

    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 : entity_identifier;
    (*

    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 : organization_id;
    (*

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

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

    Enforces or suspends a policy after it's applied.

    *)
  2. organization_id : organization_id;
    (*

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

    *)
}
type nonrec put_identity_provider_configuration_response = unit
type nonrec identity_provider_authentication_mode =
  1. | IDENTITY_PROVIDER_AND_DIRECTORY
  2. | IDENTITY_PROVIDER_ONLY
type nonrec instance_arn = string
type nonrec application_arn = string
type nonrec identity_center_configuration = {
  1. application_arn : application_arn;
    (*

    The Amazon Resource Name (ARN) of IAMIdentity Center Application for WorkMail. Must be created by the WorkMail API, see CreateIdentityCenterApplication.

    *)
  2. instance_arn : instance_arn;
    (*

    The Amazon Resource Name (ARN) of the of IAM Identity Center instance. Must be in the same AWS account and region as WorkMail organization.

    *)
}

The IAM Identity Center configuration.

type nonrec personal_access_token_configuration_status =
  1. | INACTIVE
  2. | ACTIVE
type nonrec personal_access_token_lifetime_in_days = int
type nonrec personal_access_token_configuration = {
  1. lifetime_in_days : personal_access_token_lifetime_in_days option;
    (*

    The validity of the Personal Access Token status in days.

    *)
  2. status : personal_access_token_configuration_status;
    (*

    The status of the Personal Access Token allowed for the organization.

    • Active - Mailbox users can login to the web application and choose Settings to see the new Personal Access Tokens page to create and delete the Personal Access Tokens. Mailbox users can use the Personal Access Tokens to set up mailbox connection from desktop or mobile email clients.
    • Inactive - Personal Access Tokens are disabled for your organization. Mailbox users can’t create, list, or delete Personal Access Tokens and can’t use them to connect to their mailboxes from desktop or mobile email clients.
    *)
}

Displays the Personal Access Token status.

type nonrec put_identity_provider_configuration_request = {
  1. personal_access_token_configuration : personal_access_token_configuration;
    (*

    The details of the Personal Access Token configuration.

    *)
  2. identity_center_configuration : identity_center_configuration;
    (*

    The details of the IAM Identity Center configuration.

    *)
  3. authentication_mode : identity_provider_authentication_mode;
    (*

    The authentication mode used in WorkMail.

    *)
  4. organization_id : organization_id;
    (*

    The ID of the WorkMail Organization.

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

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

    *)
  2. role_arn : role_arn;
    (*

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

    *)
  3. organization_id : organization_id;
    (*

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

    *)
}
type nonrec put_access_control_rule_response = unit
type nonrec access_control_rule_name = string
type nonrec access_control_rule_effect =
  1. | DENY
  2. | ALLOW
type nonrec access_control_rule_description = string
type nonrec ip_range = string
type nonrec ip_range_list = ip_range list
type nonrec access_control_rule_action = string
type nonrec actions_list = access_control_rule_action list
type nonrec user_id_list = work_mail_identifier list
type nonrec impersonation_role_id_list = impersonation_role_id list
type nonrec put_access_control_rule_request = {
  1. not_impersonation_role_ids : impersonation_role_id_list option;
    (*

    Impersonation role IDs to exclude from the rule.

    *)
  2. impersonation_role_ids : impersonation_role_id_list option;
    (*

    Impersonation role IDs to include in the rule.

    *)
  3. organization_id : organization_id;
    (*

    The identifier of the organization.

    *)
  4. not_user_ids : user_id_list option;
    (*

    User IDs to exclude from the rule.

    *)
  5. user_ids : user_id_list option;
    (*

    User IDs to include in the rule.

    *)
  6. not_actions : actions_list option;
    (*

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

    *)
  7. actions : actions_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 : ip_range_list option;
    (*

    IPv4 CIDR ranges to exclude from the rule.

    *)
  9. ip_ranges : ip_range_list option;
    (*

    IPv4 CIDR ranges to include in the rule.

    *)
  10. description : access_control_rule_description;
    (*

    The rule description.

    *)
  11. effect_ : access_control_rule_effect;
    (*

    The rule effect.

    *)
  12. name : access_control_rule_name;
    (*

    The rule name.

    *)
}
type nonrec user_name = string
type nonrec entity_state =
  1. | DELETED
  2. | DISABLED
  3. | ENABLED
type nonrec timestamp = Smaws_Lib.CoreTypes.Timestamp.t
type nonrec identity_provider_user_id = string
type nonrec identity_provider_identity_store_id = string
type nonrec user = {
  1. identity_provider_identity_store_id : identity_provider_identity_store_id option;
    (*

    Identity store ID from the IAM Identity Center. If this parameter is empty it will be updated automatically when the user logs in for the first time to the mailbox associated with WorkMail.

    *)
  2. identity_provider_user_id : identity_provider_user_id option;
    (*

    User ID from the IAM Identity Center. If this parameter is empty it will be updated automatically when the user logs in for the first time to the mailbox associated with WorkMail.

    *)
  3. disabled_date : timestamp option;
    (*

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

    *)
  4. enabled_date : timestamp option;
    (*

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

    *)
  5. user_role : user_role option;
    (*

    The role of the user.

    *)
  6. state : entity_state option;
    (*

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

    *)
  7. display_name : string_ option;
    (*

    The display name of the user.

    *)
  8. name : user_name option;
    (*

    The name of the user.

    *)
  9. email : email_address option;
    (*

    The email of the user.

    *)
  10. id : work_mail_identifier option;
    (*

    The identifier of the user.

    *)
}

The representation of an WorkMail user.

type nonrec users = user list
type nonrec next_token = string
type nonrec list_users_response = {
  1. next_token : next_token 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 : users option;
    (*

    The overview of users for an organization.

    *)
}
type nonrec max_results = int
type nonrec identity_provider_user_id_prefix = string
type nonrec list_users_filters = {
  1. identity_provider_user_id_prefix : identity_provider_user_id_prefix option;
    (*

    Filters only users with the ID from the IAM Identity Center.

    *)
  2. state : entity_state option;
    (*

    Filters only users with the provided state.

    *)
  3. primary_email_prefix : string_ option;
    (*

    Filters only users with the provided email prefix.

    *)
  4. display_name_prefix : user_attribute option;
    (*

    Filters only users with the provided display name prefix.

    *)
  5. 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 nonrec 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 : max_results option;
    (*

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

    *)
  3. next_token : next_token option;
    (*

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

    *)
  4. organization_id : organization_id;
    (*

    The identifier for the organization under which the users exist.

    *)
}
type nonrec list_tags_for_resource_response = {
  1. tags : tag_list option;
    (*

    A list of tag key-value pairs.

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

    The resource ARN.

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

    Resource description.

    *)
  2. disabled_date : timestamp option;
    (*

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

    *)
  3. enabled_date : timestamp 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 : resource_name option;
    (*

    The name of the resource.

    *)
  7. email : email_address option;
    (*

    The email of the resource.

    *)
  8. id : work_mail_identifier option;
    (*

    The identifier of the resource.

    *)
}

The representation of a resource.

type nonrec resources = resource list
type nonrec list_resources_response = {
  1. next_token : next_token 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 : resources option;
    (*

    One page of the organization's resource representation.

    *)
}
type nonrec 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 nonrec 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 : max_results option;
    (*

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

    *)
  3. next_token : next_token option;
    (*

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

    *)
  4. organization_id : organization_id;
    (*

    The identifier for the organization under which the resources exist.

    *)
}
type nonrec member_type =
  1. | USER
  2. | GROUP
type nonrec 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 nonrec resource_delegates = delegate list
type nonrec list_resource_delegates_response = {
  1. next_token : next_token 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 : resource_delegates option;
    (*

    One page of the resource's delegates.

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

    The number of maximum results in a page.

    *)
  2. next_token : next_token option;
    (*

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

    *)
  3. resource_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

    *)
}
type nonrec personal_access_token_id = string
type nonrec personal_access_token_name = string
type nonrec personal_access_token_scope = string
type nonrec personal_access_token_scope_list = personal_access_token_scope list
type nonrec personal_access_token_summary = {
  1. scopes : personal_access_token_scope_list option;
    (*

    Lists all the Personal Access Token permissions for a mailbox.

    *)
  2. expires_time : timestamp option;
    (*

    The date when the Personal Access Token will expire.

    *)
  3. date_last_used : timestamp option;
    (*

    The date when the Personal Access Token was last used.

    *)
  4. date_created : timestamp option;
    (*

    The date when the Personal Access Token was created.

    *)
  5. name : personal_access_token_name option;
    (*

    The name of the Personal Access Token.

    *)
  6. user_id : work_mail_identifier option;
    (*

    The user ID of the WorkMail user associated with the Personal Access Token.

    *)
  7. personal_access_token_id : personal_access_token_id option;
    (*

    The ID of the Personal Access Token.

    *)
}

The summary of the Personal Access Token.

type nonrec personal_access_token_summary_list = personal_access_token_summary list
type nonrec list_personal_access_tokens_response = {
  1. personal_access_token_summaries : personal_access_token_summary_list option;
    (*

    Lists all the personal tokens in an organization or user, if user ID is provided.

    *)
  2. next_token : next_token option;
    (*

    The token from the previous response to query the next page.

    *)
}
type nonrec list_personal_access_tokens_request = {
  1. max_results : max_results option;
    (*

    The maximum amount of items that should be returned in a response.

    *)
  2. next_token : next_token option;
    (*

    The token from the previous response to query the next page.

    *)
  3. user_id : entity_identifier option;
    (*

    The WorkMail User ID.

    *)
  4. organization_id : organization_id;
    (*

    The Organization ID.

    *)
}
type nonrec organization_name = string
type nonrec 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 : domain_name option;
    (*

    The default email domain associated with the organization.

    *)
  4. alias : organization_name option;
    (*

    The alias associated with the organization.

    *)
  5. organization_id : organization_id option;
    (*

    The identifier associated with the organization.

    *)
}

The representation of an organization.

type nonrec organization_summaries = organization_summary list
type nonrec list_organizations_response = {
  1. next_token : next_token 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_summaries option;
    (*

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

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

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

    *)
  2. next_token : next_token option;
    (*

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

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

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

    *)
  2. date_created : timestamp option;
    (*

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

    *)
  3. not_device_user_agents : device_user_agent_list option;
    (*

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

    *)
  4. device_user_agents : device_user_agent_list option;
    (*

    Device user agents that a rule will match.

    *)
  5. not_device_operating_systems : device_operating_system_list option;
    (*

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

    *)
  6. device_operating_systems : device_operating_system_list option;
    (*

    Device operating systems that a rule will match.

    *)
  7. not_device_models : device_model_list option;
    (*

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

    *)
  8. device_models : device_model_list option;
    (*

    Device models that a rule will match.

    *)
  9. not_device_types : device_type_list option;
    (*

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

    *)
  10. device_types : device_type_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 : mobile_device_access_rule_description option;
    (*

    The description of a mobile access rule.

    *)
  13. name : mobile_device_access_rule_name option;
    (*

    The name of a mobile access rule.

    *)
  14. mobile_device_access_rule_id : mobile_device_access_rule_id option;
    (*

    The ID assigned to a mobile access rule.

    *)
}

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

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

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

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

    The WorkMail organization for which to list the rules.

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

    The date the override was last modified.

    *)
  2. date_created : timestamp option;
    (*

    The date the override was first created.

    *)
  3. description : mobile_device_access_rule_description 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 : device_id option;
    (*

    The device to which the override applies.

    *)
  6. user_id : work_mail_identifier option;
    (*

    The WorkMail user to which the access override applies.

    *)
}

The override object.

type nonrec mobile_device_access_overrides_list = mobile_device_access_override list
type nonrec list_mobile_device_access_overrides_response = {
  1. next_token : next_token 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_overrides_list option;
    (*

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

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

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

    *)
  2. next_token : next_token option;
    (*

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

    *)
  3. device_id : device_id option;
    (*

    The mobile device to which the access override applies.

    *)
  4. user_id : entity_identifier 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 : organization_id;
    (*

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

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

    Whether the domain is default or not.

    *)
  2. domain_name : domain_name option;
    (*

    The domain name.

    *)
}

The data for a given domain.

type nonrec mail_domains = mail_domain_summary list
type nonrec list_mail_domains_response = {
  1. next_token : next_token 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_domains 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 nonrec list_mail_domains_request = {
  1. next_token : next_token option;
    (*

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

    *)
  2. max_results : max_results option;
    (*

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

    *)
  3. organization_id : organization_id;
    (*

    The WorkMail organization for which to list domains.

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

    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 : work_mail_identifier;
    (*

    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 nonrec permissions = permission list
type nonrec list_mailbox_permissions_response = {
  1. next_token : next_token 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 : permissions option;
    (*

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

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

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

    *)
  2. next_token : next_token option;
    (*

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

    *)
  3. entity_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

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

    The mailbox export job end timestamp.

    *)
  2. start_time : timestamp option;
    (*

    The mailbox export job start timestamp.

    *)
  3. state : mailbox_export_job_state option;
    (*

    The state of the mailbox export job.

    *)
  4. estimated_progress : percentage option;
    (*

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

    *)
  5. s3_path : s3_object_key option;
    (*

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

    *)
  6. s3_bucket_name : s3_bucket_name option;
    (*

    The name of the S3 bucket.

    *)
  7. description : description option;
    (*

    The mailbox export job description.

    *)
  8. entity_id : work_mail_identifier option;
    (*

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

    *)
  9. job_id : mailbox_export_job_id 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 nonrec jobs = mailbox_export_job list
type nonrec list_mailbox_export_jobs_response = {
  1. next_token : next_token option;
    (*

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

    *)
  2. jobs : jobs option;
    (*

    The mailbox export job details.

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

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

    *)
  2. next_token : next_token option;
    (*

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

    *)
  3. organization_id : organization_id;
    (*

    The organization ID.

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

    The date when the impersonation role was last modified.

    *)
  2. date_created : timestamp option;
    (*

    The date when the impersonation role was created.

    *)
  3. type_ : impersonation_role_type option;
    (*

    The impersonation role type.

    *)
  4. name : impersonation_role_name option;
    (*

    The impersonation role name.

    *)
  5. impersonation_role_id : impersonation_role_id option;
    (*

    The identifier of the impersonation role.

    *)
}

An impersonation role for the given WorkMail organization.

type nonrec impersonation_role_list = impersonation_role list
type nonrec list_impersonation_roles_response = {
  1. next_token : next_token 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 nonrec list_impersonation_roles_request = {
  1. max_results : max_results option;
    (*

    The maximum number of results returned in a single call.

    *)
  2. next_token : next_token option;
    (*

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

    *)
  3. organization_id : organization_id;
    (*

    The WorkMail organization to which the listed impersonation roles belong.

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

    Group name that matched the group.

    *)
  2. group_id : work_mail_identifier option;
    (*

    Group ID that matched the group.

    *)
}

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

type nonrec group_identifiers = group_identifier list
type nonrec list_groups_for_entity_response = {
  1. next_token : next_token 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_identifiers option;
    (*

    The overview of groups in an organization.

    *)
}
type nonrec 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 nonrec list_groups_for_entity_request = {
  1. max_results : max_results option;
    (*

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

    *)
  2. next_token : next_token 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 : entity_identifier;
    (*

    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 : organization_id;
    (*

    The identifier for the organization under which the entity exists.

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

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

    *)
  2. enabled_date : timestamp 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 : group_name option;
    (*

    The name of the group.

    *)
  5. email : email_address option;
    (*

    The email of the group.

    *)
  6. id : work_mail_identifier option;
    (*

    The identifier of the group.

    *)
}

The representation of an WorkMail group.

type nonrec groups = group list
type nonrec list_groups_response = {
  1. next_token : next_token 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 : groups option;
    (*

    The overview of groups for an organization.

    *)
}
type nonrec 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 nonrec 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 : max_results option;
    (*

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

    *)
  3. next_token : next_token option;
    (*

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

    *)
  4. organization_id : organization_id;
    (*

    The identifier for the organization under which the groups exist.

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

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

    *)
  2. enabled_date : timestamp 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 nonrec members = member list
type nonrec list_group_members_response = {
  1. next_token : next_token option;
    (*

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

    *)
  2. members : members option;
    (*

    The members associated to the group.

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

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

    *)
  2. next_token : next_token option;
    (*

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

    *)
  3. group_id : entity_identifier;
    (*

    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 : organization_id;
    (*

    The identifier for the organization under which the group exists.

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

    The username used to authenticate the remote EWS server.

    *)
  2. ews_endpoint : url 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 nonrec availability_configuration = {
  1. date_modified : timestamp option;
    (*

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

    *)
  2. date_created : timestamp 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 : domain_name option;
    (*

    Displays the domain to which the provider applies.

    *)
}

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

type nonrec availability_configuration_list = availability_configuration list
type nonrec list_availability_configurations_response = {
  1. next_token : next_token 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 nonrec list_availability_configurations_request = {
  1. next_token : next_token option;
    (*

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

    *)
  2. max_results : max_results option;
    (*

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

    *)
  3. organization_id : organization_id;
    (*

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

    *)
}
type nonrec aliases = email_address list
type nonrec list_aliases_response = {
  1. next_token : next_token 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 : aliases option;
    (*

    The entity's paginated aliases.

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

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

    *)
  2. next_token : next_token option;
    (*

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

    *)
  3. entity_id : work_mail_identifier;
    (*

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

    *)
  4. organization_id : organization_id;
    (*

    The identifier for the organization under which the entity exists.

    *)
}
type nonrec access_control_rule = {
  1. not_impersonation_role_ids : impersonation_role_id_list option;
    (*

    Impersonation role IDs to exclude from the rule.

    *)
  2. impersonation_role_ids : impersonation_role_id_list option;
    (*

    Impersonation role IDs to include in the rule.

    *)
  3. date_modified : timestamp option;
    (*

    The date that the rule was modified.

    *)
  4. date_created : timestamp option;
    (*

    The date that the rule was created.

    *)
  5. not_user_ids : user_id_list option;
    (*

    User IDs to exclude from the rule.

    *)
  6. user_ids : user_id_list option;
    (*

    User IDs to include in the rule.

    *)
  7. not_actions : actions_list option;
    (*

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

    *)
  8. actions : actions_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 : ip_range_list option;
    (*

    IPv4 CIDR ranges to exclude from the rule.

    *)
  10. ip_ranges : ip_range_list option;
    (*

    IPv4 CIDR ranges to include in the rule.

    *)
  11. description : access_control_rule_description option;
    (*

    The rule description.

    *)
  12. effect_ : access_control_rule_effect option;
    (*

    The rule effect.

    *)
  13. name : access_control_rule_name option;
    (*

    The rule name.

    *)
}

A rule that controls access to an WorkMail organization.

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

    The access control rules.

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

    The identifier for the organization.

    *)
}
type nonrec get_personal_access_token_metadata_response = {
  1. scopes : personal_access_token_scope_list option;
    (*

    Lists all the Personal Access Token permissions for a mailbox.

    *)
  2. expires_time : timestamp option;
    (*

    The time when the Personal Access Token ID will expire.

    *)
  3. date_last_used : timestamp option;
    (*

    The date when the Personal Access Token ID was last used.

    *)
  4. date_created : timestamp option;
    (*

    The date when the Personal Access Token ID was created.

    *)
  5. name : personal_access_token_name option;
    (*

    The Personal Access Token name.

    *)
  6. user_id : work_mail_identifier option;
    (*

    The WorkMail User ID.

    *)
  7. personal_access_token_id : personal_access_token_id option;
    (*

    The Personal Access Token ID.

    *)
}
type nonrec get_personal_access_token_metadata_request = {
  1. personal_access_token_id : personal_access_token_id;
    (*

    The Personal Access Token ID.

    *)
  2. organization_id : organization_id;
    (*

    The Organization ID.

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

    The date the description was last modified.

    *)
  2. date_created : timestamp option;
    (*

    The date the override was first created.

    *)
  3. description : mobile_device_access_rule_description 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 : device_id option;
    (*

    The device to which the access override applies.

    *)
  6. user_id : work_mail_identifier option;
    (*

    The WorkMail user to which the access override applies.

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

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

    *)
  2. user_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

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

    Name of a rule that a simulated user matches.

    *)
  2. mobile_device_access_rule_id : mobile_device_access_rule_id option;
    (*

    Identifier of the rule that a simulated user matches.

    *)
}

The rule that a simulated user matches.

type nonrec mobile_device_access_matched_rule_list = mobile_device_access_matched_rule list
type nonrec 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 nonrec get_mobile_device_access_effect_request = {
  1. device_user_agent : device_user_agent option;
    (*

    Device user agent the simulated user will report.

    *)
  2. device_operating_system : device_operating_system option;
    (*

    Device operating system the simulated user will report.

    *)
  3. device_model : device_model option;
    (*

    Device model the simulated user will report.

    *)
  4. device_type : device_type option;
    (*

    Device type the simulated user will report.

    *)
  5. organization_id : organization_id;
    (*

    The WorkMail organization to simulate the access effect for.

    *)
}
type nonrec 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 nonrec dns_records = dns_record list
type nonrec dns_record_verification_status =
  1. | FAILED
  2. | VERIFIED
  3. | PENDING
type nonrec 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 : boolean_ option;
    (*

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

    *)
  4. is_test_domain : boolean_ option;
    (*

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

    *)
  5. records : dns_records 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 nonrec get_mail_domain_request = {
  1. domain_name : work_mail_domain_name;
    (*

    The domain from which you want to retrieve details.

    *)
  2. organization_id : organization_id;
    (*

    The WorkMail organization for which the domain is retrieved.

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

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

    *)
  2. mailbox_quota : mailbox_quota option;
    (*

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

    *)
}
type nonrec get_mailbox_details_request = {
  1. user_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

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

    The name of the rule that matched the input.

    *)
  2. impersonation_rule_id : impersonation_rule_id option;
    (*

    The ID of the rule that matched the input

    *)
}

The impersonation rule that matched the input.

type nonrec impersonation_matched_rule_list = impersonation_matched_rule list
type nonrec 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 nonrec get_impersonation_role_effect_request = {
  1. target_user : entity_identifier;
    (*

    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 : impersonation_role_id;
    (*

    The impersonation role ID to test.

    *)
  3. organization_id : organization_id;
    (*

    The WorkMail organization where the impersonation role is defined.

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

    The date when the impersonation role was last modified.

    *)
  2. date_created : timestamp 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 : impersonation_role_description option;
    (*

    The impersonation role description.

    *)
  5. type_ : impersonation_role_type option;
    (*

    The impersonation role type.

    *)
  6. name : impersonation_role_name option;
    (*

    The impersonation role name.

    *)
  7. impersonation_role_id : impersonation_role_id option;
    (*

    The impersonation role ID.

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

    The impersonation role ID to retrieve.

    *)
  2. organization_id : organization_id;
    (*

    The WorkMail organization from which to retrieve the impersonation role.

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

    The retention policy folder configurations.

    *)
  2. description : string_ option;
    (*

    The retention policy description.

    *)
  3. name : short_string option;
    (*

    The retention policy name.

    *)
  4. id : short_string option;
    (*

    The retention policy ID.

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

    The organization ID.

    *)
}
type nonrec access_control_rule_name_list = access_control_rule_name list
type nonrec get_access_control_effect_response = {
  1. matched_rules : access_control_rule_name_list option;
    (*

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

    *)
  2. effect_ : access_control_rule_effect option;
    (*

    The rule effect.

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

    The impersonation role ID.

    *)
  2. user_id : work_mail_identifier option;
    (*

    The user ID.

    *)
  3. action : access_control_rule_action;
    (*

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

    *)
  4. ip_address : ip_address;
    (*

    The IPv4 address.

    *)
  5. organization_id : organization_id;
    (*

    The identifier for the organization.

    *)
}
type nonrec disassociate_member_from_group_response = unit
type nonrec disassociate_member_from_group_request = {
  1. member_id : entity_identifier;
    (*

    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 : entity_identifier;
    (*

    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 : organization_id;
    (*

    The identifier for the organization under which the group exists.

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

    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 : entity_identifier;
    (*

    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 : organization_id;
    (*

    The identifier for the organization under which the resource exists.

    *)
}
type nonrec describe_user_response = {
  1. identity_provider_identity_store_id : identity_provider_identity_store_id option;
    (*

    Identity Store ID from the IAM Identity Center. If this parameter is empty it will be updated automatically when the user logs in for the first time to the mailbox associated with WorkMail.

    *)
  2. identity_provider_user_id : identity_provider_user_id option;
    (*

    User ID from the IAM Identity Center. If this parameter is empty it will be updated automatically when the user logs in for the first time to the mailbox associated with WorkMail.

    *)
  3. office : user_attribute option;
    (*

    Office where the user is located.

    *)
  4. country : user_attribute option;
    (*

    Country where the user is located.

    *)
  5. department : user_attribute option;
    (*

    Department of the user.

    *)
  6. zip_code : user_attribute option;
    (*

    Zip code of the user.

    *)
  7. company : user_attribute option;
    (*

    Company of the user.

    *)
  8. city : user_attribute option;
    (*

    City where the user is located.

    *)
  9. job_title : user_attribute option;
    (*

    Job title of the user.

    *)
  10. street : user_attribute option;
    (*

    Street where the user is located.

    *)
  11. telephone : user_attribute option;
    (*

    User's contact number.

    *)
  12. initials : user_attribute option;
    (*

    Initials of the user.

    *)
  13. hidden_from_global_address_list : boolean_ option;
    (*

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

    *)
  14. last_name : user_attribute option;
    (*

    Last name of the user.

    *)
  15. first_name : user_attribute option;
    (*

    First name of the user.

    *)
  16. mailbox_deprovisioned_date : timestamp option;
    (*

    The date when the mailbox was removed for the user.

    *)
  17. mailbox_provisioned_date : timestamp option;
    (*

    The date when the mailbox was created for the user.

    *)
  18. disabled_date : timestamp option;
    (*

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

    *)
  19. enabled_date : timestamp option;
    (*

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

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

    *)
  21. state : entity_state option;
    (*

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

    *)
  22. display_name : user_attribute option;
    (*

    The display name of the user.

    *)
  23. email : email_address option;
    (*

    The email of the user.

    *)
  24. name : user_name option;
    (*

    The name for the user.

    *)
  25. user_id : work_mail_identifier option;
    (*

    The identifier for the described user.

    *)
}
type nonrec describe_user_request = {
  1. user_id : entity_identifier;
    (*

    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 : organization_id;
    (*

    The identifier for the organization under which the user exists.

    *)
}
type nonrec resource_id = string
type nonrec describe_resource_response = {
  1. hidden_from_global_address_list : boolean_ option;
    (*

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

    *)
  2. description : resource_description option;
    (*

    Description of the resource.

    *)
  3. disabled_date : timestamp option;
    (*

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

    *)
  4. enabled_date : timestamp 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 : resource_name option;
    (*

    The name of the described resource.

    *)
  9. email : email_address option;
    (*

    The email of the described resource.

    *)
  10. resource_id : resource_id option;
    (*

    The identifier of the described resource.

    *)
}
type nonrec describe_resource_request = {
  1. resource_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

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

    Indicates if interoperability is enabled for this organization.

    *)
  2. migration_admin : work_mail_identifier option;
    (*

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

    *)
  3. ar_n : amazon_resource_name 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 : timestamp 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 : organization_name option;
    (*

    The alias for an organization.

    *)
  11. organization_id : organization_id option;
    (*

    The identifier of an organization.

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

    The identifier for the organization to be described.

    *)
}
type nonrec mailbox_export_error_info = string
type nonrec describe_mailbox_export_job_response = {
  1. end_time : timestamp option;
    (*

    The mailbox export job end timestamp.

    *)
  2. start_time : timestamp option;
    (*

    The mailbox export job start timestamp.

    *)
  3. error_info : mailbox_export_error_info 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 : percentage option;
    (*

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

    *)
  6. s3_path : s3_object_key option;
    (*

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

    *)
  7. s3_prefix : s3_object_key option;
    (*

    The S3 bucket prefix.

    *)
  8. s3_bucket_name : s3_bucket_name option;
    (*

    The name of the S3 bucket.

    *)
  9. kms_key_arn : kms_key_arn 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 : role_arn 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 : description option;
    (*

    The mailbox export job description.

    *)
  12. entity_id : work_mail_identifier option;
    (*

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

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

    The organization ID.

    *)
  2. job_id : mailbox_export_job_id;
    (*

    The mailbox export job ID.

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

    Lists the enforcement setting of the applied policy.

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

    Lists the ID of the given organization.

    *)
}
type nonrec describe_identity_provider_configuration_response = {
  1. personal_access_token_configuration : personal_access_token_configuration option;
    (*

    The details of the Personal Access Token configuration.

    *)
  2. identity_center_configuration : identity_center_configuration option;
    (*

    The details of the IAM Identity Center configuration.

    *)
  3. authentication_mode : identity_provider_authentication_mode option;
    (*

    The authentication mode used in WorkMail.

    *)
}
type nonrec describe_identity_provider_configuration_request = {
  1. organization_id : organization_id;
    (*

    The Organization ID.

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

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

    *)
  2. disabled_date : timestamp option;
    (*

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

    *)
  3. enabled_date : timestamp 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 : email_address option;
    (*

    The email of the described group.

    *)
  6. name : group_name option;
    (*

    The name of the described group.

    *)
  7. group_id : work_mail_identifier option;
    (*

    The identifier of the described group.

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

    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 : organization_id;
    (*

    The identifier for the organization under which the group exists.

    *)
}
type nonrec entity_type =
  1. | RESOURCE
  2. | USER
  3. | GROUP
type nonrec 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 : work_mail_identifier option;
    (*

    The entity ID under which the entity exists.

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

    The email under which the entity exists.

    *)
  2. organization_id : organization_id;
    (*

    The identifier for the organization under which the entity exists.

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

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

    *)
  2. role_arn : role_arn option;
    (*

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

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

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

    *)
}
type nonrec 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 nonrec deregister_mail_domain_response = unit
type nonrec deregister_mail_domain_request = {
  1. domain_name : work_mail_domain_name;
    (*

    The domain to deregister in WorkMail and SES.

    *)
  2. organization_id : organization_id;
    (*

    The WorkMail organization for which the domain will be deregistered.

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

    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 : organization_id;
    (*

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

    *)
}
type nonrec delete_user_response = unit
type nonrec delete_user_request = {
  1. user_id : entity_identifier;
    (*

    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 : organization_id;
    (*

    The organization that contains the user to be deleted.

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

    The retention policy ID.

    *)
  2. organization_id : organization_id;
    (*

    The organization ID.

    *)
}
type nonrec delete_resource_response = unit
type nonrec delete_resource_request = {
  1. resource_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

    *)
}
type nonrec delete_personal_access_token_response = unit
type nonrec delete_personal_access_token_request = {
  1. personal_access_token_id : personal_access_token_id;
    (*

    The Personal Access Token ID.

    *)
  2. organization_id : organization_id;
    (*

    The Organization ID.

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

    The state of the organization.

    *)
  2. organization_id : organization_id option;
    (*

    The organization ID.

    *)
}
type nonrec delete_organization_request = {
  1. delete_identity_center_application : boolean_ option;
    (*

    Deletes IAM Identity Center application for WorkMail. This action does not affect authentication settings for any organization.

    *)
  2. force_delete : boolean_ option;
    (*

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

    *)
  3. delete_directory : boolean_;
    (*

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

    *)
  4. organization_id : organization_id;
    (*

    The organization ID.

    *)
  5. client_token : idempotency_client_token option;
    (*

    The idempotency token associated with the request.

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

    The identifier of the rule to be deleted.

    *)
  2. organization_id : organization_id;
    (*

    The WorkMail organization under which the rule will be deleted.

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

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

    *)
  2. user_id : entity_identifier;
    (*

    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 : organization_id;
    (*

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

    *)
}
type nonrec delete_mailbox_permissions_response = unit
type nonrec delete_mailbox_permissions_request = {
  1. grantee_id : entity_identifier;
    (*

    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 : entity_identifier;
    (*

    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 : organization_id;
    (*

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

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

    The ID of the impersonation role to delete.

    *)
  2. organization_id : organization_id;
    (*

    The WorkMail organization from which to delete the impersonation role.

    *)
}
type nonrec delete_identity_provider_configuration_response = unit
type nonrec delete_identity_provider_configuration_request = {
  1. organization_id : organization_id;
    (*

    The Organization ID.

    *)
}
type nonrec delete_identity_center_application_response = unit
type nonrec delete_identity_center_application_request = {
  1. application_arn : application_arn;
    (*

    The Amazon Resource Name (ARN) of the application.

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

    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 : organization_id;
    (*

    The organization that contains the group.

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

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

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

    The domain for which the AvailabilityConfiguration will be deleted.

    *)
  2. organization_id : organization_id;
    (*

    The WorkMail organization for which the AvailabilityConfiguration will be deleted.

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

    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 : work_mail_identifier;
    (*

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

    *)
  3. organization_id : organization_id;
    (*

    The identifier for the organization under which the user exists.

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

    The name of the access control rule.

    *)
  2. organization_id : organization_id;
    (*

    The identifier for the organization.

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

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

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

    The identifier for the new user.

    *)
}
type nonrec create_user_request = {
  1. identity_provider_user_id : identity_provider_user_id option;
    (*

    User ID from the IAM Identity Center. If this parameter is empty it will be updated automatically when the user logs in for the first time to the mailbox associated with WorkMail.

    *)
  2. hidden_from_global_address_list : boolean_ option;
    (*

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

    *)
  3. last_name : user_attribute option;
    (*

    The last name of the new user.

    *)
  4. first_name : user_attribute option;
    (*

    The first name of the new user.

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

    *)
  6. password : password option;
    (*

    The password for the new user.

    *)
  7. display_name : user_attribute;
    (*

    The display name for the new user.

    *)
  8. name : user_name;
    (*

    The name for the new user. WorkMail directory user names have a maximum length of 64. All others have a maximum length of 20.

    *)
  9. organization_id : organization_id;
    (*

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

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

    The identifier of the new resource.

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

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

    *)
  2. description : resource_description option;
    (*

    Resource description.

    *)
  3. type_ : resource_type;
    (*

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

    *)
  4. name : resource_name;
    (*

    The name of the new resource.

    *)
  5. organization_id : organization_id;
    (*

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

    *)
}
type nonrec 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 nonrec create_organization_response = {
  1. organization_id : organization_id option;
    (*

    The organization ID.

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

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

    *)
  2. domain_name : domain_name;
    (*

    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 nonrec domains = domain list
type nonrec create_organization_request = {
  1. enable_interoperability : boolean_ 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 : kms_key_arn option;
    (*

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

    *)
  3. domains : domains option;
    (*

    The email domains to associate with the organization.

    *)
  4. client_token : idempotency_client_token option;
    (*

    The idempotency token associated with the request.

    *)
  5. alias : organization_name;
    (*

    The organization alias.

    *)
  6. directory_id : directory_id option;
    (*

    The AWS Directory Service directory ID.

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

    The identifier for the newly created mobile device access rule.

    *)
}
type nonrec create_mobile_device_access_rule_request = {
  1. not_device_user_agents : device_user_agent_list option;
    (*

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

    *)
  2. device_user_agents : device_user_agent_list option;
    (*

    Device user agents that the rule will match.

    *)
  3. not_device_operating_systems : device_operating_system_list option;
    (*

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

    *)
  4. device_operating_systems : device_operating_system_list option;
    (*

    Device operating systems that the rule will match.

    *)
  5. not_device_models : device_model_list option;
    (*

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

    *)
  6. device_models : device_model_list option;
    (*

    Device models that the rule will match.

    *)
  7. not_device_types : device_type_list option;
    (*

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

    *)
  8. device_types : device_type_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 : mobile_device_access_rule_description option;
    (*

    The rule description.

    *)
  11. name : mobile_device_access_rule_name;
    (*

    The rule name.

    *)
  12. client_token : idempotency_client_token option;
    (*

    The idempotency token for the client request.

    *)
  13. organization_id : organization_id;
    (*

    The WorkMail organization under which the rule will be created.

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

    The new impersonation role ID.

    *)
}
type nonrec create_impersonation_role_request = {
  1. rules : impersonation_rule_list;
    (*

    The list of rules for the impersonation role.

    *)
  2. description : impersonation_role_description 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 : impersonation_role_name;
    (*

    The name of the new impersonation role.

    *)
  5. organization_id : organization_id;
    (*

    The WorkMail organization to create the new impersonation role within.

    *)
  6. client_token : idempotency_client_token option;
    (*

    The idempotency token for the client request.

    *)
}
type nonrec create_identity_center_application_response = {
  1. application_arn : application_arn option;
    (*

    The Amazon Resource Name (ARN) of the application.

    *)
}
type nonrec identity_center_application_name = string
type nonrec create_identity_center_application_request = {
  1. client_token : idempotency_client_token option;
    (*

    The idempotency token associated with the request.

    *)
  2. instance_arn : instance_arn;
    (*

    The Amazon Resource Name (ARN) of the instance.

    *)
  3. name : identity_center_application_name;
    (*

    The name of the IAM Identity Center application.

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

    The identifier of the group.

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

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

    *)
  2. name : group_name;
    (*

    The name of the group.

    *)
  3. organization_id : organization_id;
    (*

    The organization under which the group is to be created.

    *)
}
type nonrec create_availability_configuration_response = unit
type nonrec 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 : domain_name;
    (*

    The domain to which the provider applies.

    *)
  4. organization_id : organization_id;
    (*

    The WorkMail organization for which the AvailabilityConfiguration will be created.

    *)
  5. client_token : idempotency_client_token option;
    (*

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

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

    The alias to add to the member set.

    *)
  2. entity_id : work_mail_identifier;
    (*

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

    *)
  3. organization_id : organization_id;
    (*

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

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

    The organization ID.

    *)
  2. job_id : mailbox_export_job_id;
    (*

    The job ID.

    *)
  3. client_token : idempotency_client_token;
    (*

    The idempotency token for the client request.

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

    The authentication token's validity, in seconds.

    *)
  2. token : impersonation_token option;
    (*

    The authentication token for the impersonation role.

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

    The impersonation role ID to assume.

    *)
  2. organization_id : organization_id;
    (*

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

    *)
}
type nonrec associate_member_to_group_response = unit
type nonrec associate_member_to_group_request = {
  1. member_id : entity_identifier;
    (*

    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 : entity_identifier;
    (*

    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 : organization_id;
    (*

    The organization under which the group exists.

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

    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 : entity_identifier;
    (*

    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 : organization_id;
    (*

    The organization under which the resource exists.

    *)
}