/*
Пример использования
Работы с ресурсом basic service group
Ресурс позволяет:
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_bservice_group" "bsg" {
  #id basic service
  #обязательный параметр
  #тип - целое число
  #используется при создании
  service_id = 444444

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

  #id группы
  #опциональный параметр
  #тип - целое число
  #применяется при создании .tfstate - файла, если группа имеется в плафторме
  #compgroup_id = 33333

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

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

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

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

  #id образа диска
  #обязательный параметр
  #используется при создании
  image_id = 2222

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

  #id Storage endpoint provider 
  #опциональный параметр
  #тип - целое число
  #используется при создании
  #sep_id = 3

  #наименование SEPPool, используется если установлен sepId, также может быть пустым
  #опциональный параметр
  #тип - строка
  #используется при создании
  #sep_pool = "name"

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

  #id сетей extnet
  #опциональный параметр
  #тип - массив целых чисел
  #используется при создании и обновлении
  #должен быть использован vins или extnets
  #extnets = [1111, 2222]

  #id сетей vinses
  #опциональный параметр
  #тип - массив целых чисел
  #используется при создании и обновлении
  #должен быть использован vins или extnets
  #vinses = [1111, 2222]

  #время таймуата перед стартом
  #опциональный параметр
  #тип - целое число
  #используется при создании
  #timeout_start = 0

  #перечень аргументов для cloud-init создаваемым группам узлов Worker
  #опциональный параметр
  #тип - файл в формате YAML
  #используется при создании
  #cloud_init = file("initconfig.tftpl")

  #чипсет для добавляемых виртуальных машин
  #возможные значения - i440fx, Q35
  #по умолчанию - i440fx
  #опциональный параметр
  #тип - строка
  #используется при создании
  #chipset = "i440fx"

  #id групп родителей
  #опциональный параметр
  #тип - массив целых чисел
  #используется при создании и обновлении
  #parents = [2222]

  #принудительное обновление параметров выч. мощностей  (ram,disk,cpu) и имени группы
  #опциональный параметр
  #тип - булев
  #используется при обновлении
  #по умолчанию - false
  #force_update   = true

  #старт/стоп вычислительных мощностей
  #опциональный параметр
  #тип - булев
  #используется при создании и обновлении
  #по умолчанию - false
  #start = false

  #принудительная остановка вычислительных мощностей
  #опциональный параметр
  #тип - булев
  #используется при обновлении
  #по умолчанию - false
  #force_stop = false

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

  #режим увеличения числа выч. мощностей
  #опциональный параметр
  #тип - строка
  #используется в связке с comp_count при редактировании группы
  #возможные варианты - RELATIVE и ABSOLUTE
  #используется при обновлении
  #по умолчанию - "RELATIVE"
  #mode = "RELATIVE"

}

output "test" {
  value = decort_bservice_group.bsg
}
