REST API

Примечание

Для получения доступа к REST API необходим токен. Получение токена описано во вкладке с дополнительной информацией.


Clouds API

Позволяет настраивать интеграцию с публичными облаками.

Интеграция проекта с облаком

Предоставляет возможность управлять интеграциями проектов.

POST
/v1/project-clouds/
Настройка проекта для интеграции с облаком.

Настройка проекта для интеграции с облаком.

Запрос
Параметры запроса:
Name In Type Description
project_id body string Идентификатор проекта OpenStack.
cloud_type body string Тип облака.
Параметры облака AWS:
Name In Type Description
secret_key body string Ключ доступа AWS Secret access key.
access_key body string Ключ доступа AWS Access key ID.
region body string Регион AWS.
az body string Зона доступности AWS.
Параметры Яндекс.Облака:
Name In Type Description
key_id body string Идентификатор авторизованного ключа Яндекс.Облака.
service_account_id body string Идентификатор сервисного аккаунта Яндекс.Облака.
private_key body string Приватный ключ Яндекс.Облака.
folder_id body string Идентификатор каталога Яндекс.Облака.
az body string Зона доступности Яндекс.Облака.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9366/v1/project-clouds/ -d '{"project_cloud": {"project_id": "d394da7c4d0747bd879e0e865222b3d9", "cloud_type": "aws", "access_key": "AKIAIOSFODNN7EXAMPLE", "secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY", "region": "us-east-2", "az": "us-east-2a"}}'| python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
project_id body string Идентификатор проекта OpenStack.
cloud_type body string Тип облака.

Пример результата в JSON формате:

{
    "project_cloud": {
        "project_id": "d394da7c4d0747bd879e0e865222b3d9",
        "cloud_type": "aws"
    }
}
GET
/v1/project-clouds/{project_id}/check-connection
Проверка подключения к облаку.

Проверка подключения к облаку, ассоциированному с проектом.

Запрос
Параметры запроса:
Name In Type Description
project_id body string Идентификатор проекта OpenStack.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9/check-connection | python -m json.tool
Ответ

Пример результата в JSON формате:

{
    "status": "Successfully connected to cloud"
}
GET
/v1/project-clouds/{project_id}
Получение параметров интеграции облака с проектом.

Получение параметров интеграции облака с проектом.

Запрос
Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта OpenStack.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9 | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
project_id body string Идентификатор проекта OpenStack.
cloud_type body string Тип облака.
Параметры облака AWS:
Name In Type Description
secret_key body string Ключ доступа AWS Secret access key.
access_key body string Ключ доступа AWS Access key ID.
region body string Регион AWS.
az body string Зона доступности AWS.
Параметры Яндекс.Облака:
Name In Type Description
key_id body string Идентификатор авторизованного ключа Яндекс.Облака.
service_account_id body string Идентификатор сервисного аккаунта Яндекс.Облака.
private_key body string Приватный ключ Яндекс.Облака.
folder_id body string Идентификатор каталога Яндекс.Облака.
az body string Зона доступности Яндекс.Облака.

Пример результата в JSON формате:

{
    "project_cloud": {
        "project_id": "d394da7c4d0747bd879e0e865222b3d9",
        "cloud_type": "aws",
        "access_key": "AKIAIOSFODNN7EXAMPLE",
        "secret_key": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY",
        "region": "us-east-2",
        "az": "us-east-2a"
    }
}
GET
/v1/project-clouds/
Получение списка проектов, настроенных для интеграции с облаком.

Получение списка проектов, настроенных для интеграции с облаком.

Запрос
Параметры запроса:

Запрос не имеет параметров.

Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
project_id body string Идентификатор проекта OpenStack.
cloud_type body string Тип облака.

Пример результата в JSON формате:

{
    "project_clouds": [
        {
            "project_id": "d394da7c4d0747bd879e0e865222b3d9",
            "cloud_type": "aws"
        }
    ]
}
DELETE
/v1/project-clouds/{project_id}
Удаление интеграции проекта с облаком.

Удаление интеграции проекта с облаком.

Запрос
Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта OpenStack.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9

Эта операция не имеет содержания ответа.

POST
/v1/project-clouds/{project_id}/actions/register-images
Регистрация образов облака в OpenStack.

Регистрация образов облака в OpenStack.

Запрос
Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта OpenStack.
cloud_image_id (Optional) body string Идентификатор образа публичного облака. При указании параметра будет выполнена регистрация только указанного образа.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9/actions/register-images

Эта операция не имеет содержания ответа.

POST
/v1/project-clouds/{project_id}/actions/register-flavors
Регистрация типов инстанса облака в OpenStack.

Регистрация типов инстанса облака в OpenStack.

Запрос
Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта OpenStack.
flavor (Optional) body string Название типа инстансов публичного облака. При указании параметра будет выполнена регистрация только указанного типа инстанса.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9/actions/register-flavors

Эта операция не имеет содержания ответа.

GET
/v1/project-clouds/{project_id}/resources/
Получение списка объектов публичного облака.

Получение списка объектов публичного облака.

Запрос
Параметры запроса:
Name In Type Description
project_id path string Идентификатор проекта OpenStack.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9366/v1/project-clouds/d394da7c4d0747bd879e0e865222b3d9/resources/ | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
project_id body string Идентификатор проекта OpenStack.
resources body string Ресурсы облака.

Пример результата в JSON формате:

{
    "images": [
        {
            "id": "ami-0f7919c33c90f5b58",
            "name": "amzn2-ami-hvm-2.0.20200406.0-x86_64-gp2",
            "state": "available"
        }
    ],
    "instances": [
        {
            "id": "i-05ddf0a0ab22b4098",
            "instance_type": "t2.micro",
            "state": "running"
        }
    ],
    "volumes": [
        {
            "id": "vol-0110556e94d7037a0",
            "size": 8,
            "state": "in-use"
        }
    ]
}

Соответствие ресурсов OpenStack ресурсам публичного облака.

Примечание

API предназначен только для использования драйверами и требует наличия роли service.

Хранение соответствий ресурсов OpenStack и ресурсам публичного облака.

POST
/v1/resource-mappings/
Создание или обновление соответствия.

Создание или обновление соответствия ресурса OpenStack ресурсу публичного облака.

Запрос
Параметры запроса:
Name In Type Description
openstack_id body string Идентификатор объекта OpenStack.
resource body string Ресурс облака AWS.
Пример запроса:
curl -X POST -H "X-Auth-Token: $token" -H "Content-Type: application/json" http://controller:9366/v1/resource-mappings/ -d '{"resource_mapping": {"openstack_id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3", "resource": "i-12345678"}}' | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
openstack_id body string Идентификатор объекта OpenStack.
resource body string Ресурс облака AWS.

Пример результата в JSON формате:

{
    "resource_mapping": {
        "openstack_id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
        "resource": "i-12345678"
    }
}
GET
/v1/resource-mappings/{openstack_id}
Получение соответствия.

Получение соответствия ресурса OpenStack ресурсу публичного облака.

Запрос
Параметры запроса:
Name In Type Description
openstack_id path string Идентификатор объекта OpenStack.
Пример запроса:
curl -X GET -H "X-Auth-Token: $token" http://controller:9366/v1/resource-mappings/2506940c-22f9-4b81-a865-9aa6e7d7cba3 | python -m json.tool
Ответ
Параметры ответа:
Name In Type Description
openstack_id body string Идентификатор объекта OpenStack.
resource body string Ресурс облака AWS.

Пример результата в JSON формате:

{
    "resource_mapping": {
        "openstack_id": "2506940c-22f9-4b81-a865-9aa6e7d7cba3",
        "resource": "i-12345678"
    }
}
DELETE
/v1/resource-mappings/{openstack_id}
Удаление соответствия.

Удаление соответствия ресурса OpenStack ресурсу публичного облака.

Запрос
Параметры запроса:
Name In Type Description
openstack_id path string Идентификатор объекта OpenStack.
Пример запроса:
curl -X DELETE -H "X-Auth-Token: $token" http://controller:9366/v1/resource-mappings/2506940c-22f9-4b81-a865-9aa6e7d7cba3

Эта операция не имеет содержания ответа.

Подробное описание кодов ответа на запросы доступно во вкладке с дополнительной информацией.