/*
Пример использования
Ресурса image
Ресурс позволяет:
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" "my_image" {
  #имя образа
  #обязательный параметр
  #тип - строка
  #при изменении - изменяет название созданного образа
  name = "test_image_rename"

  #адрес образа
  #опциональный параметр
  #внимание, для создания ресурса обязательно должен быть указан или url, или image_file
  #тип - строка
  url = "https://colba.decs.online/index.php/s/G3H7AREngzeKGw2/download"

  #путь к образу для загрузки
  #опциональный параметр
  #внимание, для создания ресурса обязательно должен быть указан или url, или image_file
  #тип - строка
  file_path = "img.iso"

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

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

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

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

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

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

  #имя пользователя и пароль 
  #опциональные параметры, 
  #могут быть использованы как при создании образа,
  #так и при его редактировании
  #тип - строка
  #username = "Valera"
  #password = "123"

  #имя пользователя и пароль для загрузки бинарных данных
  #опциональные параметры, 
  #могут быть использованы как при создании образа,
  #так и при его редактировании
  #тип - строка
  #username_dl = "Valera1"
  #password_dl = "1231"

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

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

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

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

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

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

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

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

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

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

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

output "test" {
  value = decort_cb_image.my_image
}
