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

_Resource_ функция **decort_cb_image** служит для управления образом.

## Аргументы

_Resource_ функция **decort_cb_image** для создания образа принимает следующие аргументы:

| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| name | string | :heavy_check_mark: | Имя образа<br/>При изменении - изменяет название образа |
| url | string | :x: | Адрес образа<br/>Для создания ресурса обязательно должен быть указан или url, или image_file  |
| file_path | string | :x: | Путь к образу<br/>Для создания ресурса обязательно должен быть указан или url, или image_file |
| gid | int | :heavy_check_mark: | Grid id образа |
| boot_type | string | :heavy_check_mark: | Тип загрузки образа,<br/>возможные варианты: "bios" или "uefi" |
| image_type | string | :heavy_check_mark: | Тип образа,<br />возможные варианты - "linux", "windows" |
| drivers | []string | :heavy_check_mark: | Драйвера,<br/>возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"] |
| accounts | []int | :x: | Список имеющих доступ к образу ID аккаунтов |
| hot_resize | bool | :x: | Фильтр образов, разрешающих hot resize |
| username | string | :x: | Имя пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| password | string | :x: | Пароль пользователя,<br/>может быть использован как при создании, так и редактировании образа |
| account_id | int | :x: | ID аккаунта владельца образа,<br/>может быть использован как при создании, так и редактировании образа |
| username_dl | string | :x: | Имя пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| password_dl | string | :x: | Пароль пользователя для загрузки бинарных данных,<br/>может быть использован как при создании, так и редактировании образа |
| sep_id | int | :x: | ID storage endpoint |
| pool_name | string | :x: | Пул для создания образа |
| architecture | string | :x: | Используется при создании, <br/>архитектура системы образа<br/>доступные значения: "X86_64"<br/>по-умолчанию "X86_64" |
| permanently | bool | :x: | Мгновенное удаление<br/>можно использовать перед удалением |
| bootable | bool | :x: | Фильтр загрузочных образов |
| enabled | bool | :x: | Доступность образа,<br/>используется при редактировании ресурса |
| computeci_id | int | :x: | Установка computeci,<br/>используется на уже созданном ресурсе,<br/>чтобы сбросить, необходимо передать 0 |
| sync_mode | bool | :x: | Синхронное создание образа, используется при создании |
| enabled_stacks | []int | :x: | Доступные стаки,<br/>используется на уже созданном ресурсе<br/>для удаления всех доступных стаков, необходимо передать пустой массив |
| shared_with | []int | :x: | Настройка доступа образа аккаунтам<br/>используется на уже созданном ресурсе,<br/>пустой маасив - удаление всех доступов, если они были |
| reason | string | :x: | Причина удаления<br/>можно использовать перед удалением |

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

В случае успешного выполнения _resource_ функция **decort_cb_image** возвращает в указанную при вызове переменную следующие значения:

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

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

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

Пример вызова _resource_ функции **decort_cb_image**:

```terraform
resource "decort_cb_image" "my_image" {
  #имя образа
  #обязательный параметр
  #тип - строка
  #при изменении - изменяет название созданного образа
  name = "test_image_rename"

  #адрес образа
  #опциональный параметр
  #внимание, для создания ресурса обязательно должен быть указан или url, или image_file
  #тип - строка
  url = "https://colba.decs.online/index.php/s/G3H7AREngzeKGw2/download"

  #путь к образу для загрузки
  #опциональный параметр
  #внимание, для создания ресурса обязательно должен быть указан или url, или image_file
  #тип - строка
  file_path = "img.iso"

  #grid id образа
  #обязательный параметр
  #тип - целое число
  gid = 212

  #тип загрузки образа
  #обязательный параметр
  #тип - строка
  #возможные варианты: "bios" или "uefi"
  boot_type = "bios"

  #тип образа
  #обязательный параметр
  #тип - строка
  #возможные варианты - "linux", "windows"
  image_type = "linux"

  #драйвера
  #обязательный параметр
  #тип - массив строк
  #возможные варианты - ["KVM_X86", "SVA_KVM_X86"], ["KVM_X86"], ["SVA_KVM_X86"]
  drivers = ["KVM_X86", "SVA_KVM_X86"]

  #поддержка hot resize
  #опциональный параметр
  #тип - булев
  #hot_resize = true

  #id аккаунта владельца образа
  #опциональный параметр
  #может быть использован как при создании,
  #так и при редактировании образа
  #тип данных - целое число
  #account_id = 57252

  #имя пользователя и пароль 
  #опциональные параметры, 
  #могут быть использованы как при создании образа,
  #так и при его редактировании
  #тип - строка
  #username = "Valera"
  #password = "123"

  #имя пользователя и пароль для загрузки бинарных данных
  #опциональные параметры, 
  #могут быть использованы как при создании образа,
  #так и при его редактировании
  #тип - строка
  #username_dl = "Valera1"
  #password_dl = "1231"

  #sep id
  #опциональный параметр, используется при создании
  #тип - целое число
  #sep_id       = 1206

  #пул для создания образа
  #опциональный тип, используется при создании образа
  #тип - строка
  #pool_name    = "vmstor"

  #архитектура системы образа
  #опциональный параметр, используется при создании
  #тип - строка
  #доступные значения: "X86_64"
  #architecture = "X86_64"

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

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

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

  #настройка доступа образа аккаунтам
  #опциональный параметр, используется на уже созданном ресурсе
  #тип - массив целых чисел
  #пустой массив - удаление всех доступов, если они были
  #shared_with = [28096, 57121]

  #установка computeci
  #опциональный параметр, используется на уже созданном ресурсе
  #тип - целое число
  #чтобы сбросить, необходимо передать 0
  #computeci_id = 1

  #доступные стаки
  #опциональный параметр, используется на уже созданном ресурсе
  #тип - массив целых чисел
  #для удаления всех доступных стаков, необходимо передать пустой массив
  #enabled_stacks = [9]

  #аккаунты, которым предоставляется доступ к образу
  #опциональный параметр
  #тип - массив целых чисел
  #для удаления всех доступных аккаунтов, необходимо передать пустой массив
  #accounts = [9, 5]

  #мгновенное удаление
  #опциональный параметр, можно использовать перед удалением
  #тип - булев
  #permanently = true

  #причина удаления
  #опциональный параметр, можно использовать перед удалением
  #тип - строка
  #reason = "test"

  #наименование сетевого интерфейса для вашего компьютера с Linux, eth - встроенный, ens - pci слот
  #опциональный параметр
  #тип - строка
  #network_interface_naming = "ens"
}
```

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

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