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

_Resource_ функция **decort_cb_disk** служит для управления дисковыми ресурсами ("disk") в облачной платформе DECORT.

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

| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| account_id | int | :heavy_check_mark: | id аккаунта |
| disk_name | string | :heavy_check_mark: | Наименование диска |
| size_max | int | :heavy_check_mark: | Размер диска, ГБ |
| storage_policy_id | int | :heavy_check_mark: | ID политики хранения |
| node_ids | []int | :x: | Список ID ресурсов, которым будет предоставлен диск |
| pool | string | :x: | Pool для расположения диска |
| sep_id | int | :x: | id sep |
| desc | string | :x: | Описание диска |
| detach | bool | :x: | Отсоединение диска от compute. Используется при удалении |
| permanently | bool | :x: | Мгновенное удаление диска. Используется при удалении |
| shareable | bool | :x: | Флаг, отвечающий за доступность диска дургим ресурсам |
| restore | bool | :x: | Восстановление диска |
| iotune | Struct{<br/>read_bytes_sec int<br/>read_bytes_sec_max int<br/>read_iops_sec int<br/>read_iops_sec_max int<br/>size_iops_sec int<br/>total_bytes_sec int<br/>total_bytes_sec_max int<br/>total_iops_sec int<br/>total_iops_sec_max int<br/>write_bytes_sec int<br/>write_bytes_sec_max int<br/>write_iops_sec int<br/>write_iops_sec_max int<br/>} | :x: | Информация об ограничениях IO диска<br/>Кол-во байт для чтения в секунду<br/>Максимальное кол-во байт для чтения<br/>&nbsp;<br/>Кол-во операций чтения io в секунду<br/>Максимальное число io операций чтения<br/>Размер io операций<br/>Общий размер байт в секунду<br/>Максимальный общий размер байт в секунду<br/>&nbsp;<br/>Общее кол-во io операций в секунду<br/>Максимальное общее кол-во io операций в секунду<br/>&nbsp;<br/>Кол-во байт для записи в секунду<br/>Максимальное кол-во байт для записи в секунду<br/>&nbsp;<br/>Кол-во операций записи в секунду<br/>Максимальное число операций записей<br/>&nbsp;<br/> |

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

| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | Уникальный идентификатор аккаунта-владельца диска |
| account_name | string | Имя аккаунта ("account"), которому принадлежит данный диск |
| acl | string | Acces Control List | 
| boot_partition | int | Кол-во разделов диска |
| computes | []Struct [см. ниже](#описание-структуры-computes) | Информация о подключенных виртуальных машинах |
| created_by | string | Юзернейм создавшего диск пользователя |
| created_time | int | Время создания |
| deleted_by | string | Юзернейм удалившего диск пользователя |
| deleted_time | int | Время удаления |
| desc | string | Текстовое описание диска |
| destruction_time | int | Время окончательного удаления |
| devicename | string | Наименование устройства |
| disk_id | int | Идентификатор диска. Дублирует значение параметра `id`. |
| disk_path | string | Адрес диска |
| gid | int | Идентификатор площадки (grid id) |
| guid | int | Идентификатор диска |
| image_id | int | Идентификатор образа, содержимое которого было склонировано/скопировано в данный диск при его создании. 0 означает, что данный диск не создавался как клон/копия какого-либо образа |
| images | []int | Идентификаторы образов, использующих диск |
| iotune | Struct [см. ниже](#описание-структуры-iotune) | Информация об ограничениях IO диска |
| iqn | string | iqn диска |
| login | string | Логин для доступа к диску |
| machine_id | int | id машины |
| machine_name | string | Наименование машины |
| milestones | int | Вехи |
| disk_name | string | Наименование диска |
| order | int | Номер диска |
| params | string | Параметры диска |
| parent_id | int | id родительского диска |
| passwd | string | Пароль для доступа к диску |
| pci_slot | int | id pci слота, к которому подключен диск |
| pool | string | Имя пула в системе хранения, на ресурсах которой размещён данный диск |
| present_to | map[string]int | Список ID ресурсов, которым предоставлен диск |
| purge_attempts | int | Кол-во попыток удаления |
| purge_time | int | Время последней попытки |
| replication | Struct{} [см. ниже](#описание-структуры-replication) | Информация о реплике диска |
| reality_device_number | int | Реальный номер устройства |
| reference_id | int | id ссылки на диск |
| res_id | int | id ресурса |
| res_name | string | Наименование ресурса |
| role | string | Роль диска |
| sep_id | int | Идентификатор Storage Endpoint Provider (SEP). SEP это способ идентифицировать конкретную систему хранения, на ресурсах которой размещён данный диск |
| sep_type | string | Тип SEP. Определяет тип системы хранения и содержит одно из заданных в облачной платформе значений |
| shareable | bool | Флаг, отвечающий за доступность диска дургим ресурсам |
| size_max | int | Размер диска в ГБ |
| size_used | float | Кол-во используемого места, в ГБ |
| snapshots | []Struct [см. ниже](#описание-структуры-snapshots) | Снимки состояния диска |
| status | string | Статус диска |
| storage_policy_id | int | ID политики хранения |
| tech_status | string | Технический статус диска |
| to_clean | bool | Необходимость очистки диска перед его удалением |
| type | string | Тип диска с точки зрения его роли в составе _compute_. Может принимать одно из фиксированных значений:<br/>"B" - признак загрузочного диска ("boot").<br/>"D" - признак дополнительного диска ("data") |
| vmid | int | Идентификатор виртуальной машины (устаревшее) |
| updated_by | string | Юзернейм обновившего диск пользователя |
| updated_time | int | Время обновления |

### Описание структуры computes
| Параметр | Тип | Описание |
| --- | --- | --- |
| compute_id | int | Идентификатор compute (виртуальной машины) |
| compute_name | string | Название compute (виртуальной машины) |

### Описание структуры iotune
| Параметр | Тип | Описание |
| --- | --- | --- |
| read_bytes_sec | int | Кол-во байт для чтения в секунду |
| read_bytes_sec_max | int | Максимальное кол-во байт для чтения |
| read_iops_sec | int | Кол-во операций чтения io в секунду |  |
| read_iops_sec_max | int | Максимальное число io операций чтения |
| size_iops_sec | int | Размер io операций |
| total_bytes_sec | int | Общий размер байт в секунду |
| total_bytes_sec_max | int | Максимальный общий размер байт в секунду |
| total_iops_sec | int | Общее кол-во io операций в секунду |
| total_iops_sec_max | int | Максимальное общее кол-во io операций в секунду |
| write_bytes_sec | int | Кол-во байт для записи в секунду |
| write_bytes_sec_max | int | Максимальное кол-во байт для записи в секунду |
| write_iops_sec | int | Кол-во операций записи в секунду |
| write_iops_sec_max | int | Максимальное число операций записей |

### Описание структуры replication 
| Параметр | Тип | Описание |
| --- | --- | --- |
| disk_id | int | id диска |
| pool_id | string | id пула |
| role | string | Роль диска (главный или реплика) |
| self_volume_id | string | id раздела |
| storage_id | int | id хранилища |
| volume_id | int | id раздела |

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

## Пример использования
```terraform
resource "decort_cb_disk" "my_disk1" {
  #id аккаунта
  #обязательный параметр
  #тип - целое число
  #используется при создании
  account_id = 88366

  #название диска
  #обязательный параметр
  #тип - строка
  #используется при создании и обновлении
  disk_name = "super-disk-re"

  #максимальный размер диска, в ГБ
  #обязательный параметр
  #тип - целое число
  #по умолчанию - 10
  #используется при создании и обновлении
  size_max = 20

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

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

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

  #название pool
  #опциональный параметр
  #тип - строка
  #используется при создании
  #pool = 1

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

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

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

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

  #флаг отсоединения диска от машины перед удалением
  #опциональный параметр
  #тип - булев
  #используется при удалении
  #detach = true

  #настройки лимитов операций записи/чтения с диска
  #опциональный параметр
  #тип - блок
  #тип вложенных полей - целое число
  #используется при создании и обновлении
  #iotune {
    #read_bytes_sec      = 0
    #read_bytes_sec_max  = 0
    #read_iops_sec       = 0
    #read_iops_sec_max   = 0
    #size_iops_sec       = 0
    #total_bytes_sec     = 0
    #total_bytes_sec_max = 0
    #total_iops_sec      = 3000
    #total_iops_sec_max  = 0
    #write_bytes_sec     = 0
    #write_bytes_sec_max = 0
    #write_iops_sec      = 0
    #write_iops_sec_max  = 0
  #}
}
```

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

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