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

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

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

   #правила    
   #опциональный параметр
   #тип - блок
   #используется при обновлении 
   #rules {              
             #направление движения
             #обязательный параметр 
             #тип - строка
             #возможные значения - inbound, outbound              
             #direction = "inbound"

             #версия протокола IP 
             #опциональный параметр
             #тип - строка
             #возможные значения - IPv4, IPv6
             #значение по умолчанию - IPv4
             #ethertype = "IPv4"

             #сетевой протокол
             #опциональный параметр
             #тип - строка
             #возможные значения - icmp, tcp, udp
             #protocol = "icmp"

             #номер начального порта (для TCP/UDP)
             #опциональный параметр
             #тип - целое число
             #port_range_min = 11

             #номер конечного порта (для TCP/UDP)
             #опциональный параметр
             #тип - целое число
             #port_range_max = 15

             #удаленный IP префикс в нотации CIDR
             #опциональный параметр 
             #тип - строка
             #remote_ip_prefix = "192.168.1.0/24"

          #}
} 

output "test" {
  value = decort_security_group.name
}