---
title: "uptimeify_imap_pop_monitor"
description: "An IMAP or POP3 monitor: logs in (check_mode protocol) or only checks the port (tcp, needs port). The hostname must resolve to a public address. Import with the numeric id or the public id."
---

An IMAP or POP3 monitor: logs in (check_mode `protocol`) or only checks the port (`tcp`, needs `port`). The hostname must resolve to a public address. Import with the numeric id or the public id.

## Example Usage

```terraform
variable "mailbox_password" {
  type      = string
  sensitive = true
}

resource "uptimeify_imap_pop_monitor" "this" {
  customer_id = 12
  name        = "Support mailbox"
  hostname    = "imap.shop.example"
  protocol    = "imap"
  tls         = true
  user        = "support@shop.example"

  password_wo         = var.mailbox_password
  password_wo_version = 1
}
```

## Schema

### Required

- `customer_id` (Number) Customer the monitor belongs to. Changing it moves the monitor to another customer of the same organization in place.
- `hostname` (String) Host name or IP address only: no scheme, no path, no spaces.
- `name` (String) Display name, 1 to 255 characters.

### Optional

> **NOTE**: [Write-only arguments](https://developer.hashicorp.com/terraform/language/resources/ephemeral#write-only-arguments) are supported in Terraform 1.11 and later.

- `allow_duplicate` (Boolean, [Write-only](https://developer.hashicorp.com/terraform/language/resources/ephemeral#write-only-arguments)) Create the monitor even if the customer already has one of this type for the same target. Without it the create fails with 409 `monitorAlreadyExists` and the error names the import command for the existing monitor. Sent with create only.
- `allowed_check_country_codes` (Set of String) Upper-case ISO 3166-1 alpha-2 codes of the allowed check locations. Unset = all locations.
- `check_interval` (Number) Minutes between checks, 1 to 1440. Defaults to 30. The customer's package can require a larger minimum.
- `check_mode` (String) `protocol` (full login check, credentials required) or `tcp` (port reachability only; the API then stores no protocol settings and no credentials). Defaults to `protocol`.
- `management_type` (String) `managed` or `self_service`. Only organization writers choose it; customer tokens always get `self_service`. Defaults to `managed`.
- `password_wo` (String, Sensitive, [Write-only](https://developer.hashicorp.com/terraform/language/resources/ephemeral#write-only-arguments)) Login password. Required in check_mode `protocol`. Write-only (Terraform 1.11+ / OpenTofu 1.11+), never stored in state or returned by the API; sent on create and whenever the matching `*_wo_version` changes.
- `password_wo_version` (Number) Change this number to send `password_wo` again.
- `port` (Number) TCP port. Unset = 993/143 for IMAP, 995/110 for POP3 (with/without `tls`); required in check_mode `tcp`.
- `protocol` (String) `imap` or `pop3`. Defaults to `imap`.
- `status` (String) `active`, `maintenance` or `disabled`. Defaults to `active`.
- `timeout_seconds` (Number) Timeout per check in seconds, 1 to 60. Defaults to 30.
- `tls` (Boolean) Implicit TLS (IMAPS/POP3S). Defaults to false.
- `tls_reject_unauthorized` (Boolean) Reject invalid server certificates. Defaults to true.
- `user` (String) Login user. Required in check_mode `protocol`.

### Read-Only

- `created_at` (String)
- `id` (String) Numeric IMAP/POP3 monitor id.
- `organization_id` (Number)
- `public_id` (String) Public UUID of the IMAP/POP3 monitor.
- `updated_at` (String)

## Import

Import is supported using the following syntax:

The [`terraform import` command](https://developer.hashicorp.com/terraform/cli/commands/import) can be used, for example:

```shell
# Numeric id or public id
terraform import uptimeify_imap_pop_monitor.this 42
```
