Authentication and authorization
Как и для любого OpenStack сервиса для авторизации и аутентификации используется keystone.
VARS
- tenant — OpenStack project uuid. Стандартный номер проекта, который можно найти в личном кабинете MCS. Отличие от OpenStack — в uuid используются дефисы;
- dns-uuid — уникальный идентификатор DNS записи;
- record-type — тип записи: A, AAAA, CNAME, и т.д;
- a-uuid — уникальный идентификатор А записи для DNS.
Create DNS Record
Request
POST /v2/dns/
Заголовки:
- Content-Type: application/json
Тело запроса:
1{
2 "soa_refresh": 7200,
3 "soa_retry": 3600,
4 "soa_expire": 1209600,
5 "soa_primary_dns": "ns1.mcs.mail.ru.",
6 "zone": "example.com.",
7 "soa_ttl": 3600,
8 "soa_serial": 2020080302,
9 "soa_admin_email": "admin@example.com"
10}
Response
Заголовки:
- Location: https://mcs.mail.ru/public-dns/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6
- Content-Type: application/json; charset=UTF-8
- Content-Length: 441
Код ответа:
- 201 — DNS запись создана успешно.
Тело ответа:
1{
2 "uuid": "a5ef043e-b517-4c45-a727-e8298f5d47d6",
3 "tenant": "7642b2c2-4162-4983-a7e7-b26de7cbdaf9",
4 "soa_primary_dns": "ns1.mcs.mail.ru.",
5 "soa_admin_email": "admin@example.com",
6 "soa_serial": 2020080302,
7 "soa_refresh": 7200,
8 "soa_retry": 3600,
9 "soa_expire": 1209600,
10 "soa_ttl": 3600,
11 "zone": "example.com.",
12 "status": "pending"
13}
Get DNS record
Request
GET /v2/dns/<dns-uuid>
Response
Код ответа:
- 200 — успешный ответ.
- 404 — DNS запись не найдена.
- 409 — DNS запись уже существует.
Тело ответа:
1{
2 "uuid": "a5ef043e-b517-4c45-a727-e8298f5d47d6",
3 "tenant": "7642b2c2-4162-4983-a7e7-b26de7cbdaf9",
4 "soa_primary_dns": "ns1.mcs.mail.ru.",
5 "soa_admin_email": "admin@example.com",
6 "soa_serial": 2020080304,
7 "soa_refresh": 7200,
8 "soa_retry": 3600,
9 "soa_expire": 1209600,
10 "soa_ttl": 3600,
11 "zone": "example.com.",
12 "status": "pending"
13}
List DNS records
Request
GET /v2/dns/
Response
Код ответа:
- 200 — успешный ответ.
Тело ответа:
1[
2 {
3 "uuid": "a5ef043e-b517-4c45-a727-e8298f5d47d6",
4 "tenant": "7642b2c2-4162-4983-a7e7-b26de7cbdaf9",
5 "soa_primary_dns": "ns1.mcs.mail.ru.",
6 "soa_admin_email": "admin@example.com",
7 "soa_serial": 2020080304,
8 "soa_refresh": 7200,
9 "soa_retry": 3600,
10 "soa_expire": 1209600,
11 "soa_ttl": 3600,
12 "zone": "example.com.",
13 "status": "pending"
14 }
15]
Update DNS record
Request
PUT /v2/dns/<dns-uuid>
Заголовки:
- Content-Type: application/json
Тело запроса:
1{
2 "soa_ttl": 7200,
3 "soa_serial": 2020120302
4}
Response
Код ответа:
- 200 — успешный ответ.
- 404 — DNS запись не найдена.
Тело ответа:
1{
2 "uuid": "a5ef043e-b517-4c45-a727-e8298f5d47d6",
3 "tenant": "7642b2c2-4162-4983-a7e7-b26de7cbdaf9",
4 "soa_primary_dns": "ns1.mcs.mail.ru.",
5 "soa_admin_email": "admin@example.com",
6 "soa_serial": 2020120302,
7 "soa_refresh": 7200,
8 "soa_retry": 3600,
9 "soa_expire": 1209600,
10 "soa_ttl": 7200,
11 "zone": "example.com.",
12 "status": "pending"
13}
Delete DNS record
Request
DELETE /v2/dns/<dns-uuid>
Response
Код ответа:
- 204 — Удалено.
- 404 — DNS запись не найдена.
Create A record for existing DNS
Request
POST /v2/dns/<dns-uuid>/a/
Заголовки:
- Content-Type: application/json
Тело запроса:
1{
2 "name": "google-dns-servers",
3 "ipv4": "8.8.8.8",
4 "ttl": 60
5}
Response
Заголовки:
- Location: https://mcs.mail.ru/public-dns/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6/a/631519fb-f2d3-43e0-ae9c-8f18adcf3b1a
- Content-Type: application/json; charset=UTF-8
- Content-Length: 211
Код ответа:
- 201 — A запись создана успешно.
- 409 — A запись уже существует.
Тело ответа:
1{
2 "uuid": "631519fb-f2d3-43e0-ae9c-8f18adcf3b1a",
3 "name": "google-dns-servers",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "ipv4": "8.8.8.8",
6 "ttl": 60
7}
Get A record for existing DNS
Request
GET /v2/dns/<dns-uuid>/a/<a-uuid>
Response
Код ответа:
- 200 — успешный ответ.
- 404 — A запись не найдена.
Тело ответа:
1{
2 "uuid": "631519fb-f2d3-43e0-ae9c-8f18adcf3b1a",
3 "name": "google-dns-servers",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "ipv4": "8.8.8.8",
6 "ttl": 60
7}
List A records for existing DNS
Request
GET /v2/dns/<dns-uuid>/a/
Response
Код ответа:
- 200 — успешный ответ.
Тело ответа:
1[
2 {
3 "uuid": "631519fb-f2d3-43e0-ae9c-8f18adcf3b1a",
4 "name": "google-dns-servers",
5 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
6 "ipv4": "8.8.8.8",
7 "ttl": 60
8 }
9]
Update A record for existing DNS
Request
PUT /v2/dns/<dns-uuid>/a/<a-uuid>
Заголовки:
- Content-Type: application/json
Тело запроса:
1{
2 "ipv4": "8.8.4.4"
3}
Response
Код ответа:
- 200 — успешный ответ.
- 404 — A запись не найдена.
Тело ответа:
1{
2 "uuid": "631519fb-f2d3-43e0-ae9c-8f18adcf3b1a",
3 "name": "google-dns-servers",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "ipv4": "8.8.4.4",
6 "ttl": 60
7}
Delete A record for existing DNS
Request
DELETE /v2/dns/<dns-uuid>/a/<a-uuid>
Response
Код ответа:
- 202 — Удалено.
- 404 — A запись не найдена.
AAAA, CNAME, MX, NS, SRV, TXT records
Все операции абсолютно аналогичны A-записи, за исключением полей. Ниже примеры ответов.
URL
GET /v2/dns/<dns-uuid>/<record-type>/<record-uuid>
AAAA
Тело ответа:
1{
2 "uuid": "00e52f77-2694-46de-b6e0-a37370bef2c5",
3 "name": "@",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "ipv6": "2001:0DB8:AA10:0001:0000:0000:0000:00FB",
6 "ttl": 86400
7}
MX
Тело ответа:
1{
2 "uuid": "4f2a4306-1c17-4f84-b6c5-438d2eb3d2d3",
3 "name": "@",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "priority": 10,
6 "content": "mx.example.com",
7 "ttl": 86400
8}
CNAME
Тело ответа:
1{
2 "uuid": "732d2f59-b5a3-429a-8013-5340dcebcbb6",
3 "name": "@",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "content": "example.com",
6 "ttl": 86400,
7}
NS
Тело ответа:
1{
2 "uuid": "dccc755c-6f88-4e9c-9823-8589fa5c6d4e",
3 "name": "@",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "content": "ns2.mcs.mail.ru",
6 "ttl": 86400
7}
SRV
Тело ответа:
1{
2 "uuid": "545d152d-3cd1-4eba-946f-6931e8dd5874",
3 "name": "_sip._udp",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "priority": 10,
6 "weight": 5,
7 "port": 5060,
8 "host": "example.com",
9 "ttl": 86400
10}
TXT
Тело ответа:
1{
2 "uuid": "39186a66-e165-4069-8ab7-0934d1d69634",
3 "name": "@",
4 "dns": "/v2/dns/a5ef043e-b517-4c45-a727-e8298f5d47d6",
5 "content": "Text example",
6 "ttl": 86400
7}