diff --git a/07.01.11-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_account-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%BE%D0%BC.md b/07.01.11-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_account-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%BE%D0%BC.md new file mode 100644 index 0000000..a18bf28 --- /dev/null +++ b/07.01.11-Resource-%D1%84%D1%83%D0%BD%D0%BA%D1%86%D0%B8%D1%8F-decort_account-%D1%83%D0%BF%D1%80%D0%B0%D0%B2%D0%BB%D0%B5%D0%BD%D0%B8%D0%B5-%D0%B0%D0%BA%D0%BA%D0%B0%D1%83%D0%BD%D1%82%D0%BE%D0%BC.md @@ -0,0 +1,260 @@ +Функция доступна в провайдере версии 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{} [см. ниже](#описание-структуры-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/terraform-provider-decort/wiki/04.02-Инициализация-Terraform-провайдера-DECORT)). + +После успешного завершения такого вызова **decort_account** в переменной `decort_account.a` будут сохранены возвращаемые значения.