tocdepth

2

Тенанты

На странице собраны API-методы для управления тенантами.

Получение списка доступных ЦОД

Для создания тенантов нужно запросить доступные ЦОД.

Для запроса используются:

Запрос
curl --location 'https://vmware.api.cloud.ru/api/vmware-public/v1beta/data-centers?project_id=$project_id' \
--header 'Authorization: Bearer TOKEN' \
--header 'accept: application/json'

Пример ответа 200 OK

{
   "data_centers": [
       {
           "region": "pd30-02",
           "host": "https://vcd30-02.cloud.ru",
           "data_center": "ЦОД DataPro-3.PD30-02 (г. Москва, ул. Рябиновая 53, строение 3)"
       }
   ]
}
Описание параметров

Параметр

Тип

Опциональность

Описание

region

string

Обязательный

Название региона

host

string

Обязательный

URL VMware Cloud Director

data_center

string

Обязательный

Название и адрес ЦОДа

Создание тенанта POST /tenants

Для создания тенанта необходимы следующие параметры:

Параметры headers

idempotency-key в формате UUID-4, обязательный. Сгенерировать header можно через любой сервис, например Online UUID Generator.

Параметры body

Параметр

Тип

Опциональность

Описание

project_id

string($uuid)

Обязательный

Идентификатор проекта

region

string

Обязательный

Название региона

alias

string

Обязательный

Название тенанта

monitoring_enabled

boolean

Опциональный

Управление настройками мониторинга для создаваемого тенанта.

По-умолчанию значение true

Запрос
curl --location 'https://vmware.api.cloud.ru/api/vmware-public/v1beta/tenants' \
--header 'content-type: application/json' \
--header 'idempotency-key: a90b7a09-ce2d-4dfb-a236-97d375b4dc94' \
--header 'Authorization: Bearer TOKEN' \
--data '{
  "alias": "mg-apitest-3",
  "region": "pd30-02",
  "project_id": "84f2ac2b-0e1c-47b8-9898-21ec9301a733",
  "monitoring_enabled": true
}'

Пример ответа 200 OK

  • В ответе вернется идентификатор и статус операции создания.

  • Идентификатор создаваемого ресурса не вернется. Он генерируется в VMware Cloud Director на последних шагах.

{
  "id": "a90b7a09-ce2d-4dfb-a236-97d375b4dc94",
  "description": "",
  "completed": false,
  "response": {},
  "metadata": {
      "method": "/cloud.vmware.v1beta.TenantService/CreateTenant",
      "status": "IN PROGRESS",
      "service_instance_id": "bf4f6bc4-364c-4ab2-8437-31458254b6a6",
      "resource_id": "",
      "resource_name": "",
      "resource_type": "TENANT"
  },
  "created_at": "2024-10-07T11:20:28.263381Z",
  "created_by": "c9c9e57f-98e0-4b8c-a07b-c8d19b159ecc",
  "updated_at": "2024-10-07T11:20:28.263818Z"
}

Ошибки в ответе

Status Codes

Message

Details

grpc

Комментарии

404 Not Found

No available provider

The specified region does not contain available providers. Please contact the support

5 NOT_FOUND

ErrNoSuitableProvider = errors.New("suitable provider not found")

400 Bad Request

Invalid tenant name

The specified tenant name is not allowed. Please try another name

3 INVALID_ARGUMENT

ErrTenantName = errors.New("name must contain only the characters [A-Z a-z 0-9 _-], max length 20 characters")

400 Bad Request

The amount of tenants limit is reached

The amount of tenants limit is reached. Please contact the support to increase the limit

9 FAILED_PRECONDITION

ErrLimits = errors.New("resource limits error")

400 Bad Request

Region not available

The specified region is not available for tenant creation. Please choose another region or contact the support

9 FAILED_PRECONDITION

ErrRegionRestricted = errors.New("region restricted")

404 Not Found

Region not exists

The specified region does not exist. Please check the available regions or contact the support

5 NOT_FOUND

404 Not Found

Project not exists

The specified project does not exist. Please check the available regions or contact the support

5 NOT_FOUND

ErrGetProjectData = errors.New("failed get project data")

403 Forbidden

Self-service not available

It is not possible to process the operation due to the self-service is not available for the current organization. Please contact the support for details

7 PERMISSION_DENIED

ErrNoSelfService = errors.New("customer has no self-service enabled")

403 Forbidden

Permission denied

The used account has no permissons for the operation. Please check the accounts roles or contact the support

7 PERMISSION_DENIED

ErrInsufficientPermissions = errors.New("insufficient permissions")

Получение списка тенантов GET /tenants

Для запроса используются полученные токен и project_id.

Запрос
curl --location 'https://vmware.api.cloud.ru/api/vmware-public/v1beta/tenants?project_id=$project_id' \
--header 'content-type: application/json' \
--header 'Authorization: Bearer TOKEN'

Пример ответа 200 OK

{
  "result": [
      {
         "id": "b392ec46-9f12-415f-86e8-19b487095d7e",
         "alias": "mg-apitest-2",
         "name": "mg-apitest-2-PIBDOCsis",
         "region": "pd30-02",
         "user_id": "c9c9e57f-98e0-4b8c-a07b-c8d19b159ecc",
         "project_id": "84f2ac2b-0e1c-47b8-9898-21ec9301a733",
         "customer_id": "98b6a337-2f5c-475d-bf64-3b3e3dfbddb7",
         "product_instance_id": "95950ff0-0bed-4773-a9f8-a9b1b061cf36",
         "service_instance_id": "211d549f-0fd8-445a-a7e7-d8fdef19865f",
         "state": "Enabled",
         "url": "https://vcd30-02.cloud.ru",
         "monitoring_enabled": true,
         "favourite": false
      },
...
  ],
  "total": 0
}
Параметры ответа

Параметр

Тип

Опциональность

Описание

id

string($uuid)

Обязательный

Идентификатор тенанта из VMware Cloud Director

alias

string

Обязательный

Название тенанта

name

string

Обязательный

Полное название тенанта

region

string

Обязательный

ЦОД

user_id

string($uuid)

Обязательный

Идентификатор пользователя, создавшего тенант

project_id

string($uuid)

Обязательный

Идентификатор проекта

customer_id

string($uuid)

Обязательный

Идентификатор организации

product_instance_id

string($uuid)

Обязательный

Идентификатор продукта в проекте

service_instance_id

string($uuid)

Обязательный

Идентификатор тенанта

state

string

Обязательный

Статус тенанта:

  • ENTITY_STATE_UNSPECIFIED

  • Enabled

  • Disabled

url

string

Обязательный

URL VMware Cloud Director

monitoring_enabled

boolean

Обязательный

Наличие мониторинга

favourite

boolean

Обязательный

Наличие тенанта в списке избранных

Ошибки в ответе

Status Codes

Message

Details

grpc

Комментарии

404 Not Found

Project not exists

The specified project does not exist. Please check the available regions or contact the support

5 NOT_FOUND

ErrGetProjectData = errors.New("failed get project data")

403 Forbidden

Self-service not available

It is not possible to process the operation due to the self-service is not available for the current organization. Please contact the support for details

7 PERMISSION_DENIED

ErrNoSelfService = errors.New("customer has no self-service enabled")

403 Forbidden

Permission denied

The used account has no permissons for the operation. Please check the accounts roles or contact the support

7 PERMISSION_DENIED

ErrInsufficientPermissions = errors.New("insufficient permissions")

Изменение статуса тенанта PUT /tenants/state

Для запроса необходимы следующие параметры:

Параметры headers

idempotency-key — ключ идемпотентности в формате UUID-4, обязательный. Сгенерировать ключ можно через любой сервис, например Online UUID Generator.

Параметры body

Параметр

Тип

Опциональность

Описание

service_instance_id

string($uuid)

Обязательный

Идентификатор тенанта

tenant_state

string

Обязательный

Статус тенанта:

  • ENTITY_STATE_UNSPECIFIED

  • Enabled

  • Disabled

Запрос
curl --location --request PUT 'https://vmware.api.cloud.ru/api/vmware-public/v1beta/tenants/state' \
--header 'accept: application/json' \
--header 'idempotency-key: 124e2dd0-f4b2-4586-827c-3025f8930257' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--data '{
  "service_instance_id": "eaf81279-8229-440a-81ed-04c5edea684c",
  "state": "Disabled"
}'

Ответ 200 OK

В ответе вернется идентификатор и статус операции.

Ошибки в ответе

Status Codes

Message

Details

grpc

Комментарии

404 Not Found

Tenant not exists

The specified tenant does not exist

5 NOT_FOUND

ErrTenantNotFound = errors.New("tenant not found")

404 Not Found

Tenant was deleted

The specified tenant does not exist

5 NOT_FOUND

ErrTenantDeleted = errors.New("tenant deleted")

404 Bad Request

Invalid state

The specified state is incorrect. Please recheck the value

3 INVALID_ARGUMENT

ErrEntityStateInvalid = errors.New("entity state is invalid")

403 Forbidden

Self-service not available

It is not possible to process the operation due to the self-service is not available for the current organization. Please contact the support for details

7 PERMISSION_DENIED

ErrNoSelfService = errors.New("customer has no self-service enabled")

403 Forbidden

Permission denied

The used account has no permissons for the operation. Please check the accounts roles or contact the support

7 PERMISSION_DENIED

ErrInsufficientPermissions = errors.New("insufficient permissions")

Добавление тенанта в избранное PUT /tenants/favorite

Для запроса необходимы следующие параметры:

Параметры headers

idempotency-key — ключ идемпотентности в формате UUID-4, обязательный. Сгенерировать ключ можно через любой сервис, например Online UUID Generator.

Параметры body

Параметр

Тип

Опциональность

Описание

service_instance_id

string($uuid)

Обязательный

Идентификатор тенанта

tenant_is_favoritestate

string

Обязательный

Наличие тенанта в списке избранных

Запрос
curl --location --request PUT 'https://vmware.api.cloud.ru/api/vmware-public/v1beta/tenants/favorite' \
--header 'accept: application/json' \
--header 'idempotency-key: 05a92cc8-4b27-4e50-9071-0ed2ba180f6b' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--data '{
  "service_instance_id": "7e4c2391-25e1-47a3-b70f-20e2176dab2b",
  "is_favorite": "true"
}'

Ответ 200 OK

В ответе вернется идентификатор и статус операции.

Ошибки в ответе

Status Codes

Message

Details

grpc

Комментарии

404 Not Found

Tenant not exists

The specified tenant does not exist

5 NOT_FOUND

ErrTenantNotFound = errors.New("tenant not found")

404 Not Found

Tenant was deleted

The specified tenant does not exist

5 NOT_FOUND

ErrTenantDeleted = errors.New("tenant deleted")

403 Forbidden

Self-service not available

It is not possible to process the operation due to the self-service is not available for the current organization. Please contact the support for details

7 PERMISSION_DENIED

ErrNoSelfService = errors.New("customer has no self-service enabled")

403 Forbidden

Permission denied

The used account has no permissons for the operation. Please check the accounts roles or contact the support

7 PERMISSION_DENIED

ErrInsufficientPermissions = errors.New("insufficient permissions")

Включение мониторинга для тенанта PUT /tenants/monitoring

Для запроса необходимы следующие параметры:

Параметры headers

idempotency-key — ключ идемпотентности в формате UUID-4, обязательный. Сгенерировать ключ можно через любой сервис, например Online UUID Generator.

Параметры body

Параметр

Тип

Опциональность

Описание

service_instance_id

string

Обязательный

Идентификатор тенанта

monitoring_enabled

string($uuid)

Обязательный

Наличие мониторинга

Запрос
curl --location --request PUT 'https://vmware.api.cloud.ru/api/vmware-public/v1beta/tenants/monitoring' \
--header 'accept: application/json' \
--header 'idempotency-key: 05a92cc8-4b27-4e50-9071-0ed2ba180f6b' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN' \
--data '{
  "service_instance_id": "7e4c2391-25e1-47a3-b70f-20e2176dab2b",
  "monitoring_enabled": "true"
}'

Ответ 200 OK

В ответе вернется идентификатор и статус операции.

Ошибки в ответе

Status Codes

Message

Details

grpc

Комментарии

404 Not Found

Tenant not exists

The specified tenant does not exist

5 NOT_FOUND

ErrTenantNotFound = errors.New("tenant not found")

404 Not Found

Tenant was deleted

The specified tenant does not exist

5 NOT_FOUND

ErrTenantDeleted = errors.New("tenant deleted")

404 Bad Request

Invalid state

The specified state is incorrect. Please recheck the value

3 INVALID_ARGUMENT

ErrEntityStateInvalid = errors.New("entity state is invalid")

403 Forbidden

Self-service not available

It is not possible to process the operation due to the self-service is not available for the current organization. Please contact the support for details

7 PERMISSION_DENIED

ErrNoSelfService = errors.New("customer has no self-service enabled")

403 Forbidden

Permission denied

The used account has no permissons for the operation. Please check the accounts roles or contact the support

7 PERMISSION_DENIED

ErrInsufficientPermissions = errors.New("insufficient permissions")

Удаление тенанта DELETE /tenants{id}

Перед удалением тенант нужно перевести в статус «Disabled».

Для запроса необходимы следующие параметры:

Параметры headers

idempotency-key — ключ идемпотентности в формате UUID-4, обязательный. Сгенерировать ключ можно через любой сервис, например Online UUID Generator.

Параметры body

service_instance_id — идентификатор тенанта в формате string, обязательный.

Запрос
curl --location --request DELETE 'https://vmware.api.cloud.ru/api/vmware-public/v1beta/tenants?service_instance_id=$service_instance_id' \
--header 'accept: application/json' \
--header 'idempotency-key: 124e2dd0-f4b2-4586-827c-3025f8930257' \
--header 'Content-Type: application/json' \
--header 'Authorization: Bearer TOKEN'

Ответ 200 OK

В ответе вернется идентификатор и статус операции удаления.

Ошибки в ответе

Status Codes

Message

Details

grpc

Комментарии

400 Bad Request

Tenant contains active services

The tenant with active additional services can’t be deleted. All additional services should be removed

9 FAILED_PRECONDITION

ErrTenantHasAddServices = errors.New("tenant has additional services enabled")

400 Bad Request

Tenant is active

The tenant in Active status cannot be deleted. It should be disabled by setting the Disabled status

9 FAILED_PRECONDITION

ErrTenantNotDisabled = errors.New("tenant should be disabled")

404 Not Found

Tenant not exists

The specified tenant does not exist

5 NOT_FOUND

ErrTenantNotFound = errors.New("tenant not found")

404 Not Found

Tenant was deleted

The specified tenant does not exist

5 NOT_FOUND

ErrTenantDeleted = errors.New("tenant deleted")

403 Forbidden

Self-service not available

It is not possible to process the operation due to the self-service is not available for the current organization. Please contact the support for details

7 PERMISSION_DENIED

ErrNoSelfService = errors.New("customer has no self-service enabled")

403 Forbidden

Permission denied

The used account has no permissons for the operation. Please check the accounts roles or contact the support

7 PERMISSION_DENIED

ErrInsufficientPermissions = errors.New("insufficient permissions")

Запустили Evolution free tier
для Dev & Test
Получить