218 lines
7.1 KiB
YAML
218 lines
7.1 KiB
YAML
openapi: 3.0.3
|
||
info:
|
||
title: UTZ Service API
|
||
description: API для создания и контроля УТЗ.
|
||
version: 1.0.0
|
||
servers:
|
||
- url: http://localhost:8080
|
||
description: Local development server
|
||
paths:
|
||
/create:
|
||
post:
|
||
summary: Создать новую УТЗ
|
||
description: Создается новая УТЗ.
|
||
operationId: createUTZ
|
||
requestBody:
|
||
required: true
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: "#/components/schemas/UTZCreateRequest"
|
||
responses:
|
||
"201":
|
||
description: UTZ успешно создана
|
||
content:
|
||
application/json:
|
||
schema:
|
||
$ref: "#/components/schemas/UTZCreateResponse"
|
||
"401":
|
||
description: Ошибка аутентификации
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: "Ошибка аутентификации"
|
||
"500":
|
||
description: Ошибка сервера
|
||
content:
|
||
application/json:
|
||
schema:
|
||
type: object
|
||
properties:
|
||
error:
|
||
type: string
|
||
example: "Внутренняя ошибка сервера"
|
||
components:
|
||
schemas:
|
||
UTZCreateRequest:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Название UTZ
|
||
example: "Моя первая UTZ"
|
||
description:
|
||
type: string
|
||
description: Описание UTZ
|
||
example: "//TODO Добавить описание"
|
||
limits:
|
||
type: array
|
||
description: Список общих ограничений UTZ
|
||
items:
|
||
$ref: "#/components/schemas/Limit"
|
||
stages:
|
||
type: array
|
||
description: Список этапов UTZ
|
||
items:
|
||
$ref: "#/components/schemas/Stage"
|
||
|
||
required:
|
||
- name
|
||
- description
|
||
- limits
|
||
- stages
|
||
|
||
UTZCreateResponse:
|
||
type: object
|
||
properties:
|
||
id:
|
||
type: string
|
||
description: Уникальный идентификатор созданной UTZ
|
||
Limit:
|
||
type: object
|
||
properties:
|
||
type:
|
||
type: string
|
||
enum:
|
||
- SCHEME_VALUE_CONSTRAINT
|
||
- USER_ACTION_CONSTRAINT
|
||
description: Тип ограничения
|
||
contraint_object_id:
|
||
type: string
|
||
description: Идентификатор объекта ограничения
|
||
constraints:
|
||
type: array
|
||
description: Список ограничений
|
||
items:
|
||
$ref: "#/components/schemas/Constraint"
|
||
isCritical:
|
||
type: boolean
|
||
description: Флаг критичности ограничения, если true, нарушение ограничения приведет к остановке УТЗ
|
||
isReached:
|
||
type: boolean
|
||
description: Флаг достижения ограничения, если true, ограничение было достигнуто
|
||
Constraint:
|
||
type: object
|
||
properties:
|
||
key:
|
||
type: string
|
||
description: Ключ ограничения
|
||
enum:
|
||
- ">"
|
||
- "<"
|
||
- "="
|
||
- "!="
|
||
value:
|
||
type: string
|
||
description: Значение ограничения
|
||
Stage:
|
||
type: object
|
||
properties:
|
||
name:
|
||
type: string
|
||
description: Название этапа
|
||
description:
|
||
type: string
|
||
description: Описание этапа
|
||
limits:
|
||
type: array
|
||
description: Список ограничений этапа
|
||
items:
|
||
$ref: "#/components/schemas/Limit"
|
||
actionGroups:
|
||
type: array
|
||
description: Список групп действий этапа
|
||
items:
|
||
$ref: "#/components/schemas/ActionGroup"
|
||
completionCondition:
|
||
$ref: "#/components/schemas/CompletionCondition"
|
||
required:
|
||
- name
|
||
- description
|
||
- limits
|
||
- actionGroups
|
||
ActionGroup:
|
||
type: object
|
||
properties:
|
||
actionType:
|
||
type: string
|
||
enum:
|
||
- USER_ACTION_GROUP
|
||
- SYSTEM_ACTION_GROUP
|
||
description: Тип группы действий
|
||
actions:
|
||
type: array
|
||
description: Список действий в группе
|
||
items:
|
||
$ref: "#/components/schemas/Action"
|
||
isRequired:
|
||
type: boolean
|
||
description: Флаг обязательности выполнения группы действий для завершения этапа
|
||
isRandomOrder:
|
||
type: boolean
|
||
description: Флаг возможности случайного порядка выполнения действий в группе
|
||
Action:
|
||
type: object
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
description: Идентификатор объекта на схеме
|
||
propertyName:
|
||
type: string
|
||
description: Название свойства объекта
|
||
newValue:
|
||
type: string
|
||
description: Новое значение свойства объекта
|
||
CompletionCondition:
|
||
type: object
|
||
description: Условие завершения этапа
|
||
properties:
|
||
userActionCheckCondition:
|
||
type: string
|
||
enum:
|
||
- allUserActionsCompleted
|
||
- requiredUserActionsCompleted
|
||
- notCheck
|
||
description: Тип проверки пользовательских действий для завершения этапа
|
||
timeCondition:
|
||
$ref: "#/components/schemas/TimeCondition"
|
||
propertyListCondition:
|
||
type: array
|
||
description: Список условий по свойствам для завершения этапа
|
||
items:
|
||
$ref: "#/components/schemas/PropertyCondition"
|
||
TimeCondition:
|
||
type: object
|
||
properties:
|
||
durationSeconds:
|
||
type: integer
|
||
description: Продолжительность в секундах для завершения этапа
|
||
PropertyCondition:
|
||
type: object
|
||
description: Проверка значения свойства объекта на схеме
|
||
properties:
|
||
objectId:
|
||
type: string
|
||
description: ID объекта на схеме
|
||
propertyName:
|
||
type: string
|
||
description: Название свойства
|
||
operator:
|
||
type: string
|
||
enum: [">", "<", "=", "!=", ">=", "<="]
|
||
expectedValue:
|
||
type: string
|
||
description: Ожидаемое значение для выполнения проверки |