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

_Data source_ функция **decort_cb_image_list** служит для получения информации об имеющихся в облачной платформе образах. Образы это дисковые ресурсы, уже содержащие некоторые данные, для которых реализован механизм быстрого клонирования/копирования в новый диск. 

Основной сценарий использования таких ресурсов это создание каталогов образов операционных систем (ОС), на базе которых создаются загрузочные диски для _compute_. Также с их помощью можно хранить эталонную информацию, требующуюся для работы приложений, например, файлы баз данных.

Образ ОС является основной для создания новых виртуальных серверов, так как из него формируется загрузочный диск сервера. Как следствие, для создания виртуального сервера помимо других параметров требуется указать идентификатор нужного образа ОС. Для получения всех доступных идентификаторов можно воспользоваться _data source_ функцией **decort_cb_image_list**.

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

| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| sep_id | int | :x: | Фильтр результата по storage endpoint provider ID |
| by_id | int | :x: | Фильтр по ID образа |
| name | string | :x: | Фильтр по названию образа |
| status | string | :x: | Фильтр по статусу образа |
| architecture | string | :x: | Фильтр по архитектуре |
| type_image | string | :x: | Фильтр по типу образа |
| image_size | int | :x: | Фильтр по размеру образа |
| sep_name | string | :x: | Фильтр по имени SEP |
| pool | string | :x: | Фильтр по Pool |
| public | bool | :x: | Фильтр публичных/приватных образов |
| hot_resize | bool | :x: | Фильтр образов, разрешающих hot resize |
| bootable | bool | :x: | Фильтр загрузочных образов |
| page | int | :x: | Номер страниц |
| size | int | :x: | Размер страницы |
| sort_by | string | :x: | Фильтр по одному из поддерживаемых полей, формат: +или- название поля |
| enabled | bool | :x: | Фильтр по доступности образа | 

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

| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | accountId привязки образа |
| acl | []Struct [см. ниже](#описание-структуры-acl) | Cписок Acces Control |
| architecture | string | Архитектура образа, возможен вариант X86_64 |
| boot_type | string | Тип запуска ОС - bios или uefi |
| bootable | bool | Является ли образ загрузочным |
| computeci_id | int | ID вычислительного ресурса |
| deleted_time | int | Время удаления |
| desc | string | Описание образа |
| drivers | []string | Список используемых драйверов |
| enabled | bool | Доступность образа |
| gid | int | ID платформы, где образ будет создан |
| guid | int | Внутренний id образа, совпадает с image_id |
| history | []Struct [см. ниже](#описание-структуры-history) | История обновлений образа |
| hot_resize | bool | Использует ли машина горячее изменение размера образа |
| image_id | int | ID образа |
| last_modified | int | Дата последнего изменения |
| link_to | int | Привязка к образу, используется в виртуальных образах |
| milestones | int | Вехи |
| name | string | Название образа |
| network_interface_naming | string | Название сетевого интерфейса |
| password | string | Пароль для образа |
| pool_name | string | Пул, в котором был создан образ |
| present_to | []int | Список ID ресурсов для который предоставлен образ |
| provider_name | string | Наименование провайдера |
| purge_attempts | int | Попытки |
| reference_id | string | ID ссылки |
| res_id | string | ID ресурса |
| res_name | string | Наименование ресурса |
| rescuecd | bool | CD или нет |
| sep_id | int | storage endpoint provider ID |
| shared_with | []int | Список ресурсов, имеющих доступ к образу |
| size | int | Размер образа |
| status | string | Статус образа |
| tech_status | string | Технический статус |
| image_type | string | Тип образа: linux, windows или другой |
| unc_path | string | unc path |
| url | string | Адрес, которого осуществлялась загрузка образа |
| username | string | Имя пользователя образа |
| version | string | Версия |
| virtual | bool | Флаг, является ли образ виртуальным |

### Описание структуры acl
| Параметр | Тип | Описание |
| --- | --- | --- |
| explicit | bool | Явно ли указан доступ |
| guid | string | guid Ресурса |
| right | string | Права на ресурс |
| status | string | Статус ресурса |
| type | string | Тип ресурса |
| user_group_id | string | ID user group |

### Описание структуры history
| Параметр | Тип | Описание |
| --- | --- | --- |
| id | int | id записи об обновлении образа |
| guid | string | guid ресурса |
| timestamp | int | временная метка |

## Пример использования
Пример вызова _data source_ функции **decort_cb_image_list**:
```terraform
data "decort_cb_image_list" "il" {
  #фильтр по id sep
  #опциональный параметр
  #тип - целое число
  #sep_id = 1

  #фильтр по id образа
  #опциональный параметр
  #тип - целое число
  #by_id = 100

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

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

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

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

  #фильтр по размеру образа
  #опциональный параметр
  #тип - целое число
  #image_size = 100

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

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

  #фильтр по доступу
  #опциональный параметр
  #тип - булев
  #public = "true"

  #фильтр по hot_resize
  #опциональный параметр
  #тип - булев
  #hot_resize = "true"

  #фильтр по bootable
  #опциональный параметр
  #тип - булев
  #bootable = "true"

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

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

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

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

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