VK Cloud logo

API

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

Заголовки:

Код ответа:

  • 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

Заголовки:

Код ответа:

  • 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}