
# Провайдеры и каталоги

Четыре справочных эндпоинта, возвращающих списки облачных провайдеров и доступных у них тарифов, регионов и образов ОС. Вызовите их перед созданием сервера, чтобы получить корректные идентификаторы для `provider`, `plan`, `region`, `image` в [`POST /v1/infra/servers`](/docs/infra/servers/create).

## Операции

- [Список провайдеров](./providers/list.md) — `GET /v1/infra/providers`
- [Тарифы провайдера](./providers/plans.md) — `GET /v1/infra/providers/:providerId/plans`
- [Регионы провайдера](./providers/regions.md) — `GET /v1/infra/providers/:providerId/regions`
- [Образы ОС провайдера](./providers/images.md) — `GET /v1/infra/providers/:providerId/images`

## Типовой сценарий

Перед первым созданием сервера запросите все четыре справочника и выберите подходящие значения:

```javascript
const providers = await api('GET', '/infra/providers')
const providerId = providers.data.find(p => p.available).id   // 'bitrix-cloud'

const [plans, regions, images] = await Promise.all([
  api('GET', `/infra/providers/${providerId}/plans`),
  api('GET', `/infra/providers/${providerId}/regions`),
  api('GET', `/infra/providers/${providerId}/images`),
])

const body = {
  provider: providerId,
  name: 'my-app',
  plan: plans.data.find(p => p.id === 'bc-small').id,
  region: regions.data[0].id,
  image: images.data[0].id,
}
```

## Смотрите также

- [Создание сервера](/docs/infra/servers/create)
- [Корневой раздел — Инфраструктура](/docs/infra)
