diff --git a/XX.-Модуль-decort_kvmvm.md b/XX.-Модуль-decort_kvmvm.md
new file mode 100644
index 0000000..c40ec4f
--- /dev/null
+++ b/XX.-Модуль-decort_kvmvm.md
@@ -0,0 +1,91 @@
+# Модуль decort_kvmvm
+## XX.1 Обзор модуля _decort_kvmvm_
+Модуль _decs_osimage_ предназначен для предназначен для выполнения следующих действий над виртуальными серверами, созданными на базе технологии виртуализации KVM, в облачной платформе DECORT:
+1. Создание нового виртуального сервера указанной аппаратной архитектуры. Платформа поддерживает виртуальные сервера архитектуры Intel x86 и IBM PowerPC.
+2. Изменение конфигурации существующего виртуального сервера:
+ - Изменение количества выделенных CPU и виртуальной ОЗУ. Следует иметь ввиду, что изменение этих параметров в меньшую сторону может потребовать перезагрузки гостевой ОС.
+ - Увеличение размера загрузочного диска.
+3. Изменение состояния существующего виртуального сервера:
+ - Выключение / включение.
+ - Перезагрузка, приостановка / возобновление работы гостевой ОС.
+4. Удаление существующего виртуального сервера.
+5. Получение информации о существующем виртуальном сервере без изменения его конфигурации.
+
+
+## XX.2 Параметры модуля _decort_kvmvm_
+Ниже в алфавитном порядке приведен полный список параметров для модуля _decs_kvmvm_. Актуальную информацию по параметрам, которые поддерживает версия модуля, установленного на вашем Ansible-сервере, можно получить командой:
+
+`ansible-doc -t module decort_kvmvm`
+
+| Параметр | Тип, допустимые значения | Описание |
+| --- | --- | --- |
+| annotation | (string) | Опциональное описание виртуального сервера. Этот параметр используется только в момент создания нового виртуального сервера и игнорируется при любых действиях над существующими серверами. |
+| app_id | (string) | Идентификатор приложения, использующийся для подключения к контроллеру облачной платформы DECS в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима.
Если параметр не задан в _playbook_, модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_APP_ID_. |
+| app_secret | (string) | Секретный ключ приложения, который используется для подключения к контроллеру облачной платформы DECS в режиме `authenticator: oauth2`. Данный параметр является обязательным для указанного режима. Так как он содержит секретную информацию, то его не рекомендуется задавать непосредственно в _playbook_.
Если параметр не задан в _playbook_, то модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_APP_SECRET_. |
+| authenticator | Значения:
`legacy`
`oauth2`
`jwt` <- default | Режим аутентификации при подключении к контроллеру облачной платформы DECS. |
+| boot_disk | (dict) | Конфигурация загрузочного диска виртуального сервера. Данный параметр является обязательным при создании нового виртуального сервера. Для существующих виртуальных серверов этот параметр является опциональным – с его помощью можно увеличить размер загрузочного диска. Параметр представляет собой словарь со следующими ключами:
* (int) `size` – размер диска в GB.
* (string) `pool` – пул дисковых ресурсов, из которого будет предоставлен данный загрузочный диск. Имена пулов могут меняться от одной модели СХД к другой. Если указанный пул не найден, модуль ожидает, что платформа создаст дисковый ресурс в “default” пуле, который всегда должен присутствовать.
Обратите внимание, что загрузочный диск будет создан на той же системе хранения, где размещён образ ОС (см. параметры `image_name` или `image_id`), на базе которого создаётся данный виртуальный сервер. |
+| controller_url | (string) | URL контроллера, соответствующего экземпляру облачной платформы DECS, в рамках которого должен быть создан (или уже существует) данный виртуальный сервер.
Данный параметр является обязательным. |
+| cpu | (int) | Количество виртуальных CPU, выделенных виртуальному серверу.
Параметр является обязательным при создании нового сервера, во всех других случаях он опциональный. Если указать его для уже существующего сервера, то будет выполнена попытка изменить количество CPU.
Следует иметь ввиду, что _уменьшение_ количества CPU у работающего сервера, как правило, потребует его перезагрузки. |
+| datacenter | (string) | Целевой _datacenter_ под управлением заданного DECS контроллера, где размещается данный виртуальный сервер.
Этот параметр является обязательным при создании нового виртуального сервера, когда вместе с сервером также требуется создать виртуальный сетевой сегмент, в котором он будет расположен. При всех прочих операциях данный параметр игнорируется. |
+| id | (int) | Уникальный цифровой идентификатор виртуального сервера внутри платформы.
Этот параметр используется как один из методов идентификации существующего сервера (альтернатива – по комбинации `name`, `vdc_name` и `tenant`) и игнорируется при создании нового сервера, так как для нового сервера облачная платформа назначает этот идентификатор автоматически.
Если при вызове модуля _decort_kvmvm_ существующий виртуальный сервер идентифицируется по своему `id`, то параметры `tenant`, `vdc_name` и `vdc_id` игнорируются. |
+| image_id | (int)| Уникальный цифровой идентификатор образа ОС, на базе которого следует создать виртуальный сервер.
При создании нового виртуального сервера требуется задать этот параметр или параметр `image_name`. При любых других операциях данные параметры игнорируются.
Если заданы оба этих параметра (`image_id` и `image_name`), то `image_name` игнорируется. Для получения `image_id` по `image_name` можно использовать модуль _decort_osimage_. |
+| image_name | (string) | Название образа ОС, на базе которого следует создать виртуальный сервер.
При создании нового виртуального сервера требуется задать этот параметр или параметр `image_id`. При любых других операциях данные параметры игнорируются.
Параметр `image_name` должен задаваться в точном соответствии с тем, как назван нужный образ ОС в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов). |
+| jwt | (string) | JSON Web Token (JWT), который будет использоваться для подключения к контроллеру облачной платформы DECS в режиме `authenticator: jwt`
Данный параметр является обязательным для указанного режима.
Так как он содержит потенциально секретную информацию, а сам JWT, как правило, имеет ограниченное время жизни, то его не рекомендуется задавать непосредственно в _playbook_.
Если этот параметр не определен в _playbook_, то модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_JWT_. |
+| name | (string) | Название виртуального сервера.
Чтобы модуль _decort_kvmvm_ мог управлять сервером по его названию, также необходимо задать комбинацию `tenant` и `rg_name` или идентификатор `rg_id`.
Параметр должен задаваться в точном соответствии с тем, как назван сервер в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов).
Если для существующего виртуального сервера указаны и `name`, и `id`, то параметр `name` игнорируется и идентификация сервера выполняется по его `id`. |
+| oauth2_url | (string) | URL авторизационного сервера, работающего по протоколу _Oauth2_, который должен использоваться в режиме `authenticator: oauth2`.
Данный параметр является обязательным для указанного режима.
Если параметр не задан в _playbook_, модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_OAUTH2_URL_. |
+| password | (string) | Пароль для подключения к контроллеру облачной инфраструктуры DECS в режиме `authenticator: legacy`.
Данный параметр является обязательным для указанного режима.
Так как он содержит секретную информацию, то его не рекомендуется задавать в _playbook_.
Если параметр не задан в _playbook_, то модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_PASSWORD_. |
+| ram | (int) | Объем оперативной памяти (RAM) в MB, выделенной данному виртуальному серверу.
Параметр является обязательным при создании нового сервера. Если указать его для уже существующего сервера, то будет выполнена попытка изменить объем выделенной серверу памяти.
Следует иметь ввиду, что уменьшение объема памяти работающего сервера в большинстве случаев потребует его перезагрузки. |
+| rg_id | (int) | Уникальный цифровой идентификатор уже существующей ресурсной группы (RG), в которой будет создан новый или находится уже существующий виртуальный сервер.
Данный параметр является одним из методов идентификации существующей RG (альтернативой является задание комбинации `tenant` и `rg_name`). |
+| rg_name | (string) | Имя уже существующей ресурсной группы (RG), в которой будет создан новый или находится уже существующий виртуальный сервер.
Данный параметр является одним из методов идентификации существующей RG, когда задается пара `tenant` и `rg_name` (альтернативой является задание rg_id, однако такой метод применим только для уже существующих RG).
Параметр должен задаваться в точном соответствии с тем, как нужная ресурсная группа названа в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов).
Если заданы и `rg_id`, и `rg_name`, то параметр `rg_name` игнорируется. |
+| ssh_key | (string) | Открытая часть SSH ключа, который необходимо авторизовать на создаваемом виртуальном сервере для пользователя, заданного параметром `ssh_key_user`.
Данный параметр применим только для Linux серверов, является опциональным, используется только при создании нового сервера и игнорируется при других операциях. |
+| ssh_key_user | (string) | Имя пользователя на уровне гостевой ОС (только для Linux серверов) для которого авторизуется SSH ключ, заданный параметром `ssh_key`.
Данный параметр является обязательным, если задан `ssh_key`, используется только при создании нового сервера и игнорируется при других операциях. |
+| state | Значения:
`present` <- default
`absent`
`poweredon`
`poweredoff`
`halted`
`paused`
`check` | Целевое состояние виртуального сервера на выходе из модуля _decort_kvmvm_.
Значение 'halted' - синоним к 'poweredoff'.
Значение 'check' вызывает модуль в _read-only_ режиме и считывает характеристики существующего виртуального сервера. |
+| tags | (string) | Строка, содержащая набор текстовых меток, которые надлежит присвоить данному виртуальному серверу.
Данные текстовые метки представляют собой произвольный текст, который можно использовать для группировки и индексирования виртуальных серверов во внешних приложениях.
Параметр является опциональным.|
+| tenant | (string) | Имя подписчика, которому будет принадлежать новый виртуальный сервер (или уже принадлежит существующий).
Параметр должен задаваться в точном соответствии с тем, как назван нужный подписчик в облачной инфраструктуре (с соблюдением заглавных и строчных символов, а также пробелов).
Этот параметр является опциональным и используется в сценариях, когда вместе с новым виртуальным сервером создается новый виртуальный сетевой сегмент (_VDC_), в котором будет размещаться данный сервер, или когда уже существующий целевой сегмент задается комбинацией `tenant` и `vdc_name`. |
+| user | (string) | Имя пользователя, непосредственно зарегистрированного на контроллере облачной инфраструктуры DECS, которое используется для подключения к контроллеру в режиме `authenticator: legacy`.
Данный параметр является обязательным для указанного режима.
Если параметр не задан в _playbook_, модуль _decort_kvmvm_ будет использовать значение переменной окружения _DECS_USER_.|
+| verify_ssl | (bool)
`True` <- default
`False` | Позволяет отключить проверку SSL сертификатов при выполнении API вызовов в адрес контроллера облачной инфраструктуры, например, при работе с изолированной облачной инфраструктурой, использующей самоподписанные сертификаты.
Применяйте данный параметр с осторожностью, предпочтительно в защищенных средах. |
+| workflow_callback | (string) | URL, по которому вышестоящее приложение (например, пользовательский портал или оркестратор верхнего уровня, инициирующий запуск Ansible playbook) ожидает API вызова, в параметрах которого модуль _desc_vm_ будет оперативно передавать информацию о своем статусе и текущей фазе исполнения.
Данный параметр является опциональным.
Функциональность callbacks в текущей версии модуля _decort_kvmvm_ не реализована.|
+| workflow_context | (string) | Контекстная информация, которая будет содержаться в параметрах API вызова, адресованного к `workflow_callback` URL.
Данная информация призвана однозначно идентифицировать задачу, выполняемую модулем в настоящий момент, чтобы оркестратор верхнего уровня мог сопоставить получаемые через вызов `workflow_callback` данные со своим внутренним состоянием и отслеживать инициированные им задачи.
Параметр является опциональным и имеет значение только при условии, что также задан `workflow_callback`.
Функциональность callbacks в текущей версии модуля _decort_kvmvm_ не реализована.|
+
+
+## XX.3 Возвращаемые значения модуля _decort_kvmvm_
+При успешном выполнении модуль _decs_osimage_ возвращает словарь `osimage_facts` со следующими ключами:
+
+| Ключ | Тип данных | Описание |
+| --- | --- | --- |
+| id | int | Уникальный цифровой идентификатор образа ОС в платформе DECS. |
+| name | string | Имя образа ОС. |
+| size | int | Размер образа ОС в ГБ. |
+| type | string | Тип образа ОС. Доступные типы: `Linux`, `Windows`, `Other`. |
+| state | string | Текущее состояние образа ОС. Доступные статусы: `CREATED`, `DISABLED`. |
+
+## 12.4 Пример использования модуля _decort_kvmvm_
+В данном примере сначала извлекается идентификатор образа ОС, а затем на базе этого образа создается виртуальный сервер.
+
+```
+
+- name: create new x86 KVM VM according to the specs
+ decort_kvmvm:
+ authenticator: oauth2
+ app_id: "{{ my_app_id }}"
+ app_secret: "{{ my_app_secret }}"
+ oauth2_url: "https://sso.decs.online"
+ controller_url: "https://cloud.digitalenergy.online"
+ name: NewVM01
+ arch: KVM_X86
+ state: present
+ cpu: 2
+ ram: 4096
+ boot_disk:
+ size: 10
+ image_id: "{{ ubuntu_img.osimage_facts.id }}"
+ rg_id: "MyFirstRG"
+ annotation: "My new x86 VM created and managed with decort_kvmvm module"
+ delegate_to: localhost
+ register: kvmvm01_specs
+...
+```
+
+Обратите внимание, как используется идентификатор образа ОС при создании нового виртуального сервера (в предположении, что результат выполнения _task_ для модуля _decs_osimage_ был сохранен в переменной `ubuntu_img`):
+
+` image_id: "{{ ubuntu_img.osimage_facts.id }}"`
\ No newline at end of file