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

_Data source_ функция **decort_cb_vins** служит для получения информации об уже существующем виртуальном сетевом сегменте (Virtual Network Segment, ViNS).

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

| Аргумент | Тип | Обязательный | Описание |
| --- | --- | --- | --- |
| vins_id | int | :heavy_check_mark: | id vins |

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

| Параметр | Тип | Описание |
| --- | --- | --- |
| vins_id | int | id vins |
| vnf_dev | []Struct [см. ниже](#описание-структуры-vnf_dev) | Виртуальный маршрутизатор внутренней сети |
| account_id | int | ID подписчика ("account"), которому принадлежит ViNS. |
| account_name | string | Имя подписчика ("account"), которому принадлежит ViNS. |
| created_by | string | Аккаунт, создавший vins |
| created_time | int | Время создания vins |
| default_gw | string | Шлюз по умолчанию |
| default_qos | Struct [см. ниже](#описание-структуры-default_qos) | QOS по умолчанию |
| deleted_by | string | Пользователь, удаливший vins |
| deleted_time | int | Время удаления vins |
| description | string | Текстовое описание ViNS. |
| gid | int | GRID ID |
| guid | int | ID ресурса |
| lock_status | string | Статус доступности |
| manager_id | int | Manager id |
| manager_type | string | Type of manager |
| milestones | int | Вехи |
| name | string | Имя ViNS. |
| netmask | int | Маска сети |
| network | string | Информация о сети |
| pre_reservations_num | int | Кол-во зарезервированных ip адресов |
| redundant | bool | Redudant |
| rg_id | int | Идентификатор ресурсной группы, на уровне которой создан ViNS. Для ViNS, существующих на уровне "account", данный параметр будет равен 0. |
| rg_name | string | Имя ресурсной группы |
| sec_vnf_dev_id | int | ID sec внутренней сети для разработки |
| status | string | Статус vins |
| updated_by | string | Кем был обновлен vins |
| updated_time | int | Время последнего обновления vins |
| user_managed | bool | Флаг, управляется ли пользователем |
| vnfs | []Struct [см. ниже](#описание-структуры-vnfs) | Список VNFs |
| vxlan_id | int | Идентификатор vxlan |
| computes | []Struct [см. ниже](#описание-структуры-computes) | Информация о компьютах (виртуальных машинах) |

### Описание структуры computes 
| Параметр | Тип | Описание |
| --- | --- | --- |
| id | int | Идентификатор компьюта |
| name | string | Имя компьюта |

### Описание структуры vnf_dev
| Параметр | Тип | Описание |
| --- | --- | --- |
| ckey | string | CKey |
| meta | []string | Мета информация |
| account_id | int | ID учетной записи |
| capabilities | []string | Возможности vnf_dev |
| config | []Struct [см. ниже](#описание-структуры-vnf_dev_config) | Конфигурация |
| config_saved | bool | Флаг, отвечающий за то сохранен ли конфиг |
| custom_precfg | bool | Флаг, отвечающий за то, есть ли кастомный пре-конфиг |
| description | string | Описание |
| gid | int | GRID ID |
| guid | int | ID ресурса |
| id | int | ID виртуального маршрутизатора внутренней сети |
| interfaces | []Struct [см. ниже](#описание-структуры-interfaces) | Список интерфейсов подключений |
| lock_status | string | Статус доступности |
| milestones | int | Вехи |
| name | string | Название виртуального маршрутизатора внутренней сети |
| status | string | Статус виртуального маршрутизатора внутренней сети |
| tech_status | string | Технический статус | 
| type | string | Тип виртуального маршрутизатора внутренней сети |
| vins | []int | Список виртуальных сетей |

### Описание структуры vnf_dev_config
| Параметр | Тип | Описание |
| --- | --- | --- |
| mgmt | []Struct [см. ниже](#описание-структуры-mgmt) | Config Mgmt |
| resources | []Struct [см. ниже](#описание-структуры-resources) | Ресурсы |

### Описание структуры mgmt
| Параметр | Тип | Описание |
| --- | --- | --- |
| ip_addr | string | ip-адрес |
| password | string | Пароль |
| ssh_key | string | Публичный SSH ключ |
| user | string | Имя пользователя |

### Описание структуры resources
| Параметр | Тип | Описание |
| --- | --- | --- |
| cpu | int | Количество CPU |
| ram | int | Количество RAM |
| stack_id | int | id стэка |
| uuid | string | UUID ресурса |

### Описание структуры interfaces
| Параметр | Тип | Описание |
| --- | --- | --- |
| conn_id | int | ID подключения |
| conn_type | string | Тип соединения |
| def_gw | string | Шлюз по умолчанию |
| enabled | bool | Флаг доступности |
| flipgroup_id | int | ID группы с плавающим ip-адресом |
| guid | string | ID ресурса |
| ip_address | string | IP адрес |
| listen_ssh | bool | открыт ли ssh connect |
| mac | string | MAC адрес интерфейса |
| mtu | string | Максимальный объём данных, который может быть передан за одну итерацию |
| name | string | Название интерфейса |
| net_id | int | ID сети |
| net_mask | int | Маска подсети |
| net_type | string | Тип сети |
| node_id | int | ID узла |
| pci_slot | int | id pci слота |
| bus_number | int | Номер шины |
| qos | []Struct [см. ниже](#описание-структуры-qos) | QOS |
| target | string | Цель сети |
| type | string | Тип интерфейса |
| vnfs | []int | Список VNFs |
| libvirt_settings | []Struct{}[см. ниже](#описание-структуры-libvirt_settings) | Параметры libvirt virtio интерфейса |

### Описание структуры libvirt_settings

| Параметр | Тип | Описание |
| --- | --- | --- |
| guid | string | GUID |
| txmode | string | TX mode |
| ioeventfd | string | IO event |
| event_idx | string | Event ID |
| queues | int | Количество очередей |
| rx_queue_size | int | Длина очереди RX |
| tx_queue_size | int | Длина очереди TX |

### Описание структуры qos
| Параметр | Тип | Описание |
| --- | --- | --- |
| e_rate | int | Egress Rate |
| guid | string | ID ресурса |
| in_brust | int | In brust |
| in_rate | int | In rate |

### Описание структуры default_qos
| Параметр | Тип | Описание |
| --- | --- | --- |
| e_rate | int | Egress Rate |
| guid | string | ID ресурса |
| in_brust | int | In brust |
| in_rate | int | In rate |

### Описание структуры vnfs
| Параметр | Тип | Описание |
| --- | --- | --- |
| dhcp | []Struct [см. ниже](#описание-структуры-dhcp) | Информация о DHCP |
| gw | []Struct [см. ниже](#описание-структуры-gw) | Информация о шлюзе |
| nat | []Struct [см. ниже](#описание-структуры-nat) | NAT |

### Описание структуры nat
| Параметр | Тип | Описание |
| --- | --- | --- |
| ckey | string | CKey |
| meta | []string | Мета информация |
| account_id | int | Уникальный идентификатор подписчика-владельца ViNS. |
| created_time | int | Время создания |
| config | Struct{} [см. ниже](#описание-структуры-nat_config) | Информация о конфиге |
| devices | []Struct{} [см. ниже](#описание-структуры-devices) | Информация о девайсах |
| gid | int | GRID ID |
| guid | int | ID ресурса |
| id | int | ID NAT |
| lock_status | string | Статус доступа виртуальной сети |
| milestones | int | Milestones |
| owner_id | int | ID владельца |
| owner_type | string | Тип владельца |
| pure_virtual | bool | Флаг, показывающий является ли ресурс чисто виртуальным |
| status | string | Статус |
| tech_status | string | Технический статус |
| type | string | Тип ресурса |
| routes | []Struct{} [см. ниже](#описание-структуры-routes) | Список статических маршрутов |

### Описание структуры nat_config
| Параметр | Тип | Описание |
| --- | --- | --- |
| net_mask | int | Маска сети |
| network | string | Сеть |
| rules | []Struct{} [см. ниже](#описание-структуры-rules) | Правила NAT |

### Описание структуры rules
| Параметр | Тип | Описание |
| --- | --- | --- |
| rule_id | int | ID правила |
| local_ip | string | Локальный IP адрес |
| local_port | int | Локальный порт |
| protocol | string | Протокол |
| public_port_end | int | Конец диапазона портов |
| public_port_start | int | Начало диапазона портов |
| vm_id | int | ID виртуальной машины |
| vm_name | string | Имя виртуальной машины |

### Описание структуры gw
| Параметр | Тип | Описание |
| --- | --- | --- |
| ckey | string | CKey |
| meta | []string | Мета информация о шлюзе |
| account_id | int | Уникальный идентификатор владельца |
| config | Struct{} [см. ниже](#писание-структуры-gw_config) | Информация о конфиге |
| created_time | int | Время создания |
| devices | []Struct{} [см. ниже](#описание-структуры-devices) | Информация о девайсах |
| gid | int | Grid ID |
| guid | int | ID ресурса |
| id | int | ID gw |
| lock_status | string | Статус доступа gw |
| milestones | int | Вехи |
| owner_id | int | ID владельца |
| owner_type | string | Тип владельца |
| pure_virtual | bool | Флаг, показывающий является ли ресурс чисто виртуальным |
| routes | []Struct{} [см. ниже](#описание-структуры-routes) | Список статических маршрутов |
| status | string | Статус gw |
| tech_status | string | Технический статус gw |
| type | string | Тип gw |

### Описание структуры gw_config
| Параметр | Тип | Описание |
| --- | --- | --- |
| default_gw | string | Шлюз по умолчанию |
| ext_net_id | int | ID внешней сети |
| ext_net_ip | string | IP внешней сети |
| ext_netmask | int | Маска внешней сети |
| qos | Struct{} [см. ниже](#описание-структуры-qos) | QOS |

### Описание структуры dhcp
| Параметр | Тип | Описание |
| --- | --- | --- |
| ckey | string | CKey |
| meta | []string | Мета информация о dhcp |
| account_id | int | id аккаунта |
| config | []Struct [см. ниже](#описание-структуры-dhcp_config) | Конфигурация dhcp |
| created_time | int | Время создания |
| devices | []Struct{} [см. ниже](#описание-структуры-devices) | Информация о девайсах |
| gid | int | Grid ID |
| guid | int | ID ресурса |
| id | int | ID dhcp |
| lock_status | string | Статус доступа dhcp |
| milestones | int | Вехи |
| owner_id | int | ID владельца |
| owner_type | string | Тип владельца |
| pure_virtual | bool | Флаг, показывающий является ли ресурс чисто виртуальным |
| routes | []Struct{} [см. ниже](#описание-структуры-routes) | Список статических маршрутов |
| status | string | Статус dhcp |
| tech_status | string | Технический статус dhcp |
| type | string | Тип dhcp |

### Описание структуры dhcp_config
| Параметр | Тип | Описание |
| --- | --- | --- |
| default_gw | string | Шлюз по умолчанию |
| dns | []string | Список dns |
| ip_end | string | Конец диапазона IP адресов |
| ip_start | string | Старт диапазона IP адресов |
| lease | int | Срок |
| net_mask | int | Маска подсети |
| network | string | Информация о сети |
| reservations | []Struct [см. ниже](#описание-структуры-reservations) | Информация о резервациях |

### Описание структуры reservations
| Параметр | Тип | Описание |
| --- | --- | --- |
| client_type | string | Тип клиента |
| description | string | Описание |
| domain_name | string | Имя домена |
| host_name | string | Имя хоста |
| ip | string | IP адрес |
| mac | string | MAC адрес |
| type | string | Тип сети |
| vm_id | int | ID виртуальной машины |

### Описание структуры devices
| Параметр | Тип | Описание |
| --- | --- | --- |
| primary | Struct{} [см. ниже](#описание-структуры-primary) | Первичная информация |

### Описание структуры primary
| Параметр | Тип | Описание |
| --- | --- | --- |
| dev_id | int | ID dev |
| iface01 | string | Интерфейс 1 |
| iface02 | string | Интерфейс 2 |

### Описание структуры routes
| Параметр | Тип | Описание |
| --- | --- | --- |
| compute_ids | []int | Список ID compute, которым предоствавлен доступ |
| route_id | int | ID статического маршрута |
| guid | int | ID ресурса |
| destination | string | IP целевой сети |
| netmask | int | Маска сети |
| gateway | string | IP шлюза |

## Пример использования
Пример вызова _data source_ функции **decort_cb_vins**:

```terraform
data "decort_cb_vins" "my_vins" {
  #id желаемого vins
  #обязательный параметр
  #тип - целое число
  vins_id = 10101
}
```

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

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