Commit graph

15 commits

Author SHA1 Message Date
05530894ae
feat: towerops_coverage resource
Wraps the new /api/v1/coverages endpoints. Schema mirrors the cnHeat
mental model — antenna, frequency, height, azimuth, downtilt, radius
— with cnHeat-style imperial units (height_agl_ft, radius_mi,
frequency_ghz) the API converts to SI before validation.

Compute is asynchronous: 'terraform apply' returns once the prediction
is queued. The status / progress_pct / error_message / png_path /
raster_path / computed_at fields are computed and update on
'terraform refresh' as the worker progresses through queued →
computing → ready (or failed). Downstream resources that need a
ready heatmap can use a terraform_data trigger that polls the
status field.

Resource semantics:
- Create   POST   /api/v1/coverages           (auto-queues compute)
- Read     GET    /api/v1/coverages/:id
- Update   PATCH  /api/v1/coverages/:id       (does NOT auto-recompute)
- Delete   DELETE /api/v1/coverages/:id

Update doesn't auto-recompute because parameter tweaks may not
require a fresh heatmap; operators can call the recompute endpoint
directly via the existing client method when they want fresh
outputs.

ImportState supported via the standard UUID passthrough.
2026-05-06 17:21:30 -05:00
b922dbda22
refactor: remove device_role_source field
- 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.
2026-03-22 11:20:04 -05:00
80e800baf4
feat: add device_role and device_role_source fields to device resource
- Add device_role field to Device struct in client
- Add device_role and device_role_source to DeviceResourceModel
- Add schema attributes for device_role (optional/computed) and device_role_source (computed)
- Handle device_role in Create, Read, and Update operations
- Valid device_role values: server, switch, router, access_point, backhaul, other
- device_role_source automatically set to 'manual' by API when device_role is provided
2026-03-22 11:06:14 -05:00
bc3dbfe419
add towerops_check resource for service check management
- new towerops_check resource supporting HTTP, TCP, DNS, and ping checks
- flat schema with type-specific fields (url, host, port, hostname, etc.)
- client CRUD methods for /api/v1/checks endpoints
- resource documentation, examples, and provider index updated
- acceptance tests for all check types, update, import, and error handling
2026-03-16 18:33:56 -05:00
4960adaf37
add address, latitude, longitude to site resource
Support geographic coordinates and street address in towerops_site.
All three fields are optional; server validates lat/long ranges.
2026-03-13 17:35:16 -05:00
bbe1babdf7
add agent, integration, and maintenance window resources
New Terraform resources: towerops_agent, towerops_integration,
towerops_maintenance_window with full CRUD, docs, and examples.
2026-03-11 14:33:52 -05:00
9d204a7ba3
feat: add schedule and escalation policy resources
Add towerops_schedule and towerops_escalation_policy Terraform resources
with client CRUD methods, resource models, and provider registration.
2026-03-11 14:01:37 -05:00
96bb767c83
feat: add SNMP community string support to organization resource
- Add snmp_community field to Organization struct (client.go)
- Add snmp_community attribute to organization resource schema
- Mark as Optional and Sensitive in Terraform
- Include in Create and Update operations
- Only settable by organization owners (enforced by API)

Example usage:
  resource "towerops_organization" "main" {
    name           = "My Organization"
    use_sites      = true
    snmp_community = "public"
  }
2026-03-10 13:59:54 -05:00
70c7a5cfbb
feat: allow setting organization name via Terraform
- Make 'name' field optional and computed in organization resource
- Include name in Create and Update operations when provided
- Name can only be changed by organization owners (enforced by API)
- Matches API capability to update organization name
- Backwards compatible: name remains optional

Example usage:
  resource "towerops_organization" "main" {
    name      = "My Organization"
    use_sites = true
  }
2026-03-10 13:32:56 -05:00
4cdb96e189
feat: add site-less devices and SNMPv3 support
- Make site_id optional, add organization_id field
- Devices can be created without sites (directly in organization)
- Add SNMPv3 authentication and privacy fields
- Update documentation with new examples
2026-02-04 15:07:09 -06:00
233be61d3e
allow creating entities when they dont exist 2026-01-29 12:34:58 -06:00
3eef94f685
allow base url change 2026-01-26 14:00:20 -06:00
3a970ac852
Name for devices is now optional 2026-01-26 13:36:06 -06:00
797fe93a9a
fix base url 2026-01-26 13:12:43 -06:00
8fed566e22
init 2026-01-26 11:02:26 -06:00