Функция доступна в версии провайдера 4.10.1 и выше.

_Resource_ функция **decort_security_group** служит для управления группами безопасности на платформе DECORT.

## Аргументы
_Resource_ функция **decort_security_group** принимает следующие аргументы:

| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| account_id | int | :heavy_check_mark: | ID аккаунта создателя группы безопасности |
| name | string | :heavy_check_mark: | Имя группы безопасности |
| description | string | :x: | Описание группы безопасности |
| rules | []Struct [см. ниже](#описание-блока-rules) | :x: |Список правил для группы безопасности |

### Описание блока rules
| Параметр | Тип | Описание |
| --- | --- | --- |
| direction | string | :heavy_check_mark: | Направление правила |
| ethertype | string | :x: | Выбраный протокол сетевого уровня |
| protocol | string | :x: | Протокол сети |
| port_range_min | int | :x: | Стартовый порт для TCP/UDP |
| port_range_max | int | :x: | Конечный порт для TCP/UDP |
| remote_ip_prefix | string | :x: | Префикс IP в записи CIDR |

## Возвращаемые значения

В случае успешного выполнения _data source_ функция **decort_security_group** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:

| Параметр | Тип | Описание |
| --- | --- | --- | 
| security_group_id | int | Уникальный идентификатор группы безопасности | 
| account_id | int | ID аккаунта создателя группы безопасности |
| description | string | Описание группы безопасности | 
| name | string | Имя группы безопасности | 
| rules | []Struct [см. ниже](#описание-структуры-rules) | Список правил для группы безопасности |  
| created_at | int | Когда создан группа безопасности |  
| created_by | string | Кем создан группа безопасности |  
| updated_at | int | Когда обновлён группа безопасности |  
| updated_by | string | Кем обновлён группа безопасности |

### Описание структуры rules
| Параметр | Тип | Описание |
| --- | --- | --- |
| id | int | ID правила |
| direction | string | Направление правила |
| ethertype | string | Выбраный протокол сетевого уровня |
| protocol | string | Протокол сети |
| port_range_min | int | Стартовый порт для TCP/UDP |
| port_range_max | int | Конечный порт для TCP/UDP |
| remote_ip_prefix | string | Префикс IP в записи CIDR |


## Пример использования
```terraform
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
}
```

Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://repository.basistech.ru/BASIS/wiki-terraform-provider-decort/src/branch/main/4.11.3/04.02-Инициализация-Terraform-провайдера-DECORT.md) и [пример](https://repository.basistech.ru/BASIS/wiki-terraform-provider-decort/src/branch/main/4.11.3/02.-Пример-работы.md)). 

После успешного завершения такого вызова **decort_security_group** в переменной `data.decort_security_group.name` будут сохранены возвращаемые значения. В частности, для получения идентификатора сети следует использовать конструкцию `data.decort_security_group.name.id`