diff --git a/07.16-Resource-функция-decort_account-управление-аккаунтом.md b/07.16-Resource-функция-decort_account-управление-аккаунтом.md new file mode 100644 index 0000000..4f1c3aa --- /dev/null +++ b/07.16-Resource-функция-decort_account-управление-аккаунтом.md @@ -0,0 +1,184 @@ +Функция доступна в провайдере версии 2.3 и выше. + +_Resource_ функция **decort_account** служит для управления аккаунтами. Аккаунты в платформе позволяют создавать ресурсные группы, вычислительные мощности (computes), виртуальные сети, управлять ресурсами и так далее. Аккаунты создают пользователи (user). Все административное взаимодействие внутри платформы строится на аккаунтах. + +## Аргументы +_Resource_ функция **decort_account** принимает следующие аргументы: + +| Аргумент | Тип | Обязательный | Описание | +| --- | --- | :---: | --- | +| account_name | string | :heavy_check_mark: | Имя аккаунта
Используется при создании и редактировании | +| username | string | :heavy_check_mark: | Имя пользователя - владельца аккаунта
Используется при создании | +| emailaddress | string | :x: | Адрес электронной почты
Используется при создании | +| send_access_emails | bool | :x: | Флаг отправки электронного письма
Используется при создании и редактировании
По-умолчанию: true | +| resource_limits | Struct{
cu_c float
cu_d float
cu_i float
cu_m float
cu_np float
gpu_units float
}
 
 
 
| :x: | Ресурсы аккаунта
Кол-во ядер
Размер диска, ГБ
Кол-во публичных ip-адресов
Размер RAM, МБ
Кол-во переданных данных, в ГБ
Кол-во графических процессоров
 
Используется при создании и редактировании аккаунта
По-умолчанию, все ресурсы выставлены в -1, что обозначает их использование без ограничений.
Значение 0 недопустимо. Должен быть использован хотя бы минимальные экземпляр ресурса. | +| enable | bool | :x: | Флаг доступности аккаунта
Используется при редактировании | +| restore | bool | :x: | Флаг восстановления аккаунта
Используется при редактировании | +| users | []Struct{
user_id string
access_type string
recursive_delete bool
} | :x: | Добавление/удаление пользователей в аккаунт
ID пользователя(его имя)
Тип доступа пользователя. R - чтение, RCX - запись, ARCXDU - админ
Флаг рекурсивного удаления пользователя
 
| +| permanently | bool | :x: | Флаг удаления аккаунта
Если выставлен в true, то аккаунт и все с ним связанное удаляется моментально
Если false - то аккаунт попадает в "корзину", где хранится некоторое время. Из "корзины" аккаунт можно восстановить
По-умолчанию: false
Используется при удалении | +| account_id | int | :x: | ID аккаунта, используется для формирования .tfstate, если аккаунт уже был создан в платформе
Может использоваться при создании аккаунта | + +## Возвращаемые значения +В случае успешного выполнения _resource_ функция **decort_account** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров: + +| Параметр | Тип | Описание | +| --- | --- | --- | +| account_id | int | ID аккаунта | +| account_name | string | Название аккаунта | +| meta | []string | Мета информация | +| resources | Struct{
current Struct{
cpu int
disksize int
extips int
exttraffic int
gpu int
ram int
}
reserved Struct{
cpu int
disksize int
extips int
exttraffic int
gpu int
ram int
}
} | Информация о ресурсах
Задействованные
Кол-вол ядер
Размер диска, ГБ
Кол-во внешних ip-адресов
Размер внешнего траффика
Кол-во графических ядер
Размер RAM, MБ

Зарезервированные
Кол-вол ядер
Размер диска, ГБ
Кол-во внешних ip-адресов
Размер внешнего траффика
Кол-во графических ядер
Размер RAM, MБ

 
| +| acl | []Struct{
can_be_deleted bool
explicit bool
guid string
right string
status string
type string
user_group_id string
} | Более подробная информация об аккаунтах
Может ли быть удален аккаунт
Явно ли указан доступ
guid аккаунта
Права доступа
Статус аккаунта
Тип аккаунта
Идентификатор пользователя-владельца аккаунта
 
| +| company | string | Название компании, которой принадлежит аккаунт | +| companyurl | string | url-адрес компани | +| created_by | string | Пользователь - создателя аккаунта | +| created_time | int | Время создания аккаунта | +| deactivation_time | float | Время деактивации аккаунта | +| deleted_by | string | Пользователь, удаливший аккаунт | +| deleted_time | int | Время удаления аккаунта | +| displayname | string | Отображаемое имя аккаунта | +| guid | int | Внутренний guid аккаунта | +| resource_limits | Struct{
cu_c float
cu_d float
cu_i float
cu_m float
cu_np float
gpu_units float
} | Ограничения ресурсов
Кол-во ядер
Размер диска, ГБ
Число публичных ip адресов
Размер RAM, МБ
Объем трафика, ГБ
Кол-вол графических ядер
 
| +| send_access_emails | bool | Флаг, отправлять ли на указанную почту письмо о доступе | +| service_account | bool | Флаг, является ли аккаунт аккаунтом-обслуживания | +| status | string | Статус аккаунта | +| updated_time | int | Время последнего обновления | +| version | int | Версия аккаунта | +| vins | []int | Список id виртуальных сетей | +| vinses | []int | Список id виртуальных сетей | +| computes | Struct{
started int
stopped int
} | Информация о вычислительных мощностях
Кол-во запущенных
Кол-во остановленных
 
| +| machines | Struct{
halted int
running int
} | Информация о виртуальных машинах (устаревшее)
Кол-во запущенных
Кол-во остановленных
 
| + + + +## Пример использования +Пример вызова _resource_ функции **decort_account**: +```terraform +resource "decort_account" "a" { + #имя аккаунта + #обязательный параметр + #тип - строка + #используется при создании и редактировании аккаунта + account_name = "new_my_account" + + #имя пользователя - создателя аккаунта + #обязательный параметр + #тип - строка + username = "username@decs3o" + + #доступность аккаунта + #необязательный параметр + #тип - булев тип + #может применяться при редактировании аккаунта + #enable = true + + #id аккаунта, позволяет сформировать .tfstate, если аккаунт имеет в платформе + #необязательный параметр + #тип - число + #account_id = 11111 + + #электронная почта, на которую будет отправлена информация о доступе + #необязательный параметр + #тип - строка + #применяется при создании аккаунта + #emailaddress = "fff@fff.ff" + + #отправлять ли на электронную почту письмо о доступе + #необязательный параметр + #тип - булев тип + #применяется при создании аккаунта и редактировании аккаунта + send_access_emails = true + + #добавление/редактирование/удаление пользователей, к которым привязан аккаунт + #необязательный параметр + #тип - объект, кол-во таких объектов не ограничено + /*users { + #id пользователя + #обязательный параметр + #тип - строка + user_id = "username_2@decs3o" + + #тип доступа пользователя + #обязательный параметр + #тип - строка + #возможные параметры: + #R - чтение + #RCX - запись + #ARCXDU - админ + access_type = "R" + + #рекурсивное удаление пользователя из всех ресурсов аккаунтов + #необязательный параметр + #тип - булев тип + #по-умолчанию - false + #применяется при удалении пользователя из аккаунта + recursive_delete = true + } + users { + user_id = "username_1@decs3o" + 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 + } + + #восстановление аккаунта + #необязательный параметр + #тип - булев тип + #применяется к удаленным аккаунтам + #по-умолчанию - false + #restore = false + + #мгновенное удаление аккаунта, если да - то аккаунт невозможно будет восстановить + #необязательный параметр + #тип - булев тип + #используется при удалении аккаунта + #по-умолчанию - false + #permanently = true +} +# once the above directive completes, account will be accessible +# as decort_account.a +``` + +Данный пример подразумевает, что ранее по тексту tf-файла выполнена корректная инициализация провайдера (подробнее об инициализации Terraform провайдера DECORT см. соответствующий [раздел](https://github.com/rudecs/terraform-provider-decort/wiki/05.-%D0%98%D0%BD%D0%B8%D1%86%D0%B8%D0%B0%D0%BB%D0%B8%D0%B7%D0%B0%D1%86%D0%B8%D1%8F-Terraform-%D0%BF%D1%80%D0%BE%D0%B2%D0%B0%D0%B9%D0%B4%D0%B5%D1%80%D0%B0-DECORT.)). + +После успешного завершения такого вызова **decort_account** в переменной `decort_account.a` будут сохранены возвращаемые значения. \ No newline at end of file