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."}}