Designate/Blueprints/Reverse

Overview
Provide a simple interface towards a entities PTR records based on allocated Floating IPs and in future Internal IPs.

API Resource - General
One new general endpoint called "/reverse" will be created for the Designate REST API.

Create a PTR (POST)
N/A

Get PTR Records (GET)
List all Floating IPs which the user can assign a record to.

There is no request message body in either case.

Response {       “floatingips”: [ {               “id”: " ", “ptrdname”: “server1.mydomain.com.”, "address": "" "ttl": 3600, "created_at": "2012-11-02T19:56:26.000000", "updated_at": null “description”: null "links": { "self": "http://endpoint/v2/reverse/floatingips/ : ", "next": "https://endpoint/v2/reverse/floatingips?marker= : &limit=2", "previous": "https://endpoint/v2/reverse/floatingips?marker= : &limit=2" }           },            {                “id”: " ", “ptrdname”: “server2.mydomain.com.”, "address": "", "ttl": 3600, "created_at": "2012-11-02T19:56:26.000000", "updated_at": null “description”: null "links": { "self": "http://endpoint/v2/reverse/floatingips/ : ", "next": "https://endpoint/v2/reverse/floatingips?marker= : &limit=2", "previous": "https://endpoint/v2/reverse/floatingips?marker= : &limit=2" }           },          ]    }

Set a PTR for a FloatingIP (PATCH)
When creating a PTR, the caller must supply a name (Typically A or CNAME record).

Request {       “floatingip”: { “ptrdname”: “server.mydomain.com.”, "ttl": 3600 }    }

Response {       “floatingip”: { “id”: "2e32e609-3a4f-45ba-bdef-e50eacd345ad", “ptrdname”: “server.mydomain.com.”, "address": "" "created_at": "2012-11-02T19:56:26.000000", "ttl": 3600, "updated_at": null “description”: null, "links": {"self": "http://endpoint/v2/reverse/floatingips/ : "} }   }

Unset a PTR for a address - PATCH
To unset a PTR for a address ID, a user does a PATCH on the Floating IP url with a null ptrdname like: Request {"floatingip": {"ptrdname": null}} Response

Database Schema
We will extend Records with the following information