/*
Пример использования
Ресурса диска:
1. Создание ресурса
2. Изменение ресурса
3. Удаление ресурса
*/

#Раскомментируйте этот код,
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером

/*
terraform {
  required_providers {
    decort = {
      source  = "basis/decort/decort"
      version = "<VERSION>"
    }
  }
}
*/

provider "decort" {
  authenticator        = "decs3o"
  #controller_url = <DECORT_CONTROLLER_URL>
  controller_url       = "https://ds1.digitalenergy.online"
  #oauth2_url = <DECORT_SSO_URL>
  oauth2_url           = "https://sso.digitalenergy.online"
  allow_unverified_ssl = true
}

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

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

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

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

  #max IOPS disk can perform
  #опциональный параметр
  #тип - целое число
  #по умолчанию - 2000
  #используется при создании
  #iops = 1

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

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

  #список 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
  #}
}

output "test" {
  value = decort_cb_disk.my_disk01
}
