Managing Top Level Domain Names

Designate allows management of the Top-Level Domains (TLDs) that users are allowed to create zones within.

For example, it’s simple to only allow users to create zones that end in .com..

By default, all TLDs are allowed in Designate, this is ok for most scenarios.

If for example you wanted to restrict to only .com. though, you could make the following API call.

POST /v2/tlds/ HTTP/1.1
Accept: application/json
Content-Type: application/json

{
  "name" : "com"
}

Response:

HTTP/1.1 201 CREATED
Content-Type: application/json; charset=UTF-8
X-Openstack-Request-Id: req-bfcd0723-624c-4ec2-bbd5-99e985efe8db

{
 "name": "com",
 "links": {
   "self": "http://127.0.0.1:9001/v2/tlds/cfee7486-7ce4-4851-9c38-7b0fe3d42ee9"
 },
 "created_at": "2016-05-18 05:07:58",
 "updated_at": null,
 "id": "cfee7486-7ce4-4851-9c38-7b0fe3d42ee9",
 "description": "tld description"
}

Now, if someone were to try and create example.net., they would encounter an error:

HTTP/1.1 400 BAD REQUEST
Content-Type: application/json
X-Openstack-Request-Id: req-f841013b-c6cd-4f0b-a9ea-bdb65db7a334"

{
  "message": "Invalid TLD",
  "code": 400,
  "type": "invalid_zone_name",
  "request_id": "req-f841013b-c6cd-4f0b-a9ea-bdb65db7a334"
}

TLDs can be deleted, just like an other resource in the API, DELETE /v2/tlds/<id>.