/*
Пример использования
Управление балансировщиком нагрузки (load balancer)
Ресурс позволяет:
1. Создавать load balancer
2. Редактировать load balancer
3. Удалять load balancer
/*

#Раскомментируйте этот код
#и внесите необходимые правки в версию и путь,
#чтобы работать с установленным вручную (не через hashicorp provider registry) провайдером
/*
terraform {
  required_providers {
    dynamix = {
      source  = "basistech.ru/tf/dynamix"
      version = "<VERSION>"
    }
  }
}
*/

provider "dynamix" {
  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 "dynamix_lb" "lb" {
  #id ресурсной группы для со
  #обязательный параметр
  #тип - целое число
  rg_id = 1111

  #наименование load balancer
  #обязательный параметр
  #тип - строка
  name = "tf-test-lb"

  #id внешней сети
  #опциональный параметр
  #id внешней сети и id виртуальной сети не могут быть одновременно = 0
  #тип - целое число
  #extnet_id = 6

  #id виртуальной сети
  #опциональный параметр
  #id внешней сети и id виртуальной сети не могут быть одновременно = 0
  #тип - целое число
  #vins_id = 758

  #флаг запуска load balancer
  #обязательный параметр
  #если load balancer был в статусе "stopped" (start = false), 
  #то для успешного старта, он должен быть доступен (enable = true)
  #по умолчанию - true
  #тип - булев
  #start = true

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

  #описание
  #опциональный параметр
  #тип - строка
  #desc = "temp super lb for testing tf provider"

  #флаг доступности load balancer
  #опциональный параметр
  #тип - булев
  #enable = true

  #флаг перезапуска load balancer
  #перезагрузка срабатывает только при изменении флага с false или null на true
  #опциональный параметр
  #тип - булев
  #restart = false

  #флаг сброса конфигурации load balancer
  #сброс срабатывает только при изменении флага с false или null на true
  #опциональный параметр
  #тип - булев
  #config_reset = false

  #флаг моментального удаления load balancer
  #опциональный параметр
  #применяется при выполнении команды terraform destroy
  #по умолчанию - true
  #тип - булев
  #permanently = true

  #флаг восстановления load balancer
  #опциональный параметр
  #восстановить можно load balancer, удаленным с флагом permanently = false
  #по умолчанию - true
  #тип - булев
  #restore = true

  #флаг используемый при рестарте load balancer
  #опциональный параметр
  #при значении  "true" рестарт производится на обоих нодах в HA mode
  #значение по умолчанию - true
  #тип - булев
  #safe = true

  #пользовательские значения sysctl для LB
  #опциональный параметр
  #тип - список мап
  #sysctl_params = [{key = "1", value = "some" }]

}

output "test" {
  value = dynamix_lb.lb
}
