iac/apps/eav/openapi.yaml

1304 lines
38 KiB
YAML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

openapi: 3.0.3
info:
title: EAV Service API
version: "1.0.0"
description: |
REST API сервиса **eav-python** (`platform/eav-python`) — реализация паттерна
**EAV (Entity-Attribute-Value)** для платформы Sarex: управление атрибутами,
группами атрибутов, единицами измерения, опциями значений, схемами (доменами)
и ассетами. Компонент используется всеми модулями платформы (инспекции,
документы, задачи КСГ, замечания, BIM и т.д.) для гибкой атрибуции моделей.
Сервис написан на Python (**Django 4.1 + Django REST Framework**) и запускается
как WSGI-приложение (`config.wsgi`) через uWSGI (порт `8000`). Роутинг задан в
`config/urls.py`. Внутри приложения существует несколько версий API, которые
снаружи публикуются под собственными префиксами через Istio VirtualService
(`.helm/templates/mesh-config.yaml`):
| Внешний префикс (ingress) | Внутренний путь (приложение) | Назначение |
| --- | --- | --- |
| `/eav/api/v0` | `/api/v4` | Публичный API (защищённый дубликат v0) |
| `/eav/api/v1` | `/api/v6` | Публичный API (защищённый дубликат v1) |
| `/eav/api/v2` | `/api/v5` | Публичный API (защищённый дубликат v2) |
| `/eav/api/v3` | `/api/v3` | Публичный API v3 |
| `/eav/api/v4` | `/api/v4` | Публичный API v4 |
| `/eav/admin/` | `/eav/admin/` | Django-admin |
Внутренние (не опубликованные через ingress) версии `/api/v0`, `/api/v1`,
`/api/v2` — незащищённые (исторические) варианты тех же ресурсов;
`/api/v4``/api/v6` — их защищённые дубликаты. Ниже документированы ресурсы
на примере пути `/api/v0/*` (форма запросов/ответов у соответствующих
защищённых версий совпадает).
### Аутентификация
Проверка выполняется по цепочке DRF
(`REST_FRAMEWORK.DEFAULT_AUTHENTICATION_CLASSES`):
1. **Zitadel** (`ZitadelJWTAuthentication`) — требуются одновременно заголовки
`Authorization: Bearer <jwt>` и `Identity: Identity <jwt>`. Полезная нагрузка
(в т.ч. `tenant_identifier`) берётся из токена `Identity`. При отсутствии
заголовка `Identity` — переход к следующему механизму.
2. **sarex-backend** (`rest_framework_simplejwt.JWTAuthentication`) — подпись
токена `Authorization: Bearer <jwt>` проверяется публичным RSA-ключом
(`JWT_PUBLIC_KEY`, алгоритм `RS512`).
3. Дополнительно поддерживаются `SessionAuthentication` и `BasicAuthentication`
(для Django-admin / служебного доступа).
Глобальные права — `AllowAny` (`DEFAULT_PERMISSION_CLASSES`); ограничение
доступа к отдельным ресурсам обеспечивается на уровне view/Istio.
### Пагинация
Списочные ответы используют DRF `LimitOffsetPagination`
(`PAGE_SIZE = 10000`). Управление — query-параметрами `limit` и `offset`.
### Мультиарендность
Многие эндпоинты принимают `company_id` и/или `tenant_identifier` (query) для
выборки атрибутов/схем в контексте конкретной компании. Специфичные для
компании атрибуты «замещают» общие (системные).
### Типы атрибутов (`TypeEnum`)
`0` — целочисленный, `1` — с плавающей запятой, `2` — строка,
`3` — одно из списка, `4` — многие из списка, `5` — да/нет,
`6` — дата со временем, `7` — дата.
servers:
- url: https://api.sarex.io/eav/api
description: Production (external, через ingress)
- url: https://stage-api.sarex.io/eav/api
description: Stage (external, через ingress)
- url: http://eav-service.eav-prod/api
description: Внутренний адрес в кластере
security:
- bearerAuth: []
- bearerAuth: []
identityAuth: []
paths:
/api/v0/attribute/:
get:
operationId: attribute_list
parameters:
- in: query
name: company_id
description: ID компании
schema:
type: string
nullable: true
title: ID компании
- in: query
name: tenant_identifier
description: Идентификатор компании
schema:
type: string
nullable: true
title: Идентификатор компании
tags:
- Attribute
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeRetrieve'
description: ''
post:
operationId: attribute_create
tags:
- Attribute
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeCreate'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
description: ''
/api/v0/attribute/{id}/:
get:
operationId: attribute_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: ID атрибута
required: true
tags:
- Attribute
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeRetrieve'
description: ''
put:
operationId: attribute_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID атрибута
required: true
tags:
- Attribute
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeCreate'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
description: ''
patch:
operationId: attribute_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID атрибута
required: true
tags:
- Attribute
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeUpdate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeUpdate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeUpdate'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
description: ''
delete:
operationId: attribute_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: ID атрибута
required: true
tags:
- Attribute
responses:
'204':
description: ''
/api/v0/attribute-group/:
get:
operationId: attribute_group_list
tags:
- Attribute Group
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeGroupRetrieve'
description: ''
post:
operationId: attribute_group_create
tags:
- Attribute Group
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeCreate'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
description: ''
/api/v0/attribute-group/{id}/:
get:
operationId: attribute_group_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: ID группы атрибутов
required: true
tags:
- Attribute Group
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeGroupRetrieve'
description: ''
put:
operationId: attribute_group_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID группы атрибутов
required: true
tags:
- Attribute Group
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeCreate'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
description: ''
patch:
operationId: attribute_group_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID группы атрибутов
required: true
tags:
- Attribute Group
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeUpdate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeUpdate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeUpdate'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeCreate'
description: ''
delete:
operationId: attribute_group_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: ID группы атрибутов
required: true
tags:
- Attribute Group
responses:
'204':
description: ''
/api/v0/schema/:
get:
operationId: attribute_schema_list
parameters:
- in: query
name: model_name
description: Наименование модели
schema:
type: string
- in: query
name: service_name
description: Наименование сервиса
schema:
type: string
- in: query
name: type_identifier
description: ID типа модели
schema:
type: string
tags:
- Attribute Schema
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeSchemaRetrieve'
description: ''
post:
operationId: attribute_schema_create
tags:
- Attribute Schema
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
description: ''
/api/v0/schema/{id}/:
get:
operationId: attribute_schema_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: ID схемы атрибутов
required: true
tags:
- Attribute Schema
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeSchemaRetrieve'
description: ''
put:
operationId: attribute_schema_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID схемы атрибутов
required: true
tags:
- Attribute Schema
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
description: ''
patch:
operationId: attribute_schema_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID схемы атрибутов
required: true
tags:
- Attribute Schema
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeSchemaUpdate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/AttributeSchemaUpdate'
multipart/form-data:
schema:
$ref: '#/components/schemas/AttributeSchemaUpdate'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/AttributeSchemaCreate'
description: ''
delete:
operationId: attribute_schema_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: ID схемы атрибутов
required: true
tags:
- Attribute Schema
responses:
'204':
description: ''
/api/v0/unit-option/:
get:
operationId: unit_option_list
tags:
- Unit Option
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UnitOptionRetrieve'
description: ''
post:
operationId: unit_option_create
tags:
- Unit Option
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
description: ''
/api/v0/unit-option/{id}/:
get:
operationId: unit_option_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: ID единицы измерения
required: true
tags:
- Unit Option
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UnitOptionRetrieve'
description: ''
put:
operationId: unit_option_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID единицы измерения
required: true
tags:
- Unit Option
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
description: ''
patch:
operationId: unit_option_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID единицы измерения
required: true
tags:
- Unit Option
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UnitOptionUpdate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/UnitOptionUpdate'
multipart/form-data:
schema:
$ref: '#/components/schemas/UnitOptionUpdate'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/UnitOptionCreate'
description: ''
delete:
operationId: unit_option_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: ID единицы измерения
required: true
tags:
- Unit Option
responses:
'204':
description: ''
/api/v0/value-option/:
get:
operationId: value_option_list
tags:
- Value Option
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ValueOptionRetrieve'
description: ''
post:
operationId: value_option_create
tags:
- Value Option
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
required: true
responses:
'201':
content:
application/json:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
description: ''
/api/v0/value-option/{id}/:
get:
operationId: value_option_retrieve
parameters:
- in: path
name: id
schema:
type: integer
description: ID опции значения атрибута
required: true
tags:
- Value Option
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ValueOptionRetrieve'
description: ''
put:
operationId: value_option_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID опции значения атрибута
required: true
tags:
- Value Option
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
multipart/form-data:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
required: true
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
description: ''
patch:
operationId: value_option_partial_update
parameters:
- in: path
name: id
schema:
type: integer
description: ID опции значения атрибута
required: true
tags:
- Value Option
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/ValueOptionUpdate'
application/x-www-form-urlencoded:
schema:
$ref: '#/components/schemas/ValueOptionUpdate'
multipart/form-data:
schema:
$ref: '#/components/schemas/ValueOptionUpdate'
responses:
'200':
content:
application/json:
schema:
$ref: '#/components/schemas/ValueOptionCreate'
description: ''
delete:
operationId: value_option_destroy
parameters:
- in: path
name: id
schema:
type: integer
description: ID опции значения атрибута
required: true
tags:
- Value Option
responses:
'204':
description: ''
components:
securitySchemes:
bearerAuth:
type: http
scheme: bearer
bearerFormat: JWT
description: >-
JWT в заголовке `Authorization: Bearer <jwt>`. Подпись проверяется
публичным RSA-ключом (RS512) для механизма sarex-backend.
identityAuth:
type: apiKey
in: header
name: Identity
description: >-
Токен Zitadel в заголовке `Identity: Identity <jwt>` (используется вместе
с `Authorization` для механизма ZitadelJWTAuthentication).
schemas:
AttributeRetrieve:
type: object
properties:
id:
type: integer
readOnly: true
title: ID атрибута
name:
type: string
readOnly: true
title: Наименование атрибута
type:
type: string
readOnly: true
title: Тип атрибута
group:
type: integer
readOnly: true
nullable: true
title: Группа атрибута
author:
type: string
readOnly: true
title: Автор атрибута
tenant_identifier:
type: string
readOnly: true
nullable: true
title: Идентификатор компании
created_at:
type: string
format: date-time
readOnly: true
title: Время создания атрибута
updated_at:
type: string
format: date-time
readOnly: true
title: Время последнего обновления атрибута
options:
type: array
items:
$ref: '#/components/schemas/ValueOptionRetrieve'
title: Опции значения атрибута
required:
- author
- created_at
- group
- id
- name
- options
- tenant_identifier
- type
- updated_at
AttributeCreate:
type: object
properties:
id:
type: integer
readOnly: true
title: ID атрибута
name:
type: string
title: Наименование атрибута
maxLength: 512
type:
allOf:
- $ref: '#/components/schemas/TypeEnum'
title: Тип атрибута
minimum: 0
maximum: 32767
group:
type: integer
nullable: true
title: Группа атрибута
author:
type: string
title: Автор атрибута
maxLength: 512
tenant_identifier:
type: string
nullable: true
title: Идентификатор компании
maxLength: 512
is_common:
type: boolean
title: Общий для компаний
required:
- author
- id
- name
AttributeUpdate:
type: object
properties:
id:
type: integer
readOnly: true
title: ID атрибута
name:
type: string
title: Наименование атрибута
maxLength: 512
type:
allOf:
- $ref: '#/components/schemas/TypeEnum'
title: Тип атрибута
minimum: 0
maximum: 32767
group:
type: integer
nullable: true
title: Группа атрибута
author:
type: string
title: Автор атрибута
maxLength: 512
tenant_identifier:
type: string
nullable: true
title: Идентификатор компании
maxLength: 512
is_common:
type: boolean
title: Общий для компаний
AttributeGroupRetrieve:
type: object
properties:
id:
type: integer
readOnly: true
title: ID группы атрибутов
name:
type: string
readOnly: true
title: Наименование группы атрибутов
parent:
type: integer
readOnly: true
title: Родительская группа атрибутов
author:
type: string
readOnly: true
title: Автор группы атрибутов
tenant_identifier:
type: string
readOnly: true
nullable: true
title: Идентификатор компании
created_at:
type: string
format: date-time
readOnly: true
title: Время создания группы атрибутов
updated_at:
type: string
format: date-time
readOnly: true
title: Время последнего обновления группы атрибутов
required:
- author
- created_at
- id
- name
- parent
- tenant_identifier
- updated_at
AttributeSchemaRetrieve:
type: object
properties:
id:
type: integer
readOnly: true
title: ID схемы атрибутов
name:
type: string
readOnly: true
title: Наименование схемы атрибутов
group:
type: integer
readOnly: true
nullable: true
title: Группа схемы атрибутов
model_name:
type: string
readOnly: true
title: ID модели
type_identifier:
type: string
readOnly: true
title: ID типа модели
attributes:
type: array
items:
$ref: '#/components/schemas/AttributeRetrieve'
title: Атрибуты
readOnly: true
tenant_identifier:
type: string
readOnly: true
nullable: true
title: Идентификатор компании
is_common:
type: boolean
readOnly: true
default: false
title: Общий для компаний
created_at:
type: string
format: date-time
readOnly: true
title: Время создания схемы атрибутов
updated_at:
type: string
format: date-time
readOnly: true
title: Время последнего обновления схемы атрибутов
required:
- attributes
- created_at
- group
- id
- is_common
- model_name
- name
- tenant_identifier
- type_identifier
- updated_at
AttributeSchemaCreate:
type: object
properties:
id:
type: integer
readOnly: true
title: ID схемы атрибутов
name:
type: string
title: Наименование схемы атрибутов
maxLength: 512
group:
type: integer
nullable: true
title: Группа схемы атрибутов
model_name:
type: string
title: ID модели
maxLength: 512
type_identifier:
type: string
title: ID типа модели
maxLength: 512
attributes:
type: array
items:
$ref: '#/components/schemas/AttributeCreate'
readOnly: true
title: Атрибуты
tenant_identifier:
type: string
nullable: true
title: Идентификатор компании
maxLength: 512
is_common:
type: boolean
default: false
title: Общий для компаний
created_at:
type: string
format: date-time
readOnly: true
title: Время создания схемы атрибутов
updated_at:
type: string
format: date-time
readOnly: true
title: Время последнего обновления схемы атрибутов
required:
- attributes
- created_at
- id
- model_name
- name
- tenant_identifier
- type_identifier
- updated_at
AttributeSchemaUpdate:
type: object
properties:
id:
type: integer
readOnly: true
title: ID схемы атрибутов
name:
type: string
title: Наименование схемы атрибутов
maxLength: 512
group:
type: integer
nullable: true
title: Группа схемы атрибутов
model_name:
type: string
title: ID модели
maxLength: 512
type_identifier:
type: string
title: ID типа модели
maxLength: 512
attributes:
type: array
items:
$ref: '#/components/schemas/AttributeCreate'
readOnly: true
title: Атрибуты
tenant_identifier:
type: string
nullable: true
title: Идентификатор компании
maxLength: 512
is_common:
type: boolean
default: false
title: Общий для компаний
created_at:
type: string
format: date-time
readOnly: true
title: Время создания схемы атрибутов
updated_at:
type: string
format: date-time
readOnly: true
title: Время последнего обновления схемы атрибутов
UnitOptionRetrieve:
type: object
properties:
id:
type: integer
readOnly: true
title: ID единицы измерения
name:
type: string
readOnly: true
title: Наименование единицы измерения
author:
type: string
readOnly: true
title: Автор единицы измерения
tenant_identifier:
type: string
readOnly: true
nullable: true
title: Идентификатор компании
created_at:
type: string
format: date-time
readOnly: true
title: Время создания единицы измерения
updated_at:
type: string
format: date-time
readOnly: true
title: Время последнего обновления единицы измерения
required:
- author
- created_at
- id
- name
- tenant_identifier
- updated_at
UnitOptionCreate:
type: object
properties:
id:
type: integer
readOnly: true
title: ID единицы измерения
name:
type: string
title: Наименование единицы измерения
maxLength: 512
author:
type: string
title: Автор единицы измерения
maxLength: 512
tenant_identifier:
type: string
nullable: true
title: Идентификатор компании
maxLength: 512
is_common:
type: boolean
title: Общий для компаний
required:
- author
- id
- name
UnitOptionUpdate:
type: object
properties:
id:
type: integer
readOnly: true
title: ID единицы измерения
name:
type: string
title: Наименование единицы измерения
maxLength: 512
author:
type: string
title: Автор единицы измерения
maxLength: 512
tenant_identifier:
type: string
nullable: true
title: Идентификатор компании
maxLength: 512
is_common:
type: boolean
title: Общий для компаний
ValueOptionRetrieve:
type: object
properties:
id:
type: integer
readOnly: true
title: ID опции значения
attribute:
type: integer
readOnly: true
title: ID атрибута
value:
type: string
title: Значение
author:
type: string
readOnly: true
title: Автор опции значения
tenant_identifier:
type: string
readOnly: true
nullable: true
title: Идентификатор компании
created_at:
type: string
format: date-time
readOnly: true
title: Время создания опции значения
updated_at:
type: string
format: date-time
readOnly: true
title: Время последнего обновления опции значения
name:
type: string
readOnly: true
title: Наименование опции значения
required:
- attribute
- author
- created_at
- id
- name
- tenant_identifier
- updated_at
- value
ValueOptionCreate:
type: object
properties:
id:
type: integer
readOnly: true
title: ID опции значения
value:
type: string
title: Значение
author:
type: string
title: Автор опции значения
maxLength: 512
tenant_identifier:
type: string
nullable: true
title: Идентификатор компании
maxLength: 512
is_common:
type: boolean
title: Общий для компаний
name:
type: string
title: Наименование опции значения
maxLength: 1024
required:
- author
- id
- value
ValueOptionUpdate:
type: object
properties:
id:
type: integer
readOnly: true
title: ID опции значения
value:
type: string
title: Значение
author:
type: string
title: Автор опции значения
maxLength: 512
tenant_identifier:
type: string
nullable: true
title: Идентификатор компании
maxLength: 512
is_common:
type: boolean
title: Общий для компаний
name:
type: string
title: Наименование опции значения
maxLength: 1024
TypeEnum:
enum:
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7
type: integer
description: |-
* `0` - Целочисленное
* `1` - С плавающей запятой
* `2` - Строковое
* `3` - Одно из списка
* `4` - Многие из списка
* `5` - Да/Нет
* `6` - Дата со временем
* `7` - Дата