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

_Resource_ функция **decort_cb_kvmvm** служит для управления виртуальными машинами, создаваемыми в платформе DECORT на базе технологии виртуализации KVM.

Важно: при удалении в конфигурационном файле Terraform любого блока disks, на платформе будет удален последний. При необходимости удалить не последний блок, рекомендуем пользоваться web интерфейсом платформы. Поведение будет исправлено в следующих версиях.

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

| Аргумент | Тип                                                           | Обязательный       | Описание                                                                                                                                                                                                                                       |
| --- |---------------------------------------------------------------|--------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| name | string                                                        | :heavy_check_mark: | Имя виртуальной машины. Обратите внимание, что имя должно быть уникальным в рамках ресурсной группы.                                                                                                                                           |
| rg_id | int                                                           | :heavy_check_mark: | Идентификатор ресурсной группы, которой принадлежит данная виртуальная машина.                                                                                                                                                                 |
| driver | string                                                        | :heavy_check_mark: | Аппаратная архитектура виртуальной машины.<br/>Может принимать одно из следующих значений:<br/> * "KVM_X86" - виртуальная машина KVM на аппаратной платформе x86.<br/> * "KVM_PPC" - виртуальная машина KVM на аппаратной платформе IBM Power. |
| cpu | int                                                           | :heavy_check_mark: | Количество процессоров.                                                                                                                                                                                                                        |
| ram | int                                                           | :heavy_check_mark: | Объём оперативной памяти в МБ.<br/>                                                                                                                                                                                                            |
| image_id | int                                                           | :heavy_check_mark: | Идентификатор образа, на базе которого создаётся загрузочный диск виртуальной машины.<br/>                                                                                                                                                     |
| boot_disk_size | int                                                           | :x:                | Размер загрузочного диска виртуальной машины в ГБ.                                                                                                                                                                                             |
| sep_id | int                                                           | :x:                | ID SEP для создания загрузочного диска. Если не задан, будет использоваться sepId образа. Значение по умолчанию 0.                                                                                                                             |
|pool| string                                                        | :x:                | Пул (если установлен sepId). Если значение не задано, то пул будет выбран системой.                                                                                                                                                            |
| cloud_init | string                                                        | :x:                | Используется на этапе создания вм.<br/>Параметры для утилиты _cloud_init_, которая используется в платформе DECORT для первичного конфигурирования виртуальной машины после её создания.                                                       |
| description | string                                                        | :x:                | Текстовое описание виртуальной машины.                                                                                                                                                                                                         |
|force_resize| bool                                                        | :x:                | Флаг для изменения CPU и RAM в принудительном порядке                                                                                                                                                      |
| started | bool                                                          | :x:                | Флаг запуска машины,<br/>по-умолчанию - true.<br/>Если true - машина включена,<br/>если false - выключена.                                                                                                                                     |
|alt_boot_id| int                                                           | :x:                | ID live CD-ROM для загрузки образа.                                                                                                                                                                                                            |
| stack_id   | int                                                           | :x:                | id стэка                                                                                                                                                                                                                                       |
| is                        | string                                                        | :x:                | Наименование системы                                                                                                                                                                                                                           |
| ipa_type            | string                                                        | :x:                | Тип аутентификатора                                                                                                                                                                                                                            |
| custom_fields | string                                                        | :x:                | Кастомные поля                                                                                                                                                                                                                                 |
| network | []Struct [см. ниже](#описание-блока-network-args)             | :x:                | Параметры сетевого подключения.<br/>Если нужно сконфигурировать несколько сетевых подключений, данный блок можно задавать многократно - по одному на каждое подключение.                                                                       |
| reason     | string                                                        | :x:                | Причина вызова                                                                                                                                                                                                                                 |
| affinity_label      | string                                                        | :x:                | Метка для правил affinity                                                                                                                                                                                                                      |
| affinity_rules      | []Struct [см. ниже](#описание-блока-affinity_rules-args)      | :x:                | Блок описания правил affinity. Блоков может быть несколько, один или отсутствовать.                                                                                                                                                            |
| anti_affinity_rules | []Struct [см. ниже](#описание-блока-anti_affinity_rules-args) | :x:                | Блок описания правил anti-affinity. Блоков может быть несколько, один или отсутствовать.                                                                                                                                                       |
| disks               | []Struct [см. ниже](#описание-блока-disks-args)               | :x:                | Описание диска. Таких может быть любое кол-во, либо не быть вообще                                                                                                                                                                             |
| extra_disks | []int                                                         | :x:                | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым.                                                                  |
| tags                | []Struct [см. ниже](#описание-блока-tags-args)                | :x:                | Задание тэгов компьюта                                                                                                                                                                                                                         |
| port_forwarding     | []Struct [см. ниже](#описание-блока-port_forwarding-args)     | :x:                | Настройка порт форвардинга для компьюта                                                                                                                                                                                                        |
| user_access         | []Struct [см. ниже](#описание-блока-user_access-args)         | :x:                | Предоставление доступов к компьюту                                                                                                                                                                                                             |
| snapshot            | []Struct [см. ниже](#описание-блока-snapshot-args)            | :x:                | Создание мнапшотов                                                                                                                                                                                                                             |
| rollback            | []Struct [см. ниже](#описание-блока-rollback-args)            | :x:                | Rollback на определенный снапшот                                                                                                                                                                                                               |
| cd                  | []Struct [см. ниже](#описание-блока-cd-args)                  | :x:                | Добавление диска cd rom                                                                                                                                                                                                                        |
| pin_to_stack        | bool                                                          | :x:                | Флаг, отвечающий за добавление кмпьюта в стэк                                                                                                                                                                                                  |
|target_stack_id| int                                                           |:x: | Узел, на который переместится машина                                                                                                                                                                                                           |
|force_pin| bool                                                          |:x:| Флаг для принужительного добавления компьюта на стэк                                                                                                                                                                                           |
|enabled| bool                                                          |:x:| Флаг доступности компьюта для проведения с ним операций                                                                                                                                                                                        |
| pause               | bool                                                          | :x:                | Флаг, отвкчающий за pause/resume компьюта                                                                                                                                                                                                      |
| reset               | bool                                                          | :x:                | Флаг, отвкчающий за reset компьюта                                                                                                                                                                                                             |
|restore| bool                                                          |:x:| Восстановить удаленный компьют из корзины                                                                                                                                                                                                      |
| auto_start          | bool                                                          | :x:                | Флаг, отвечающий за авто старт при редеплое компьюта                                                                                                                                                                                                                                                                       |
| force_stop          | bool                                                          | :x:                | Флаг, отвечающий за стоп при редеплое компьюта                                                                                                                                                                                                                                                                             |
| data_disks          | string                                                        | :x:                | Указание того, что делать с дисками при редеплое. Возможные значения: "KEEP", "DETACH" и "DESTROY"                                                                                                                                                                                                                         |
| detach_disks        | bool                                                          | :x:                | Отсоединение прикрепленных к виртуальной машине дисков перед ее удалением. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса                                                                                                                                  |
| permanently         | bool                                                          | :x:                | Мгновенное удаление виртуальной машины, минуя корзину. Параметр считывается только при использовании команды `terraform destroy`, то есть только при удалении ресурса                                                                                                                                                      |

### Описание блока disks args

| Аргумент    | Тип    | Обязательный       | Описание                                                                                                                                                                                                                                           |
| ----------- | ------ | ------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| disk_name   | string | :heavy_check_mark: | Наименование диска                                                                                                                                                                                                                                 |
| size        | int    | :heavy_check_mark: | Размер диска, GB                                                                                                                                                                                                                                   |
| disk_type   | string | :x:                | Тип диска. Возможные значения: "D" - диск с данными, "B" - загрузочный диск                                                                                                                                                                        |
| sep_id      | int    | :x:                | ID storage endpoint                                                                                                                                                                                                                                |
| pool        | string | :x:                | Наименование пула для размещения диска                                                                                                                                                                                                             |
| desc        | string | :x:                | Описание диска                                                                                                                                                                                                                                     |
| image_id    | int    | :x:                | ID образа                                                                                                                                                                                                                                          |
| permanently | bool   | :x:                | Флаг для удаления диска. Если выставлен в true - диск будет моментально удален с платформы, иначе будет добавлен в корзину и его можно будет восстановить. Значение поля считывается только при операции `terraform destroy`. По умолчанию - false |

### Описание блока network args

| Аргумент | Тип    | Обязательный       | Описание                                                                                     |
| -------- |--------|--------------------| -------------------------------------------------------------------------------------------- |
| net_type | string | :heavy_check_mark: | тип сети, соответствующей данному подключению. "EXTNET" в случае прямого подключения во внешнюю сеть, "VINS" в случае подключения к Virtual Network Segment.                                         |
| net_id   | int    | :heavy_check_mark: | идентификатор соответствующего сетевого сегмента: внешней сети в случае `net_type = "EXTNET"` и ViNS в случае `net_type = "VINS"` |
| ip_address     | string | :x:                | IP адрес, выделенный данному подключению.                 |
| mac      | string | :x:                |MAC адрес, назначенный соответствующему сетевому интерфейсу виртуальной машины.                                                                                |

### Описание блока affinity_rules args

| Аргумент | Тип    | Обязательный       | Описание                                                                                     |
| -------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- |
| topology | string | :heavy_check_mark: | Тип правила. Возможные значения - node, compute                                              |
| policy   | string | :heavy_check_mark: | Строгость правила. Возможные значения - RECOMMENDED (рекомендовано) и REQUIRED (обязательно) |
| mode     | string | :heavy_check_mark: | Режим проверки. Возможные значения - EQ (равно), NE (не равно), ANY - любое                  |
| key      | string | :heavy_check_mark: | Ключ правила                                                                                 |
| value    | string | :x: | Значение правила                                                                             |

### Описание блока anti_affinity_rules args

| Аргумент | Тип    | Обязательный       | Описание                                                                                     |
| -------- | ------ | ------------------ | -------------------------------------------------------------------------------------------- |
| topology | string | :heavy_check_mark: | Тип правила. Возможные значения - node, compute                                              |
| policy   | string | :heavy_check_mark: | Строгость правила. Возможные значения - RECOMMENDED (рекомендовано) и REQUIRED (обязательно) |
| mode     | string | :heavy_check_mark: | Режим проверки. Возможные значения - EQ (равно), NE (не равно), ANY - любое                  |
| key      | string | :heavy_check_mark: | Ключ правила                                                                                 |
| value    | string | :x: | Значение правила                                                                             |

### Описание блока tags args

| Аргумент | Тип    | Обязательный       | Описание      |
| -------- | ------ | ------------------ | ------------- |
| key      | string | :heavy_check_mark: | Ключ тэга     |
| val      | string | :heavy_check_mark: | Значение тэга |

### Описание блока port_forwarding args

| Аргумент          | Тип    | Обязательный       | Описание                                                           |
| ----------------- | ------ | ------------------ | ------------------------------------------------------------------ |
| public_port_start | int    | :heavy_check_mark: | Начало диапазона внешних портов для данного правила pfw            |
| public_port_end   | int    | :x:                | Конец диапазона внешних портов для данного правила pfw             |
| local_port        | int    | :heavy_check_mark: | Локальный порт для данного правила pfw                             |
| proto             | string | :heavy_check_mark: | Протокол создания правила pfw. Возможные значения: "tcp" или "udp" |

### Описание блока user_access args

| Аргумент    | Тип    | Обязательный       | Описание                                                                               |
| ----------- | ------ | ------------------ | -------------------------------------------------------------------------------------- |
| username    | string | :heavy_check_mark: | Юзер, которому необходимо выдать определенные права на компьют                         |
| access_type | string | :heavy_check_mark: | Права, которые выдадутся юзеру на компьют. Возможные значения: "R", "RCX" или "ARCXDU" |

### Описание блока snapshot args

| Аргумент | Тип    | Обязательный       | Описание       |
| -------- | ------ | ------------------ | -------------- |
| label    | string | :heavy_check_mark: | Лейбл снапшота |

### Описание блока rollback args

| Аргумент | Тип    | Обязательный       | Описание                                         |
| -------- | ------ | ------------------ | ------------------------------------------------ |
| label    | string | :heavy_check_mark: | Лейбл снапшота на который нужно сделать rollback |

### Описание блока cd args

| Аргумент | Тип | Обязательный       | Описание                         |
| -------- | --- | ------------------ | -------------------------------- |
| cdrom_id | int | :heavy_check_mark: | Идентификатор образа cdrom диска |

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

| Параметр | Тип                                                     | Описание                                                                                                                                                                      |
| --- |---------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| account_id | int                                                     | Уникальный идентификатор подписчика-владельца ("account") данной виртуальной машины.                                                                                          |
| account_name | string                                                  | Имя подписчика, которому принадлежит данная виртуальная машина.                                                                                                               |
| acl | []Struct [см. ниже](#описание-структуры-acl)            | Cписок Acces Control                                                                                                                                                          |
| affinity_label | string                                                  | Лейбл аффинити                                                                                                                                                                |
| affinity_rules | []Struct [см. ниже](#описание-структуры-affinity-rules) | Правила аффинити для компьютов                                                                                                                                                |
| affinity_weight | int                                                     | weight аффинити                                                                                                                                                               |
| anti_affinity_rules | []Struct [см. ниже](#описание-структуры-affinity-rules) | Правила анти аффинити для компьютов                                                                                                                                           |
| arch | string                                                  | Архитектура                                                                                                                                                                   |
| boot_order | []string                                                | Boot order                                                                                                                                                                    |
|cd_image_id| int                                                     | cd image id                                                                                                                                                                   |
| clone_reference | int                                                     | кол-во клонов                                                                                                                                                                 |
| clones | []int                                                   | id клонов                                                                                                                                                                     |
| compute_id | int                                                     | Идентификатор экземпляра _compute_, соответствующего данной виртуальной машине.                                                                                               |
| computeci_id | int                                                     | ID вычислительного ресурса                                                                                                                                                    |
| cpu | int                                                     | Количество виртуальных CPU, выделенных данному серверу.                                                                                                                       |
| created_by | string                                                  | Кем создан _compute_                                                                                                                                                          |
| created_time | int                                                     | Время создания _compute_                                                                                                                                                      |
| custom_fields | string                                                  | Кастомные поля                                                                                                                                                                |
| deleted_by | string                                                  | Кем удален _compute_                                                                                                                                                          |
| deleted_time | int                                                     | Время удаления _compute_                                                                                                                                                      |
| description | string                                                  | Текстовое описание виртуальной машины.                                                                                                                                        |
| devices | string                                                  | Девайсы                                                                                                                                                                       |
| disks | []Struct [см. ниже](#описание-структуры-disks)          | информация о дисках компьюта                                                                                                                                                  |
| driver | string                                                  | Аппаратная архитектура данной виртуальной машины.                                                                                                                             |
| gid | int                                                     | GRID ID                                                                                                                                                                       |
| guid | int                                                     | ID ресурса                                                                                                                                                                    |
| image_id | int                                                     | Идентификатор образа ОС, на базе которого создан загрузочный диск этой виртуальной машины.                                                                                    |
| interfaces | []Struct [см. ниже](#описание-структуры-interfaces)     | Информация о интерфейсах компьюта                                                                                                                                             |
| lock_status | string                                                  | Статус доступности                                                                                                                                                            |
| manager_id | int                                                     | Manager id                                                                                                                                                                    |
| manager_type | string                                                  | Type manager                                                                                                                                                                  |
| migrationjob | int                                                     | Migrationjob                                                                                                                                                                  |
| milestones | int                                                     | Вехи                                                                                                                                                                          |
| name | string                                                  | Имя компьюта                                                                                                                                                                  |
| need_reboot                 | bool                                                    | Флаг перезапуска                                                                                                                                                              |
| os_users                 | []Struct [см. ниже](#описание-структуры-os-users)       | Имена и пароли пользователей гостевой ОС, установленные платформой при создании виртуального сервера.                                                                         |
| pinned | bool                                                    | добавлен ли компьют на стек                                                                                                                                                   |
| ram | int                                                     | Объём оперативной памяти в МБ, выделенной этой виртуальной машине.                                                                                                            |
| reference_id | string                                                  | ID ссылки                                                                                                                                                                     |
| registered | bool                                                    | Компьют зарегестрирован                                                                                                                                                       |
| res_name | string                                                  | Наименование ресурса                                                                                                                                                          |
| rg_id | int                                                     | Идентификатор ресурсной группы, к которой принадлежит виртуальная машина.                                                                                                     |
| rg_name | string                                                  | Имя ресурсной группы, к которой принадлежит виртуальная машина.                                                                                                               |
| snap_sets | []Struct [см. ниже](#описание-структуры-snap-sets)      | Snap sets                                                                                                                                                                     |
| stack_id   | int                                                     | id стэка                                                                                                                                                                      |
|    stack_name     | string                                                  | Название стэка                                                                                                                                                                |
| stateless_sep_id | int                                                     | ID сеп                                                                                                                                                                        |
| stateless_sep_type | string                                                  | Тип сеп                                                                                                                                                                       |
| status | string                                                  | Статус компьюта                                                                                                                                                               |
| tags | []Struct [см. ниже](#описание-структуры-tags)           | Тэги                                                                                                                                                                          |
| tech_status | string                                                  | Технический статус компьюта в составе группы                                                                                                                                  |
| updated_by | string                                                  | Кем компьют был обновлен                                                                                                                                                      |
| updated_time | int                                                     | Время последнего обновления                                                                                                                                                   |
| user_managed    | bool                                                    | Флаг, показывает управление пользователем вычислительной мощностью                                                                                                            |
| vgpus | []int                                                   | Список vgpu                                                                                                                                                                   |
| virtual_image_id | int                                                     | ID виртуального образа                                                                                                                                                        |
| boot_disk_id | int                                                     | Идентификатор загрузочного диска виртуальной машины.                                                                                                                          |
| boot_disk_size | int                                                     | Размер загрузочного диска в ГБ.                                                                                                                                               |
| sep_id | int                                                     | ID sep                                                                                                                                                                        |
| pool | string                                                  | Pool                                                                                                                                                                          |
| extra_disks | []int                                                   | Список идентификаторов дополнительных дисков, которые подключены к данной виртуальной машине помимо загрузочного диска. Если такие диски отсутствуют, то список будет пустым. |
| network | []Struct [см. ниже](#описание-структуры-network)                                  | Характеристики сетевых сегментов, к которым подключен данный сервер.                                                                                                          |

### Описание структуры network
| Параметр | Тип | Описание |
| --- | --- | --- |
| net_id | int | ID сети |
| net_type | string | Тип сети |
| ip_address | string | IP адрес |
| mac | string | MAC адрес |

### Описание структуры os users
| Параметр | Тип | Описание |
| --- | --- | --- |
| guid | string | GUID |
| login | string | Логин |
| password | string | Пароль |
| public_key | string | Публичный ssh ключ |

### Описание структуры tags
| Параметр | Тип | Описание |
| --- | --- | --- |
| key | string | Ключ тэга |
| val | string | Значение тэга |

### Описание структуры snap sets
| Параметр | Тип | Описание |
| --- | --- | --- |
| disks | []int | Список id дисков |
| guid | string | GUID |
| label | string | Лейбл |
| timestamp | int | Время |

### Описание структуры interfaces
| Параметр | Тип | Описание |
| --- | --- | --- |
| conn_id | int | ID connect |
| conn_type | string | Тип connect |
| def_gw | string | Шлюз по умолчанию |
| flip_group_id | int | id flip group |
| guid | string | GUID |
| ip_address | string | IP адрес |
| listen_ssh | bool | открыт ли ssh connect |
| mac | string | MAC адрес устройства |
| name | string | Имя |
| net_id | int | ID сети |
| netmask | int | Маска сети |
| net_type | string | Тип сети |
| pci_slot | int | Pci Slot |
| qos | []Struct{}[см. ниже](#описание-структуры-qos)| QOS |
| target | string | Цель сети |
| type | string | Тип |
| vnfs | []int | VNFS |

### Описание структуры qos
| Параметр | Тип | Описание |
| --- | --- | --- |
| e_rate | int | E rate |
| guid | string | ID ресурса |
| in_brust | int | In brust |
| in_rate | int | In rate |

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

### Описание структуры affinity rules
| Параметр | Тип | Описание |
| --- | --- | --- |
| guid | string | guid |
| key | string | Ключ |
| mode | string | Режим сравнения |
| policy | string | Степень "строгости" этого правила |
| topology | string | Топология |
| value | string | Значение |

### Описание структуры disks
| Параметр | Тип | Описание |
| --- | --- | --- |
| pool | string | Имя пула в системе хранения, на ресурсах которой размещён данный диск |
| sep_id | int | Идентификатор Storage Endpoint Provider (SEP). SEP это способ идентифицировать конкретную систему хранения, на ресурсах которой размещён данный диск |
| size | int | Размер диска в ГБ |
| disk_type | string | Тип диска с точки зрения его роли в составе _compute_. Может принимать одно из фиксированных значений:<br/>"B" - признак загрузочного диска ("boot").<br/>"D" - признак дополнительного диска ("data") |
| disk_name             | string                                             | Наименование диска                                                                                                                                                                                     |
| desc | string | Описание |
| image_id | int | ID образа |
| disk_id | int | ID диска |
| shareable | bool | Флаг, отвечающий за доступность диска дургим ресурсам |
| size_max | int | Максимальный размер диска |
| size_used | int | Кол-во используемого места, в ГБ |

### Описание структуры snapshots
| Параметр | Тип | Описание |
| --- | --- | --- |
| guid | string | id снимка |
| label | string | Наименование снимка |
| res_id | string | Ссылка на снимок |
| snap_set_guid | string | Установленный id снимка |
| snap_set_time | int | Установленное время снимка |
| timestamp | int | Время снимка |

## Пример использования
В нижеприведённом примере с помощью _resource_ функции **decort_cb_kvmvm** создаётся виртуальная машина (экземпляр _compute_ в терминологии платформы DECORT) следующими характеристиками:
* Имя виртуальной машины - "tf-managed-vm"
* Характеристики виртуальной машины - 1 CPU, 1024Мб RAM, размер загрузочного диска 10Гб
* К виртуальной машине будет подключён один дополнительный диск с идентификатором 56789
* Идентификатор ресурсной группы, в которой создаётся виртуальная машина - поступает из переменной _decort_cb_rg.my_rg.id_
* Идентификатор образа ОС, который будет установлен на загрузочный диск - поступает из переменной _data.decort_cb_image.os_image.id_
* Виртуальная машина будет иметь одно сетевое подключение - во внешнюю сеть с идентификатором 12, IP адрес этого подключения платформа установит автоматически

```terraform
resource "decort_cb_kvmvm" "my_new_vm" {
   name = "tf-managed-vm"
   rg_id = decort_resgroup.my_rg.id
   driver = "KVM_X86"      # "KVM_PPC" for IBM Power or "KVM_X86" for Intel
   cpu = 1               # CPU count
   ram = 1024            # RAM size in MB, must be even number, ideally a power of 2
   image_id = data.decort_cb_image.os_image.id
  
   boot_disk_size  = 10  # Boot disk size in GB
   #sep_id = 1 #ID сепа для boot диска
   #pool = "data02" #Название пула
   #cloud_init = file("initconfig.tftpl") #конфигурация cloud init
   #description = "Test KVM VM Compute managed by Terraform"
   #stack_id = 1

/*
  #Создание и добавление диска для compute
    disks {
    disk_name = "disk_name"
    size = 5
    
    #disk_type = "D"
    #sep_id = 1
    #pool = "data01"
    #desc = ""
    #image_id = 378
    #permanently = false
  }
*/

/*
  #правила affinity
    affinity_rules {
    topology = "compute"
    policy   = "RECOMMENDED"
    mode     = "ANY" #возможные значения - ANY, EQ, NE
    key      = "testkey"
    value    = "testvalue"
    }
*/

/*
  #правила anti-affinity
    anti_affinity_rules {
    topology = "compute"
    policy   = "RECOMMENDED"
    mode     = "ANY" #возможные значения - ANY, EQ, NE
    key      = "testkey"
    value    = "testvalue"
    }
*/

  #affinity_label = "test4"
  #is=""
  #ipa_type = ""
  extra_disks = [ 56789 ]


  #Присоеденения сетей и удаление сетей в компьюте
    network {
     net_type = "EXTNET"
     net_id = 12
     #ip_address = "127.0.0.1"
    }

  
/*
  #добавление и удаление тэгов
    tags {
      key = "key"
      value = "value"
    }
*/

/*
  #добавление и удаление port forwarding
    port_forwarding {
      public_port_start = 2023
      local_port = 80
      proto = "tcp"
      
      #public_port_end = 2023
    }
*/

/*
  #предоставить/забрать пользователю доступ к компьюту
    user_access {
      username = "some@decs3o"
      access_type = "ARCXDU"
    }
*/
  
/*
  #Создать/удалить снапшот компьюта
    snapshot {
      label = "label1"
    }
*/

/*
  #Rollback на нужный снапшот
    rollback {
      label = "label1"
    }
*/

/*
  #Вставить/удалить СD rom
    cd {
    cdrom_id = 344
    }
*/

  #pin_to_stack = true
  #target_stack_id = 1
  #force_pin = true

  #enabled = true
  #pause = true
  #reset = true
  #restore = true
  #auto_start = true
  #force_stop = true
  #alt_boot_id = 1
  #custom_fields = "dict"

  #data_disks = "KEEP"
  #started = true
  #detach_disks = true
  #permanently = false
  
  #reason = "test"
}
```

Данный пример подразумевает, что ранее по тексту tf-файла :
* выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.5.3/04.02-Инициализация-Terraform-провайдера-DECORT.md)). 
* создан ресурс типа decort_resgroup (см. _resource_ функцию [decort_resgroup](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.5.3/07.01.02-Resource_decort_resgroup.md)) и результат записан в переменную _decort_resgroup.my_rg_ 
* считана информация об образе ОС(см. _data_ функцию [decort_image](https://repository.basistech.ru/BASIS/terraform-provider-decort/src/branch/main/wiki/4.5.3/06.01.07-Data_decort_image.md)) и результат записан в переменную _decort_resgroup.os_image_ 

После успешного завершения такого вызова _resource_ функции **decort_cb_kvmvm** в переменной `decort_cb_kvmvm.my_new_vm` будут сохранены возвращаемые значения. В частности, для получения идентификатора виртуальной машины следует использовать конструкцию `decort_cb_kvmvm.my_new_vm.id`.
