Pools

Pools are collection of backend DNS servers such as bind9. The backend servers in a pool are responsible for answering DNS queries.

Note

Currently there is a default pool that is created. Please be aware, this will change in the future.

Create Pool

POST /pools

Create a new Pool.

Example request:

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

{
   "name": "Example Pool",
   "ns_records": [
       {
         "hostname": "ns1.example.org.",
         "priority": 1
       }
   ]
}

Example response:

HTTP/1.1 201 Created
Location: http://127.0.0.1:9001/v2/pools/d1716333-8c16-490f-85ee-29af36907605
Content-Type: application/json; charset=UTF-8

{
  "description": null,
  "id": "d1716333-8c16-490f-85ee-29af36907605",
  "project_id": "noauth-project",
  "created_at": "2015-02-23T21:56:33.000000",
  "attributes": null,
  "ns_records": [
    {
      "hostname": "ns1.example.org.",
      "priority": 1
    }
  ],
  "links": {
    "self": "http://127.0.0.1:9001/v2/pools/d1716333-8c16-490f-85ee-29af36907605"
  },
  "name": "example_pool",
  "updated_at": null
}
Form Parameters:
 
  • name – UTF-8 text field
  • description – a description of the pool
  • tenant_id – the UUID of the tenant
  • provisioner – the type backend that should be used
  • attributes – meta data for the pool
  • ns_records – a list of ns_records as fully qualified domains
Status Codes:

Get Pools

GET /pools

Get the list of Pools. This resource supports the Collections API.

Example request:

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

Example response:

HTTP/1.1 200 OK
Content-Length: 755
Content-Type: application/json; charset=UTF-8

{
  "metadata": null,
  "links": {
    "self": "http://127.0.0.1:9001/v2/pools"
  },
  "pools": [
    {
      "description": null,
      "id": "794ccc2c-d751-44fe-b57f-8894c9f5c842",
      "project_id": null,
      "created_at": "2015-02-18T22:18:58.000000",
      "attributes": null,
      "ns_records": [
        {
          "hostname": "ns1.example.org.",
          "priority": 1
        }
      ],
      "links": {
        "self": "http://127.0.0.1:9001/v2/pools/794ccc2c-d751-44fe-b57f-8894c9f5c842"
      },
      "name": "default",
      "updated_at": "2015-02-19T15:59:44.000000"
    },
    {
      "description": null,
      "id": "d1716333-8c16-490f-85ee-29af36907605",
      "project_id": "noauth-project",
      "created_at": "2015-02-23T21:56:33.000000",
      "attributes": null,
      "ns_records": [
        {
          "hostname": "ns2.example.org.",
          "priority": 1
        }
      ],
      "links": {
        "self": "http://127.0.0.1:9001/v2/pools/d1716333-8c16-490f-85ee-29af36907605"
      },
      "name": "example_pool",
      "updated_at": null
    }
  ]
}
Status Codes:

Get Pool

GET /pools/(uuid: id)

Get a specific Pool using the Pool’s uuid id.

Example request:

GET /pools/d1716333-8c16-490f-85ee-29af36907605 HTTP/1.1
Host: example.com
Accept: application/json

Example response:

HTTP/1.1 200 OK
Content-Length: 349
Content-Type: application/json; charset=UTF-8

{
  "description": null,
  "id": "794ccc2c-d751-44fe-b57f-8894c9f5c842",
  "project_id": null,
  "created_at": "2015-02-18T22:18:58.000000",
  "attributes": null,
  "ns_records": [
    {
      "hostname": "ns1.example.org.",
      "priority": 1
    }
  ],
  "links": {
    "self": "http://127.0.0.1:9001/v2/pools/794ccc2c-d751-44fe-b57f-8894c9f5c842"
  },
  "name": "default",
  "updated_at": "2015-02-19T15:59:44.000000"
}
Status Codes:

Update Pool

PATCH /pools/(uuid: id)

Update a Pool.

Example request:

PATCH /pools/794ccc2c-d751-44fe-b57f-8894c9f5c842 HTTP/1.1
Host: example.com
Accept: application/json
Content-Type: application/json

{
    "ns_records": [
        {
            "hostname": "ns1.example.org.",
            "priority": 1
        },
        {
            "hostname": "ns3.example.org.",
            "priority": 2
        }
    ],
}

Example response:

HTTP/1.1 200 OK
Content-Length: 369
Content-Type: application/json; charset=UTF-8

{
  "description": null,
  "id": "794ccc2c-d751-44fe-b57f-8894c9f5c842",
  "project_id": null,
  "created_at": "2015-02-18T22:18:58.000000",
  "attributes": null,
  "ns_records": [
    {
      "hostname": "ns1.example.org.",
      "priority": 1
    }
    {
      "hostname": "ns3.example.org.",
      "priority": 2
    }
  ],
  "links": {
    "self": "http://127.0.0.1:9001/v2/pools/794ccc2c-d751-44fe-b57f-8894c9f5c842"
  },
  "name": "default",
  "updated_at": "2015-02-24T17:39:07.000000"
}

Note

When updating the Pool definition document, take care to ensure that any existing values are included when updating a field. For example, if we used

{
    "ns_records": [
        {
          "hostname": "ns3.example.org.",
          "priority": 2
        }
    ]
}

This would replace the value of the ns_records key.

It is a good practice to perform a GET and mutate the result accordingly.

Status Codes:

Remove Pool

DELETE /pools/(uuid: id)

Remove a Pool. When deleting a Pool, the Pool cannot contain any zones.

Example request:

DELETE /pools HTTP/1.1
Accept: application/json

Example response:

HTTP/1.1 204 No Content
Content-Length: 0
Status Codes:

Table Of Contents

Previous topic

Blacklists

Next topic

Limits

Project Source

This Page