_Resource_ функция **decort_account** служит для управления аккаунтами. Аккаунты в платформе позволяют создавать ресурсные группы, вычислительные мощности (computes), виртуальные сети, управлять ресурсами и так далее. Аккаунты создают пользователи (user). Все административное взаимодействие внутри платформы строится на аккаунтах. **Начиная с версии провайдера 4.3.0 аккаунты могут создавать только администраторы площадок.**
**Пользователи без административных прав могут только импортировать существующие аккаунты, используя следующую команду:** ```bash terraform import decort_account.<наименование-ресурса> ``` После импорта конфигурации управление аккаунтом доступно в прежнем порядке. ## Аргументы _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{} [см. ниже](#описание-структуры-resource_limits) | :x: | Ресурсы аккаунта | | enable | bool | :x: | Флаг доступности аккаунта
Используется при редактировании | | restore | bool | :x: | Флаг восстановления аккаунта
Используется при редактировании | | users | []Struct{} [см. ниже](#описание-структуры-users) | :x: | Поле для того чтобы задать пользователей | | permanently | bool | :x: | Флаг удаления аккаунта
Если выставлен в true, то аккаунт и все с ним связанное удаляется моментально
Если false - то аккаунт попадает в "корзину", где хранится некоторое время. Из "корзины" аккаунт можно восстановить
По-умолчанию: false
Используется при удалении | ### Описание структуры 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 - админ | | recursive_delete | bool | :x: | Флаг рекурсивного удаления пользователя | ## Возвращаемые значения В случае успешного выполнения _resource_ функция **decort_account** возвращает в указанную при вызове переменную элемент, который состоит из следующих параметров: | Параметр | Тип | Описание | | --- | --- | --- | | account_id | int | ID аккаунта | | account_name | string | Название аккаунта | | meta | []string | Мета информация | | resources | Struct{} [см. ниже](#описание-структуры-resources)| Информация о ресурсах | | acl | []Struct{} [см. ниже](#описание-структуры-acl)| Более подробная информация об аккаунтах | | 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{} [см. ниже](#описание-структуры-resource_limits)| Ограничения ресурсов| | send_access_emails | bool | Флаг, отправлять ли на указанную почту письмо о доступе | | cpu_allocation_parameter | string | Параметр выделения CPU | | cpu_allocation_ratio | float | Отношение выделения CPU | | status | string | Статус аккаунта | | updated_time | int | Время последнего обновления | | version | int | Версия аккаунта | | vins | []int | Список id виртуальных сетей | | vinses | []int | Список id виртуальных сетей | | computes | Struct{} [см .ниже](#описание-структуры-computes)| Информация о вычислительных мощностях| | machines | Struct{} [см .ниже](#описание-структуры-machines)| Информация о виртуальных машинах (устаревшее)| ### Описание структуры resources | Параметр | Тип | Описание | | --- | --- | --- | | current | Struct{} [см. ниже](#описание-структуры-current-и-reserved) | Информация о текуших ресурсах | | reserved | Struct{} [см. ниже](#описание-структуры-current-и-reserved) | Информация о зарезверированных аккаунтом ресурсах | ### Описание структуры 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_i | float | Количество публичных IP адресов | | cu_m | float | размер RAM | | cu_np | float | Хранилище траффика | | gpu_units | float | количество GPU ядер | ### Описание структуры computes | Параметр | Тип | Описание | | --- | --- | --- | | started | int | Количество запущенных ВМ | | stopped | int | Количество остановленных ВМ | ### Описание структуры machines | Параметр | Тип | Описание | | --- | --- | --- | | halted | int | Количество остановленных ВМ | | running | int | Количество запущенных ВМ | ### Описание структуры current и reserved | Параметр | Тип | Описание | | --- | --- | --- | | cpu | int | Количество CPU | | disksize | int | Размер диска | | extips | int | Внешние IPs | | exttraffic | int | Внешний Traffic | | gpu | int | Количество GPU | | ram | int | Количество RAM | | seps | []Struct{} [см . ниже](#описание-структуры-seps)| Информация о seps | ### Описание структуры seps | Параметр | Тип | Описание | | --- | --- | --- | | sep_id | int | ID SEP | | data_name | string | Имя пула информации внутри SEP'а | | disk_size | int | Количество занятого места | | disk_size_max | 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://repository.basistech.ru/BASIS/wiki-terraform-provider-decort/src/branch/main/4.5.3/04.02-Инициализация-Terraform-провайдера-DECORT.md)). После успешного завершения такого вызова **decort_account** в переменной `decort_account.a` будут сохранены возвращаемые значения.