API: DNS
Generated from the API's OpenAPI schema. Paths are relative to https://cloud.tebibhost.com. Authentication, errors, pagination and idempotency are on the API overview.
GET/api/v1/projects/{project_id}/dns/zones
List Dns Zones (listDnsZones)
IAM action: dns:DescribeZone
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
limit | query | integer (nullable) | |
cursor | query | string (nullable) |
Responses
200OK (Page_DnsZoneOut_)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of Page_DnsZoneOut_
| Field | Type | Description |
|---|---|---|
items | array of DnsZoneOut | |
next_cursor | string (nullable) |
POST/api/v1/projects/{project_id}/dns/zones
Create Dns Zone (createDnsZone)
IAM action: dns:CreateZone
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string |
Request body (JSON, DnsZoneIn)
| Field | Type | Description |
|---|---|---|
description | string | Default: "". |
domain required | string | e.g. example.com (non-ASCII names are stored as punycode) |
name | string (nullable) | Defaults to the domain |
tags | object |
Responses
202Accepted (DnsZoneOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsZoneOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
delegation_ok | boolean (nullable) | The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet) |
description | string | |
domain | string | |
id | string | |
name | string | |
nameservers | array of string | Delegate the domain to these at your registrar |
project_id | string | |
record_sets | integer | |
serial | integer (nullable) | |
served | boolean | Our nameservers answer for the zone |
state | string | |
status | "pending_verification" | "active" | "updating" | "error" | "deleting" | pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message) |
status_message | string | |
tags | object | |
trn | string | |
updated_at | string (date-time) | |
verification | DnsVerificationOut |
GET/api/v1/projects/{project_id}/dns/zones/{zone_id}
Get Dns Zone (getDnsZone)
IAM action: dns:DescribeZone
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string |
Responses
200OK (DnsZoneOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsZoneOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
delegation_ok | boolean (nullable) | The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet) |
description | string | |
domain | string | |
id | string | |
name | string | |
nameservers | array of string | Delegate the domain to these at your registrar |
project_id | string | |
record_sets | integer | |
serial | integer (nullable) | |
served | boolean | Our nameservers answer for the zone |
state | string | |
status | "pending_verification" | "active" | "updating" | "error" | "deleting" | pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message) |
status_message | string | |
tags | object | |
trn | string | |
updated_at | string (date-time) | |
verification | DnsVerificationOut |
PATCH/api/v1/projects/{project_id}/dns/zones/{zone_id}
Update Dns Zone (updateDnsZone)
IAM action: dns:UpdateZone
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string |
Request body (JSON, TagsPatch)
| Field | Type | Description |
|---|---|---|
description | string (nullable) | |
tags | object (nullable) |
Responses
200OK (DnsZoneOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsZoneOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
delegation_ok | boolean (nullable) | The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet) |
description | string | |
domain | string | |
id | string | |
name | string | |
nameservers | array of string | Delegate the domain to these at your registrar |
project_id | string | |
record_sets | integer | |
serial | integer (nullable) | |
served | boolean | Our nameservers answer for the zone |
state | string | |
status | "pending_verification" | "active" | "updating" | "error" | "deleting" | pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message) |
status_message | string | |
tags | object | |
trn | string | |
updated_at | string (date-time) | |
verification | DnsVerificationOut |
DELETE/api/v1/projects/{project_id}/dns/zones/{zone_id}
Delete Dns Zone (deleteDnsZone)
Stops serving the zone and deletes its record sets with it.
IAM action: dns:DeleteZone
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string |
Responses
202Accepted (DnsZoneOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsZoneOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
delegation_ok | boolean (nullable) | The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet) |
description | string | |
domain | string | |
id | string | |
name | string | |
nameservers | array of string | Delegate the domain to these at your registrar |
project_id | string | |
record_sets | integer | |
serial | integer (nullable) | |
served | boolean | Our nameservers answer for the zone |
state | string | |
status | "pending_verification" | "active" | "updating" | "error" | "deleting" | pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message) |
status_message | string | |
tags | object | |
trn | string | |
updated_at | string (date-time) | |
verification | DnsVerificationOut |
GET/api/v1/projects/{project_id}/dns/zones/{zone_id}/export
Export Dns Zone (exportDnsZone)
The zone as a BIND zone file (SOA serial as last published).
IAM action: dns:GetZoneFile
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string |
Responses
200OK (DnsZoneFileOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsZoneFileOut
| Field | Type | Description |
|---|---|---|
zone_file | string |
POST/api/v1/projects/{project_id}/dns/zones/{zone_id}/import
Import Dns Zone (importDnsZone)
Add the record sets of a BIND zone file. The SOA and the apex NS records are skipped (TebibHost serves its own), as are types we don't host; the response lists them.
IAM action: dns:ImportZoneFile
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string |
Request body (JSON, DnsZoneFileIn)
| Field | Type | Description |
|---|---|---|
delete_missing | boolean | Also delete the zone's record sets the file doesn't have (default: add and replace the file's record sets, keep the rest) Default: false. |
zone_file required | string | BIND zone file text |
Responses
200OK (DnsImportOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsImportOut
| Field | Type | Description |
|---|---|---|
created | integer | |
deleted | integer | |
skipped | array of DnsSkippedOut | |
unchanged | integer | |
updated | integer |
GET/api/v1/projects/{project_id}/dns/zones/{zone_id}/records
List Dns Records (listDnsRecords)
IAM action: dns:DescribeRecord
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string | |
name | query | string (nullable) | |
type | query | string (nullable) | |
limit | query | integer (nullable) | |
cursor | query | string (nullable) |
Responses
200OK (Page_DnsRecordOut_)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of Page_DnsRecordOut_
| Field | Type | Description |
|---|---|---|
items | array of DnsRecordOut | |
next_cursor | string (nullable) |
POST/api/v1/projects/{project_id}/dns/zones/{zone_id}/records
Create Dns Record (createDnsRecord)
IAM action: dns:CreateRecord
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string |
Request body (JSON, DnsRecordIn)
| Field | Type | Description |
|---|---|---|
description | string | Default: "". |
name | string | Relative to the zone (www, _dmarc, *); @ is the apex Default: "@". |
ttl | integer | Seconds Default: 3600. |
type required | "A" | "AAAA" | "CNAME" | "MX" | "TXT" | "SRV" | "CAA" | "NS" | |
values required | array of string | Presentation format, one per record: '192.0.2.1', '10 mail.example.com', 'v=spf1 -all', '0 issue "letsencrypt.org"' |
Responses
202Accepted (DnsRecordOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsRecordOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
description | string | |
fqdn | string | |
id | string | |
name | string | Relative to the zone; @ is the apex |
ttl | integer | |
type | string | |
updated_at | string (date-time) | |
values | array of string | |
zone_id | string |
GET/api/v1/projects/{project_id}/dns/zones/{zone_id}/records/{record_id}
Get Dns Record (getDnsRecord)
IAM action: dns:DescribeRecord
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string | |
record_id required | path | string |
Responses
200OK (DnsRecordOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsRecordOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
description | string | |
fqdn | string | |
id | string | |
name | string | Relative to the zone; @ is the apex |
ttl | integer | |
type | string | |
updated_at | string (date-time) | |
values | array of string | |
zone_id | string |
PATCH/api/v1/projects/{project_id}/dns/zones/{zone_id}/records/{record_id}
Update Dns Record (updateDnsRecord)
IAM action: dns:UpdateRecord
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string | |
record_id required | path | string |
Request body (JSON, DnsRecordPatch)
| Field | Type | Description |
|---|---|---|
description | string (nullable) | |
ttl | integer (nullable) | |
values | array of string (nullable) |
Responses
202Accepted (DnsRecordOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsRecordOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
description | string | |
fqdn | string | |
id | string | |
name | string | Relative to the zone; @ is the apex |
ttl | integer | |
type | string | |
updated_at | string (date-time) | |
values | array of string | |
zone_id | string |
DELETE/api/v1/projects/{project_id}/dns/zones/{zone_id}/records/{record_id}
Delete Dns Record (deleteDnsRecord)
IAM action: dns:DeleteRecord
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string | |
record_id required | path | string |
Responses
202Accepted (DnsRecordOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsRecordOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
description | string | |
fqdn | string | |
id | string | |
name | string | Relative to the zone; @ is the apex |
ttl | integer | |
type | string | |
updated_at | string (date-time) | |
values | array of string | |
zone_id | string |
POST/api/v1/projects/{project_id}/dns/zones/{zone_id}/verify
Verify Dns Zone (verifyDnsZone)
Check the domain's delegation or TXT record now, instead of at the next scheduled check.
IAM action: dns:VerifyZone
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string |
Responses
202Accepted (DnsZoneOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)
Fields of DnsZoneOut
| Field | Type | Description |
|---|---|---|
created_at | string (date-time) | |
delegation_ok | boolean (nullable) | The domain's delegation points at our nameservers (checked every few hours once served; null: not checked yet) |
description | string | |
domain | string | |
id | string | |
name | string | |
nameservers | array of string | Delegate the domain to these at your registrar |
project_id | string | |
record_sets | integer | |
serial | integer (nullable) | |
served | boolean | Our nameservers answer for the zone |
state | string | |
status | "pending_verification" | "active" | "updating" | "error" | "deleting" | pending_verification: not served until the domain is proved; error: another account serves the domain, or publishing keeps failing (see status_message) |
status_message | string | |
tags | object | |
trn | string | |
updated_at | string (date-time) | |
verification | DnsVerificationOut |
POST/api/v1/projects/{project_id}/dns/zones/{zone_id}/vm-records
Create Dns Vm Records (createDnsVmRecords)
A and/or AAAA records for a VM's public addresses, set to the addresses it has now (a copy: they don't follow the VM if its public IP moves). Replaces existing A/AAAA sets at the name.
IAM action: dns:CreateRecord
| Parameter | In | Type | Description |
|---|---|---|---|
project_id required | path | string | |
zone_id required | path | string |
Request body (JSON, DnsVmRecordsIn)
| Field | Type | Description |
|---|---|---|
ipv4 | boolean | An A record for the VM's public IPv4 address Default: true. |
ipv6 | boolean | An AAAA record for the VM's public IPv6 address Default: true. |
name required | string | Relative to the zone; @ is the apex |
ttl | integer | Seconds Default: 3600. |
vm_id required | string |
Responses
202Accepted (array of DnsRecordOut)400Invalid request (ErrorOut)401Not authenticated (ErrorOut)403Access denied: the error names the action and the resource (ErrorOut)404Not found (also: the resource belongs to another organization) (ErrorOut)409Conflict or quota exceeded (ErrorOut)422Idempotency key reused for a different request (ErrorOut)429Rate limited (ErrorOut)