/*
Ресурс образа из платформенного диска:
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_image_from_platform_disk" "my_image" {
  #id платформенного диска
  #обязательный параметр
  #тип - целое число
  #используется при создании
  disk_id = 1234

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

  #тип загрузки образа
  #обязательный параметр
  #тип - строка
  #возможные варианты: "bios" или "uefi"
  #используется при создании
  boot_type = "bios"

  #тип образа
  #обязательный параметр
  #тип - строка
  #возможные варианты - "linux", "windows", "unknown"
  #используется при создании
  image_type = "linux"

  #архитектура образа
  #обязательный параметр
  #возможные значения - X86_64
  #тип - строка
  #используется при создании
  architecture = "X86_64"

  #драйверы компьютов, подходящие для данного образа
  #обязательный параметр
  #тип - массив строк
  #используется при создании
  drivers = ["KVM_X86"]

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

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

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

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

  #поддержка hot resize
  #опциональный параметр
  #тип - булев
  #используется при создании и обновлении
  #hot_resize = true

  #является ли образ загрузочным 
  #тип - булев
  #используется при создании и обновлении
  #bootable = true

  #флаг для создания образа в асинхронном режиме
  #опциональный параметр
  #по умолчанию - false
  #тип - булев
  #используется при создании
  #async_mode = true

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

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

  #установка computeci
  #опциональный параметр
  #тип - целое число
  #чтобы сбросить, необходимо передать 0
  #используется при обновлении
  #computeci_id = 1

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

  #наименование сетевого интерфейса для вашего компьютера с Linux
  #eth - встроенный, ens - pci слот
  #опциональный параметр
  #тип - строка
  #используется при обновлении
  #network_interface_naming = "ens"
}

output "test" {
  value = decort_cb_image_from_platform_disk.my_image
}
