Create a Zone

Overview

  • Create a zone

Classification

  • Create

API Operation Object

  • Zone

Synchronous / Asynchronous

  • Synchronous

Request

HTTP Request Method

  • POST

HTTP Request Path

{api_endpoint}/v2/zones

HTTP Request Header

Format

Content-Type: application/json
Accept: application/json
X-Auth-Token: <token_id>

HTTP Request Body

Format

{
  "description": <description>,
  "email": <email>,
  "masters": <masters>,
  "name": <name>,
  "ttl": <ttl>,
  "type": <type>
}

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

description

body

string(1-255 characters)

Description for this zone

optional

-

Terminate

400

email

body

string

e-mail for the zone. Used in SOA records for the zone. This parameter is not currently supported.

optional

-

Terminate

400

masters

body

enum list

For secondary zones. The servers to slave from to get DNS information. This parameter is not currently supported.

optional

-

Terminate

400

name

body

zonename(1-128bytes)

DNS Name for the zone.

required

-

Terminate

400

ttl

body

integer

TTL (Time to Live) for the zone. This parameter is not currently supported.

optional

-

Terminate

400

type

body

enum

Type of zone. PRIMARY is controlled by SDPF DNS, SECONDARY zones are slaved from another DNS Server. Defaults to PRIMARY. This parameter is not currently supported.

optional

PRIMARY

Terminate

400

Response

HTTP Response Header

Format

HTTP/1.1 <response_code>       (ex. 200)
  • <response_code>: see "Response Code" section

Response Code

response code

status

condition

message

202

Accepted

normal end

400

Bad Request

invalid value

E2003 Zone count reaches the upper limit.

Bad Request

invalid value

E2010 Invalid domain name format.

Bad Request

invalid value

E2012 Invalid zone name. (Must end with a period.)

Bad Request

invalid value

E2013 Invalid zone name. (Must be domain name 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

E2040 Input parameters are required.

Bad Request

invalid value

E2041 Zone name is required.

Bad Request

invalid value

E2053 Zone name must be less than or equal to 128.

Bad Request

invalid value

E2054 Description must be less than or equal to 255.

401

Unauthorized

authentication failure

E2001 Invalid token.

500

Internal Server Error

internal server error

E9001 Internal Server Error. Request failed.

Response Body

Format

{
  "id":<id>,
  "pool_id":<pool_id>,
  "project_id":<project_id>,
  "name":<name>,
  "email":<email>,
  "ttl":<ttl>,
  "serial":<serial>,
  "status":<status>,
  "description":<description>,
  "masters":<masters>,
  "type":<type>,
  "transferred_at":<transferred_at>,
  "version":<version>,
  "created_at":<created_at>,
  "updated_at":<updated_at>,
  "links":{
    <links>
  }
}

Response Parameter

item

format

description

id

uuid

ID for the resource.

pool_id

uuid

ID for the pool hosting this zone. This parameter is not currently supported.

project_id

uuid

ID for the project(tenant) that owns the resource.

name

zonename

DNS Name for the zone.

email

string

e-mail for the zone. Used in SOA records for the zone. This parameter is not currently supported. It always returns an empty string.

ttl

integer

TTL (Time to Live) for the zone. This parameter is not currently supported. it always return zero.

serial

integer

current serial number for the zone. This parameter is not currently supported. it always return zero.

status

enum

status of the resource.

description

string

Description for this zone

masters

enum list

For secondary zones. The servers to slave from to get DNS information. This parameter is not currently supported. It always returns an empty string.

type

enum

Type of zone. PRIMARY is controlled by SDPF DNS, SECONDARY zones are slaved from another DNS Server. Defaults to PRIMARY. This parameter is not currently supported. It always returns an empty string.

transferred_at

enum

For secondary zones. The last time an update was retrieved from the master servers. This parameter is not currently supported. it always return null.

version

integer

Version of the resource. This parameter is not currently supported. it always return 1.

created_at

datestamp

Date / Time when resource was created.

updated_at

datestamp

Date / Time when resource last updated.

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

Sample Request and Response

Sample API Request

Request URL

POST /v2/zones

Request Header

Content-Type: application/json
Accept: application/json
X-Auth-Token: e8c788fbaeb14964ae19759eb1df4ff1

Request Body

{
  "description": "This is a test zone.",
  "email": "master@example.com",
  "masters": ["ns-1.example.uk","ns-2.example.uk"],
  "name": "example.uk.",
  "ttl": 600,
  "type": "PRIMARY"
}

Sample API Response

Response Header

HTTP/1.1 202
Date: Mon, 24 Oct 2016 01:30:52 GMT
Content-Type: application/json
Content-Length: 428
Connection: keep-alive
Set-Cookie: TS0183560f=01cce65ce13e8b2040a67520197b4386f256713c8ddb5eb8b42201eb564537fd1b13befa02; Path=/

Response Body

{
  "id":"7f0e3541-9fc6-410d-b338-087909f04ebc",
  "pool_id":"",
  "project_id":"9348360ee0984a85a54e188a34c94851",
  "name":"example.uk.",
  "email":"",
  "ttl":0,
  "serial":0,
  "status":"CREATING",
  "description":"This is a test zone.",
  "masters":[],
  "type":"",
  "transferred_at":null,
  "version":1,
  "created_at":"2016-10-24T01:30:52",
  "updated_at":null,
  "links":{
    "self":"https://endpoint.api.example.com/v2/zones/7f0e3541-9fc6-410d-b338-087909f04ebc"
  }
}

Sample Error Response

Response

HTTP/1.1 400
Date: Wed, 26 Oct 2016 04:46:07 GMT
Content-Type: application/json
Content-Length: 90
Connection: keep-alive
Set-Cookie: TS0183560f=01cce65ce116bed7c1ea09e8fa32c47766854d3e0595b350c8e8288bb4faf01150e4f62661; Path=/

{"error":{"code":400,"title":"Bad Request","message":"E2039 Nameservers is unavailable."}}