/*
Пример использования
Ресурса диска:
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" "acl" {
  #id аккаунта
  #обязательный параметр
  #тип - целое число
  account_id  = 88366

  #gid
  #обязательный параметр
  #тип - целое число
  gid         = 212

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

  #тип диска
  #обязательный параметр
  #тип - строка
  #допустимые значения: "D", "B", "T"
  type    = "D"

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

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

  #размер ssd
  #опциональный параметр
  #тип - целое число
  #значение по умолчанию 0
  #ssd_size    = 1

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

  #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
  }
}

output "test" {
  value = decort_cb_disk.acl
}
