designate/doc/source/rest/v1/domains.rst
Vinod Mangalpally 852e95eed4 Add TLD Api documentation
Added TLD Api documentation.  I also restructured the api documentation
as V1 and V2.

Closes-Bug: #1271989
Change-Id: I53d33bc84726b58490f879225f6d8e09583c9cd6
2014-01-29 13:57:33 -06:00

6.4 KiB

Domains

Domain entries are used to generate zones containing RR

TODO: More detail.

Create Domain

Create a domain

Example request:

POST /domains HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json

{
  "name": "domain1.com.",
  "ttl": 3600,
  "email": "nsadmin@example.org"
}

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

{
  "id": "89acac79-38e7-497d-807c-a011e1310438",
  "name": "domain1.com.",
  "ttl": 3600,
  "serial": 1351800588,
  "email": "nsadmin@example.org",
  "created_at": "2012-11-01T20:09:48.094457",
  "updated_at": null,
  "description": null
}
form created_at

timestamp

form updated_at

timestamp

form name

domain name

form id

uuid

form ttl

time-to-live numeric value in seconds

form serial

numeric seconds

form email

email address

form description

UTF-8 text field

statuscode 200

Success

statuscode 401

Access Denied

statuscode 400

Invalid Object

statuscode 409

Duplicate Domain

Get a Domain

Lists a particular domain

Example request:

GET /domains/09494b72-b65b-4297-9efb-187f65a0553e HTTP/1.1
Host: example.com
Accept: application/json

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

{
  "id": "09494b72-b65b-4297-9efb-187f65a0553e",
  "name": "domain1.com.",
  "ttl": 3600,
  "serial": 1351800668,
  "email": "nsadmin@example.org",
  "created_at": "2012-11-01T20:11:08.000000",
  "updated_at": null,
  "description": null
}
form created_at

timestamp

form updated_at

timestamp

form name

domain name

form id

uuid

form ttl

time-to-live numeric value in seconds

form serial

numeric seconds

form email

email address

form description

UTF-8 text field

statuscode 200

Success

statuscode 401

Access Denied

Update a Domain

updates a domain

Example request:

PUT /domains/09494b72-b65b-4297-9efb-187f65a0553e HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json

{
  "name": "domainnamex.com",
  "ttl": 7200,
  "email": "nsadmin@example.org"
}

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json
Content-Length: 422
Date: Fri, 02 Nov 2012 01:06:19 GMT

{
  "id": "09494b72-b65b-4297-9efb-187f65a0553e",
  "name": "domain1.com.",
  "email": "nsadmin@example.org",
  "ttl": 7200,
  "serial": 1351818367,
  "created_at": "2012-11-02T00:58:42.000000",
  "updated_at": "2012-11-02T01:06:07.000000",
  "description": null
}
form created_at

timestamp

form updated_at

timestamp

form name

domain name

form id

uuid

form ttl

time-to-live numeric value in seconds

form serial

numeric seconds

form email

email address

form description

UTF-8 text field

statuscode 200

Success

statuscode 401

Access Denied

statuscode 400

Invalid Object

statuscode 400

Domain not found

statuscode 409

Duplicate Domain

Delete a Domain

delete a domain

Example request:

DELETE /domains/09494b72-b65b-4297-9efb-187f65a0553e HTTP/1.1
Host: example.com

Example response:

HTTP/1.1 200 OK
Content-Type: text/html; charset=utf-8
Content-Length: 0
Date: Fri, 02 Nov 2012 01:26:06 GMT
statuscode 200

Success

statuscode 401

Access Denied

statuscode 400

Invalid Object

statuscode 404

Domain not found

Get Servers Hosting a Domain

Lists the nameservers hosting a particular domain

Example request:

GET /domains/09494b72-b65b-4297-9efb-187f65a0553e/servers HTTP/1.1
Host: example.com
Accept: application/json

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

[
  {
    "id": "384a9b20-239c-11e2-81c1-0800200c9a66",
    "name": "ns1.provider.com.",
    "created_at": "2011-01-21T11:33:21Z",
    "updated_at": null
  },
  {
    "id": "cf661142-e577-40b5-b3eb-75795cdc0cd7",
    "name": "ns2.provider.com.",
    "created_at": "2011-01-21T11:33:21Z",
    "updated_at": "2011-01-21T11:33:21Z"
  }
]
form id

UUID server_id

form name

Server hostname

form created_at

timestamp

form updated_at

timestamp

statuscode 200

Success

statuscode 401

Access Denied

statuscode 404

Domain Not Found

List Domains

Lists all domains

Example request:

GET /domains HTTP/1.1
Host: example.com
Accept: application/json

Example response:

HTTP/1.1 200 OK
Vary: Accept
Content-Type: application/json

{
  "domains": [
    {
      "name": "domain1.com.",
      "created_at": "2012-11-01T20:11:08.000000",
      "email": "nsadmin@example.org",
      "ttl": 3600,
      "serial": 1351800668,
      "id": "09494b72-b65b-4297-9efb-187f65a0553e"
    },
    {
      "name": "domain2.com.",
      "created_at": "2012-11-01T20:09:48.000000",
      "email": "nsadmin@example.org",
      "ttl": 3600,
      "serial": 1351800588,
      "id": "89acac79-38e7-497d-807c-a011e1310438"
    }
  ]
}
form name

domain name

form created_at

timestamp

form email

email address

form ttl

time-to-live numeric value in seconds

form serial

numeric seconds

param id

Domain ID

type id

uuid

statuscode 200

Success

statuscode 401

Access Denied