You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

234 lines
13 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

_Resource_ функция **dynamix_account** служит для управления аккаунтами. Аккаунты на платформе позволяют создавать ресурсные группы, вычислительные мощности (computes), виртуальные сети, управлять ресурсами и так далее. Аккаунты создают пользователи (user). Все административное взаимодействие внутри платформы строится на аккаунтах.
**Пользователи без административных прав могут только импортировать существующие аккаунты, используя следующую команду:**
```bash
terraform import dynamix_account.<наименование-ресурса> <ID-аккаунта>
```
После импорта конфигурации управление аккаунтом доступно в прежнем порядке.
## Аргументы
_Resource_ функция **dynamix_account** принимает следующие аргументы:
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | :---: | --- |
| account_name | string | :heavy_check_mark: | Имя аккаунта |
| resource_limits | Struct{} [см. ниже](#описание-блока-resource_limits) | :x: | Ресурсы аккаунта |
| enable | bool | :x: | Флаг доступности аккаунта |
| reason | string | :x: | Причина отключения аккаунта |
| desc | string | :x: | Описание аккаунта |
| restore | bool | :x: | Флаг восстановления аккаунта |
| send_access_emails | bool | :x: | Отправлять ли на электронную почту письмо о доступе |
| users | []Struct{} [см. ниже](#описание-блока-users) | :x: | Поле для указания пользователей, имеющих доступ к аккаунту |
| permanently | bool | :x: | Флаг удаления аккаунта<br/>Если выставлен в true, то аккаунт и все с ним связанное удаляется моментально<br/>Если false - то аккаунт попадает в "корзину", где хранится некоторое время. Из "корзины" аккаунт можно восстановить<br/>По-умолчанию: true |
### Описание блока resource_limits
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | :---: | --- |
| cu_c | float | :x: | Количество ядер CPU |
| cu_d | float | :x: | Размер диска |
| cu_i | float | :x: | Количество публичных IP адресов |
| cu_m | float | :x: | размер RAM |
| cu_np | float | :x: | Хранилище траффика |
| gpu_units | float | :x: | количество GPU ядер |
### Описание блока users
| Аргумент | Тип | Обязательный | Описание |
| --- | --- | :---: | --- |
| user_id | string | :heavy_check_mark: | ID пользователя(его имя) |
| access_type | string | :heavy_check_mark: | Тип доступа пользователя. R - чтение, RCX - запись, ARCXDU - админ |
## Возвращаемые значения
В случае успешного выполнения _resource_ функция **dynamix_account** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров:
| Параметр | Тип | Описание |
| --- | --- | --- |
| account_id | int | ID аккаунта |
| account_name | string | Название аккаунта |
| acl | []Struct{} [см. ниже](#описание-структуры-acl) | Более подробная информация об аккаунтах |
| ckey | string | CKey |
| company | string | Название компании, которой принадлежит аккаунт |
| companyurl | string | url-адрес компани |
| compute_features | []string | Доступ к дополнительным функциям управления ВМ |
| computes | Struct{} [см .ниже](#описание-структуры-computes) | Информация о вычислительных мощностях |
| cpu_allocation_parameter | string | Параметр выделения CPU |
| cpu_allocation_ratio | float | Отношение выделения CPU |
| created_by | string | Пользователь - создателя аккаунта |
| created_time | int | Время создания аккаунта |
| dc_location | string | dc location |
| deactivation_time | float | Время деактивации аккаунта |
| deleted_by | string | Пользователь, удаливший аккаунт |
| deleted_time | int | Время удаления аккаунта |
| desc | string |  Описание аккаунта |
| displayname | string | Отображаемое имя аккаунта |
| enable | bool | Флаг доступности аккаунта |
| guid | int | Внутренний guid аккаунта |
| id | string | ID аккаунта, совпадает с account_id |
| machines | Struct{} [см .ниже](#описание-структуры-machines) | Информация о виртуальных машинах (устаревшее) |
| reason | string | Причина отключения аккаунта |
| resource_limits | Struct{} [см. ниже](#описание-структуры-resource_limits) | Ограничения ресурсов |
| send_access_emails | bool | Флаг, отправлять ли на указанную почту письмо о доступе |
| status | string | Статус аккаунта |
| updated_time | int | Время последнего обновления |
| users | []Struct{} [см. ниже](#описание-структуры-users) | Пользователи, имеющие доступ к аккаунту |
| version | int | Версия аккаунта |
| vins | []int | Список id виртуальных сетей |
| vinses | []int | Список id виртуальных сетей |
### Описание структуры acl
| Параметр | Тип | Описание |
| --- | --- | --- |
| can_be_deleted | bool | Может ли быть удален |
| explicit | bool | Видимость аккаунта |
| guid | string | GUID |
| right | string | Права |
| status | string | Статус |
| type | string | Тип |
| user_group_id | string | ID группы юзеров |
### Описание структуры resource_limits
| Параметр | Тип | Описание |
| --- | --- | --- |
| cu_c | float | Количество ядер CPU |
| cu_d | float | Размер диска |
| cu_dm | float | Использованный размер хранилища виртуального диска |
| cu_i | float | Количество публичных IP адресов |
| cu_m | float | размер RAM |
| cu_np | float | Хранилище траффика |
| gpu_units | float | количество GPU ядер |
### Описание структуры computes
| Параметр | Тип | Описание |
| --- | --- | --- |
| started | int | Количество запущенных ВМ |
| stopped | int | Количество остановленных ВМ |
### Описание структуры machines
| Параметр | Тип | Описание |
| --- | --- | --- |
| halted | int | Количество остановленных ВМ |
| running | int | Количество запущенных ВМ |
### Описание структуры users
| Аргумент | Тип | Описание |
| --- | --- | --- |
| user_id | string | ID пользователя(его имя) |
| access_type | string | Тип доступа пользователя. R - чтение, RCX - запись, ARCXDU - админ |
## Пример использования
Пример вызова _resource_ функции **dynamix_account**:
```terraform
resource "dynamix_account" "a" {
#имя аккаунта
#обязательный параметр
#тип - строка
#используется при обновлении
account_name = "new_my_account"
#доступность аккаунта
#опциональный параметр
#тип - булев
#по умолчанию - true
#используется при обновлении
#enable = true
#описание
#опциональный параметр
#тип - строка
#используется при обновлении
#desc = "description"
#отправлять ли на электронную почту письмо о доступе
#опциональный параметр
#тип - булев
#по умолчанию - true
#используется при обновлении
#send_access_emails = true
#добавление/редактирование/удаление пользователей, к которым привязан аккаунт
#опциональный параметр
#тип - массив объектов, кол-во таких объектов не ограничено
#используется при обновлении
#users = [{
#id пользователя
#обязательный параметр
#тип - строка
#user_id = "username_2@decs3o"
#тип доступа пользователя
#обязательный параметр
#тип - строка
#возможные параметры:
#R - чтение
#RCX - запись
#ARCXDU - админ
#access_type = "R"
#}]
#ограничение используемых ресурсов
#опциональный параметр
#тип - объект
#используется при обновлении
#resource_limits = {
#кол-во используемых ядер cpu
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
#cu_c = 2
#кол-во используемой RAM в МБ
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
#cu_m = 1024
#размер дисков, в ГБ
#опциональный параметр
#тип - целое число
#если установлена -1 - размер неограичен
#cu_d = 23
#кол-во используемых публичных IP
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
#cu_i = 2
#ограничения на кол-во передачи данных, в ГБ
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
#cu_np = 2
#кол-во графических процессоров
#опциональный параметр
#тип - целое число
#если установлена -1 - кол-во неограиченно
#gpu_units = 2
#}
#восстановление аккаунта
#опциональный параметр
#тип - булев
#применяется к удаленным аккаунтам
#по умолчанию - true
#restore = false
#флаг для удаления аккаунта, без возможности восстановления
#опциональный параметр
#тип - булев
#по умолчанию - true
#используется при удалении
#permanently = true
#причина отключения аккаунта
#опциональный параметр
#тип - строка
#используется при обновлении
#reason = "something_reason"
}
```
Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DYNAMIX см. соответствующий [раздел](https://repository.basistech.ru/BASIS/wiki-terraform-provider-dynamix/src/branch/main/1.3.0/04.02-Инициализация-Terraform-провайдера-DYNAMIX.md)).
После успешного завершения такого вызова **dynamix_account** в переменной `dynamix_account.a` будут сохранены возвращаемые значения.