Create a Domain
create_domainProvision a Control Plane domain, map routes to workloads, and capture DNS records required for validation. Minimal port item is {number, protocol}; route items minimally need workloadLink and may omit prefix/regex to match /. Run this in the organization that will own the domain. Recommended reading before first use: get_cpln_skill("domain") — the runbook for this tool family (read once per session).
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| org | Yes | Organization slug (lowercase kebab-case). NEVER guess — if the user has not named one, ask. On org-not-found, stop and ask; do not retry variants. | |
| tags | No | Optional tags; they behave like Kubernetes labels. Special behavior-changing tags: cpln/routeLimitOverride (raises the per-port route cap to 200), cpln/skipDNSCheck, cpln/wildcard (wildcard certificate). | |
| ports | Yes | Required listener list. Each listener minimally needs number and protocol; cors, routes, and tls are optional nested blocks. | |
| domain | Yes | Fully qualified domain name such as example.com or api.example.com. | |
| dnsMode | Yes | DNS delegation mode. cname — REQUIRED for apex domains (example.com) and the common choice for a single subdomain. ns — subdomains ONLY (delegates that subdomain zone to Control Plane); the platform rejects ns on an apex. | |
| gvcLink | No | Optional GVC link (full or shorthand //gvc/{name}). Each workload in the GVC gets a {workload}.{domain} subdomain. Mutually exclusive with workloadLink. | |
| description | No | Domain description so operators understand the purpose (treat it like a concise annotation). | |
| workloadLink | No | Optional workload link (e.g. //gvc/{gvc}/workload/{name}) to bind the ENTIRE domain to one workload — STATEFUL workloads only (the platform rejects serverless/standard here). For those, target the workload with ports[].routes instead. Mutually exclusive with gvcLink. | |
| acceptAllHosts | No | Accept any host header (defaults to false). | |
| certChallengeType | No | Certificate challenge type (http01 or dns01). Optional — omit for the platform default, and MUST be omitted for .internal domains (the platform rejects it there). | |
| acceptAllSubdomains | No | Accept any subdomain (defaults to false). |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| ok | Yes | Whether the call succeeded. | |
| data | No | The full machine-readable result — list rows, the resource object, query results. Read THIS, not just the summary. | |
| summary | Yes | One-line summary of the result. | |
| nextSteps | No | Recommended follow-up actions for this task, in order. |