- Removed DeviceRoleSource field from Device struct and DeviceResourceModel - Updated device_role description to reflect default value "other" - Device role is now optional and defaults to "other" if not specified - Cleaned up all CRUD operations to remove device_role_source handling All device types are now manually selected with "other" as default.
5 KiB
5 KiB
| page_title | description |
|---|---|
| towerops_check Resource - TowerOps | Manages a TowerOps service check. |
towerops_check (Resource)
Manages a TowerOps service check. Service checks monitor the availability and responsiveness of network services. Supported check types: HTTP, TCP, DNS, and ping.
Configuration fields are flattened into top-level attributes rather than nested inside a config block. Only the fields relevant to the chosen check_type are used.
Example Usage
HTTP Health Check
resource "towerops_check" "web_health" {
name = "Web Health Check"
check_type = "http"
url = "https://example.com/health"
expected_status = 200
content_match = "\"status\":\"ok\""
}
HTTP Check with Custom Settings
resource "towerops_check" "api_check" {
name = "API Endpoint"
check_type = "http"
device_id = towerops_device.web_server.id
url = "https://api.example.com/v1/status"
method = "POST"
expected_status = 200
verify_ssl = true
follow_redirects = false
interval_seconds = 30
timeout_ms = 10000
}
TCP Port Check
resource "towerops_check" "radius_port" {
name = "FreeRADIUS Auth Port"
check_type = "tcp"
device_id = towerops_device.radius.id
host = "10.0.0.5"
port = 1812
}
TCP Check with Send/Expect
resource "towerops_check" "smtp_banner" {
name = "SMTP Banner Check"
check_type = "tcp"
host = "mail.example.com"
port = 25
expect_string = "220"
}
DNS Resolution Check
resource "towerops_check" "dns_resolution" {
name = "DNS Resolution"
check_type = "dns"
device_id = towerops_device.dns_server.id
hostname = "google.com"
dns_server = "10.0.0.1"
record_type = "A"
expected_result = "142.250.80.46"
}
Ping Check
resource "towerops_check" "gateway_ping" {
name = "Gateway Reachability"
check_type = "ping"
device_id = towerops_device.gateway.id
host = "10.0.0.1"
}
Ping Check with Custom Count
resource "towerops_check" "wan_ping" {
name = "WAN Link Ping"
check_type = "ping"
host = "8.8.8.8"
ping_count = 5
interval_seconds = 120
timeout_ms = 10000
}
Schema
Required
name(String) - The name of the check.check_type(String) - The type of check:http,tcp,dns, orping. Changing this forces a new resource.
Optional
description(String) - A description of the check.enabled(Boolean) - Whether the check is enabled. Default:true.device_id(String) - The ID of the device this check is associated with.agent_token_id(String) - The ID of the agent token that executes this check.interval_seconds(Number) - How often the check runs, in seconds. Default:60.timeout_ms(Number) - Timeout for check execution, in milliseconds. Default:5000.retry_interval_seconds(Number) - Interval between retries after a failure, in seconds. Default:30.max_check_attempts(Number) - Number of consecutive failures before transitioning to hard state. Default:3.
HTTP Check Fields (used when check_type = "http")
url(String) - The URL to check. Required for HTTP checks.method(String) - HTTP method to use. Default:"GET".expected_status(Number) - Expected HTTP status code. Default:200.verify_ssl(Boolean) - Whether to verify SSL certificates. Default:true.follow_redirects(Boolean) - Whether to follow HTTP redirects. Default:true.content_match(String) - Regex pattern to match against the response body.
TCP Check Fields (used when check_type = "tcp")
host(String) - The host to connect to. Required for TCP checks.port(Number) - The TCP port to check. Required for TCP checks.send_string(String) - Data to send after establishing the TCP connection.expect_string(String) - Expected response string.
DNS Check Fields (used when check_type = "dns")
hostname(String) - The hostname to resolve. Required for DNS checks.record_type(String) - DNS record type (A,AAAA,CNAME,MX,TXT,NS,PTR). Default:"A".expected_result(String) - Expected DNS resolution result.
Ping Check Fields (used when check_type = "ping")
host(String) - The host to ping. Required for ping checks.ping_count(Number) - Number of ping packets to send. Default:3.
Read-Only
id(String) - The unique identifier of the check.current_state(Number) - Current check state (0=OK, 1=WARNING, 2=CRITICAL, 3=UNKNOWN).current_state_type(String) - Current state type (softorhard).last_check_at(String) - Timestamp of the last check execution.inserted_at(String) - The timestamp when the check was created.
Import
Checks can be imported using their UUID:
terraform import towerops_check.web_health 7c9e6679-7425-40de-944b-e07fc1f90ae7