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

_Resource_ функция **decort_cb_virtual_image** служит для управления виртуальным образом. Виртуальный образа создаются на основе уже созданных ранее образов, таким образом, они привязываются к уже созданным образам. Образ, на основе которого создан виртуальный диск, удалить невозможно - для этого необходимо удалить виртуальный образ, либо связать его с другим образом.

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

| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| name | string | :heavy_check_mark: | Имя виртуального образа                                                                                                                 |  
| link_to | int | :heavy_check_mark: | Используется при редактировании ресурса<br/>изменение связи виртуального образа |
| account_id | int | :x: | ID аккаунта владельца образа<br/>может быть использован при редактировании образа |
| bootable | bool | :x: | Является ли образ загрузочным |
| computeci_id | int | :x: | Установка computeci,<br/>используется на уже созданном ресурсе,<br/>чтобы сбросить, необходимо передать 0 |
| enabled | bool | :x: | Доступность образа,<br/>используется при редактировании ресурса |
| hot_resize | bool | :x: | Использует ли машина горячее изменение размера образа |
| username | string | :x: | Имя пользователя,<br/>может быть использован при редактировании образа |
| password | string | :x: | Пароль пользователя,<br/>может быть использован при редактировании образа |
| shared_with | []int | :x: | Настройка доступа образа аккаунтам<br/>используется на уже созданном ресурсе,<br/>пустой маасив - удаление всех доступов, если они были |
| enabled_stacks | []int | :x: | Доступные стаки,<br/>используется на уже созданном ресурсе<br/>для удаления всех доступных стаков, необходимо передать пустой массив |

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

| Параметр | Тип | Описание |
| --- | --- | --- |
| unc_path | string | unc path |
| ckey | string | CKey |
| account_id | int | account ID привязки образа |
| acl | []Struct [см. ниже](#описание-структуры-acl) | Cписок Acces Control |
| architecture | string | Архитектура образа, возможен вариант X86_64 |
| boot_type | string | Тип запуска ОС - bios или uefi |
| bootable | bool | Является ли образ загрузочным |
| 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 | Название образа |
| 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 | map[string]int | Список ID ресурсов для который предоставлен образ |
| sep_id | int | storage endpoint provider ID |
| shared_with | []int | Список ресурсов, имеющих доступ к образу |
| size | int | Размер образа |
| snapshot_id | string | ID снапшота |
| status | string | Статус образа |
| tech_status | string | Технический статус |
| image_type | string | Тип образа: linux, windows или другой |
| url | string | Адрес, которого осуществлялась загрузка образа |
| username | string | Имя пользователя образа |
| version | string | Версия |

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

## Пример использования
Пример вызова _resource_ функции **decort_cb_virtual_image**:
```terraform
resource "decort_cb_virtual_image" "my_image" {
  #имя виртуального образа
  #обязательный параметр
  #тип - строка
  #используется при создании и обновлении
  name = "test_vi_im_new_rename"

  #id образа, на основе которого будет создан виртуальный
  #обязательный параметр
  #тип - целое число
  #используется при создании и обновлении
  link_to = 6125

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

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

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

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

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

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

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

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

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

# once the above directive completes, virtual image will be accessible 
# as decort_cb_virtual_image.my_image
```

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

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