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

_Resource_ функция **decort_cb_lb_backend** служит для управления бекендом балансировщика нагрузки (load balancer). Балансировщики нагрузки служат для равномерного распределения сетевой нагрузки между подключенными к ним сервисами. 

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

| Аргумент  | Тип    |    Обязательный    | Описание                                                                                                                                                                                     |
|-----------|--------|:------------------:|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| lb_id     | int    | :heavy_check_mark: | ID балансировщика нагрузки                                                                                                                                                                   |
| name      | string | :heavy_check_mark: | Название бекенда                                                                                                                                                                             |
| algorithm | string |        :x:         | Алгоритм работы бекенда. По умолчанию - "roundrobin". Доступные значения: "roundrobin", "static-rr", "leastconn"                                                                             |
| inter     | int    |        :x:         | Интервал между проверками, в миллисекундах. Настройка севера по умолчанию. Значение по умолчанию - 5000.                                                                                     |
| downinter | int    |        :x:         | Интервал между проверками доступности сервера после восстановления, в миллисекундах. Настройка севера по умолчанию. Значение по умолчанию - 1000.                                            |
| rise      | int    |        :x:         | Кол-во проверок, которые сервер должен успешно пройти. Настройка севера по умолчанию. Значение по умолчанию - 2.                                                                             |
| fall      | int    |        :x:         | Кол-во проверок, которые сервер может не пройти и после этого получить статус "unavailable". Настройка севера по умолчанию. Значение по умолчанию - 2.                                       |
| slowstart | int    |        :x:         | Кол-во миллисекунд - время между получением сервера статуса "available" и открытием соединений. Настройка севера по умолчанию. Значение по умолчанию - 60000.                                |
| maxconn   | int    |        :x:         | Максимальное кол-во соединений сервера, при достижении этого кол-ва, сервер выходит из схемы балансирования. Настройка севера по умолчанию. Значение по умолчанию - 250.                     |
| maxqueue  | int    |        :x:         | Максимальное кол-во соединений в очереди сервера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер. Настройка севера по умолчанию. Значение по умолчанию - 256. |
| weight    | int    |        :x:         | Вес сервера для балансировки. Диапазон от 0 до 255. Настройка севера по умолчанию. Значение по умолчанию - 100.                                                                              |

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

| Параметр  | Тип                                                | Описание                                                                                                                                                                                     |
|-----------|----------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| lb_id     | int                                                | ID балансировщика нагрузки                                                                                                                                                                   |
| name      | string                                             | Название бекенда                                                                                                                                                                             |
| algorithm | string                                             | Алгоритм работы бекенда. По умолчанию - "roundrobin". Доступные значения: "roundrobin", "static-rr", "leastconn"                                                                             |
| inter     | int                                                | Интервал между проверками, в миллисекундах. Настройка севера по умолчанию. Значение по умолчанию - 5000.                                                                                     |
| downinter | int                                                | Интервал между проверками доступности сервера после восстановления, в миллисекундах. Настройка севера по умолчанию. Значение по умолчанию - 1000.                                            |
| rise      | int                                                | Кол-во проверок, которые сервер должен успешно пройти. Настройка севера по умолчанию. Значение по умолчанию - 2.                                                                             |
| fall      | int                                                | Кол-во проверок, которые сервер может не пройти и после этого получить статус "unavailable". Настройка севера по умолчанию. Значение по умолчанию - 2.                                       |
| slowstart | int                                                | Кол-во миллисекунд - время между получением сервера статуса "available" и открытием соединений. Настройка севера по умолчанию. Значение по умолчанию - 60000.                                |
| maxconn   | int                                                | Максимальное кол-во соединений сервера, при достижении этого кол-ва, сервер выходит из схемы балансирования. Настройка севера по умолчанию. Значение по умолчанию - 250.                     |
| maxqueue  | int                                                | Максимальное кол-во соединений в очереди сервера, при достижении этого кол-ва, соединения будут перенаправлены на другой сервер. Настройка севера по умолчанию. Значение по умолчанию - 256. |
| weight    | int                                                | Вес сервера для балансировки. Диапазон от 0 до 255. Настройка севера по умолчанию. Значение по умолчанию - 100.                                                                              |
| guid      | string                                             | ID ресурса                                                                                                                                                                                   |
| servers   | []Struct{} [см. ниже](#описание-структуры-servers) | Список серверов                                                                                                                                                                              |

### Описание структуры servers
| Параметр        | Тип                                             | Описание             |
|-----------------|-------------------------------------------------|----------------------|
| address         | string                                          | Адрес сервера        |
| check           | string                                          | Включены ли проверки |
| guid            | string                                          | ID ресурса           |
| name            | string                                          | Имя сервера          |
| port            | int                                             | Порт сервера         |
| server_settings | [см. ниже](#описание-структуры-server_settings) | Настройки сервера    |

### Описание структуры server_settings
| Параметр  | Тип    | Описание                                                                                         |
|-----------|--------|--------------------------------------------------------------------------------------------------|
| downinter | int    | Интервал между проверками на недоступность сервера                                               |
| inter     | int    | Интервал между проверками на доступность сервера                                                 |
| rise      | int    | Кол-во попыток, после которых, сервер будет вновь включен в схему балансирования                 |
| fall      | int    | Кол-во неудачных попыток, после которых, сервер получит статус "unavailable"                     |
| guid      | string | ID ресурса                                                                                       |
| slowstart | int    | Интервал, в мс, в через который сервер получит статус "available"                                |
| maxconn   | int    | Кол-во соединений к северу, при достижении этого кол-ва, сервера выходит из схемы балансирования |
| maxqueue  | int    | Кол-во соедений в очереди к серверу                                                              |
| weight    | int    | Вес сервера для работы алгоритма балансирования по весу                                          |

## Импортирование ресурса
Так как ресурс lb_backend является подресурсом lb, то для его импорта необходимо указать ID балансировщика, а так же само имя ресурса.  
Общая схема:
```terraform
terraform import decort_cb_lb_backend.<var> <lb_id>#<backend-name>
```
Пример:
```
terraform import decort_cb_lb_backend.lb 777#testBackend
```

## Ограничение на наименование ресурса
Ресурс не должен содержать в названии символ `#`

## Пример использования
Пример вызова _resource_ функции **decort_cb_lb_backend**:
```terraform
resource "decort_cb_lb_backend" "lbb" {
  lb_id = 777
  name = "testBackend"
  #algorithm = "roundrobin"

  #-------------------
  #настройки для серверов по умолчанию
  #-------------------

  #inter = 5000
  #downinter = 1000
  #rise = 2
  #fall = 2
  #slowstart = 60000
  #maxconn = 250
  #maxqueue = 256
  #weight = 100
}
```

После успешного завершения такого вызова **decort_cb_lb_backend** в переменной `decort_cb_lb_backend.lb` будут сохранены возвращаемые значения.
