Fork of charpand/terraform-provider-openprovider carrying the registrar changes offered upstream as PRs 99 to 106;
main is the merge of those PRs onto upstream
- Go 96.2%
- Go Template 2.2%
- Shell 1.5%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
`ImportState` warned about the transfer authorization code on every import. The account holds most of the domains it imports outright, and for those the warning is noise: it names a transfer that did not happen, and the diff it threatens cannot occur, `auth_code` being optional and not computed. Its advice is worse than the warning -- `auth_code` carries `RequiresReplace`, so a value added to keep the import quiet plans a replacement of the domain. Read the status of the domain and speak only where it is not `ACT`, which is the one case an authorization code is in play. A lookup which does not answer says so, rather than falling back to the old text. Assisted-by: Claude:claude-fable-5-1 Claude-Session: https://claude.ai/code/session_01BpnvvRPKgYsyKzTjLQaq48 |
||
| .devcontainer | ||
| .github | ||
| docs | ||
| examples | ||
| internal | ||
| scripts | ||
| templates | ||
| .editorconfig | ||
| .gitignore | ||
| .golangci.yml | ||
| .goreleaser.yaml | ||
| .stats.yml | ||
| AGENTS.md | ||
| API.md | ||
| CHANGELOG.md | ||
| CLAUDE.md | ||
| CODE_OF_CONDUCT.md | ||
| CONTRIBUTING.md | ||
| go.mod | ||
| go.sum | ||
| HEALTH_CHECK.md | ||
| LICENSE | ||
| main.go | ||
| Makefile | ||
| mise.toml | ||
| README.md | ||
| renovate.json | ||
| SECURITY.md | ||
| terraform-registry-manifest.json | ||
OpenProvider Terraform Provider
Terraform provider for managing Openprovider domains and customers.
Requirements
- Terraform >= 1.3
Features
- Customer Management: Create and manage customer handles (contact information) for domain registrations
- Domain Management: Register and manage domains with customizable contact handles
- Nameserver Groups: Configure and manage nameserver groups for domains
Usage
terraform {
required_providers {
openprovider = {
source = "charpand/openprovider"
version = ">= 1.0.0"
}
}
}
provider "openprovider" {
username = var.openprovider_username
password = var.openprovider_password
}
Creating Customers and Domains
# Create a customer (generates a handle like XX123456-XX)
resource "openprovider_customer" "owner" {
email = "owner@example.com"
phone {
country_code = "1"
area_code = "555"
number = "1234567"
}
address {
street = "Main Street"
number = "100"
city = "New York"
country = "US"
}
name {
first_name = "John"
last_name = "Doe"
}
}
# Use the customer handle in a domain
resource "openprovider_domain" "example" {
domain = "example.com"
owner_handle = openprovider_customer.owner.handle
period = 1
}
Using Existing Customer Handles
# Reference an existing customer by handle
data "openprovider_customer" "existing" {
handle = "XX123456-XX"
}
resource "openprovider_domain" "example" {
domain = "example.com"
owner_handle = data.openprovider_customer.existing.handle
period = 1
}
Documentation
Registry docs are generated from templates and examples:
- Templates live in
templates/docs/. - Examples live in
examples/. - Generated docs live in
docs/.
To regenerate docs, run (uses go tool tfplugindocs under Go 1.24):
./scripts/docs
Development
./scripts/format
./scripts/lint
./scripts/test
License
This project is licensed under the MIT License - see the LICENSE file for details.