Функция доступна в провайдере версии 4.5.1 и выше.

_Data source_ функция **decort_cb_stack_list** служит для получения информации о списке всех доступных stack. Stack - вычислительный узел.

## Аргументы

_Data source_ функция **decort_cb_stack_list** принимает следующие аргументы:

| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| by_id | int | :x: | фильтр по ID вычислительного узла (stack) |
| name | string | :x: | фильтр по наименованию stack |
| type | string | :x: | фильтр по типу stack |
| status | string | :x: | фильтр по статусу stack |
| sort_by | string | :x: | Фильтр по одному из поддерживаемых полей, формат: +или- название поля |
| page | int | :x: | Номер страницы для вывода |
| size | int | :x: | Размер страницы для вывода |

## Возвращаемые значения

В случае успешного выполнения _data source_ функция **decort_cb_stack_list** возвращает в указанную при вызове переменную, в поле _items_, массив, каждый элемент которого состоит из следующих параметров:

| Параметр | Тип | Описание |
| --- | --- | --- |
| stack_id | int | ID вычислительного узла (stack) |
| ckey | string | CKey |
| meta | []string | Мета информация о stack |
| api_url | string | Адрес api |
| api_key | string | Ключ api |
| app_id | string | ID приложения |
| cpu_allocation_ratio | float | Отношение выделения CPU |
| description | string | Описание |
| descr | string | Описание |
| drivers | []string | Список используемых драйверов |
| eco | string | Системные ошибки |
| error | int | Ошибка |
| gid | int | Идентификатор площадки (grid id) |
| guid | int | ID ресурса |
| images | []int | Список доступных образов на stack |
| login | string | Логин |
| mem_allocation_ratio | float | Коэффициент выделения оперативной памяти |
| name | string | Наименование stack |
| packages | []Struct [см. ниже](#описание-структуры-packages) | Информация о пакетах |
| passwd | string | Пароль |
| reference_id | string | ID ссылки |
| status | string | Статус stack |
| type | string | Тип stack |

### Описание структуры packages
| Параметр | Тип | Описание |
| --- | --- | --- |
| libvirt_bin | Struct [см. ниже](#описание-структуры-libvirt_bin) | Информация о пакете libvirt_bin |
| libvirt_daemon | Struct [см. ниже](#описание-структуры-libvirt_daemon) | Информация о пакете libvirt_daemon |
| lvm2_lockd | Struct [см. ниже](#описание-структуры-lvm2_lockd) | Информация о пакете lvm2_lockd |
| openvswitch_common | Struct [см. ниже](#описание-структуры-openvswitch_common) | Информация о пакете openvswitch_common |
| openvswitch_switch | Struct [см. ниже](#описание-структуры-openvswitch_switch) | Информация о пакете openvswitch_switch |
| qemu_system_x86 | Struct [см. ниже](#описание-структуры-qemu_system_x86) | Информация о пакете qemu_system_x86 |
| sanlock | Struct [см. ниже](#описание-структуры-sanlock) | Информация о пакете sanlock |

### Описание структуры libvirt_bin
| Параметр | Тип | Описание |
| --- | --- | --- |
| installed_size | string | Размер |
| ver | string | Версия |

### Описание структуры libvirt_daemon
| Параметр | Тип | Описание |
| --- | --- | --- |
| installed_size | string | Размер |
| ver | string | Версия |

### Описание структуры lvm2_lockd
| Параметр | Тип | Описание |
| --- | --- | --- |
| installed_size | string | Размер |
| ver | string | Версия |

### Описание структуры openvswitch_common
| Параметр | Тип | Описание |
| --- | --- | --- |
| installed_size | string | Размер |
| ver | string | Версия |

### Описание структуры openvswitch_switch
| Параметр | Тип | Описание |
| --- | --- | --- |
| installed_size | string | Размер |
| ver | string | Версия |

### Описание структуры qemu_system_x86
| Параметр | Тип | Описание |
| --- | --- | --- |
| installed_size | string | Размер |
| ver | string | Версия |

### Описание структуры sanlock
| Параметр | Тип | Описание |
| --- | --- | --- |
| installed_size | string | Размер |
| ver | string | Версия |

## Пример использования

Пример вызова _data source_ функции **decort_cb_stack_list**:

```terraform
data "decort_cb_stack_list" "sl" {
  #фильтр стеков по id
  #опциональный параметр
  #тип - целое число
  #by_id = 111

  #фильтр по имени стека
  #опциональный параметр
  #тип - строка
  #name = "name"

  #фильтр по типу
  #опциональный параметр
  #тип - строка
  #type = "type"

  #фильтр по статусу
  #опциональный параметр
  #тип - строка
  #status = "status"

  #сортировка по одному из поддерживаемых полей
  #опциональный параметр
  #тип - строка
  #формат - "+поле" по возрастанию / "-поле" по убыванию
  #sort_by = "+name"

  #номер страницы для отображения
  #опциональный параметр
  #тип - целое число
  #page = 2

  #размер страницы
  #опциональный параметр
  #тип - целое число
  #size = 3
}
```

Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/wiki-terraform-provider-decort/src/branch/main/4.9.1/04.02-Инициализация-Terraform-провайдера-DECORT.md)).

После успешного завершения такого вызова **decort_cb_stack_list** в переменной `data.decort_cb_stack_list.sl.items` будут сохранены возвращаемые значения.
