Create a Recordset¶
Overview¶
- Create a recordset in a zone
Classification¶
- Create
API Operation Object¶
- Recordset
Synchronous / Asynchronous¶
- Synchronous
Request¶
HTTP Request Method¶
- POST
HTTP Request Path¶
{api_endpoint}/v2/zones/{zone_id}/recordsets
HTTP Request Header¶
Format¶
Content-Type: application/json
Accept: application/json
X-Auth-Token: <token_id>
HTTP Request Body¶
Format¶
{
"name" : <name>,
"description" : <description>,
"type" : <type>,
"ttl" : <ttl>,
"records" : <records>
}
Request Parameter¶
name | style | format | description | required/optional | default value | action for invalid parameter | response code for invalid parameter |
---|---|---|---|---|---|---|---|
token_id | Header | authentication token string | authentication token | required | - | Terminate | 401 |
zone_id | path | uuid | ID for the zone. | required | - | Terminate | 400,404 |
name | body | hostname | DNS Name for the recordset. | required | - | Terminate | 400,409 |
description | body | string(0-255 characters) | Description for this recordset. | optional | - | Terminate | 400 |
type | body | enum | RRTYPE of the recordset. Valid Values: A | AAAA | MX | CNAME | SRV | SPF | TXT | PTR | NS | require | - | Terminate | 400 |
ttl | body | integer(0-86400) | TTL (Time to Live) for the recordset. | require | - | Terminate | 400 |
records | body | string list | A list of data for this recordset. Each item will be a separate record in SDPF DNS. These items should conform to the DNS spec for the record type - e.g. A records must be IPv4 addresses, CNAME records must be a hostname. | require | - | Terminate | 400,409 |
Response¶
HTTP Response Header¶
Response Code¶
response code | status | condition | message |
---|---|---|---|
202 | Accepted | normal end | |
400 | Bad Request | invalid value | E2004 Recordset count reaches the upper limit. |
Bad Request | invalid value | E2010 Invalid domain name format. | |
Bad Request | invalid value | E2011 Invalid recordset format. | |
Bad Request | invalid value | E2014 Can't set domain name perfect matching zone name. | |
Bad Request | invalid value | E2015 Can't set domain name not end with zone name. | |
Bad Request | invalid value | E2016 Can't set multiple values on PTR recordset. | |
Bad Request | invalid value | E2017 Invalid recordset format. (Must be IPaddress(v4) format.) | |
Bad Request | invalid value | E2018 Invalid recordset format. (Must be IPaddress(v6) format.) | |
Bad Request | invalid value | E2019 Invalid recordset format. (Must be priority and server name.) | |
Bad Request | invalid value | E2020 Priority must be positive integer value. (0 - 65535) | |
Bad Request | invalid value | E2021 Server name must be domain format. | |
Bad Request | invalid value | E2022 Invalid recordset format. (Must be priority and weight and service port and server name.) | |
Bad Request | invalid value | E2023 Priority must be positive integer value. (0 - 65535) | |
Bad Request | invalid value | E2024 Weight must be positive integer value. (0 - 65535) | |
Bad Request | invalid value | E2025 Port must be positive integer value. (0 - 65535) | |
Bad Request | invalid value | E2026 Server name must be domain format. | |
Bad Request | invalid value | E2026 Server name must be domain format. | |
Bad Request | invalid value | E2027 Invalid recordset format. (Must be IPaddress(v4) format or domain name format.) | |
Bad Request | invalid value | E2028 Invalid recordset format. (Must be domain format.) | |
Bad Request | invalid value | E2029 Invalid recordset type. | |
Bad Request | invalid value | E2030 Limit must be positive integer. | |
Bad Request | invalid value | E2064 Can't use wildcard with NS record. | |
Bad Request | invalid value | E2065 Invalid type. | |
Bad Request | invalid value | E2045 TTL value is required. | |
Bad Request | invalid value | E2046 Domain name is required. | |
Bad Request | invalid value | E2047 Recordset type is required. | |
Bad Request | invalid value | E2048 Recordset value is required. | |
Bad Request | invalid value | E2050 Tenant id is required. | |
Bad Request | invalid value | E2056 TTL value must be less than or equal to {max_value} | |
Bad Request | invalid value | E2057 TTL value must be more than or equal to 0 | |
Bad Request | invalid value | E2058 Description must input less than or equal to 255. | |
Bad Request | invalid value | E2064 Can't use wildcard with NS record. | |
Bad Request | invalid value | E2039 Nameservers is unavailable. | |
404 | Not found | not exists | E2006 Specified tenant is not found. |
Not found | not exists | E2007 Specified zone is not found. | |
409 | conflict | conflict | E2036 Specified recordset already exists. |
conflict | conflict | E2037 Specified domain name of CNAME record already exists. | |
conflict | conflict | E2038 Request recordset values conflict. | |
conflict | conflict | E2066 Specified domain name already exists CNAME record. | |
conflict | conflict | E2038 Request recordset values conflict. | |
401 | Unauthorized | authentication failure | E2001 Invalid token. |
500 | Internal Server Error | internal server error | E9001 Internal Server Error. Request failed. |
Response Body¶
Format¶
{
"recordsets" : [
{
"description": <description>,
"links": {
<links>
},
"updated_at": <updated_at>,
"records": <records>,
"ttl": <ttl>,
"id": <id>,
"name": <name>,
"zone_id": <zone_id>,
"created_at": <created_at>,
"version": <version>,
"type": <type>
},
<<repeat>>
],
"links": {
<links>
},
"metadata": {
<metadata>
}
}
Response Parameter¶
item | format | description |
---|---|---|
description | string | Description for this recordset. |
updated_at | datestamp | Date / Time when resource last updated. |
records | string list | A list of data for this recordset. Each item will be a separate record in SDPF DNS. These items should conform to the DNS spec for the record type - e.g. A records must be IPv4 addresses, CNAME records must be a hostname. |
ttl | integer | TTL (Time to Live) for the recordset. |
id | uuid | ID for the resource. |
name | hostname | DNS Name for the recordset. |
zone_id | uuid | ID for the zone that contains this recordset. |
created_at | datestamp | Date / Time when resource was created. |
version | integer | Version of the resource. This parameter is not currently supported. it always return 1. |
type | string | RRTYPE of the recordset. |
links | links | Links to the resource, and other related resources. When a response has been broken into pages, we will include a next link that should be followed to retrieve all results. |
metadata | metadata | Returns the total_count of resources matching this filter. |
Sample Request and Response¶
Sample API Request¶
Request URL¶
POST /v2/zones/fbe8562b-66a5-4071-b4c2-250487d15a81/recordsets
Request Header¶
Content-Type: application/json
Accept: application/json
X-Auth-Token: e8c788fbaeb14964ae19759eb1df4ff1
Request Body¶
{
"name": "ex1.example.uk.",
"description": "This is an example recordset.",
"type": "A",
"records": [
"203.0.113.2",
"203.0.113.3"
],
"ttl": 3600
}
Sample API Response¶
Response Header¶
HTTP/1.1 202
Date: Mon, 24 Oct 2016 04:30:43 GMT
Content-Type: application/json
Content-Length: 984
Connection: keep-alive
Set-Cookie: TS0183560f=01cce65ce15eb774ce7265978bb312260bdec9a0aa6a0d299327650738a31bdbe53d3ed2bd; Path=/
Response Body¶
{
"recordsets": [
{
"id": "2514d0c1-d41e-4fd0-b736-acf3fbd1e03a",
"zone_id": "fbe8562b-66a5-4071-b4c2-250487d15a81",
"records": [
"203.0.113.2"
],
"ttl": 3600,
"name": "ex1.example.uk.",
"description": "This is an example recordset.",
"type": "A",
"version": 1,
"created_at": "",
"updated_at": null,
"links": {
"self": "https://endpoint.api.example.com/v2/zones/fbe8562b-66a5-4071-b4c2-250487d15a81/recordsets/2514d0c1-d41e-4fd0-b736-acf3fbd1e03a"
}
},
{
"id": "0af8f6a2-e7c8-4243-a7f6-c505725973e4",
"zone_id": "fbe8562b-66a5-4071-b4c2-250487d15a81",
"records": [
"203.0.113.3"
],
"ttl": 3600,
"name": "ex1.example.uk.",
"description": "This is an example recordset.",
"type": "A",
"version": 1,
"created_at": "",
"updated_at": null,
"links": {
"self": "https://endpoint.api.example.com/v2/zones/fbe8562b-66a5-4071-b4c2-250487d15a81/recordsets/0af8f6a2-e7c8-4243-a7f6-c505725973e4"
}
}
],
"links": {
"self": "https://endpoint.api.example.com/v2/zones/fbe8562b-66a5-4071-b4c2-250487d15a81/recordsets"
},
"metadata": {
"total_count": 2
}
}
Sample Error Response¶
Response¶
HTTP/1.1 409
Date: Mon, 24 Oct 2016 04:33:50 GMT
Content-Type: application/json
Content-Length: 95
Connection: keep-alive
Set-Cookie: TS0183560f=01cce65ce1d370ff5e297ec1746d9d47dc1312aaa60ae46fd4aa765d67d0b3cae78dc0bd9e; Path=/
{"error":{"code":409,"title":"Conflict","message":"E2036 Specified recordset already exists."}}