OpenApi for tasks_worker Luna Tasks service¶
View spec in html.
openapi: 3.0.0
info:
version: 'v.3.22.9'
title: 'Luna tasks-worker'
description: 'VisionLabs Luna Tasks Worker'
servers:
- description: SwaggerHub API Auto Mocking
url: https://virtserver.swaggerhub.com/visionlabs/luna-tasks/v.3.22.9
components:
headers:
application_json:
schema:
type: string
enum:
- application/json
required: true
description: content type is application/json
application_zip:
schema:
type: string
enum:
- application/zip
required: true
description: content type is application/zip
content_disposition:
schema:
type: string
example: 'attachment; filename=task_146.zip'
required: true
description: content disposition with filename
transfer_encoding:
schema:
type: string
example: 'chunked'
required: true
description: transfer encoding type
text_plain:
schema:
type: string
enum:
- text/plain
required: true
description: content type is text/plain
image_jpeg:
schema:
type: string
enum:
- image/jpeg
description: content type is image/jpeg
required: true
luna_request_id:
schema:
type: string
format: timestamp,uuid
example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a
pattern: ^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$
description: request id. Helps to uniquely identify messages that correspond to particular requests, in system logs.
required: true
docs_content_type:
schema:
type: string
enum:
- application/x-yaml
- text/html
required: true
description: Type of receiving data
text_html:
schema:
type: string
enum:
- text/html
required: true
description: Content type is text/html
config_accept_content_type:
schema:
type: string
enum:
- application/json
- text/plain
required: false
description: The content type of the response body.
parameters:
page:
in: query
name: page
schema:
type: integer
minimum: 1
default: 1
description: a page number.
luna_request_id:
in: header
schema:
type: string
format: timestamp,uuid
example: 1536751345,8b8b5937-2e9c-4e8b-a7a7-5caf86621b5a
pattern: ^[0-9]{10},[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$
description: |
external request id. Helps to uniquely identify messages that correspond to particular requests, in system logs.
If it was not set, system will set it in default format ("timestamp,UUID"). It will be returned with response.
name: Luna-Request-Id
page_size:
in: query
name: page_size
schema:
type: integer
minimum: 1
maximum: 1000
default: 10
description: the number of items on page.
applicationJsonContent:
in: header
name: Content-Type
schema:
type: string
enum:
- application/json
description: content type is application/json.
schedule_id:
in: query
name: schedule_id
schema:
$ref: '#/components/schemas/schedule_id'
description: Schedule according to which the task was created
schedule_id_path:
in: path
name: schedule_id
required: true
schema:
$ref: '#/components/schemas/schedule_id'
description: Schedule according to which the task was created
schedule_patch:
in: query
name: action
required: true
schema:
type: string
enum: [pause, start]
description: pause/start tasks schedule
create_time__lt:
in: query
name: create_time__lt
schema:
type: string
format: date-time
description: upper bound for object create_time.
example: "2018-08-11T09:11:41.674Z"
create_time__gte:
in: query
name: create_time__gte
schema:
type: string
format: date-time
description: lower included bound for object create_time.
example: "2018-08-11T09:11:41.674Z"
end_time__lt:
in: query
name: end_time__lt
schema:
type: string
format: date-time
description: upper bound for object end_time.
example: "2018-08-11T09:11:41.674Z"
end_time__gte:
in: query
name: end_time__gte
schema:
type: string
format: date-time
description: lower included bound for object end_time.
example: "2018-08-11T09:11:41.674Z"
error_time__lt:
in: query
name: error_time__lt
schema:
type: string
format: date-time
description: upper bound for object error_time.
example: "2018-08-11T09:11:41.674Z"
error_time__gte:
in: query
name: error_time__gte
schema:
type: string
format: date-time
description: lower included bound for object error_time.
example: "2018-08-11T09:11:41.674Z"
task_type:
in: query
name: task_type
schema:
$ref: '#/components/schemas/task_type'
example: 1
task_type_schedulable:
in: query
name: task_type
schema:
$ref: '#/components/schemas/task_type_schedulable'
example: 1
task_status:
in: query
name: task_status
schema:
$ref: '#/components/schemas/task_status'
example: 1
subtask_status:
in: query
name: subtask_status
schema:
$ref: '#/components/schemas/subtask_status'
example: 2
account_id:
in: query
name: account_id
schema:
$ref: '#/components/schemas/uuid'
description: account id.
example: 7daa0e35-36a2-474a-8f2b-87f78b59d080
account_id_header_required:
in: header
name: Luna-Account-Id
schema:
$ref: '#/components/schemas/account_id'
description: luna account id
example: '8950722f-3fd4-4223-b48f-03f95f0e8dfb'
required: true
result_id:
in: query
name: result_id
schema:
$ref: '#/components/schemas/uuid'
description: id of task result, which stored in luna-image store.
example: 8f4f0070-c464-460b-bf78-fac225df72e9
error_ids:
in: query
name: error_ids
schema:
$ref: '#/components/schemas/errorIds'
description: error ids
error_id_uri:
in: path
name: error_id
schema:
$ref: '#/components/schemas/error_id'
required: true
description: error id
example: 10
task_ids:
in: query
name: task_ids
schema:
$ref: '#/components/schemas/task_ids'
description: comma-separate task ids
task_id_uri:
in: path
name: task_id
schema:
$ref: '#/components/schemas/task_id'
required: true
description: task id
error_code:
in: query
name: error_code
schema:
$ref: '#/components/schemas/error_code'
description: error code
status_code:
in: query
name: status_code
schema:
$ref: '#/components/schemas/status_code'
description: status code
accept_docs_handler:
in: header
name: Accept
schema:
$ref: '#/components/schemas/accept_docs_handler'
required: true
description: acceptable type of receiving data
include_luna_services:
in: query
name: include_luna_services
schema:
type: integer
enum: [0, 1]
default: 0
description: whether to perform healthchecks for dependent luna services.
accept_config_handler:
in: header
name: Accept
schema:
type: string
enum:
- application/json
- text/plain
description: One of application/json, text/plain
required: false
description: acceptable type of receiving data
schemas:
Error:
type: object
properties:
error_code:
type: integer
description: Error code.
desc:
type: string
description: Short error description.
detail:
type: string
description: Error details.
link:
type: string
description: Link to the documentation website with the error description.
required: [error_code, detail, desc, link]
example:
error_code: 1
detail: Internal server error
desc: Internal server error
link: https://docs.visionlabs.ai/info/luna/troubleshooting/errors-description/code-1
error_code:
type: integer
description: error code.
error_link:
type: string
description: Link to the documentation website with the error description.
uuid:
type: string
format: uuid
pattern: '^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$'
example: 557d54ec-29ad-4f3c-93b4-c9092ef12515
int01:
type: integer
enum: [ 0,1 ]
int0100:
type: integer
minimum: 0
maximum: 100
string36:
type: string
maxLength: 36
image_origin:
type: string
maxLength: 256
description: the image url - source of the detection
nullable: true
tags:
description: tag array.
type: array
minItems: 1
items:
$ref: '#/components/schemas/string36'
example: ["tag1", "tag2"]
error_id:
type: integer
example: 10
errorIds:
type: string
format: comma-separate task ids
minItems: 1
example: 4,5,6
task_status:
type: integer
enum: [0, 1, 2, 3, 4, 5]
example: 1
description: |
task status
| task status | value |
|-----------------|---|
| pending | 0 |
| in progress | 1 |
| cancelled | 2 |
| failed | 3 |
| collect results | 4 |
| done | 5 |
subtask_status:
type: integer
enum: [0, 1, 2, 3, 4]
example: 2
description: |
subtask status
| subtask status| value |
|-------------------|---|
| pending | 0 |
| in progress | 1 |
| cancelled | 2 |
| failed | 3 |
| done | 4 |
result_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: task result id in a storage.
nullable: true
account_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: account id
task_account_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: account id of the task
example: '346a5645-ec89-4806-820a-dbcb6e0dc381'
task_count:
type: object
properties:
count:
type: integer
minimum: 0
example: 152
description: tasks count
error_count:
type: object
properties:
count:
type: integer
minimum: 0
example: 101
description: errors count
task_type:
type: integer
enum: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
example: 3
description: |
task type
| task type | value |
|----------------------|-------|
| unknown | 0 |
| linker | 1 |
| clusterization | 2 |
| report | 3 |
| garbage collect | 4 |
| additional extract | 5 |
| cross match | 6 |
| roc-curve calculation| 7 |
| export objects | 8 |
| estimate data | 9 |
| lambda task | 10 |
task_type_schedulable:
type: integer
enum: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
example: 3
description: |
task type
| task type | value |
|----------------------|-------|
| linker | 1 |
| clusterization | 2 |
| report | 3 |
| garbage collect | 4 |
| additional extract | 5 |
| cross match | 6 |
| roc-curve calculation| 7 |
| export objects | 8 |
| estimate data | 9 |
| lambda | 10 |
Scheduling a *report* task will spawn 2 tasks: *clusterization* and then *report*. If the *clustering* task is not completed, the *report* task will not be created
int_version:
type: integer
minimum: 0
task_ids:
type: string
format: comma-separate task ids
description: task ids.
example: 1,2,3
task_description:
type: string
maxLength: 128
description: task description
example: "task description"
notification_policy:
type: object
description: tasks processing notification policy
properties:
enable:
allOf:
- $ref: '#/components/schemas/int01'
- description: Whether callbacks enabled or not
- default: 0
task_callbacks:
$ref: '#/components/schemas/task_callbacks'
subtask_callbacks:
$ref: '#/components/schemas/subtask_callbacks'
result_storage_policy_response:
type: object
description: tasks processing result storage policy
properties:
ttl:
type: integer
enum: [ 1, 2, 3, 4, 5, 6, 7, 14, 30, 60, 90, 180, 365, -1 ]
description: Lifetime for task result object, in days. By default, parent bucket lifetime configuration applied. For object to be retained indefinitely, setup `ttl=-1`.
result_storage_policy:
allOf:
- $ref: '#/components/schemas/result_storage_policy_response'
- type: object
properties:
ttl:
nullable: true
task_notification_policy_response:
allOf:
- $ref: "#/components/schemas/notification_policy"
required: [enable, task_callbacks, subtask_callbacks]
task_base:
type: object
properties:
notification_policy:
$ref: '#/components/schemas/notification_policy'
result_storage_policy:
$ref: '#/components/schemas/result_storage_policy'
description:
$ref: '#/components/schemas/task_description'
required: [content]
callback_basic_authorization:
type: object
properties:
type:
type: string
description: Authorization type.
enum: [basic]
login:
type: string
description: Login
password:
type: string
description: Password
required: [ type, login, password]
description: Callback basic authorization parameters
http_callback:
type: object
properties:
type:
type: string
enum: [http]
authorization:
$ref: '#/components/schemas/callback_basic_authorization'
url:
type: string
description: Request url.
format: uri-reference
params:
type: object
properties:
timeout:
type: integer
default: 60
description: Callback request timeout.
content_type:
type: string
default: application/json
enum: [application/json, application/msgpack]
description: Callback request content type.
headers:
type: object
description: Callback request headers.
description: Callback request parameters
enable:
allOf:
- $ref: '#/components/schemas/int01'
- description: Whether callback enabled or not
- default: 1
required: [ type, url ]
telegram_callback:
type: object
properties:
type:
type: string
enum: [ telegram ]
chat_id:
type: integer
description: |
Telegram chat id where callbacks will be sent.
Messages can be delivered to users or channels using their ids.
For detailed information on where to find these ids, please refer to https://core.telegram.org/bots/api.
token:
type: string
description: |
Telegram authorization token.
For details information see <a href="https://core.telegram.org/bots/features#botfather">botfather</a>.
params:
type: object
description: Callback request parameters
properties:
timeout:
type: integer
default: 60
description: Callback request timeout.
enable:
allOf:
- $ref: '#/components/schemas/int01'
- description: Whether callback enabled or not
- default: 1
required: [type, chat_id, token]
task_callback:
oneOf:
- $ref: '#/components/schemas/http_callback'
- $ref: '#/components/schemas/telegram_callback'
discriminator:
propertyName: "type"
mapping:
http: '#/components/schemas/http_callback'
telegram: '#/components/schemas/telegram_callback'
task_callbacks_example:
- type: http
enable: 1
authorization:
type: basic
login: login
password: password
url: http://callback.url
params:
timeout: 60
content_type: "application/json"
headers: { }
- type: telegram
enable: 1
token: 1111111111:aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
chat_id: 111111111
params:
timeout: 60
task_callbacks:
type: array
items:
$ref: '#/components/schemas/task_callback'
description: |
Callbacks for sending tasks id and status to third party system. Callbacks are executed after task status changed.
**Sample Output for successful task**
```
{
"task_id": 123,
"task_status": "done",
"result_id": "00000000-0000-4000-a000-000000658854",
"result_url": "http://127.0.0.1:5000/6/tasks/00000000-0000-4000-a000-000000658854/result"
}
```
** Sample Output for failed task **
```
{"task_id": 123, "task_status": "failed"}
```
** Sample Output for cancelled task **
```
{"task_id": 123, "task_status": "cancelled"}
```
example:
$ref: "#/components/schemas/task_callbacks_example"
subtask_callbacks:
type: array
items:
$ref: '#/components/schemas/task_callback'
description: |
Callbacks for sending subtasks id, status and number of completed subtasks to third party system.
Callbacks are executed after subtask status changed.
** Sample Output for start subtask **
```
{"subtask_id": 123, "subtask_status": "in_progress", "completed_subtasks": 0}
```
** Sample Output for successful subtask **
```
{"subtask_id": 123, "subtask_status": "done", "completed_subtasks": 1}
```
** Sample Output for failed subtask **
```
{"subtask_id": 123, "subtask_status": "failed", "completed_subtasks": 0}
```
** Sample Output for cancelled subtask **
```
{"subtask_id": 123, "subtask_status": "cancelled", "completed_subtasks": 0}
example:
$ref: "#/components/schemas/task_callbacks_example"
task_content:
type: object
description: content of task
example: content
subtask_content:
type: object
description: content of subtask
example: content
additionalProperties: true
objects_type:
type: string
description: objects type - faces or events
enum: ["faces", "events"]
example: "faces"
common_objects_type:
type: string
description: objects type - faces, attributes or events
enum: ["faces", "events", "attributes"]
error_description:
type: string
description: error description
example: Faces not found
error_detail:
type: string
description: error detail
example: One or more faces not found, including face with id '8f4f0070-c464-460b-bf78-fac225df72e9'
errors_additional_info:
type: string
description: additional error info
example: 8f4f0070-c464-460b-bf78-fac225df72e9
nullable: true
count_task_parts_done:
type: integer
minimum: 0
description: count of task finished parts
example: 10
count_task_parts_all:
type: integer
minimum: 1
description: count of task parts
example: 100
status_code:
type: integer
minimum: 400
maximum: 599
description: error status code
example: 500
Version:
type: object
properties:
Version:
type: object
properties:
api:
allOf:
- $ref: '#/components/schemas/int_version'
description: an api version of service.
major:
allOf:
- $ref: '#/components/schemas/int_version'
description: a major version of service.
minor:
allOf:
- $ref: '#/components/schemas/int_version'
description: a minor version of service.
patch:
allOf:
- $ref: '#/components/schemas/int_version'
description: a patch version of service.
required: [api, major, minor, patch]
example:
Version:
api: 1
major: 0
minor: 0
patch: 0
task_id:
type: integer
minimum: 1
description: task id
example: 123
subtask_id:
type: integer
minimum: 1
description: subtask id
example: 5
time:
description: time in rfc3339 format
type: string
format: date-time
example: "2021-07-28T01:23:21.537604+03:00"
detect_ts:
type: number
minimum: 0.0
maximum: 158731466399.999
description: user-defined timestamp relative to something, such as the start of a video
example: 123.456
nullable: true
time_nullable:
type: string
nullable: true
format: date-time
example: "2018-08-11T10:11:41.674Z"
tasks_reply:
type: object
description: tasks container
properties:
tasks:
type: array
description: found tasks
items:
$ref: '#/components/schemas/task_reply'
limit:
description: Maximum number of matching candidates to return for every match.
type: integer
minimum: 1
example: 3
default: 5
clustering_limit:
allOf:
- $ref: '#/components/schemas/limit'
maximum: 20000
default: 20000
subtask_in_reply:
type: object
properties:
subtask_id:
$ref: '#/components/schemas/subtask_id'
task_id:
$ref: '#/components/schemas/task_id'
result_id:
$ref: '#/components/schemas/result_id'
create_time:
allOf:
- $ref: '#/components/schemas/time'
description: subtask create time
end_time:
allOf:
- $ref: '#/components/schemas/time_nullable'
description: subtask end time
subtask_status:
$ref: '#/components/schemas/subtask_status'
content:
$ref: '#/components/schemas/subtask_content'
required: [subtask_id, task_id, create_time, subtask_status, content]
subtasks_reply:
description: Subtasks of a current task.
type: object
properties:
subtasks:
type: array
items:
$ref: '#/components/schemas/subtask_in_reply'
task_error:
type: object
properties:
error_id:
$ref: '#/components/schemas/error_id'
task_id:
$ref: '#/components/schemas/task_id'
subtask_id:
$ref: '#/components/schemas/subtask_id'
error_code:
$ref: '#/components/schemas/error_code'
link:
$ref: '#/components/schemas/error_link'
description:
$ref: '#/components/schemas/error_description'
detail:
$ref: '#/components/schemas/error_detail'
additional_info:
$ref: '#/components/schemas/errors_additional_info'
error_time:
allOf:
- $ref: '#/components/schemas/time'
description: error time
required: [error_id, task_id, subtask_id, error_code, link, description, detail, error_time]
task_errors:
type: array
items:
$ref: '#/components/schemas/task_error'
maxItems: 100000
description: |
done task errors. Max error count is setting in the service configuration file. This limitation is applied at the moment when the
task creates result.
task_handler_errors:
type: array
items:
$ref: '#/components/schemas/Error'
minItems: 0
description: image processing errors in handlers
float10:
type: number
format: float
minimum: 0
maximum: 1
face_ids:
description: face ids
type: array
minItems: 1
items:
$ref: '#/components/schemas/uuid'
example: ['8950722f-3fd4-4223-b48f-03f95f0e8dfb', '346a5645-ec89-4806-820a-dbcb6e0dc381']
attribute_ids:
description: attribute ids
type: array
items:
$ref: '#/components/schemas/uuid'
minItems: 1
example: ['8950722f-3fd4-4223-b48f-03f95f0e8dfb', '346a5645-ec89-4806-820a-dbcb6e0dc381']
external_id:
description: user-defined external id for face.
type: string
maxLength: 36
example: "2xQ2gprbMUePw1s9gw9fvA=="
external_ids:
type: array
minItems: 1
items:
$ref: '#/components/schemas/external_id'
description: list of external ids. Each event from result will contain one of the given external ids.
example: ['8950722f-3fd4-4223-b48f-03f95f0e8dfb', '346a5645-ec89-4806-820a-dbcb6e0dc381']
user_data:
description: user data.
type: string
maxLength: 128
example: "100-00-12"
face_id__gte:
allOf:
- $ref: '#/components/schemas/uuid'
description: face id lower included boundary
face_id__lt:
allOf:
- $ref: '#/components/schemas/uuid'
description: face id upper excluded boundary
descriptor_info:
type: object
description: descriptor object filter
properties:
type:
type: string
description: descriptor type
enum: ["face", "body"]
default: "face"
required: [type]
faces_filters_no_account:
allOf:
- $ref: '#/components/schemas/faces_filters_no_create_time'
type: object
properties:
create_time__gte:
description: Create time lower included boundary.
oneOf:
- $ref: '#/components/schemas/create_time__gte'
- $ref: '#/components/schemas/create_time_now__gte'
create_time__lt:
description: Create time upper excluded boundary.
oneOf:
- $ref: '#/components/schemas/create_time__lt'
- $ref: '#/components/schemas/create_time_now__lt'
faces_filters_schedule:
allOf:
- $ref: '#/components/schemas/faces_filters_no_create_time'
type: object
properties:
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time_now__gte'
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time_now__lt'
account_id:
$ref: '#/components/schemas/account_id'
faces_filters_no_create_time:
type: object
properties:
face_ids:
$ref: '#/components/schemas/face_ids'
external_ids:
$ref: '#/components/schemas/external_ids'
user_data:
$ref: '#/components/schemas/user_data'
face_id__gte:
$ref: '#/components/schemas/face_id__gte'
face_id__lt:
$ref: '#/components/schemas/face_id__lt'
list_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: list id.
example: '8950722f-3fd4-4223-b48f-03f95f0e8dfb'
faces_filters_no_account_limited:
allOf:
- $ref: '#/components/schemas/faces_filters_no_account'
properties:
face_ids:
maxItems: 20000
external_ids:
maxItems: 1000
faces_filters_no_account_limited_reply:
allOf:
- $ref: '#/components/schemas/faces_filters_no_create_time'
properties:
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time__gte'
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time__lt'
face_ids:
maxItems: 20000
external_ids:
maxItems: 1000
faces_filters:
allOf:
- $ref: '#/components/schemas/faces_filters_no_account'
type: object
properties:
account_id:
$ref: '#/components/schemas/account_id'
required: [ account_id ]
faces_filters_regular_create_time:
allOf:
- $ref: '#/components/schemas/faces_filters_no_create_time'
type: object
properties:
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time__gte'
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time__lt'
account_id:
$ref: '#/components/schemas/account_id'
required: [ account_id ]
faces_filters_limited_optional_account:
allOf:
- $ref: '#/components/schemas/faces_filters_no_account_limited'
properties:
account_id:
$ref: '#/components/schemas/account_id'
faces_filters_limited:
allOf:
- $ref: '#/components/schemas/faces_filters_limited_optional_account'
required: [account_id]
attributes_filters_no_account:
type: object
properties:
attribute_ids:
$ref: '#/components/schemas/attribute_ids'
required: [attribute_ids]
attributes_filters_no_account_limited:
allOf:
- $ref: '#/components/schemas/attributes_filters_no_account'
type: object
properties:
attribute_ids:
minItems: 1
maxItems: 20000
geo_position:
type: object
description: |
geo position filter is bounding box specified by coordinates of its center (origin) and some delta.
WARNING: boxes with a vertex or border on the International Date Line (IDL) or the North or South pole are
not fully supported due to features of database spatial index - filter result may be unexpected.
NOTE: highly recommended for citywide use only.
properties:
origin_longitude:
$ref: '#/components/schemas/longitude'
origin_latitude:
$ref: '#/components/schemas/latitude'
longitude_delta:
type: number
minimum: 0
maximum: 90
default: 0.01
example: 0.1
description: |
longitude delta in degrees.
WARNING: boxes with a vertex or border on the International Date Line (IDL) or the North or South pole
are not fully supported due to features of database spatial index - filter result may be unexpected.
Box edges more than 180 degrees long are not allowed. Boundaries of valid range are **exclusive**. NOTE: highly recommended for citywide use only.
latitude_delta:
type: number
minimum: 0
maximum: 90
default: 0.01
example: 0.1
description: |
latitude delta in degrees.
WARNING: boxes with a vertex or border on the International Date Line (IDL) or the North or South pole
are not fully supported due to features of database spatial index - filter result may be unexpected.
Box edges more than 180 degrees long are not allowed. Boundaries of valid range are **exclusive**. NOTE: highly recommended for citywide use only.
required: [origin_longitude, origin_latitude]
label:
type: string
maxLength: 36
description: matching label
example: "matching_label"
stream_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: stream ID.
example: "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
event_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: event ID.
example: "b668c4a5-2191-476e-a261-3b4f9ce2e25e"
event_id__gte:
allOf:
- $ref: '#/components/schemas/event_id'
description: event id lower included boundary
event_id__lt:
allOf:
- $ref: '#/components/schemas/event_id'
description: event id upper excluded boundary
lower_garment_type:
type: [string, null]
enum: [ skirt, shorts, trousers, undefined, null ]
description: |
lower garment type.
> **WARNING** This enum may be to expand. This field must be interpret as arbitrary string which can be equal
to one element from enum.
short_palette:
description: |
short color palette
> **WARNING** This enum may be to expand. This field must be interpret as arbitrary string which can be equal
to one element from enum.
type: [string, null]
enum: [ black, other, white, undefined, null ]
expanded_palette:
description: |
expanded color palette for clothing
> **WARNING** This enum may be to expand. This field must be interpret as arbitrary string which can be equal
to one element from enum.
type: [string, null]
enum: [ black, blue, green, gray, orange, purple, red, white, yellow, pink, brown, beige, khaki, multicolored, undefined, null ]
events_filters_no_account:
allOf:
- $ref: '#/components/schemas/events_filters_no_create_end_time'
properties:
create_time__gte:
description: Create time lower included boundary.
oneOf:
- $ref: '#/components/schemas/create_time__gte'
- $ref: '#/components/schemas/create_time_now__gte'
create_time__lt:
description: Create time upper excluded boundary.
oneOf:
- $ref: '#/components/schemas/create_time__lt'
- $ref: '#/components/schemas/create_time_now__lt'
end_time__gte:
description: End time lower included boundary.
oneOf:
- $ref: '#/components/schemas/end_time__gte'
- $ref: '#/components/schemas/end_time_now__gte'
end_time__lt:
description: End time upper excluded boundary.
oneOf:
- $ref: '#/components/schemas/end_time__lt'
- $ref: '#/components/schemas/end_time_now__lt'
events_filters_schedule:
allOf:
- $ref: '#/components/schemas/events_filters_no_create_end_time'
properties:
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time_now__gte'
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time_now__lt'
end_time__gte:
description: End time lower included boundary.
$ref: '#/components/schemas/end_time_now__gte'
end_time__lt:
description: End time upper excluded boundary.
$ref: '#/components/schemas/end_time_now__lt'
account_id:
$ref: '#/components/schemas/account_id'
deepfake_enum:
description: |
predominant deepfake.
| deepfake | value |
|--------------|---|
| fake | 0 |
| real | 1 |
type: [integer, null]
enum: [0, 1, null]
deepfake_filter:
type: array
minItems: 1
items:
$ref: '#/components/schemas/deepfake_enum'
description: |
list of deepfake. Each event from result will contain one of the given deepfake.
| deepfake | value |
|--------------|---|
| fake | 0 |
| real | 1 |
events_filters_no_create_end_time:
type: object
properties:
sources:
description: sources. Each event from result will contain one of the given sources.
type: array
minItems: 1
items:
type: [string, null]
example: ["cam1", "cam2"]
stream_ids:
description: stream ids
type: array
minItems: 1
items:
allOf:
- $ref: '#/components/schemas/stream_id'
- nullable: true
example: ['8950722f-3fd4-4223-b48f-03f95f0e8dfb', '346a5645-ec89-4806-820a-dbcb6e0dc381']
event_ids:
description: events ids
type: array
minItems: 1
items:
$ref: '#/components/schemas/event_id'
example: ['8950722f-3fd4-4223-b48f-03f95f0e8dfb', '346a5645-ec89-4806-820a-dbcb6e0dc381']
event_id__gte:
$ref: '#/components/schemas/event_id__gte'
event_id__lt:
$ref: '#/components/schemas/event_id__lt'
external_ids:
$ref: '#/components/schemas/external_ids'
handler_ids:
description: handler ids. Each event from result will contain one of the given handlers.
type: array
minItems: 1
items:
$ref: '#/components/schemas/uuid'
example: ['8950722f-3fd4-4223-b48f-03f95f0e8dfb', '346a5645-ec89-4806-820a-dbcb6e0dc381']
top_matching_candidates_label:
type: string
maxLength: 36
description: top matching candidate label
example: "matching_label"
top_similar_object_ids:
description: ids of the most similar object.
type: array
minItems: 1
items:
$ref: '#/components/schemas/uuid'
example: ['8950722f-3fd4-4223-b48f-03f95f0e8dfb', '346a5645-ec89-4806-820a-dbcb6e0dc381']
top_similar_external_ids:
description: external ids of the most similar objects.
type: array
minItems: 1
items:
$ref: '#/components/schemas/external_id'
example: ['external_id_1', 'external_id_2']
top_similar_object_similarity__gte:
allOf:
- $ref: '#/components/schemas/float10'
description: the lower including boundary of the most similar face similarity.
example: 0.5
top_similar_object_similarity__lt:
allOf:
- $ref: '#/components/schemas/float10'
description: the upper excluding boundary of the most similar face similarity.
age__lt:
description: the upper excluding boundary of age.
type: integer
minimum: 0
maximum: 100
example: 50
age__gte:
description: the lower including boundary of age.
type: integer
minimum: 0
maximum: 100
example: 50
gender:
type: [integer, null]
enum: [ 0, 1, null ]
description: gender, 0 - female, 1 - male
emotions:
description: |
list of predominant emotions. Each event from result will contain one of the given emotions.
| emotions | value |
|-----------------|---|
| anger | 1 |
| disgust | 2 |
| fear | 3 |
| happiness | 4 |
| neutral | 5 |
| sadness | 6 |
| surprise | 7 |
type: array
minItems: 1
items:
type: [integer, null]
enum: [1, 2, 3, 4, 5, 6, 7, null]
example: [1, 2, 3]
ethnic_groups:
description: |
list of dominant ethnic group. Each event from result will contain one of the given ethnic groups.
| ethnicity | value |
|-----------------|---|
| AfricanAmerican | 1 |
| Indian | 2 |
| Asian | 3 |
| Caucasian | 4 |
type: array
minItems: 1
items:
type: [integer, null]
enum: [1, 2, 3, 4, null]
example: [1, 2]
face_ids:
$ref: '#/components/schemas/face_ids'
user_data:
$ref: '#/components/schemas/user_data'
tags:
allOf:
- $ref: '#/components/schemas/tags'
description: list of tags. Each event from result will contain all of the given tags.
cities:
description: comma-separated list of cities. Each event from result will contain one of the given cities in location.
type: array
minItems: 1
items:
type: [string, null]
example: ["moscow", "New-York"]
areas:
description: comma-separated list of areas. Each event from result will contain one of the given areas in location.
type: array
minItems: 1
items:
type: [string, null]
example: ["CAO", "central park"]
districts:
description: comma-separated list of districts. Each event from result will contain one of the given districts in location.
type: array
minItems: 1
items:
type: [string, null]
example: ["mitino", "central park"]
streets:
description: comma-separated list of streets. Each event from result will contain one of the given streets in location.
type: array
minItems: 1
items:
type: [string, null]
example: ["arbat", "schepkina"]
house_numbers:
description: comma-separated list of house numbers. Each event from result will contain one of the given house numbers in location.
type: array
minItems: 1
items:
type: [string, null]
example: ["1", "1/2str3"]
geo_position:
allOf:
- $ref: '#/components/schemas/geo_position'
nullable: true
masks:
description: |
list of mask states. Each event from result will contain one of the given mask states.
| masks | value |
|----------------|---|
| missing | 1 |
| medical_mask | 2 |
| occluded | 3 |
type: array
minItems: 1
items:
type: [integer, null]
enum: [1, 2, 3, null]
example: [2, 3]
track_ids:
type: array
minItems: 1
description: list of track ids. Each event from result will contain one of the given track ids.
items:
type: [string, null]
pattern: '^[a-zA-Z0-9_\-]{1,36}$'
example: ["track_id_number_1", "track_id_number_2"]
liveness:
type: array
minItems: 1
description: |
list of predominant liveness. Each event from result will contain one of the given liveness.
| liveness | value |
|--------------|---|
| spoof | 0 |
| real | 1 |
| unknown | 2 |
items:
type: [integer, null]
enum: [0, 1, 2, null]
example: [1, 2]
deepfake:
$ref: '#/components/schemas/deepfake_filter'
apparent_gender:
type: array
minItems: 1
items:
type: [integer, null]
nullable: true
enum: [ 0, 1, 2, null ]
description: |
List of apparent gender: 0 - female, 1 - male, 2 - undefined. Each event from result will contain one of the given states.
example: [0,1]
apparent_age__lt:
type: integer
minimum: 0
maximum: 100
description: Apparent age upper excluded bound.
example: 50
apparent_age__gte:
type: integer
minimum: 0
maximum: 100
description: Apparent age lower included bound.
example: 50
headwear_states:
type: array
minItems: 1
items:
type: [integer, null]
enum: [ 0, 1, 2, null ]
description: |
List of headwear states: 0 - absent, 1 - present, 2 - undefined. Each event from result will contain one of the given states.
example: [0,1]
sleeve_lengths:
type: array
minItems: 1
items:
type: [string, null]
enum: [ short, long, undefined, null ]
description: |
List of sleeve length states. Each event from result will contain one of the given states.
example: [short,long]
upper_clothing_colors:
type: array
minItems: 1
items:
$ref: "#/components/schemas/expanded_palette"
description: |
List of upper clothing colors. Each event from result will contain at least one of the given clothing colors.
example: [black,white]
lower_garment_colors:
type: array
minItems: 1
items:
$ref: "#/components/schemas/expanded_palette"
description: |
Clothing color filter. Each event from result will contain at least one of the given clothing colors.
> **WARNING** This enum may be to expand. This field must be interpret as arbitrary string which can be equal
to one element from enum.
example: [ black, white ]
backpack_states:
type: array
minItems: 1
items:
type: [integer, null]
enum: [ 0, 1, 2, null ]
description: |
List of backpack states: 0 - absent, 1 - present, 2 - undefined. Each event from result will contain one of the given states.
example: [1,2]
lower_garment_types:
type: array
minItems: 1
items:
$ref: '#/components/schemas/lower_garment_type'
description: |
Lower garment type filter.
> **WARNING** This enum may be to expand. This field must be interpret as arbitrary string which can be equal
to one element from enum.
example: [ 'shorts', 'skirt' ]
shoes_apparent_colors:
type: array
minItems: 1
items:
$ref: '#/components/schemas/short_palette'
description: |
Shoes apparent color filter.
> **WARNING** This enum may be to expand. This field must be interpret as arbitrary string which can be equal
to one element from enum.
example: [ 'white' ]
headwear_apparent_colors:
type: array
minItems: 1
items:
$ref: '#/components/schemas/short_palette'
description: |
Headwear apparent color filter.
> **WARNING** This enum may be to expand. This field must be interpret as arbitrary string which can be equal
to one element from enum.
example: [ 'black' ]
meta:
type: object
nullable: true
additionalProperties: true
description: |
User-defined event meta's filters.
Parameter name pattern: `path.to.field[__operator]`
Path to field is an event meta's json field path. To navigate through nested objects the dot (.) is used.
Field comparison **operator** is optional one of `eq` (default), `neq`, `like`, `nlike`, `in`, `nin`, `gt`, `gte`, `lt`, `lte`.
Please note importance of using correct types when filtering. For example, the following filter is not valid:
{"age__gt": 20.0} in case some of the metas contain `age` with datatype different from `number`.
Allowed usage of filters is:
| operator | type | | | |
|------------|------|--------|---------|---------|
| | none | string | integer | numeric |
| eq | + | + | + | + |
| neq | + | + | + | + |
| like | - | + | - | - |
| nlike | - | + | - | - |
| in | + | + | + | + |
| nin | + | + | + | + |
| gt | - | + | + | + |
| gte | - | + | + | + |
| lt | - | + | + | + |
| lte | - | + | + | + |
example: {"user.email": "root@localhost", "user.age__gt": 18}
events_filters_no_filters_limited:
allOf:
- $ref: '#/components/schemas/events_filters_no_create_end_time'
type: object
properties:
event_ids:
maxItems: 20000
handler_ids:
maxItems: 1000
external_ids:
maxItems: 1000
top_similar_object_ids:
maxItems: 1000
top_similar_external_ids:
maxItems: 1000
face_ids:
maxItems: 1000
sources:
maxItems: 1000
stream_ids:
maxItems: 1000
cities:
maxItems: 1000
areas:
maxItems: 1000
districts:
maxItems: 1000
streets:
maxItems: 1000
house_numbers:
maxItems: 1000
track_ids:
maxItems: 1000
events_filters_no_account_limited:
allOf:
- $ref: '#/components/schemas/events_filters_no_filters_limited'
properties:
create_time__gte:
description: Create time lower included boundary.
oneOf:
- $ref: '#/components/schemas/create_time__gte'
- $ref: '#/components/schemas/create_time_now__gte'
create_time__lt:
description: Create time upper excluded boundary.
oneOf:
- $ref: '#/components/schemas/create_time__lt'
- $ref: '#/components/schemas/create_time_now__lt'
end_time__gte:
description: End time lower included boundary.
oneOf:
- $ref: '#/components/schemas/end_time__gte'
- $ref: '#/components/schemas/end_time_now__gte'
end_time__lt:
description: End time upper excluded boundary.
oneOf:
- $ref: '#/components/schemas/end_time__lt'
- $ref: '#/components/schemas/end_time_now__lt'
events_filters_no_account_limited_reply:
allOf:
- $ref: '#/components/schemas/events_filters_no_filters_limited'
type: object
properties:
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time__gte'
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time__lt'
end_time__gte:
description: End time lower included boundary.
$ref: '#/components/schemas/end_time__gte'
end_time__lt:
description: End time upper excluded boundary.
$ref: '#/components/schemas/end_time__lt'
events_filters:
allOf:
- $ref: '#/components/schemas/events_filters_no_account'
properties:
account_id:
$ref: '#/components/schemas/account_id'
required: [ account_id ]
events_filters_regular_create_time:
allOf:
- $ref: '#/components/schemas/events_filters_no_create_end_time'
type: object
properties:
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time__gte'
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time__lt'
end_time__gte:
description: End time lower included boundary.
$ref: '#/components/schemas/end_time__gte'
end_time__lt:
description: End time upper excluded boundary.
$ref: '#/components/schemas/end_time__lt'
account_id:
$ref: '#/components/schemas/account_id'
required: [ account_id ]
events_filters_limited_optional_account:
allOf:
- $ref: '#/components/schemas/events_filters_no_account_limited'
properties:
account_id:
$ref: '#/components/schemas/account_id'
events_filters_limited:
allOf:
- $ref: '#/components/schemas/events_filters_limited_optional_account'
required: [ account_id ]
face_filters:
description: face filters.
type: object
properties:
account_id:
$ref: '#/components/schemas/account_id'
face_id__lt:
allOf:
- $ref: '#/components/schemas/uuid'
description: upper face id excluding boundary.
face_id__gte:
allOf:
- $ref: '#/components/schemas/uuid'
description: lower face id including boundary.
linker_task_content:
allOf:
- $ref: "#/components/schemas/linker_task_content_no_filters"
type: object
properties:
filters:
anyOf:
- $ref: '#/components/schemas/faces_filters'
- $ref: '#/components/schemas/events_filters'
required: [ objects_type, filters ]
linker_task_content_reply:
allOf:
- $ref: "#/components/schemas/linker_task_content_no_filters"
type: object
properties:
filters:
anyOf:
- $ref: '#/components/schemas/faces_filters_regular_create_time'
- $ref: '#/components/schemas/events_filters_regular_create_time'
required: [ objects_type, filters ]
linker_task_content_schedule:
allOf:
- $ref: "#/components/schemas/linker_task_content_no_filters"
type: object
properties:
filters:
anyOf:
- $ref: '#/components/schemas/faces_filters_schedule'
- $ref: '#/components/schemas/events_filters_schedule'
required: [account_id]
required: [ objects_type, filters ]
linker_task_content_no_filters:
type: object
description: linker task content
properties:
create_list:
description: create list to link faces to or not | require list_id or create_list set to 1
type: integer
enum: [0, 1]
example: 0
list_id:
description: id of list to link faces to | require list_id or create_list set to 1
allOf:
- $ref: '#/components/schemas/uuid'
user_data:
allOf:
- $ref: '#/components/schemas/user_data'
description: user data to create the list with | works if create_list set to 1
objects_type:
$ref: '#/components/schemas/objects_type'
linker_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/linker_task_content'
new_handler_task_estimator:
type: object
description: new handler with policies
properties:
description:
type: string
maxLength: 128
description: user description.
default: estimator_task_{task_id}
policies:
description: handler policies.
type: object
additionalProperties:
x-additionalPropertiesName: new handler policies fields
description: See the Luna Handlers documentation section for details - "creating a handler".
required: [policies]
existing_handler_task_estimator:
type: object
description: existing handler
properties:
handler_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: |
handler_id of static or dynamic handler.
An error will occur if policies are specified for static handlers.
policies:
description: handler policies (required for dynamic handler).
type: object
additionalProperties:
x-additionalPropertiesName: handler policies fields
description: See the Luna Handlers documentation section for details - "creating a handler".
required: [ handler_id ]
base_estimator_task_content_source:
type: object
properties:
image_type:
type: integer
enum: [0,1,2]
default: 0
description: image type of input image. 0 - raw image, 1 - face warped image, 2 - body warped image
required: [source_type]
base_estimator_task_content_source_required:
allOf:
- $ref: '#/components/schemas/base_estimator_task_content_source'
- required: [image_type, source_type]
zip_password_authorization:
type: object
description: password authorization
properties:
password:
type: string
maxLength: 128
description: user password for the archive (zip archive support now)
estimator_authorization_by_password:
type: object
description: user authorization meta
properties:
source_type:
type: string
enum: ["zip"]
description: data type where images are located
reference:
oneOf:
- $ref: '#/components/schemas/zip_reference'
- type: string
description: archive location url
format: uri
authorization:
$ref: '#/components/schemas/zip_password_authorization'
recursive:
type: boolean
default: true
description: whether to estimate images from zip archive subdirectories recursively
required: [reference]
estimator_source_with_option_zip:
allOf:
- $ref: '#/components/schemas/estimator_authorization_by_password'
- $ref: '#/components/schemas/base_estimator_task_content_source'
estimator_source_with_option_network_disk:
allOf:
- $ref: '#/components/schemas/estimator_mounted_network_path'
- $ref: '#/components/schemas/base_estimator_task_content_source'
estimator_source_with_option_ftp:
allOf:
- $ref: '#/components/schemas/estimator_ftp_server_data'
- $ref: '#/components/schemas/base_estimator_task_content_source'
estimator_source_with_option_samba:
allOf:
- $ref: '#/components/schemas/estimator_samba_data'
- $ref: '#/components/schemas/base_estimator_task_content_source'
estimator_source_with_option_zip_required:
allOf:
- $ref: '#/components/schemas/estimator_authorization_by_password'
- $ref: '#/components/schemas/base_estimator_task_content_source_required'
estimator_source_with_option_network_disk_required:
allOf:
- $ref: '#/components/schemas/estimator_mounted_network_path_required'
- $ref: '#/components/schemas/base_estimator_task_content_source_required'
estimator_source_with_option_ftp_required:
allOf:
- $ref: '#/components/schemas/estimator_ftp_server_data_required'
- $ref: '#/components/schemas/base_estimator_task_content_source_required'
estimator_source_with_option_samba_required:
allOf:
- $ref: '#/components/schemas/estimator_samba_data_required'
- $ref: '#/components/schemas/base_estimator_task_content_source_required'
prefix_schema:
type: string
description: |
file key prefix, also can be used to download from specific folder
example file tree and prefixes
```
.
├── prefix
│ ├── 123_file.jpg
│ └── file2.jpg
├── temp_file.jpg
└── prefix_file.jpg
```
| prefix | result files |
|---------------|--------------------------------------------------------|
| prefix | prefix/file2.jpg, prefix/123_file.jpg, prefix_file.jpg |
| prefix/ | prefix/file2.jpg, prefix/123_file.jpg |
| prefix/123 | prefix/123_file.jpg |
| temp | temp_file.jpg |
postfix_schema:
type: string
description: |
file key postfix, also can be used to download files with specific extension
example file tree and postfixes
```
.
├── dir
│ ├── face1.jpg
│ └── face2.png
├── temp_file.png
└── file.jpg
```
| postfix | result files |
|---------------|---------------------------------------|
| .jpg | dir/face1.jpg, file.jpg |
| .png | dir/face2.png, temp_file.png |
zip_reference:
type: object
description: zip archive reference
properties:
url:
type: string
description: archive location url
format: uri
prefix:
$ref: '#/components/schemas/prefix_schema'
postfix:
$ref: '#/components/schemas/postfix_schema'
required: [url]
samba_reference:
type: object
description: samba reference.
properties:
host:
type: string
description: samba server host (IP)
port:
type: integer
description: samba port
minimum: 1
maximum: 65535
default: 445
path:
type: string
description: path to directory with images
prefix:
$ref: '#/components/schemas/prefix_schema'
postfix:
$ref: '#/components/schemas/postfix_schema'
required: [host]
samba_reference_required:
allOf:
- $ref: '#/components/schemas/samba_reference'
- required: [ host, port, path ]
samba_authorization:
type: object
description: |
samba authorization.
If no authorization data, connect to samba will be like guest.
properties:
user:
type: string
description: samba user
password:
type: string
description: samba server password
required: [user, password]
estimator_samba_data:
type: object
description: samba
properties:
source_type:
type: string
enum: ["samba"]
description: data type where images are located
reference:
$ref: '#/components/schemas/samba_reference'
authorization:
$ref: '#/components/schemas/samba_authorization'
recursive:
type: boolean
default: true
description: whether to estimate images from samba subdirectories recursively
required: [reference]
estimator_samba_data_required:
allOf:
- $ref: '#/components/schemas/estimator_samba_data'
- properties:
reference:
$ref: '#/components/schemas/samba_reference_required'
- required: [source_type, reference, recursive]
ftp_reference:
type: object
description: ftp server reference
properties:
host:
type: string
description: ftp server host (IP or hostname)
port:
type: integer
description: ftp server port
minimum: 1
maximum: 65535
default: 21
max_sessions:
type: integer
description: maximum number of allowed FTP sessions on server
minimum: 1
maximum: 50
default: 8
path:
type: string
description: path to directory with images
prefix:
$ref: '#/components/schemas/prefix_schema'
postfix:
$ref: '#/components/schemas/postfix_schema'
required: [host]
ftp_reference_required:
allOf:
- $ref: '#/components/schemas/ftp_reference'
- required: [host, port, max_sessions, path]
ftp_authorization:
type: object
description: FTP authorization
properties:
user:
type: string
description: ftp server user
default: anonymous
password:
type: string
description: ftp server password
default: anonymous
estimator_ftp_server_data:
type: object
description: ftp server
properties:
source_type:
type: string
enum: ["ftp"]
description: data type where images are located
reference:
$ref: '#/components/schemas/ftp_reference'
authorization:
$ref: '#/components/schemas/ftp_authorization'
recursive:
type: boolean
default: true
description: whether to estimate images from ftp subdirectories recursively
required: [reference]
estimator_ftp_server_data_required:
allOf:
- $ref: '#/components/schemas/estimator_ftp_server_data'
- properties:
reference:
$ref: '#/components/schemas/ftp_reference_required'
- required: [source_type, reference, recursive]
follow_links:
type: boolean
default: false
description: whether follow file system links
network_disk_reference:
type: object
description: network disk reference
properties:
path:
type: string
description: absolute mounted directory path
prefix:
$ref: '#/components/schemas/prefix_schema'
postfix:
$ref: '#/components/schemas/postfix_schema'
follow_links:
$ref: '#/components/schemas/follow_links'
required: [path]
estimator_mounted_network_path:
type: object
description: mounted network disk
properties:
source_type:
type: string
enum: ["network_disk"]
description: Network disk source must be configured properly. See luna-tasks development manual for more information
reference:
$ref: '#/components/schemas/network_disk_reference'
recursive:
type: boolean
default: true
description: whether to estimate images from bucket subdirectories recursively
required: [reference]
estimator_mounted_network_path_required:
allOf:
- $ref: '#/components/schemas/estimator_mounted_network_path'
- required: [source_type, reference, recursive]
s3_reference:
type: object
description: s3-like storage reference
properties:
endpoint:
type: string
description: storage endpoint
format: uri
bucket_name:
type: string
description: |
one of the following options:<ul>
<li>raw bucket name (in this case, `endpoint` must be specified)</li>
<li>access point ARN (in this case, `endpoint` and `region` must not be specified)
(see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-access-points.html">aws userguide</a> for details)</li>
<li>outpost ARN (in this case, `endpoint` and `region` must not be specified)
(see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/S3onOutposts.html">aws userguide</a> for details)</li>
</ul>
prefix:
type: string
description: |
file key prefix, also can be used to download from specific folder
(see <a href="https://docs.aws.amazon.com/AmazonS3/latest/userguide/using-prefixes.html"> aws userguide</a> for details)
region:
type: string
description: bucket region
required: [bucket_name]
s3_authorization:
type: object
description: s3-like authorization
properties:
public_access_key:
type: string
description: public access key
secret_access_key:
type: string
description: secret access key
signature_version:
type: string
enum: [ s3v2, s3v4 ]
default: s3v4
description: authorization signature version
verify_ssl:
type: boolean
default: true
description: enable ssl certificate verification
required: [public_access_key, secret_access_key]
s3_authorization_required:
allOf:
- $ref: '#/components/schemas/s3_authorization'
- required: [public_access_key, secret_access_key, signature_version]
estimator_authorization_s3_like_storage:
type: object
description: s3-like storages auth data
properties:
source_type:
type: string
enum: ["s3"]
description: data type where images are located
reference:
$ref: '#/components/schemas/s3_reference'
authorization:
$ref: '#/components/schemas/s3_authorization'
recursive:
type: boolean
default: true
description: whether to estimate images from bucket subdirectories recursively
save_origin:
type: boolean
default: true
description: whether to save image origin
required: [reference]
estimator_authorization_s3_like_storage_required:
allOf:
- $ref: "#/components/schemas/estimator_authorization_s3_like_storage"
- properties:
reference:
$ref: '#/components/schemas/s3_reference'
authorization:
$ref: '#/components/schemas/s3_authorization_required'
- required: [source_type, reference, recursive, save_origin]
estimator_source_with_option_s3bucket:
allOf:
- $ref: '#/components/schemas/estimator_authorization_s3_like_storage'
- $ref: '#/components/schemas/base_estimator_task_content_source'
estimator_source_with_option_s3bucket_required:
allOf:
- $ref: '#/components/schemas/estimator_authorization_s3_like_storage_required'
- $ref: '#/components/schemas/base_estimator_task_content_source_required'
estimator_task_content_handler:
description: |
handler for estimator task.
You can create a new static handler and specify policies for it or specify an existing static or dynamic handler. For the existing dynamic handler, you can specify policies.
The same dynamic handler can be used in different estimator tasks, and it is not required to create a new handler for each task.
oneOf:
- $ref: '#/components/schemas/new_handler_task_estimator'
- $ref: '#/components/schemas/existing_handler_task_estimator'
estimator_task_content_filters:
type: object
description: estimator filters
properties:
account_id:
$ref: '#/components/schemas/account_id'
required: [account_id]
estimator_task_content_source:
description: images source
oneOf:
- $ref: '#/components/schemas/estimator_source_with_option_zip'
- $ref: '#/components/schemas/estimator_source_with_option_s3bucket'
- $ref: '#/components/schemas/estimator_source_with_option_network_disk'
- $ref: '#/components/schemas/estimator_source_with_option_ftp'
- $ref: '#/components/schemas/estimator_source_with_option_samba'
discriminator:
propertyName: "source_type"
mapping:
zip: '#/components/schemas/estimator_source_with_option_zip'
s3: '#/components/schemas/estimator_source_with_option_s3bucket'
network_disk: '#/components/schemas/estimator_source_with_option_network_disk'
ftp: '#/components/schemas/estimator_source_with_option_ftp'
samba: '#/components/schemas/estimator_source_with_option_samba'
estimator_task_content_source_schedulable:
description: images source
oneOf:
- $ref: '#/components/schemas/estimator_source_with_option_s3bucket'
- $ref: '#/components/schemas/estimator_source_with_option_network_disk'
- $ref: '#/components/schemas/estimator_source_with_option_ftp'
- $ref: '#/components/schemas/estimator_source_with_option_samba'
discriminator:
propertyName: "source_type"
mapping:
s3: '#/components/schemas/estimator_source_with_option_s3bucket'
network_disk: '#/components/schemas/estimator_source_with_option_network_disk'
ftp: '#/components/schemas/estimator_source_with_option_ftp'
samba: '#/components/schemas/estimator_source_with_option_samba'
estimator_task_content_source_required:
description: images source
oneOf:
- $ref: '#/components/schemas/estimator_source_with_option_zip_required'
- $ref: '#/components/schemas/estimator_source_with_option_s3bucket_required'
- $ref: '#/components/schemas/estimator_source_with_option_network_disk_required'
- $ref: '#/components/schemas/estimator_source_with_option_ftp_required'
- $ref: '#/components/schemas/estimator_source_with_option_samba_required'
discriminator:
propertyName: "source_type"
mapping:
zip: '#/components/schemas/estimator_source_with_option_zip_required'
s3: '#/components/schemas/estimator_source_with_option_s3bucket_required'
network_disk: '#/components/schemas/estimator_source_with_option_network_disk_required'
ftp: '#/components/schemas/estimator_source_with_option_ftp_required'
samba: '#/components/schemas/estimator_source_with_option_samba_required'
estimator_task_content:
type: object
description: estimator task content
properties:
handler:
$ref: '#/components/schemas/estimator_task_content_handler'
source:
$ref: '#/components/schemas/estimator_task_content_source'
filters:
$ref: '#/components/schemas/estimator_task_content_filters'
required: [handler, source, filters]
estimator_task_content_for_schedule:
type: object
description: estimator task content
properties:
handler:
$ref: '#/components/schemas/estimator_task_content_handler'
source:
$ref: '#/components/schemas/estimator_task_content_source_schedulable'
filters:
$ref: '#/components/schemas/estimator_task_content_filters'
required: [handler, source, filters]
estimator_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [9]
content:
$ref: '#/components/schemas/estimator_task_content_for_schedule'
schedule_estimator_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/estimator_content_props"
schedule_estimator_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/estimator_content_props"
estimator_task_content_required:
type: object
description: estimator task content
properties:
handler:
$ref: '#/components/schemas/estimator_task_content_handler'
source:
$ref: '#/components/schemas/estimator_task_content_source_required'
filters:
$ref: '#/components/schemas/estimator_task_content_filters'
required: [handler, source, filters]
estimator_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/estimator_task_content'
lambda_task_content:
type: object
description: lambda task content
properties:
lambda_id:
type: string
description: lambda task id
required: [lambda_id]
additionalProperties:
x-additionalPropertiesName: lambda task content fields
description: Fields define by lambda task creator.
lambda_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/lambda_task_content'
schedule_lambda_task_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [ 10 ]
content:
$ref: '#/components/schemas/lambda_task_content'
schedule_lambda_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/schedule_lambda_task_props"
schedule_lambda_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/schedule_lambda_task_props"
gc_task_content_reply:
oneOf:
- $ref: '#/components/schemas/gc_face_descriptors_task_content'
- $ref: '#/components/schemas/gc_faces_task_content_reply'
- $ref: '#/components/schemas/gc_event_descriptors_task_content'
- $ref: '#/components/schemas/gc_events_task_content_reply'
discriminator:
propertyName: "target"
mapping:
face_descriptors: '#/components/schemas/gc_face_descriptors_task_content'
faces: '#/components/schemas/gc_faces_task_content_reply'
event_descriptors: '#/components/schemas/gc_event_descriptors_task_content'
events: '#/components/schemas/gc_events_task_content_reply'
gc_task_content:
oneOf:
- $ref: '#/components/schemas/gc_face_descriptors_task_content'
- $ref: '#/components/schemas/gc_faces_task_content'
- $ref: '#/components/schemas/gc_event_descriptors_task_content'
- $ref: '#/components/schemas/gc_events_task_content'
discriminator:
propertyName: "target"
mapping:
face_descriptors: '#/components/schemas/gc_face_descriptors_task_content'
faces: '#/components/schemas/gc_faces_task_content'
event_descriptors: '#/components/schemas/gc_event_descriptors_task_content'
events: '#/components/schemas/gc_events_task_content'
gc_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/gc_task_content'
gc_face_descriptors_task_content:
description: Garbage collecting task content to delete face descriptors by version.
type: object
properties:
target:
type: string
enum: ['face_descriptors']
filters:
type: object
properties:
descriptor_version:
description: version of descriptors to delete
type: integer
required: [descriptor_version]
store_results:
type: boolean
description: Whether to store task results. Whatever, task errors are stored.
default: true
required: [target, filters]
gc_faces_task_content_no_filters:
description: Garbage collecting task content to delete faces by extended filters.
type: object
properties:
target:
type: string
enum: ['faces']
filters:
type: object
properties:
account_id:
$ref: '#/components/schemas/account_id'
user_data:
$ref: '#/components/schemas/user_data'
list_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: list id.
example: '8950722f-3fd4-4223-b48f-03f95f0e8dfb'
store_results:
type: boolean
description: Whether to store task results. Whatever, task errors are stored.
default: true
remove_samples:
type: boolean
description: |
Whether to remove face descriptor and basic attributes samples along with the face.
default: false
gc_faces_task_content:
allOf:
- $ref: '#/components/schemas/gc_faces_task_content_no_filters'
properties:
filters:
type: object
properties:
create_time__lt:
description: Create time lower included boundary.
oneOf:
- $ref: '#/components/schemas/create_time__lt'
- $ref: '#/components/schemas/create_time_now__lt'
create_time__gte:
description: Create time lower included boundary.
oneOf:
- $ref: '#/components/schemas/create_time__gte'
- $ref: '#/components/schemas/create_time_now__gte'
required: [ target, filters ]
gc_faces_task_content_schedule:
allOf:
- $ref: '#/components/schemas/gc_faces_task_content_no_filters'
properties:
filters:
type: object
properties:
create_time__lt:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time_now__lt'
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time_now__gte'
required: [ target, filters ]
gc_faces_task_content_reply:
allOf:
- $ref: '#/components/schemas/gc_faces_task_content_no_filters'
properties:
filters:
type: object
properties:
create_time__lt:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time__lt'
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time__gte'
required: [ target, filters ]
gc_event_descriptors_task_content:
description: Garbage collecting task content to delete event descriptors by version and type.
type: object
properties:
target:
type: string
enum: [ event_descriptors ]
filters:
type: object
properties:
descriptor_version:
description: Descriptors version.
type: integer
descriptor_type:
description: Descriptors type.
type: string
enum: ['face', 'body']
required: [descriptor_version, descriptor_type]
store_results:
type: boolean
description: Whether to store task results. Whatever, task errors are stored.
default: true
required: [target, filters]
gc_events_task_content_no_filters:
description: garbage collecting task content to remove events
type: object
properties:
target:
type: string
enum: ['events']
filters:
type: object
properties:
account_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: account id to execute task within the specified account.
handler_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: handler id to execute task within the handler.
store_results:
type: boolean
description: Whether to store task results. Whatever, task errors are stored.
default: true
remove_samples:
type: boolean
description: |
Whether to remove face and body samples along with the event.
> **WARNING**: After removing samples, it will become impossible to re-extract the attribute or descriptor for the created face.
default: false
remove_image_origins:
type: boolean
description: |
Whether to remove origin images.
In case url of the image origin points to external image task tries to remove it by performing DELETE request to the image url.
> **WARNING**: Some images may belong to multiple events simultaneously.
default: false
required: [target]
gc_events_task_content:
allOf:
- $ref: '#/components/schemas/gc_events_task_content_no_filters'
properties:
filters:
type: object
properties:
create_time__lt:
description: Create time upper excluded boundary.
oneOf:
- $ref: '#/components/schemas/create_time__lt'
- $ref: '#/components/schemas/create_time_now__lt'
insert_time__lt:
description: Insert time upper excluding boundary.
oneOf:
- $ref: '#/components/schemas/insert_time__lt'
- $ref: '#/components/schemas/insert_time_now__lt'
gc_events_task_content_schedule:
allOf:
- $ref: '#/components/schemas/gc_events_task_content_no_filters'
properties:
filters:
type: object
properties:
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time_now__lt'
insert_time__lt:
description: Insert time upper excluding boundary.
$ref: '#/components/schemas/insert_time_now__lt'
gc_events_task_content_reply:
allOf:
- $ref: '#/components/schemas/gc_events_task_content_no_filters'
properties:
filters:
type: object
properties:
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time__lt'
insert_time__lt:
description: Insert time upper excluding boundary.
$ref: '#/components/schemas/insert_time__lt'
clustering_task:
anyOf:
- $ref: '#/components/schemas/event_clustering_task'
- $ref: '#/components/schemas/face_clustering_task'
event_clustering_task_params:
type: object
description: additional task parameters
properties:
use_track_info:
type: integer
enum: [0, 1]
default: 0
description: whether to place events with equal track_id in the same clusters
clustering_task_content_template:
description: Clustering task content
type: object
properties:
threshold:
description: The minimum acceptable degree of similarity. If the similarity of two descriptors exceeds the specified value, it is considered that they belong to the same person. In this case, both descriptors are added to the same cluster.
type: number
format: float
maximum: 1
minimum: 0
example: 0.5
default: 0.81
descriptor:
$ref: '#/components/schemas/descriptor_info'
limit:
$ref: '#/components/schemas/clustering_limit'
required: [objects_type, filters]
clustering_task_content_events:
allOf:
- $ref: '#/components/schemas/clustering_task_content_template'
description: Events clustering task content
properties:
objects_type:
enum: [ events ]
filters:
$ref: '#/components/schemas/events_filters_limited_optional_account'
params:
$ref: '#/components/schemas/event_clustering_task_params'
clustering_task_content_events_regular_create_time:
allOf:
- $ref: '#/components/schemas/clustering_task_content_template'
description: Events clustering task content
properties:
objects_type:
enum: [ events ]
filters:
allOf:
- $ref: '#/components/schemas/events_filters_no_account_limited_reply'
properties:
account_id:
$ref: '#/components/schemas/account_id'
params:
$ref: '#/components/schemas/event_clustering_task_params'
event_clustering_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/clustering_task_content_events'
clustering_task_content_faces:
allOf:
- $ref: '#/components/schemas/clustering_task_content_template'
description: Faces clustering task content
properties:
objects_type:
enum: [ faces ]
filters:
$ref: '#/components/schemas/faces_filters_limited_optional_account'
clustering_task_content_faces_regular_create_time:
allOf:
- $ref: '#/components/schemas/clustering_task_content_template'
description: Faces clustering task content
properties:
objects_type:
enum: [ faces ]
filters:
allOf:
- $ref: '#/components/schemas/faces_filters_no_create_time'
type: object
properties:
create_time__gte:
description: Create time lower included boundary.
$ref: '#/components/schemas/create_time__gte'
create_time__lt:
description: Create time upper excluded boundary.
$ref: '#/components/schemas/create_time__lt'
account_id:
$ref: '#/components/schemas/account_id'
face_ids:
maxItems: 20000
external_ids:
maxItems: 1000
face_clustering_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/clustering_task_content_faces'
clustering_task_content:
description: Clustering task content
oneOf:
- $ref: '#/components/schemas/clustering_task_content_faces'
- $ref: '#/components/schemas/clustering_task_content_events'
discriminator:
propertyName: objects_type
mapping:
faces: '#/components/schemas/clustering_task_content_faces'
events: '#/components/schemas/clustering_task_content_events'
clustering_task_content_reply:
description: Clustering task content
oneOf:
- $ref: '#/components/schemas/clustering_task_content_faces_regular_create_time'
- $ref: '#/components/schemas/clustering_task_content_events_regular_create_time'
discriminator:
propertyName: objects_type
mapping:
faces: '#/components/schemas/clustering_task_content_faces_regular_create_time'
events: '#/components/schemas/clustering_task_content_events_regular_create_time'
ae_face_filters:
description: face filters.
type: object
properties:
objects_type:
description: object type.
type: string
enum: [ "faces" ]
account_id:
$ref: '#/components/schemas/account_id'
face_id__lt:
allOf:
- $ref: '#/components/schemas/uuid'
description: upper face id excluding boundary.
face_id__gte:
allOf:
- $ref: '#/components/schemas/uuid'
description: lower face id including boundary.
required: [ objects_type ]
ae_event_filters_no_inspect_time:
description: event filters.
type: object
properties:
objects_type:
description: object type.
type: string
enum: [ "events" ]
account_id:
$ref: '#/components/schemas/account_id'
handler_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: handler id.
event_id__gte:
allOf:
- $ref: '#/components/schemas/uuid'
description: lower event id including boundary.
event_id__lt:
allOf:
- $ref: '#/components/schemas/uuid'
description: upper event id excluding boundary.
required: [ objects_type ]
ae_event_filters:
allOf:
- $ref: "#/components/schemas/ae_event_filters_no_inspect_time"
type: object
properties:
insert_time__gte:
description: Insert time upper excluding boundary.
oneOf:
- $ref: '#/components/schemas/insert_time__gte'
- $ref: '#/components/schemas/insert_time_now__gte'
insert_time__lt:
description: Insert time upper excluding boundary.
oneOf:
- $ref: '#/components/schemas/insert_time__lt'
- $ref: '#/components/schemas/insert_time_now__lt'
ae_event_filters_reply:
allOf:
- $ref: "#/components/schemas/ae_event_filters_no_inspect_time"
type: object
properties:
insert_time__gte:
description: Insert time upper excluding boundary.
$ref: '#/components/schemas/insert_time__gte'
insert_time__lt:
description: Insert time upper excluding boundary.
$ref: '#/components/schemas/insert_time__lt'
additional_extract_task_content_body_descriptor_no_filters:
description: additional extract human descriptors task
type: object
properties:
extraction_target:
description: extraction target
type: string
enum: [ "body_descriptor" ]
options:
description: extract task options
type: object
properties:
descriptor_version:
description: version of descriptors to extract
type: integer
missing:
type: boolean
description: whether to extract only missing descriptors (`false` is not implemented)
default: true
required: [ descriptor_version ]
additional_extract_task_content_body_descriptor:
allOf:
- $ref: '#/components/schemas/additional_extract_task_content_body_descriptor_no_filters'
properties:
filters:
allOf:
- $ref: '#/components/schemas/ae_event_filters'
description: |
object filters.
Body descriptor re-extraction can be performed on events only (see `objects_type` in filters).
required: [ extraction_target, options, filters ]
additional_extract_task_content_body_descriptor_reply:
allOf:
- $ref: '#/components/schemas/additional_extract_task_content_body_descriptor_no_filters'
properties:
filters:
allOf:
- $ref: '#/components/schemas/ae_event_filters_reply'
description: |
object filters.
Body descriptor re-extraction can be performed on events only (see `objects_type` in filters).
required: [ extraction_target, options, filters ]
additional_extract_task_content_face_descriptor_no_filters:
description: additional extract face descriptors task
type: object
properties:
extraction_target:
description: extraction target
type: string
enum: ["face_descriptor"]
options:
description: extract task options
type: object
properties:
descriptor_version:
description: version of descriptors to extract
type: integer
missing:
type: boolean
description: whether to extract only missing descriptors (`false` is not implemented)
default: true
required: [descriptor_version]
additional_extract_task_content_face_descriptor:
allOf:
- $ref: '#/components/schemas/additional_extract_task_content_face_descriptor_no_filters'
properties:
filters:
description: |
object filters.
Face descriptor re-extraction can be performed on either faces or events (see `objects_type` in filters).
oneOf:
- $ref: '#/components/schemas/ae_face_filters'
- $ref: '#/components/schemas/ae_event_filters'
discriminator:
propertyName: objects_type
mapping:
faces: '#/components/schemas/ae_face_filters'
events: '#/components/schemas/ae_event_filters'
required: [ extraction_target, options, filters ]
additional_extract_task_content_face_descriptor_reply:
allOf:
- $ref: '#/components/schemas/additional_extract_task_content_face_descriptor_no_filters'
properties:
filters:
description: |
object filters.
Face descriptor re-extraction can be performed on either faces or events (see `objects_type` in filters).
oneOf:
- $ref: '#/components/schemas/ae_face_filters'
- $ref: '#/components/schemas/ae_event_filters_reply'
discriminator:
propertyName: objects_type
mapping:
faces: '#/components/schemas/ae_face_filters'
events: '#/components/schemas/ae_event_filters_reply'
required: [ extraction_target, options, filters ]
additional_extract_task_content_basic_attributes_no_filters:
description: additional extract basic attributes task
type: object
properties:
extraction_target:
description: extraction target
type: string
enum: ["basic_attributes"]
options:
type: object
description: extract task options
properties:
missing:
type: boolean
description: whether to extract only missing basic attributes (`false` is not implemented)
default: true
additional_extract_task_content_basic_attributes:
allOf:
- $ref: '#/components/schemas/additional_extract_task_content_basic_attributes_no_filters'
properties:
filters:
description: |
object filters.
Basic attributes re-extraction can be performed on either faces or events (see `objects_type` in filters).
oneOf:
- $ref: '#/components/schemas/ae_face_filters'
- $ref: '#/components/schemas/ae_event_filters'
discriminator:
propertyName: objects_type
mapping:
faces: '#/components/schemas/ae_face_filters'
events: '#/components/schemas/ae_event_filters'
required: [ extraction_target, filters ]
additional_extract_task_content_basic_attributes_reply:
allOf:
- $ref: '#/components/schemas/additional_extract_task_content_basic_attributes_no_filters'
properties:
filters:
description: |
object filters.
Basic attributes re-extraction can be performed on either faces or events (see `objects_type` in filters).
oneOf:
- $ref: '#/components/schemas/ae_face_filters'
- $ref: '#/components/schemas/ae_event_filters_reply'
discriminator:
propertyName: objects_type
mapping:
faces: '#/components/schemas/ae_face_filters'
events: '#/components/schemas/ae_event_filters_reply'
required: [ extraction_target, options, filters ]
additional_extract_task_content:
description: additional extractor task content.
oneOf:
- $ref: '#/components/schemas/additional_extract_task_content_basic_attributes'
- $ref: '#/components/schemas/additional_extract_task_content_face_descriptor'
- $ref: '#/components/schemas/additional_extract_task_content_body_descriptor'
discriminator:
propertyName: extraction_target
mapping:
basic_attributes: '#/components/schemas/additional_extract_task_content_basic_attributes'
face_descriptor: '#/components/schemas/additional_extract_task_content_face_descriptor'
body_descriptor: '#/components/schemas/additional_extract_task_content_body_descriptor'
additional_extract_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/additional_extract_task_content'
gc_descriptors_task_result:
description: faces whoes descriptors was removed
type: array
items:
allOf:
- $ref: '#/components/schemas/uuid'
description: face id whoes descriptor was removed
gc_events_task_result:
description: removed events
type: array
items:
description: removed event
type: object
properties:
event_id:
description: removed event id.
allOf:
- $ref: '#/components/schemas/uuid'
samples:
description: sample ids of the removed face attribute from events.
type: array
items:
$ref: '#/components/schemas/uuid'
image_origins:
description: removed image origins.
type: array
items:
type: string
example: '/6/images/557d54ec-29ad-4f3c-93b4-c9092ef12515'
required: [event_id]
gc_faces_task_result:
description: removed faces
type: array
items:
description: removed face
type: object
properties:
face_id:
description: removed face id
allOf:
- $ref: '#/components/schemas/uuid'
basic_attributes_samples:
description: sample ids of the removed basic attributes samples of the face
type: array
items:
$ref: '#/components/schemas/uuid'
face_descriptor_samples:
description: sample ids of the removed face descriptors samples of the face
type: array
items:
$ref: '#/components/schemas/uuid'
required: [face_id]
gc_task_result:
description: Garbage Collecting task result
type: object
properties:
result:
anyOf:
- $ref: '#/components/schemas/gc_descriptors_task_result'
- $ref: '#/components/schemas/gc_events_task_result'
- $ref: '#/components/schemas/gc_faces_task_result'
errors:
$ref: '#/components/schemas/task_errors'
required: [errors]
linker_task_result:
description: Linking task result
type: object
properties:
result:
type: object
description: linker task result
properties:
list_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: list id
face_ids:
description: linked faces' ids
type: array
items:
$ref: '#/components/schemas/uuid'
errors:
$ref: '#/components/schemas/task_errors'
required: [errors]
clustering_task_result:
description: Clustering task result
type: object
properties:
result:
description: clustering result
type: object
properties:
clusters:
description: generated clusters - lists of objects ids
type: array
items:
description: single cluster - list of objects' ids
type: array
items:
$ref: '#/components/schemas/uuid'
total_objects:
type: integer
description: total objects count.
example: 1
total_clusters:
type: integer
description: total clusters count.
example: 1
required: [clusters, total_objects, total_clusters]
errors:
$ref: '#/components/schemas/task_errors'
required: [errors]
rect:
description: bounding rectangle.
type: object
properties:
height:
type: integer
description: rectangle height.
width:
type: integer
description: rectangle width.
x:
type: integer
description: top left corner "x" coordinate.
y:
type: integer
description: top left corner "y" coordinate.
required: [ height, width, x, y ]
body_detection:
type: object
description: body detection
properties:
rect:
allOf:
- $ref: '#/components/schemas/rect'
- description: body detection bounding box.
age:
allOf:
- $ref: '#/components/schemas/int0100'
- description: Age
longitude:
type: number
minimum: -180
maximum: 180
description: longitude in degrees
latitude:
type: number
minimum: -90
maximum: 90
description: latitude in degrees
location_geo_position:
type: object
description: geo position specified by geographic coordinates - longitude and latitude.
properties:
longitude:
$ref: '#/components/schemas/longitude'
latitude:
$ref: '#/components/schemas/latitude'
required: [ longitude, latitude ]
location:
type: object
description: information about a place where event is incidented
properties:
city:
allOf:
- $ref: '#/components/schemas/string36'
- nullable: true
- description: city
area:
allOf:
- $ref: '#/components/schemas/string36'
- nullable: true
- description: area
district:
allOf:
- $ref: '#/components/schemas/string36'
- nullable: true
- description: district
street:
allOf:
- $ref: '#/components/schemas/string36'
- nullable: true
- description: street
house_number:
allOf:
- $ref: '#/components/schemas/string36'
- nullable: true
- description: house number
geo_position:
allOf:
- $ref: '#/components/schemas/location_geo_position'
- nullable: true
- description: geo coordinates
event_from_handler:
type: object
description: event format from handler.
additionalProperties:
x-additionalPropertiesName: handler_event
description: |
A generated event from handler. See the Luna Handlers documentation section for
details - "generate events".
success_estimator_result:
description: Estimator task result
type: array
items:
type: object
properties:
filename:
type: string
description: source image file name
result:
type: object
description: image estimation result
nullable: true
properties:
events:
type: array
items:
$ref: '#/components/schemas/event_from_handler'
filtered_detections:
type: object
additionalProperties:
x-additionalPropertiesName: filtered_detections
description: |
Filtered detections on the image. See the Luna Handlers documentation section for details -
"generate events".
required: [ face_detections ]
required: [events, filtered_detections]
errors:
$ref: '#/components/schemas/task_handler_errors'
required: [filename, result, errors]
estimator_task_result:
type: object
description: Estimator task result
properties:
result:
$ref: '#/components/schemas/success_estimator_result'
errors:
$ref: '#/components/schemas/task_errors'
required: [errors]
reporter_task_content_without_filters:
type: object
description: reporter task content
properties:
columns:
description: Column targets in CSV report. Order of fields determinates the order columns in report.
anyOf:
- $ref: '#/components/schemas/report_event_columns'
- $ref: '#/components/schemas/report_face_columns'
example: [ "face_id", "user_data", "create_time" ]
csv_delimiter:
default: ','
type: string
description: csv delimiter
maxLength: 1
minLength: 1
example: '$'
save_images:
type: integer
default: 0
enum: [ 0, 1 ]
description: whether to save images in the result
reporter_task_content:
allOf:
- $ref: '#/components/schemas/reporter_task_content_without_filters'
- properties:
filters:
type: object
description: reporter task filters
properties:
account_id:
$ref: '#/components/schemas/account_id'
task_id:
description: id of task
type: integer
example: 146
required: [ task_id ]
required: [ filters ]
report_event_columns:
type: array
items:
description: |
event columns
type: string
enum: ["event_id", "create_time", "end_time", "external_id", "handler_id", "stream_id", "source", "top_match",
"match_result", "face_detections", "body_detections", "face_id", "attach_result", "gender", "age",
"emotion", "ethnic_group", "tags", "user_data", "city", "area", "district", "street", "house_number",
"geo_position", "mask", "track_id", "liveness", "deepfake", "body_basic_attributes", "upper_body",
"lower_body", "accessories", "meta"]
default: ["event_id","create_time", "end_time", "external_id", "handler_id", "stream_id", "source", "top_match",
"face_id", "gender", "age", "emotion", "ethnic_group", "user_data", "city", "area", "district",
"street", "house_number", "geo_position", "mask", "track_id", "liveness", "deepfake",
"body_basic_attributes", "upper_body", "lower_body", "accessories", "meta"]
report_face_columns:
type: array
items:
description: face columns.
type: string
enum: ["user_data", "create_time", "lists", "external_id", "avatar", "event_id"]
default: ["user_data", "create_time", "external_id", "avatar", "event_id"]
reporter_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/reporter_task_content'
exporter_event_columns:
type: array
items:
description: |
event columns. default is
["event_id", "create_time", "end_time", "external_id", "handler_id", "stream_id", "source", "top_match",
"face_id", "gender", "age", "emotion", "ethnic_group", "user_data", "city", "area", "district",
"street", "house_number", "geo_position", "mask", "track_id", "liveness", "deepfake", "body_basic_attributes",
"upper_body", "lower_body", "accessories", "meta"]
type: string
enum: ["event_id", "create_time", "external_id", "handler_id", "stream_id", "source", "top_match", "match_result",
"face_detections", "face_id", "attach_result", "gender", "end_time",
"age", "emotion", "ethnic_group", "tags", "user_data", "city", "area", "district", "street",
"house_number", "geo_position", "body_detections", "mask", "track_id", "liveness", "deepfake",
"body_basic_attributes", "upper_body", "lower_body", "accessories", "meta"
]
exporter_face_columns:
type: array
items:
description: face columns. default is ["face_id", "user_data", "create_time", "external_id", "avatar", "event_id"]
type: string
enum: ["face_id", "user_data", "create_time", "lists", "external_id", "avatar", "event_id"]
exporter_task_content_no_filters:
type: object
description: exporter task content
properties:
objects_type:
$ref: '#/components/schemas/objects_type'
columns:
description: colum names in csv report. Order of fields determinates the order columns in report.
anyOf:
- $ref: '#/components/schemas/exporter_event_columns'
- $ref: '#/components/schemas/exporter_face_columns'
example: [ "face_id", "user_data", "create_time" ]
descriptor:
$ref: '#/components/schemas/descriptor_info'
csv_delimiter:
default: ','
type: string
description: csv delimiter
maxLength: 1
minLength: 1
example: '$'
save_images:
type: integer
default: 0
enum: [ 0, 1 ]
description: whether to add images to the resulting archive
required: [ filters, objects_type ]
exporter_task_content:
allOf:
- $ref: "#/components/schemas/exporter_task_content_no_filters"
type: object
properties:
filters:
description: exporter task filters
anyOf:
- $ref: '#/components/schemas/events_filters'
- $ref: '#/components/schemas/faces_filters'
exporter_task_content_reply:
allOf:
- $ref: "#/components/schemas/exporter_task_content_no_filters"
type: object
properties:
filters:
description: exporter task filters
anyOf:
- $ref: '#/components/schemas/faces_filters_regular_create_time'
- $ref: '#/components/schemas/events_filters_regular_create_time'
exporter_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/exporter_task_content'
face_additional_extract_result:
type: object
properties:
face_id:
description: extracted attribute face id.
allOf:
- $ref: '#/components/schemas/uuid'
samples:
description: sample ids used for extraction
type: array
items:
$ref: '#/components/schemas/uuid'
required: [face_id, samples]
event_additional_extract_result:
type: object
properties:
event_id:
description: extracted attribute event id.
allOf:
- $ref: '#/components/schemas/uuid'
samples:
description: sample ids used for extraction
type: array
items:
$ref: '#/components/schemas/uuid'
required: [event_id, samples]
additional_extract_task_result:
description: Additional extract task result
type: object
properties:
result:
description: additional extract result
type: array
items:
oneOf:
- $ref: '#/components/schemas/event_additional_extract_result'
- $ref: '#/components/schemas/face_additional_extract_result'
errors:
$ref: '#/components/schemas/task_errors'
required: [errors]
cross_match_task_reference_filters:
description: Object filters for references.
anyOf:
- $ref: '#/components/schemas/faces_filters_no_account_limited'
- $ref: '#/components/schemas/events_filters_no_account_limited'
- $ref: '#/components/schemas/attributes_filters_no_account_limited'
cross_match_task_reference_filters_reply:
description: Object filters for references.
anyOf:
- $ref: '#/components/schemas/faces_filters_no_account_limited_reply'
- $ref: '#/components/schemas/events_filters_no_account_limited_reply'
- $ref: '#/components/schemas/attributes_filters_no_account_limited'
cross_match_task_candidate_filters:
description: Object filters for candidates.
anyOf:
- $ref: '#/components/schemas/faces_filters_no_account_limited'
- $ref: '#/components/schemas/events_filters_no_account_limited'
- $ref: '#/components/schemas/attributes_filters_no_account_limited'
cross_match_task_candidate_filters_reply:
description: Object filters for candidates.
anyOf:
- $ref: '#/components/schemas/faces_filters_no_account_limited_reply'
- $ref: '#/components/schemas/events_filters_no_account_limited_reply'
- $ref: '#/components/schemas/attributes_filters_no_account_limited'
cross_match_task_content_no_filters:
type: object
description: cross match task content
properties:
filters:
description: Task objects' filters.
type: object
properties:
reference_type:
$ref: '#/components/schemas/common_objects_type'
candidate_type:
$ref: '#/components/schemas/common_objects_type'
descriptor:
$ref: '#/components/schemas/descriptor_info'
account_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: account ID filter for task objects.
required: [ reference_type, candidate_type, reference_filters, candidate_filters ]
threshold:
description: The minimum acceptable degree of similarity. If the similarity of two descriptors falls behind the specified value, the match will be ignored. References with all filtered matches also will be ignored.
type: number
format: float
maximum: 1
minimum: 0
example: 0.5
default: 0.0
limit:
$ref: '#/components/schemas/limit'
required: [ filters ]
cross_match_task_content:
allOf:
- $ref: '#/components/schemas/cross_match_task_content_no_filters'
properties:
filters:
type: object
properties:
reference_filters:
$ref: '#/components/schemas/cross_match_task_reference_filters'
candidate_filters:
$ref: '#/components/schemas/cross_match_task_candidate_filters'
required: [ reference_filters, candidate_filters ]
cross_match_task_content_reply:
allOf:
- $ref: '#/components/schemas/cross_match_task_content_no_filters'
properties:
filters:
type: object
properties:
reference_filters:
$ref: '#/components/schemas/cross_match_task_reference_filters_reply'
candidate_filters:
$ref: '#/components/schemas/cross_match_task_candidate_filters_reply'
required: [ reference_filters, candidate_filters ]
cross_match_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/cross_match_task_content'
cross_match_task_result:
description: Cross Match task result
type: object
properties:
result:
description: cross match task result
type: array
items:
type: object
properties:
reference_id:
description: reference id (see reference_type field in cross_match_task filters).
allOf:
- $ref: '#/components/schemas/uuid'
candidates:
description: match candidates for the reference
type: array
items:
type: object
description: match with a candidate
properties:
candidate_id:
description: candidate id (see candidate_type field in cross_match_task filters)
allOf:
- $ref: '#/components/schemas/uuid'
similarity:
description: similatrity for the reference-candidate pair
type: number
minimum: 0
maximum: 1
example: 1
required: [candidate_id, similarity]
minItems: 1
required: [reference_id, candidates]
errors:
$ref: '#/components/schemas/task_errors'
required: [errors]
markup_face_items:
type: object
properties:
face_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: face id.
label:
type: integer
description: face label (group id)
example: 12
required: [face_id, label]
markup_attribute_items:
type: object
properties:
attribute_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: attribute id.
label:
type: integer
description: face attribute label (group id)
example: 12
required: [attribute_id, label]
roc_task_content:
description: roc task content.
type: object
properties:
markup:
description: markup of face ids to labels (group ids).
type: array
minItems: 2
maxItems: 20000
items:
oneOf:
- $ref: '#/components/schemas/markup_face_items'
- $ref: '#/components/schemas/markup_attribute_items'
filters:
description: task objects' filters.
type: object
properties:
account_id:
allOf:
- $ref: '#/components/schemas/uuid'
description: account id filter for a task objects.
threshold_hit_top:
allOf:
- $ref: '#/components/schemas/float10'
description: similarity threshold to calculate hit into the top-N.
example: 0.95
default: 0
limit:
$ref: '#/components/schemas/limit'
key_FPRs:
description: roc-curve key FPR values
type: array
items:
$ref: '#/components/schemas/float10'
example: [ 0.000001, 0.001 ]
required: [ markup, filters ]
roc_task:
allOf:
- $ref: '#/components/schemas/task_base'
- properties:
content:
$ref: '#/components/schemas/roc_task_content'
roc_points:
type: object
properties:
FPR:
allOf:
- $ref: '#/components/schemas/float10'
description: false positive rate.
TPR:
allOf:
- $ref: '#/components/schemas/float10'
description: true positive rate.
similarity:
allOf:
- $ref: '#/components/schemas/float10'
description: similatrity threshold.
required: [FPR, TPR, similarity]
roc_task_result:
description: roc task result.
type: object
properties:
result:
description: roc-curve calculation result.
type: object
properties:
roc:
type: array
items:
$ref: '#/components/schemas/roc_points'
description: roc-curve points.
example:
- FPR: 0.1
TPR: 0.95
similarity: 0.9
- FPR: 0.15
TPR: 0.96
similarity: 0.8
hit_top_probability:
type: object
description: propability of hit into the top.
properties:
top-1:
allOf:
- $ref: '#/components/schemas/float10'
description: propability of hit into the top-1.
nullable: true
top-2:
allOf:
- $ref: '#/components/schemas/float10'
description: propability of hit into the top-2.
nullable: true
top-3:
allOf:
- $ref: '#/components/schemas/float10'
description: propability of hit into the top-3.
nullable: true
top-4:
allOf:
- $ref: '#/components/schemas/float10'
description: propability of hit into the top-4.
nullable: true
top-5:
allOf:
- $ref: '#/components/schemas/float10'
description: propability of hit into the top-5.
nullable: true
required: [top-1, top-2, top-3, top-4, top-5]
example:
top-1: 0.995
top-2: 0.997
top-3: 0.999
top-4: 0.999
top-5: 0.999
auc:
allOf:
- $ref: '#/components/schemas/float10'
description: area under the roc-curve.
example: 0.99
type_I_and_II_error_rates_equal_point:
allOf:
- $ref: '#/components/schemas/roc_points'
description: ROC-curve point where type I error rate (1 - TPR) and type II error rate (FPR) are equal, i.e. intersection point of the ROC-curve and the secondary main diagonal.
example:
FPR: 0.15
TPR: 0.85
similarity: 0.8
nullable: true
key_points:
type: array
items:
$ref: '#/components/schemas/roc_points'
description: roc-curve points.
example:
- FPR: 0.000001
TPR: 0.95
similarity: 0.9
- FPR: 0.001
TPR: 0.96
similarity: 0.8
nullable: true
required: [roc, hit_top_probability, auc, type_I_and_II_error_rates_equal_point, key_points]
errors:
$ref: '#/components/schemas/task_errors'
required: [errors]
accept_docs_handler:
type: string
enum: [application/x-yaml, text/html]
report_task_result:
type: string
format: binary
description: |
zip archive with task result (now zip is supported in tasks on reports).
Csv file and optional a folder with images in the case clusterization report.
| cluster | event_id | create_time | end_time | external_id | handler_id | attribute_id | source | stream_id | top_match | face_id | gender | age | emotion | ethnic_group | user_data | city | area | district | street | house_number | latitude | longitude | mask | apparent_gender | apparent_age | headwear_state | sleeve_length | upper_clothing_colors | backpack_state | headwear_apparent_color | lower_garment_type | lower_garment_colors | shoes_apparent_color | meta |
|---------|--------------------------------------|----------------------------------|----------------------------------|-------------|--------------------------------------|--------------------------------------|--------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|--------|-----|---------|--------------|-----------------------------------|--------|------|----------|--------|--------------|----------|-----------|------|-----------------|--------------|----------------|---------------|-----------------------|----------------|-------------------------|-----------------------|----------------------|----------------------|------------------|
| 0 | 6a4053de-17ab-40b5-bf2b-a1495df39085 | 2019-02-13T18:04:40.723800+03:00 | 2019-02-13T18:04:40.723800+03:00 | | d727b3f5-e8ca-4fca-b092-d170ef5f9e49 | b3f9e82d-1654-4250-b39e-f8bbbca9880c | | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': '23978f64-305f-4c43-8c01-c40bafabe554', 'label': '3a118ebc-18e2-4ed0-a0f0-3a50db652729', 'similarity': 0.6, 'external_id': 'e0'}" | cfb8ca11-4901-4296-a71d-0783d61ccf05 | 1 | 28 | | 2 | vl test events_with_created_faces | Moscow | CAA | Arbat | Arbat | 1 | 12.34 | 56.78 | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
| 1 | 110cc2d3-0350-418e-b956-90ef4dacbd23 | 2019-02-13T18:04:40.723800+03:00 | 2019-02-13T18:04:40.723800+03:00 | | d727b3f5-e8ca-4fca-b092-d170ef5f9e49 | 3e1d0ffb-1fa6-449e-8c8b-8f9b56bfff6d | | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': 'ad008886-942c-4c13-934c-8232dc7eefb2', 'label': '15859afa-37d3-41e2-8bc2-cb6f970dc6a0', 'similarity': 0.5, 'external_id': 'e1'}" | f4f17cbe-9197-4347-b214-692fa4ca9f26 | 0 | 24 | | 2 | vl test events_with_created_faces | Moscow | CAA | Arbat | Arbat | 1 | 12.34 | 56.78 | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
| 2 | 9a9c9445-6a3d-4f4d-b22a-64601f4c8675 | 2019-02-13T18:04:40.723800+03:00 | 2019-02-13T18:04:40.723800+03:00 | | d727b3f5-e8ca-4fca-b092-d170ef5f9e49 | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': 'c77bda6b-74ea-412f-989f-f27fd5be1e20', 'label': '3ac8c676-c717-4da4-8ed3-6ca9e6139c6d', 'similarity': 0.4, 'external_id': 'e2'}" | 83086070-bce2-40b9-a5c4-9df36a52fe4f | 0 | 19 | | 4 | vl test events_with_created_faces | Moscow | CAA | Arbat | Arbat | 1 | 12.34 | 56.78 | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
| 2 | 979be9cd-6363-431a-a8a6-3f3fff806abf | 2019-02-13T18:04:40.723800+03:00 | 2019-02-13T18:04:40.723800+03:00 | | d727b3f5-e8ca-4fca-b092-d170ef5f9e49 | 2cfacb32-fc7a-4abd-8518-0bf759acc4f9 | | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': '477a4ef7-16dc-4189-ab3b-91b1d342e101', 'label': '64058eac-eff1-4efc-b6c3-982133523a31', 'similarity': 0.3, 'external_id': 'e3'}" | e09228a7-8a7e-4581-b550-d5c0818c871f | 0 | 28 | | 4 | vl test events_with_created_faces | Moscow | CAA | Arbat | Arbat | 1 | 12.34 | 56.78 | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
| 3 | 60b86bf7-3395-40cf-90f0-4e0756f50b9e | 2019-02-13T18:04:40.723800+03:00 | 2019-02-13T18:04:40.723800+03:00 | | d727b3f5-e8ca-4fca-b092-d170ef5f9e49 | 67c823db-8e3c-4638-abf9-63078d2687d5 | | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': '7f5bf6fb-2ad0-42bf-98f2-fe949516db7d', 'label': 'be309d4d-deaa-479e-ba70-026a712f39e2', 'similarity': 0.2, 'external_id': 'e4'}" | 301e8eb8-b6af-4c33-b5a1-6861509d2df4 | 1 | 56 | | 4 | vl test events_with_created_faces | Moscow | CAA | Arbat | Arbat | 1 | 12.34 | 56.78 | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
export_task_result:
type: string
format: binary
description: |
zip archive with task result (now zip is supported in tasks on export).
Csv file and optional a folder with images in the case export.
| event_id | create_time | end_time | external_id | handler_id | source | stream_id | top_match | face_id | gender | age | emotion | ethnic_group | user_data | mask | track_id | city | area | district | street | house_number | geo_position | mask | apparent_gender | apparent_age | headwear_state | sleeve_length | upper_clothing_colors | backpack_state | headwear_apparent_color | lower_garment_type | lower_garment_colors | shoes_apparent_color | meta |
|--------------------------------------|----------------------------------|----------------------------------|--------------------------------------|--------------------------------------|--------------------------------------|--------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------|--------|-----|---------|--------------|--------------------------------------|------|--------------------------------------|--------|------|----------|--------|--------------| -----------------|------|-----------------|--------------|----------------|---------------|-----------------------|----------------|-------------------------|-----------------------|----------------------|----------------------|------------------|
| 0370f6b6-643a-4ad6-8c30-57849d7b070d | 2021-06-18T09:01:45.115401+03:00 | 2021-06-18T09:01:45.115401+03:00 | a2c4ef84-8ed6-4b9c-b4ac-b96e7ae4d973 | 0f474053-8b2c-4d62-bfd0-b2f6072464cd | a7f009a9-3a98-4e5b-8e45-0c43290c84df | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': '23978f64-305f-4c43-8c01-c40bafabe554', 'label': '3a118ebc-18e2-4ed0-a0f0-3a50db652729', 'similarity': 0.6, 'external_id': 'e0'}" | f687a4d1-0d25-4940-bbda-192b7b964fed | 1 | 33 | 7 | 1 | 1111632d-70fc-4e2e-b336-d5a68e1deb14 | 1 | 09e6642b-1ebe-405d-9bcd-86bbe254dc4f | Moscow | CAA | Arbat | Arbat | 1 | "55.752, 36.616" | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
| 0370f6b6-643a-4ad6-8c30-57849d7b070c | 2021-06-18T09:01:45.115206+03:00 | 2021-06-18T09:01:45.115401+03:00 | 2ba4dcb3-0ca6-43b2-a588-42cd776a09ab | 2daa17f1-a5e6-4d7b-bae4-a224eec35eee | c038bede-f002-4c74-98fe-d3686b043fcd | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': 'ad008886-942c-4c13-934c-8232dc7eefb2', 'label': '15859afa-37d3-41e2-8bc2-cb6f970dc6a0', 'similarity': 0.5, 'external_id': 'e1'}" | ed5ea7ce-02b3-4129-b3e8-4721b678c463 | 1 | 33 | 7 | 1 | 42d908a4-52c5-4f46-87bd-4903ee315260 | 1 | b152f0a9-2fe7-458d-9107-9783cf14e491 | Moscow | CAA | Arbat | Arbat | 1 | "55.752, 36.616" | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
| 0370f6b6-643a-4ad6-8c30-57849d7b070b | 2021-06-18T09:01:45.115014+03:00 | 2021-06-18T09:01:45.115401+03:00 | ca23bb19-6c15-4466-a89c-b1181adaf874 | 757318b2-3570-496a-b3c2-5d8a024e0ae1 | 4fd91006-d51a-4491-8923-1c6341a579c4 | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': 'c77bda6b-74ea-412f-989f-f27fd5be1e20', 'label': '3ac8c676-c717-4da4-8ed3-6ca9e6139c6d', 'similarity': 0.4, 'external_id': 'e2'}" | ae6381e6-0341-47bb-9989-3a3706ae99f9 | 1 | 33 | 7 | 1 | 079c8ecc-d29b-4ab5-aa65-d1954b5101d6 | 1 | e6495a29-7c25-45bd-b9f6-17d954f5a485 | Moscow | CAA | Arbat | Arbat | 1 | "55.752, 36.616" | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
| 0370f6b6-643a-4ad6-8c30-57849d7b070a | 2021-06-18T09:01:45.114805+03:00 | 2021-06-18T09:01:45.115401+03:00 | 7e1c37d0-74f1-4ca7-8fbe-f5c26b6a5fb7 | 7c57c339-4fc3-4a1a-90e3-e932eb4b022d | 8391e7c7-a8b1-4466-8b1e-76433f3e92a7 | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': '477a4ef7-16dc-4189-ab3b-91b1d342e101', 'label': '64058eac-eff1-4efc-b6c3-982133523a31', 'similarity': 0.3, 'external_id': 'e3'}" | 830bc063-d5ca-4eba-a8c3-2094d9e4bd32 | 1 | 33 | 7 | 1 | 5068d60e-5f50-4e45-bdbf-d68a3020097c | 1 | b3b780ea-76f2-4147-ae4e-674bbf8c8aa0 | Moscow | CAA | Arbat | Arbat | 1 | "55.752, 36.616" | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
| 0370f6b6-643a-4ad6-8c30-57849d7b0709 | 2021-06-18T09:01:45.114531+03:00 | 2021-06-18T09:01:45.115401+03:00 | 3a95f340-9b02-4b4d-b56c-bc6aeaae46db | aa7d4de1-d4fb-4052-acb4-1ccb5be99ece | c1275d2f-95d1-4034-870f-da0a8f9d02b8 | 91a7fd34-0877-46f5-844c-e88fd28d68f0 | "{'face_id': '7f5bf6fb-2ad0-42bf-98f2-fe949516db7d', 'label': 'be309d4d-deaa-479e-ba70-026a712f39e2', 'similarity': 0.2, 'external_id': 'e4'}" | 64c4f42e-e7e3-4a72-93d8-399e5c8451c9 | 1 | 33 | 7 | 1 | 7bcc784c-d699-492e-99e5-5c3cdea79764 | 1 | d0e339e3-472a-4da0-b90a-43693ca5fb47 | Moscow | CAA | Arbat | Arbat | 1 | "55.752, 36.616" | 1 | 1 | 33 | 0 | "long" | ["black", "white"] | 2 | "black" | "shorts" | ["black", "blue"] | "black" | "{'foo':'bar1'}" |
schedule_id:
type: integer
nullable: false
minimum: 1
description: Schedule according to which the task was created
retry_count:
type: integer
minimum: 0
maximum: 32767
schedule_trigger:
type: object
description: task schedule trigger
properties:
cron:
type: string
maxLength: 128
example: 5 4 * * *
description: |
The cron syntax consists of five fields:
| Field | Allowed Values |
|-----------------|-----------------------|
| Minute | 0-59 |
| Hour | 0-23 |
| Day of month | 1-31 |
| Month | 1-12 |
| Day of week | 0-6 (Sunday-Saturday) |
There are special characters such as `*` (any value), `-` (range), `,` (list), and `/` (step) that can be used before each field.
Expression examples:
`0 0 * * *` - runs a scheduled task at midnight (00:00) every day.
`*/15 * * * *` - runs a scheduled task every 15 minutes.
`30 8 * * 1-5` - runs a scheduled task at 8:30 AM every weekday (Monday to Friday).
`0 0 1 * *` - runs a scheduled task at midnight (00:00) on the first day of every month.
`0 3 * * 1,3,5` - runs a scheduled task at 3:00 AM every Monday, Wednesday, and Friday.
For more detail about cron syntax see https://en.wikipedia.org/wiki/Cron.
cron_timezone:
type: string
enum: [utc, local]
description: cron timezone - utc or local
default: local
required: [cron]
schedule_behaviour:
type: object
description: schedule behaviour parameters
properties:
start_immediately:
type: bool
default: false
description: whether to create first task immediately regardless to schedule
create_stopped:
type: bool
default: false
description: |
whether to create schedule and not execute any tasks
expected that schedule will execute by user manually in future
task_schedule_template_request:
type: object
description: tasks schedule
properties:
notification_policy:
$ref: '#/components/schemas/notification_policy'
result_storage_policy:
$ref: '#/components/schemas/result_storage_policy'
required: [task_type, content]
task_schedule_template_response:
type: object
description: tasks schedule
properties:
notification_policy:
$ref: '#/components/schemas/task_notification_policy_response'
result_storage_policy:
$ref: '#/components/schemas/result_storage_policy_response'
required: [task_type, content, notification_policy, result_storage_policy]
linker_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [1]
content:
$ref: "#/components/schemas/linker_task_content"
schedule_linker_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/linker_content_props"
schedule_linker_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/linker_content_props"
clustering_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [2]
content:
$ref: "#/components/schemas/clustering_task_content"
schedule_clustering_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/clustering_content_props"
schedule_clustering_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/clustering_content_props"
reporter_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [3]
content:
type: object
properties:
clusterization:
$ref: "#/components/schemas/clustering_task_content"
reporter:
$ref: "#/components/schemas/reporter_task_content_without_filters"
required: [clusterization, reporter]
schedule_reporter_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/reporter_content_props"
schedule_reporter_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/reporter_content_props"
gc_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [4]
content:
$ref: "#/components/schemas/gc_task_content"
schedule_gc_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/gc_content_props"
schedule_gc_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/gc_content_props"
ae_task_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [5]
content:
$ref: "#/components/schemas/additional_extract_task_content"
schedule_ae_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/ae_task_content_props"
schedule_ae_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/ae_task_content_props"
cm_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [6]
content:
$ref: "#/components/schemas/cross_match_task_content"
schedule_cross_match_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/cm_content_props"
schedule_cross_match_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/cm_content_props"
roc_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [7]
content:
$ref: "#/components/schemas/roc_task_content"
schedule_roc_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/roc_content_props"
schedule_roc_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/roc_content_props"
exporter_content_props:
type: object
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type_schedulable"
enum: [8]
content:
$ref: "#/components/schemas/exporter_task_content"
schedule_exporter_task_content_request:
allOf:
- $ref: "#/components/schemas/task_schedule_template_request"
- $ref: "#/components/schemas/exporter_content_props"
schedule_exporter_task_content_response:
allOf:
- $ref: "#/components/schemas/task_schedule_template_response"
- $ref: "#/components/schemas/exporter_content_props"
task_schedulable_request:
description: task schedule
oneOf:
- $ref: '#/components/schemas/schedule_linker_task_content_request'
- $ref: '#/components/schemas/schedule_clustering_task_content_request'
- $ref: '#/components/schemas/schedule_reporter_task_content_request'
- $ref: '#/components/schemas/schedule_gc_task_content_request'
- $ref: '#/components/schemas/schedule_ae_task_content_request'
- $ref: '#/components/schemas/schedule_cross_match_task_content_request'
- $ref: '#/components/schemas/schedule_roc_task_content_request'
- $ref: '#/components/schemas/schedule_exporter_task_content_request'
- $ref: '#/components/schemas/schedule_estimator_task_content_request'
- $ref: '#/components/schemas/schedule_lambda_task_content_request'
discriminator:
propertyName: task_type
mapping:
1: '#/components/schemas/schedule_linker_task_content_request'
2: '#/components/schemas/schedule_clustering_task_content_request'
3: '#/components/schemas/schedule_reporter_task_content_request'
4: '#/components/schemas/schedule_gc_task_content_request'
5: '#/components/schemas/schedule_ae_task_content_request'
6: '#/components/schemas/schedule_cross_match_task_content_request'
7: '#/components/schemas/schedule_roc_task_content_request'
8: '#/components/schemas/schedule_exporter_task_content_request'
9: '#/components/schemas/schedule_estimator_task_content_request'
10: '#/components/schemas/schedule_lambda_task_content_request'
task_schedulable_response:
description: task schedule
oneOf:
- $ref: '#/components/schemas/schedule_linker_task_content_response'
- $ref: '#/components/schemas/schedule_clustering_task_content_response'
- $ref: '#/components/schemas/schedule_reporter_task_content_response'
- $ref: '#/components/schemas/schedule_gc_task_content_response'
- $ref: '#/components/schemas/schedule_ae_task_content_response'
- $ref: '#/components/schemas/schedule_cross_match_task_content_response'
- $ref: '#/components/schemas/schedule_roc_task_content_response'
- $ref: '#/components/schemas/schedule_exporter_task_content_response'
- $ref: '#/components/schemas/schedule_estimator_task_content_response'
- $ref: '#/components/schemas/schedule_lambda_task_content_response'
discriminator:
propertyName: task_type
mapping:
1: '#/components/schemas/schedule_linker_task_content_response'
2: '#/components/schemas/schedule_clustering_task_content_response'
3: '#/components/schemas/schedule_reporter_task_content_response'
4: '#/components/schemas/schedule_gc_task_content_response'
5: '#/components/schemas/schedule_ae_task_content_response'
6: '#/components/schemas/schedule_cross_match_task_content_response'
7: '#/components/schemas/schedule_roc_task_content_response'
8: '#/components/schemas/schedule_exporter_task_content_response'
9: '#/components/schemas/schedule_estimator_task_content_response'
10: '#/components/schemas/schedule_lambda_task_content_response'
schedule:
type: object
description: tasks schedule
properties:
task:
$ref: '#/components/schemas/task_schedulable_request'
trigger:
$ref: '#/components/schemas/schedule_trigger'
behaviour:
$ref: '#/components/schemas/schedule_behaviour'
required: [trigger, task]
schedule_status:
type: string
enum: [running, stopped]
description: |
schedule status
| status | description |
|---------|----------------------------------------------|
| running | schedule is running |
| stopped | schedule is stopped by user |
schedule_reply:
type: object
properties:
schedule_id:
$ref: '#/components/schemas/schedule_id'
task_ids:
type: array
items:
$ref: '#/components/schemas/task_id'
example: [1,2,3]
description: list of executed task ids in descending order
account_id:
$ref: '#/components/schemas/account_id'
task:
$ref: '#/components/schemas/task_schedulable_response'
trigger:
$ref: '#/components/schemas/schedule_trigger'
status:
$ref: '#/components/schemas/schedule_status'
next_run_time:
allOf:
- $ref: '#/components/schemas/time'
nullable: True
description: estimated time for next task
create_time:
allOf:
- $ref: '#/components/schemas/time'
description: schedule create time
last_update_time:
allOf:
- $ref: '#/components/schemas/time'
description: schedule last update time
required:
- schedule_id
- task_ids
- account_id
- task
- trigger
- status
- next_run_time
- create_time
- last_update_time
schedules_reply:
type: array
items:
$ref: '#/components/schemas/schedule_reply'
task_template_reply:
type: object
properties:
task_id:
$ref: '#/components/schemas/task_id'
create_time:
allOf:
- $ref: '#/components/schemas/time'
description: task create time
end_time:
allOf:
- $ref: '#/components/schemas/time_nullable'
description: task end time
last_update_time:
allOf:
- description: task last update time
$ref: '#/components/schemas/time_nullable'
task_status:
$ref: '#/components/schemas/task_status'
result_id:
$ref: '#/components/schemas/result_id'
account_id:
$ref: '#/components/schemas/account_id'
count_task_parts_done:
$ref: '#/components/schemas/count_task_parts_done'
count_task_parts_all:
$ref: '#/components/schemas/count_task_parts_all'
description:
$ref: '#/components/schemas/task_description'
notification_policy:
$ref: '#/components/schemas/task_notification_policy_response'
result_storage_policy:
$ref: '#/components/schemas/result_storage_policy_response'
required: [ task_id, create_time, last_update_time, task_type, task_status, count_task_parts_done,
count_task_parts_all, content, result_storage_policy, notification_policy ]
schedulable_task_template_reply:
allOf:
- $ref: '#/components/schemas/task_template_reply'
- properties:
schedule_id:
$ref: '#/components/schemas/schedule_id'
task_linker_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 1 ]
content:
$ref: "#/components/schemas/linker_task_content_reply"
task_clustering_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 2 ]
content:
$ref: "#/components/schemas/clustering_task_content_reply"
task_report_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 3 ]
content:
$ref: "#/components/schemas/reporter_task_content"
task_lambda_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 10 ]
content:
$ref: "#/components/schemas/lambda_task_content"
task_gc_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 4 ]
content:
description: Garbage collecting task content
oneOf:
- $ref: '#/components/schemas/gc_face_descriptors_task_content'
- $ref: '#/components/schemas/gc_faces_task_content_reply'
- $ref: '#/components/schemas/gc_event_descriptors_task_content'
- $ref: '#/components/schemas/gc_events_task_content_reply'
discriminator:
propertyName: target
mapping:
face_descriptors: '#/components/schemas/gc_face_descriptors_task_content'
faces: '#/components/schemas/gc_faces_task_content_reply'
event_descriptors: '#/components/schemas/gc_event_descriptors_task_content'
events: '#/components/schemas/gc_events_task_content_reply'
task_additional_extract_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 5 ]
content:
description: additional extractor task content.
oneOf:
- $ref: '#/components/schemas/additional_extract_task_content_basic_attributes_reply'
- $ref: '#/components/schemas/additional_extract_task_content_face_descriptor_reply'
- $ref: '#/components/schemas/additional_extract_task_content_body_descriptor_reply'
discriminator:
propertyName: extraction_target
mapping:
basic_attributes: '#/components/schemas/additional_extract_task_content_basic_attributes_reply'
face_descriptor: '#/components/schemas/additional_extract_task_content_face_descriptor_reply'
body_descriptor: '#/components/schemas/additional_extract_task_content_body_descriptor_reply'
task_cross_match_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 6 ]
content:
$ref: "#/components/schemas/cross_match_task_content_reply"
task_roc_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 7 ]
content:
$ref: "#/components/schemas/roc_task_content"
task_exporter_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [ 8 ]
content:
$ref: "#/components/schemas/exporter_task_content_reply"
task_estimator_reply:
allOf:
- $ref: "#/components/schemas/schedulable_task_template_reply"
properties:
task_type:
allOf:
- $ref: "#/components/schemas/task_type"
enum: [9]
content:
$ref: "#/components/schemas/estimator_task_content_required"
task_reply:
oneOf:
- $ref: "#/components/schemas/task_linker_reply"
- $ref: "#/components/schemas/task_clustering_reply"
- $ref: "#/components/schemas/task_report_reply"
- $ref: "#/components/schemas/task_gc_reply"
- $ref: "#/components/schemas/task_additional_extract_reply"
- $ref: "#/components/schemas/task_cross_match_reply"
- $ref: "#/components/schemas/task_roc_reply"
- $ref: "#/components/schemas/task_exporter_reply"
- $ref: "#/components/schemas/task_estimator_reply"
- $ref: "#/components/schemas/task_lambda_reply"
discriminator:
propertyName: task_type
mapping:
1: '#/components/schemas/task_linker_reply'
2: '#/components/schemas/task_clustering_reply'
3: '#/components/schemas/task_report_reply'
4: '#/components/schemas/task_gc_reply'
5: '#/components/schemas/task_additional_extract_reply'
6: '#/components/schemas/task_cross_match_reply'
7: '#/components/schemas/task_roc_reply'
8: '#/components/schemas/task_exporter_reply'
9: '#/components/schemas/task_estimator_reply'
10: '#/components/schemas/task_lambda_reply'
health_ok:
description: successful healthcheck execution info
type: object
properties:
execution_time:
type: number
example: 0.123
description: request execution time in seconds
required: [execution_time]
health_errors:
type: object
properties:
errors:
description: failed healthcheck execution info
type: array
items:
type: object
properties:
component:
description: component name
type: string
error:
allOf:
- description: healthcheck error
- $ref: '#/components/schemas/Error'
status:
description: component health status
type: integer
enum: [0, 1]
required: [component, error, status]
required: [errors]
example:
errors:
- component: tasks_db
error:
error_code: 10017
desc: Database error
detail: Database connection timeout error
link: https://docs.visionlabs.ai/info/luna/troubleshooting/errors-description/code-10017
status: 0
- component: tasks_worker
error:
error_code: 0
desc: Success
detail: Success
link: https://docs.visionlabs.ai/info/luna/troubleshooting/errors-description/code-0
status: 1
create_time__gte:
allOf:
- $ref: '#/components/schemas/time'
description: Create time lower included boundary.
pattern: '^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|\.\d+Z|\.\d+[+-]\d{2}:\d{2}|[+-]\d{2}:\d{2}))$'
example: "2018-08-11T09:11:41.674Z"
create_time__lt:
allOf:
- $ref: '#/components/schemas/time'
description: Create time upper excluded boundary.
pattern: '^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|\.\d+Z|\.\d+[+-]\d{2}:\d{2}|[+-]\d{2}:\d{2}))$'
example: "2018-08-11T09:11:41.674Z"
end_time__gte:
allOf:
- $ref: '#/components/schemas/time'
description: End time lower included boundary.
pattern: '^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|\.\d+Z|\.\d+[+-]\d{2}:\d{2}|[+-]\d{2}:\d{2}))$'
example: "2018-08-11T09:11:41.674Z"
end_time__lt:
allOf:
- $ref: '#/components/schemas/time'
description: End time upper excluded boundary.
pattern: '^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|\.\d+Z|\.\d+[+-]\d{2}:\d{2}|[+-]\d{2}:\d{2}))$'
example: "2018-08-11T09:11:41.674Z"
insert_time__gte:
allOf:
- $ref: '#/components/schemas/time'
description: Event insert time lower excluding boundary.
pattern: '^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|\.\d+Z|\.\d+[+-]\d{2}:\d{2}|[+-]\d{2}:\d{2}))$'
example: "2018-08-11T09:11:41.674Z"
insert_time__lt:
allOf:
- $ref: '#/components/schemas/time'
description: Event insert time upper excluding boundary.
pattern: '^(\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(Z|\.\d+Z|\.\d+[+-]\d{2}:\d{2}|[+-]\d{2}:\d{2}))$'
example: "2018-08-11T09:11:41.674Z"
now_delta_time_filter:
type: string
pattern: '^now-(\d+)[smhdwMy]$'
example: "now-2d"
create_time_now__gte:
allOf:
- $ref: '#/components/schemas/now_delta_time_filter'
description: |
Create time lower included boundary in format `now-time`, where time must be present as follows:
| Parameter value | Description |
|---------------------|--------------|
| `1m` | one minute |
| `2h` | two hours |
| `7d` | seven days |
| `5w` | five weeks |
| `3M` | three months |
| `10y` | ten years |
create_time_now__lt:
allOf:
- $ref: '#/components/schemas/now_delta_time_filter'
description: |
Create time upper excluded boundary in format `now-time`, where time must be present as follows:
| Parameter value | Description |
|---------------------|--------------|
| `1m` | one minute |
| `2h` | two hours |
| `7d` | seven days |
| `5w` | five weeks |
| `3M` | three months |
| `10y` | ten years |
end_time_now__gte:
allOf:
- $ref: '#/components/schemas/now_delta_time_filter'
description: |
End time lower included boundary in format `now-time`, where time must be present as follows:
| Parameter value | Description |
|---------------------|--------------|
| `1m` | one minute |
| `2h` | two hours |
| `7d` | seven days |
| `5w` | five weeks |
| `3M` | three months |
| `10y` | ten years |
end_time_now__lt:
allOf:
- $ref: '#/components/schemas/now_delta_time_filter'
description: |
End time upper excluded boundary in format `now-time`, where time must be present as follows:
| Parameter value | Description |
|---------------------|--------------|
| `1m` | one minute |
| `2h` | two hours |
| `7d` | seven days |
| `5w` | five weeks |
| `3M` | three months |
| `10y` | ten years |
insert_time_now__gte:
allOf:
- $ref: '#/components/schemas/now_delta_time_filter'
description: |
End time lower included boundary in format `now-time`, where time must be present as follows:
| Parameter value | Description |
|---------------------|--------------|
| `1m` | one minute |
| `2h` | two hours |
| `7d` | seven days |
| `5w` | five weeks |
| `3M` | three months |
| `10y` | ten years |
insert_time_now__lt:
allOf:
- $ref: '#/components/schemas/now_delta_time_filter'
description: |
End time upper excluded boundary in format `now-time`, where time must be present as follows:
| Parameter value | Description |
|---------------------|--------------|
| `1m` | one minute |
| `2h` | two hours |
| `7d` | seven days |
| `5w` | five weeks |
| `3M` | three months |
| `10y` | ten years |
plugin_status:
type: object
properties:
name:
type: string
description: Plugin name
running:
type: integer
enum: [0, 1]
description: Whether plugin is running or not.
required: [name, running]
plugins:
type: object
properties:
plugins:
description: list of imported plugins
type: array
items:
$ref: '#/components/schemas/plugin_status'
required: [plugins]
example:
plugins:
- name: foo
running: 1
responses:
internal_server_error:
description: internal server error.
headers:
Content-Type:
$ref: '#/components/headers/application_json'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
server_timeout_error:
description: server timeout error.
headers:
Content-Type:
$ref: '#/components/headers/application_json'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error_code: 9
detail: Request timeout
desc: Request timeout on http://127.0.0.1:5050/{...}, method {...}
link: https://docs.visionlabs.ai/info/luna/troubleshooting/errors-description/code-9
lis_disabled:
description: The luna-image-store is disabled.
headers:
Content-Type:
$ref: '#/components/headers/application_json'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
example:
error_code: 11070
desc: Forbidden
detail: Luna Image Store service is disabled
link: "https://docs.visionlabs.ai/info/luna/troubleshooting/errors-description/code-11070"
ae_not_implemented:
description: not implemented.
headers:
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
Content-Type:
$ref: '#/components/headers/application_json'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
not_implemented:
value:
error_code: 12029
desc: Functionality is not implemented
detail: Required server functionality is not implemented
link: https://docs.visionlabs.ai/info/luna/troubleshooting/errors-description/code-12029
forbidden_resource_error:
description: Forbidden.
headers:
Content-Type:
$ref: '#/components/headers/application_json'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
resource_is_disabled:
value:
error_code: 12049
desc: Forbidden
detail: Resource is disabled.
link: "https://docs.visionlabs.ai/info/luna/troubleshooting/errors-description/code-12049"
paths:
/2/docs/spec:
get:
tags:
- documents
summary: get openapi documentation
description: |
Get service OpenApi documentation. If *Accept* request header is of type `application/x-yaml`,
returns documentation in `yaml` format or returns `html` documentation, if *Accept-Type* is `text/html`
operationId: getSpec
parameters:
- $ref: '#/components/parameters/luna_request_id'
- $ref: '#/components/parameters/accept_docs_handler'
responses:
200:
description: OK
headers:
Content-Type:
$ref: '#/components/headers/docs_content_type'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/x-yaml:
schema:
type: string
description: yaml format documentation
text/html:
schema:
type: string
description: html format documentation
415:
description: Unsupported Media Type
headers:
Content-Type:
$ref: '#/components/headers/application_json'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/json:
schema:
$ref: '#/components/schemas/Error'
examples:
unsupported_media_type:
value:
error_code: 12024
detail: Bad/incomplete input data
desc: Unsupported media type
link: https://docs.visionlabs.ai/info/luna/troubleshooting/errors-description/code-12024
500:
$ref: '#/components/responses/internal_server_error'
/2/docs/dev:
get:
tags:
- documents
summary: get development manual
description: |
Get sphinx documentation - *Development Manual*. After the request you will be redirected to the page `/docs/dev/index.html`
operationId: getDevManual
parameters:
- $ref: '#/components/parameters/luna_request_id'
responses:
200:
description: OK
headers:
Content-Type:
$ref: '#/components/headers/text_html'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
text/html:
schema:
type: string
description: html format documentation
500:
$ref: '#/components/responses/internal_server_error'
/2/plugins:
get:
tags:
- plugins
summary: get list of plugins
description: |
Get list of service plugins
operationId: getPlugins
parameters:
- $ref: '#/components/parameters/luna_request_id'
responses:
200:
description: OK.
headers:
Content-Type:
$ref: '#/components/headers/application_json'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/json:
schema:
$ref: '#/components/schemas/plugins'
500:
$ref: '#/components/responses/internal_server_error'
/healthcheck:
get:
tags:
- health
summary: get health
description: get health of service
operationId: healthcheck
parameters:
- $ref: '#/components/parameters/luna_request_id'
- $ref: '#/components/parameters/include_luna_services'
responses:
200:
description: OK
headers:
Content-Type:
$ref: '#/components/headers/application_json'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/json:
schema:
$ref: '#/components/schemas/health_ok'
500:
$ref: '#/components/responses/internal_server_error'
502:
description: Unhealthy
headers:
Content-Type:
$ref: '#/components/headers/application_json'
Luna-Request-Id:
$ref: '#/components/headers/luna_request_id'
content:
application/json:
schema:
$ref: '#/components/schemas/health_errors'