8342 lines
312 KiB
YAML
8342 lines
312 KiB
YAML
definitions:
|
||
apperrors.APIError400:
|
||
properties:
|
||
code:
|
||
example: CDE-0004
|
||
type: string
|
||
detail:
|
||
example: The request sent was invalid or malformed. Please review the request
|
||
parameters or body and try again.
|
||
type: string
|
||
type:
|
||
example: bad_request
|
||
type: string
|
||
type: object
|
||
apperrors.APIError401:
|
||
properties:
|
||
code:
|
||
example: CDE-0002
|
||
type: string
|
||
detail:
|
||
example: Authentication is required or has failed. Please log in or provide
|
||
valid credentials.
|
||
type: string
|
||
type:
|
||
example: unauthorized
|
||
type: string
|
||
type: object
|
||
apperrors.APIError403:
|
||
properties:
|
||
code:
|
||
example: CDE-0003
|
||
type: string
|
||
detail:
|
||
example: You do not have the necessary permissions to perform this action
|
||
or access this resource.
|
||
type: string
|
||
type:
|
||
example: permission_denied
|
||
type: string
|
||
type: object
|
||
apperrors.APIError404:
|
||
properties:
|
||
code:
|
||
example: CDE-0001
|
||
type: string
|
||
detail:
|
||
example: The requested resource could not be found. Please verify the URL
|
||
or identifier and try again.
|
||
type: string
|
||
type:
|
||
example: not_found
|
||
type: string
|
||
type: object
|
||
apperrors.APIError409:
|
||
properties:
|
||
code:
|
||
example: CDE-0008
|
||
type: string
|
||
detail:
|
||
example: A resource with the same identifier already exists. Please use a
|
||
different value or update the existing resource.
|
||
type: string
|
||
type:
|
||
example: conflict
|
||
type: string
|
||
type: object
|
||
apperrors.APIError422:
|
||
properties:
|
||
code:
|
||
example: CDE-0005
|
||
type: string
|
||
detail:
|
||
example: One or more provided input values failed validation. Please review
|
||
the data and ensure it meets the required format or constraints.
|
||
type: string
|
||
type:
|
||
example: validation_error
|
||
type: string
|
||
validation_errors:
|
||
additionalProperties:
|
||
items:
|
||
type: string
|
||
type: array
|
||
type: object
|
||
type: object
|
||
apperrors.APIError502:
|
||
properties:
|
||
code:
|
||
example: CDE-0006
|
||
type: string
|
||
detail:
|
||
example: An external service encountered an error. This is usually a temporary
|
||
issue, please try again later.
|
||
type: string
|
||
type:
|
||
example: external_service_error
|
||
type: string
|
||
type: object
|
||
attribute.ReplaceAttributeInput:
|
||
properties:
|
||
asset_id:
|
||
type: string
|
||
x-nullable: true
|
||
asset_level_id:
|
||
type: string
|
||
x-nullable: true
|
||
id:
|
||
type: integer
|
||
values:
|
||
items: {}
|
||
type: array
|
||
type: object
|
||
attribute.ReplaceRequest:
|
||
properties:
|
||
attributes:
|
||
description: Полный желаемый набор атрибутов. Отсутствующие атрибуты и атрибуты
|
||
с пустым values удаляются из активного набора; пустой список очищает все
|
||
атрибуты документа.
|
||
items:
|
||
$ref: '#/definitions/attribute.ReplaceAttributeInput'
|
||
type: array
|
||
type: object
|
||
binding.AuthorOutput:
|
||
properties:
|
||
first_name:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
last_name:
|
||
type: string
|
||
type: object
|
||
binding.BindingItemOutput:
|
||
properties:
|
||
author:
|
||
$ref: '#/definitions/binding.AuthorOutput'
|
||
bundle_conversion_status:
|
||
type: string
|
||
changelog:
|
||
$ref: '#/definitions/binding.ChangelogOutput'
|
||
comment:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
deleted_at:
|
||
type: string
|
||
disk_id:
|
||
type: string
|
||
has_digital_signature:
|
||
type: boolean
|
||
has_qr_code:
|
||
type: boolean
|
||
has_stamp:
|
||
type: boolean
|
||
id:
|
||
type: string
|
||
is_canceled_qr:
|
||
type: boolean
|
||
is_document_allowed:
|
||
type: boolean
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
pretty_path:
|
||
type: string
|
||
reviews:
|
||
items:
|
||
$ref: '#/definitions/binding.ReviewOutput'
|
||
type: array
|
||
size:
|
||
type: integer
|
||
transmittals:
|
||
items:
|
||
$ref: '#/definitions/binding.TransmittalOutput'
|
||
type: array
|
||
type:
|
||
type: string
|
||
version:
|
||
type: integer
|
||
workflow_id:
|
||
type: string
|
||
type: object
|
||
binding.ChangelogOutput:
|
||
properties:
|
||
description:
|
||
type: string
|
||
"no":
|
||
type: string
|
||
type: object
|
||
binding.GetBindingsOutput:
|
||
properties:
|
||
binding_id:
|
||
type: string
|
||
items:
|
||
items:
|
||
$ref: '#/definitions/binding.BindingItemOutput'
|
||
type: array
|
||
type: object
|
||
binding.ReviewOutput:
|
||
properties:
|
||
review:
|
||
type: string
|
||
review_id:
|
||
type: integer
|
||
review_status:
|
||
type: string
|
||
status:
|
||
$ref: '#/definitions/binding.ReviewStatusOutput'
|
||
type: object
|
||
binding.ReviewStatusOutput:
|
||
properties:
|
||
id:
|
||
type: integer
|
||
key:
|
||
type: string
|
||
value:
|
||
type: string
|
||
type: object
|
||
binding.TransmittalOutput:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
name:
|
||
type: string
|
||
status:
|
||
$ref: '#/definitions/binding.TransmittalStatusOutput'
|
||
type: object
|
||
binding.TransmittalStatusOutput:
|
||
properties:
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
slug:
|
||
type: string
|
||
type: object
|
||
bundle.AddWorkflowRequest:
|
||
properties:
|
||
workflow_id:
|
||
type: string
|
||
required:
|
||
- workflow_id
|
||
type: object
|
||
bundle.ChangeAuthorRequest:
|
||
properties:
|
||
user_id:
|
||
type: integer
|
||
required:
|
||
- user_id
|
||
type: object
|
||
bundle.ChangelogRequest:
|
||
properties:
|
||
description:
|
||
type: string
|
||
"no":
|
||
type: string
|
||
type: object
|
||
bundle.CompleteUploadResponse:
|
||
properties:
|
||
id:
|
||
type: string
|
||
upload_status:
|
||
type: string
|
||
type: object
|
||
bundle.CreateRequest:
|
||
properties:
|
||
changelog:
|
||
$ref: '#/definitions/bundle.ChangelogRequest'
|
||
comment:
|
||
type: string
|
||
date:
|
||
type: string
|
||
disk_id:
|
||
type: string
|
||
keys:
|
||
items:
|
||
$ref: '#/definitions/bundle.DataSourceKeyRequest'
|
||
minItems: 1
|
||
type: array
|
||
type:
|
||
type: string
|
||
required:
|
||
- disk_id
|
||
- keys
|
||
- type
|
||
type: object
|
||
bundle.CreateResponse:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
data_sources:
|
||
items:
|
||
$ref: '#/definitions/bundle.DataSourceResponse'
|
||
type: array
|
||
id:
|
||
type: string
|
||
type:
|
||
type: string
|
||
type: object
|
||
bundle.DataSourceKeyRequest:
|
||
properties:
|
||
key:
|
||
type: string
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
type:
|
||
enum:
|
||
- folder
|
||
- file
|
||
type: string
|
||
required:
|
||
- key
|
||
- name
|
||
- type
|
||
type: object
|
||
bundle.DataSourceResponse:
|
||
properties:
|
||
file_name:
|
||
type: string
|
||
id:
|
||
type: string
|
||
key:
|
||
type: string
|
||
type:
|
||
type: string
|
||
type: object
|
||
bundle.EnsureDataSourceRequest:
|
||
properties:
|
||
name:
|
||
type: string
|
||
type:
|
||
enum:
|
||
- file
|
||
- folder
|
||
type: string
|
||
required:
|
||
- type
|
||
type: object
|
||
bundle.EnsureDataSourceResponse:
|
||
properties:
|
||
created:
|
||
type: boolean
|
||
data_source_id:
|
||
type: string
|
||
type: object
|
||
bundle.PresignResponse:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
hash:
|
||
type: string
|
||
type: object
|
||
bundle.RestartContext:
|
||
properties:
|
||
attributes:
|
||
additionalProperties: {}
|
||
type: object
|
||
bucketName:
|
||
type: string
|
||
companyID:
|
||
type: integer
|
||
documentID:
|
||
type: integer
|
||
pdfDataSourceID:
|
||
type: string
|
||
tilesDataSourceID:
|
||
type: string
|
||
workflowID:
|
||
description: external workflows-service workflow id
|
||
type: string
|
||
workflowRecordID:
|
||
description: our workflow row id (workflows_uid param)
|
||
type: string
|
||
type: object
|
||
bundle.RestartResponse:
|
||
properties:
|
||
workflow_id:
|
||
type: string
|
||
type: object
|
||
bundle.UpdateAttributesOutput:
|
||
properties:
|
||
bundleID:
|
||
type: string
|
||
restart:
|
||
allOf:
|
||
- $ref: '#/definitions/bundle.RestartContext'
|
||
description: |-
|
||
Restart is non-nil when the type re-runs georeferencing and a workflow
|
||
exists: the service performs the restart (network) out of the transaction.
|
||
type:
|
||
type: string
|
||
workflowStatus:
|
||
type: string
|
||
type: object
|
||
bundle.UpdateAttributesRequest:
|
||
properties:
|
||
attributes:
|
||
additionalProperties: {}
|
||
type: object
|
||
type: object
|
||
bundle.UpdateCommentRequest:
|
||
properties:
|
||
comment:
|
||
$ref: '#/definitions/optional.Value-string'
|
||
type: object
|
||
bundle.markBundleRequest:
|
||
properties:
|
||
clean_bundle_id:
|
||
type: string
|
||
qrs:
|
||
items:
|
||
$ref: '#/definitions/bundle.markBundleRequestQR'
|
||
maxItems: 1
|
||
type: array
|
||
signatures:
|
||
items:
|
||
$ref: '#/definitions/bundle.markBundleRequestSignature'
|
||
type: array
|
||
stamps:
|
||
items:
|
||
$ref: '#/definitions/bundle.markBundleRequestStamp'
|
||
type: array
|
||
use_existing_version:
|
||
type: boolean
|
||
type: object
|
||
bundle.markBundleRequestQR:
|
||
properties:
|
||
pages:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
positioning_type:
|
||
type: integer
|
||
timestamp:
|
||
type: string
|
||
x_coordinate:
|
||
minimum: 0
|
||
type: integer
|
||
y_coordinate:
|
||
minimum: 0
|
||
type: integer
|
||
required:
|
||
- timestamp
|
||
type: object
|
||
bundle.markBundleRequestSignature:
|
||
properties:
|
||
company_name:
|
||
maxLength: 255
|
||
type: string
|
||
header:
|
||
maxLength: 255
|
||
type: string
|
||
mrpa_id:
|
||
type: string
|
||
owner:
|
||
maxLength: 255
|
||
type: string
|
||
pages:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
positioning_type:
|
||
type: integer
|
||
signature:
|
||
type: string
|
||
thumbprint:
|
||
maxLength: 255
|
||
type: string
|
||
valid_from:
|
||
type: string
|
||
valid_to:
|
||
type: string
|
||
x_coordinate:
|
||
minimum: 0
|
||
type: integer
|
||
y_coordinate:
|
||
minimum: 0
|
||
type: integer
|
||
required:
|
||
- company_name
|
||
- header
|
||
- owner
|
||
- signature
|
||
- thumbprint
|
||
- valid_from
|
||
- valid_to
|
||
type: object
|
||
bundle.markBundleRequestStamp:
|
||
properties:
|
||
company_name:
|
||
maxLength: 255
|
||
type: string
|
||
header:
|
||
maxLength: 255
|
||
type: string
|
||
pages:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
positioning_type:
|
||
type: integer
|
||
role_name:
|
||
maxLength: 255
|
||
type: string
|
||
timestamp:
|
||
type: string
|
||
user_full_name:
|
||
maxLength: 255
|
||
type: string
|
||
x_coordinate:
|
||
minimum: 0
|
||
type: integer
|
||
y_coordinate:
|
||
minimum: 0
|
||
type: integer
|
||
required:
|
||
- company_name
|
||
- header
|
||
- role_name
|
||
- timestamp
|
||
- user_full_name
|
||
type: object
|
||
bundle.markBundleResponse:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
type: object
|
||
bundle.markExternalBundleRequest:
|
||
properties:
|
||
clean_bundle_id:
|
||
type: string
|
||
created_by:
|
||
type: integer
|
||
qrs:
|
||
items:
|
||
$ref: '#/definitions/bundle.markBundleRequestQR'
|
||
maxItems: 1
|
||
type: array
|
||
signatures:
|
||
items:
|
||
$ref: '#/definitions/bundle.markBundleRequestSignature'
|
||
type: array
|
||
stamps:
|
||
items:
|
||
$ref: '#/definitions/bundle.markBundleRequestStamp'
|
||
type: array
|
||
use_existing_version:
|
||
type: boolean
|
||
type: object
|
||
changelog.CreateRequest:
|
||
properties:
|
||
description:
|
||
type: string
|
||
"no":
|
||
type: string
|
||
type: object
|
||
changelog.Response:
|
||
properties:
|
||
author:
|
||
$ref: '#/definitions/document.AuthorOutput'
|
||
bundle_id:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
description:
|
||
type: string
|
||
"no":
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
changelog.UpdateRequest:
|
||
properties:
|
||
description:
|
||
description: Описание изменений; отсутствие поля сохраняет значение, null
|
||
очищает его.
|
||
type: string
|
||
x-nullable: true
|
||
"no":
|
||
type: string
|
||
type: object
|
||
changelog.UpdateResponse:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
description:
|
||
type: string
|
||
"no":
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
copy.AddVersionOptions:
|
||
properties:
|
||
copy_issues:
|
||
description: Копирование замечаний не поддерживается; значение поля игнорируется.
|
||
type: boolean
|
||
publish:
|
||
type: boolean
|
||
set_copied_from:
|
||
description: Сохранять связь копии с исходной версией; по умолчанию true.
|
||
type: boolean
|
||
type: object
|
||
copy.FlatOptions:
|
||
properties:
|
||
copy_attributes:
|
||
type: boolean
|
||
copy_issues:
|
||
description: Копирование замечаний не поддерживается; значение поля игнорируется.
|
||
type: boolean
|
||
publish:
|
||
type: boolean
|
||
set_copied_from:
|
||
type: boolean
|
||
type: object
|
||
copy.LegacyBundle:
|
||
properties:
|
||
attributes:
|
||
additionalProperties: {}
|
||
type: object
|
||
bim_id:
|
||
type: integer
|
||
bundle_copied_from:
|
||
type: string
|
||
comment:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
data_sources:
|
||
items:
|
||
$ref: '#/definitions/copy.LegacyDataSource'
|
||
type: array
|
||
date:
|
||
type: string
|
||
document_id:
|
||
type: integer
|
||
has_digital_signature:
|
||
type: boolean
|
||
has_qr_code:
|
||
type: boolean
|
||
has_stamp:
|
||
type: boolean
|
||
id:
|
||
type: string
|
||
published_at:
|
||
type: string
|
||
size:
|
||
type: integer
|
||
type:
|
||
type: string
|
||
upload_status:
|
||
type: string
|
||
workflow_status:
|
||
type: string
|
||
type: object
|
||
copy.LegacyBundleCopyRequest:
|
||
properties:
|
||
document_name:
|
||
type: string
|
||
to_disk_document_id:
|
||
type: string
|
||
to_parent_document_id:
|
||
type: integer
|
||
use_source_bundle_as_copied_from:
|
||
type: boolean
|
||
type: object
|
||
copy.LegacyDataSource:
|
||
properties:
|
||
file_name:
|
||
type: string
|
||
format:
|
||
type: string
|
||
id:
|
||
type: string
|
||
key:
|
||
type: string
|
||
size:
|
||
type: integer
|
||
type:
|
||
type: string
|
||
type: object
|
||
copy.LegacyDocument:
|
||
properties:
|
||
bundles:
|
||
items:
|
||
$ref: '#/definitions/copy.LegacyBundle'
|
||
type: array
|
||
created_at:
|
||
type: string
|
||
dashboard_id:
|
||
type: integer
|
||
disk_id:
|
||
type: string
|
||
document_copied_from:
|
||
type: integer
|
||
files:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
folders:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
has_bindings:
|
||
type: boolean
|
||
has_digital_signature:
|
||
type: boolean
|
||
has_public_link:
|
||
type: boolean
|
||
has_qr_code:
|
||
type: boolean
|
||
has_stamp:
|
||
type: boolean
|
||
id:
|
||
type: integer
|
||
is_folder:
|
||
type: boolean
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
project_id:
|
||
type: integer
|
||
published_at:
|
||
type: string
|
||
type:
|
||
type: string
|
||
workspace_id:
|
||
type: string
|
||
type: object
|
||
copy.NewDocumentItem:
|
||
properties:
|
||
document_name:
|
||
type: string
|
||
source_bundle_id:
|
||
type: string
|
||
to_parent_document_id:
|
||
description: Папка, в которой будет создан новый документ.
|
||
type: integer
|
||
type: object
|
||
copy.NewDocumentRequest:
|
||
properties:
|
||
items:
|
||
items:
|
||
$ref: '#/definitions/copy.NewDocumentItem'
|
||
type: array
|
||
options:
|
||
$ref: '#/definitions/copy.FlatOptions'
|
||
type: object
|
||
copy.SelectionRequest:
|
||
properties:
|
||
document_ids:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
options:
|
||
$ref: '#/definitions/copy.TreeOptions'
|
||
to_parent_document_id:
|
||
type: integer
|
||
type: object
|
||
copy.StartResponse:
|
||
properties:
|
||
operation_id:
|
||
type: string
|
||
type: object
|
||
copy.SubtreeRequest:
|
||
properties:
|
||
exclude:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
options:
|
||
$ref: '#/definitions/copy.TreeOptions'
|
||
to_parent_document_id:
|
||
type: integer
|
||
type: object
|
||
copy.ToDocumentItem:
|
||
properties:
|
||
source_bundle_id:
|
||
type: string
|
||
target_document_id:
|
||
type: integer
|
||
type: object
|
||
copy.ToDocumentRequest:
|
||
properties:
|
||
items:
|
||
items:
|
||
$ref: '#/definitions/copy.ToDocumentItem'
|
||
type: array
|
||
options:
|
||
$ref: '#/definitions/copy.AddVersionOptions'
|
||
type: object
|
||
copy.TreeOptions:
|
||
properties:
|
||
conflict_policy:
|
||
default: skip
|
||
description: 'При совпадении имени: skip (по умолчанию, также при пустом значении)
|
||
— пропустить документ или папку со всем содержимым; as_copy — выбрать первое
|
||
свободное имя с суффиксом « copy», « copy 2», …, « copy 50». Если все варианты
|
||
заняты, элемент пропускается. При отсутствии совпадения имя сохраняется.
|
||
Существующие элементы не перезаписываются и не объединяются.'
|
||
enum:
|
||
- skip
|
||
- as_copy
|
||
example: as_copy
|
||
type: string
|
||
copy_attributes:
|
||
type: boolean
|
||
copy_issues:
|
||
description: Копирование замечаний не поддерживается; значение поля игнорируется.
|
||
type: boolean
|
||
publish:
|
||
type: boolean
|
||
set_copied_from:
|
||
type: boolean
|
||
type: object
|
||
disk.CreateInternalRequest:
|
||
properties:
|
||
admin_ids:
|
||
items:
|
||
type: integer
|
||
minItems: 1
|
||
type: array
|
||
author_id:
|
||
type: integer
|
||
company_id:
|
||
type: integer
|
||
storage_type:
|
||
enum:
|
||
- sarex
|
||
type: string
|
||
required:
|
||
- admin_ids
|
||
- author_id
|
||
- company_id
|
||
- storage_type
|
||
type: object
|
||
disk.CreateInternalResponse:
|
||
properties:
|
||
admin_ids:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
bucket_name:
|
||
type: string
|
||
company_id:
|
||
type: integer
|
||
document_id:
|
||
type: integer
|
||
id:
|
||
type: string
|
||
name:
|
||
type: string
|
||
storage_type:
|
||
type: string
|
||
type: object
|
||
disk.CreateRequest:
|
||
properties:
|
||
admin_ids:
|
||
items:
|
||
type: integer
|
||
minItems: 1
|
||
type: array
|
||
company_id:
|
||
type: integer
|
||
storage_type:
|
||
enum:
|
||
- sarex
|
||
type: string
|
||
required:
|
||
- admin_ids
|
||
- company_id
|
||
- storage_type
|
||
type: object
|
||
document.AddBundleRequest:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
required:
|
||
- bundle_id
|
||
type: object
|
||
document.AddBundleResponse:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
document_id:
|
||
type: integer
|
||
document_name:
|
||
type: string
|
||
type: object
|
||
document.AttributeInput:
|
||
properties:
|
||
asset_id:
|
||
type: integer
|
||
asset_level_id:
|
||
type: integer
|
||
id:
|
||
type: integer
|
||
values:
|
||
items: {}
|
||
type: array
|
||
type: object
|
||
document.AuthorOutput:
|
||
properties:
|
||
first_name:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
last_name:
|
||
type: string
|
||
type: object
|
||
document.BulkDeleteResponse:
|
||
properties:
|
||
deleted_ids:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
skipped_ids:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
type: object
|
||
document.BulkMovedRoot:
|
||
properties:
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
path:
|
||
type: string
|
||
type: object
|
||
document.BulkUpdatePathRequest:
|
||
properties:
|
||
document_ids:
|
||
items:
|
||
type: integer
|
||
maxItems: 301
|
||
minItems: 1
|
||
type: array
|
||
uniqueItems: true
|
||
parent_id:
|
||
type: integer
|
||
required:
|
||
- document_ids
|
||
- parent_id
|
||
type: object
|
||
document.BulkUpdatePathResponse:
|
||
properties:
|
||
roots:
|
||
items:
|
||
$ref: '#/definitions/document.BulkMovedRoot'
|
||
type: array
|
||
skipped_ids:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
type: object
|
||
document.ChangeAuthorRequest:
|
||
properties:
|
||
include_bundles:
|
||
description: IncludeBundles also reassigns the author of every version of
|
||
the document.
|
||
type: boolean
|
||
user_id:
|
||
type: integer
|
||
required:
|
||
- user_id
|
||
type: object
|
||
document.CopyStructureRequest:
|
||
properties:
|
||
copy_permissions:
|
||
type: boolean
|
||
overwrite:
|
||
type: boolean
|
||
source_document_id:
|
||
type: integer
|
||
target_document_id:
|
||
type: integer
|
||
required:
|
||
- source_document_id
|
||
- target_document_id
|
||
type: object
|
||
document.CreateDashboardRequest:
|
||
properties:
|
||
dashboard_id:
|
||
type: integer
|
||
disk_id:
|
||
type: string
|
||
name:
|
||
maxLength: 100
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
required:
|
||
- dashboard_id
|
||
- disk_id
|
||
- name
|
||
- parent_id
|
||
type: object
|
||
document.CreateDashboardResponse:
|
||
properties:
|
||
dashboard_id:
|
||
type: integer
|
||
disk_id:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
type:
|
||
type: string
|
||
type: object
|
||
document.CreateDocumentWorkspaceResponse:
|
||
properties:
|
||
workspace_id:
|
||
type: string
|
||
type: object
|
||
document.CreateInternalRequest:
|
||
properties:
|
||
author_id:
|
||
type: integer
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
parent_disk_id:
|
||
type: string
|
||
parent_doc_id:
|
||
type: integer
|
||
type:
|
||
enum:
|
||
- deviation
|
||
- abap
|
||
- c2c
|
||
- c2s
|
||
- pdf
|
||
- folder
|
||
- bim2bim
|
||
- ksg
|
||
type: string
|
||
required:
|
||
- author_id
|
||
- name
|
||
- parent_disk_id
|
||
- parent_doc_id
|
||
- type
|
||
type: object
|
||
document.CreateInternalResponse:
|
||
properties:
|
||
bundle:
|
||
$ref: '#/definitions/document.CreatedBundleResponse'
|
||
id:
|
||
type: integer
|
||
is_folder:
|
||
type: boolean
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
type:
|
||
type: string
|
||
workspace_id:
|
||
type: string
|
||
type: object
|
||
document.CreateRequest:
|
||
properties:
|
||
attributes:
|
||
items:
|
||
$ref: '#/definitions/document.AttributeInput'
|
||
type: array
|
||
bundle_id:
|
||
type: string
|
||
disk_id:
|
||
type: string
|
||
is_folder:
|
||
type: boolean
|
||
is_project:
|
||
type: boolean
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
target_id:
|
||
type: integer
|
||
required:
|
||
- disk_id
|
||
- is_folder
|
||
- name
|
||
- parent_id
|
||
type: object
|
||
document.CreateResponse:
|
||
properties:
|
||
disk_id:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
is_folder:
|
||
type: boolean
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
project_id:
|
||
type: integer
|
||
type:
|
||
type: string
|
||
workspace_id:
|
||
type: string
|
||
type: object
|
||
document.CreateWorkspaceNodeRequest:
|
||
properties:
|
||
disk_id:
|
||
type: string
|
||
documents:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
required:
|
||
- disk_id
|
||
- documents
|
||
- name
|
||
- parent_id
|
||
type: object
|
||
document.CreateWorkspaceNodeResponse:
|
||
properties:
|
||
disk_id:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
type:
|
||
type: string
|
||
workspace_id:
|
||
type: string
|
||
type: object
|
||
document.CreatedBundleResponse:
|
||
properties:
|
||
data_sources:
|
||
items:
|
||
$ref: '#/definitions/document.CreatedDataSourceResponse'
|
||
type: array
|
||
id:
|
||
type: string
|
||
type:
|
||
type: string
|
||
upload_status:
|
||
type: string
|
||
type: object
|
||
document.CreatedDataSourceResponse:
|
||
properties:
|
||
id:
|
||
type: string
|
||
key:
|
||
type: string
|
||
name:
|
||
type: string
|
||
type:
|
||
type: string
|
||
type: object
|
||
document.DocumentType:
|
||
enum:
|
||
- workspace
|
||
- dashboard
|
||
- cloud
|
||
- bim
|
||
- bimv2
|
||
- bimv3
|
||
- project
|
||
- folder
|
||
- root
|
||
- surface
|
||
- pdf
|
||
- xlsx
|
||
- orthophoto
|
||
- dem
|
||
- dxf
|
||
- ksg
|
||
- docx
|
||
- dwg
|
||
- jpeg
|
||
- png
|
||
- gif
|
||
- heic
|
||
- docx_template
|
||
- docx_maf
|
||
- link
|
||
- doc
|
||
- rtf
|
||
- xls
|
||
- other_files
|
||
- deviation
|
||
- abap
|
||
- c2c
|
||
- c2s
|
||
- bim2bim
|
||
- glb
|
||
- gaussian_splats
|
||
type: string
|
||
x-enum-varnames:
|
||
- TypeWorkspace
|
||
- TypeDashboard
|
||
- TypeCloudLas
|
||
- TypeBIM
|
||
- TypeBIMV2
|
||
- TypeBIMV3
|
||
- TypeProject
|
||
- TypeFolder
|
||
- TypeRoot
|
||
- TypeSurface
|
||
- TypePDF
|
||
- TypeXlsx
|
||
- TypeOrthophoto
|
||
- TypeDem
|
||
- TypeDxf
|
||
- TypeKSG
|
||
- TypeDocx
|
||
- TypeDWG
|
||
- TypeJpeg
|
||
- TypePng
|
||
- TypeGif
|
||
- TypeHeic
|
||
- TypeDocxTemplate
|
||
- TypeDocxMAF
|
||
- TypeLink
|
||
- TypeDoc
|
||
- TypeRtf
|
||
- TypeXls
|
||
- TypeOtherFiles
|
||
- TypeDeviation
|
||
- TypeAbap
|
||
- TypeC2c
|
||
- TypeC2s
|
||
- TypeBim2Bim
|
||
- TypeGlb
|
||
- TypeGaussianSplats
|
||
document.FileTypeCount:
|
||
properties:
|
||
count:
|
||
type: integer
|
||
type:
|
||
type: string
|
||
type: object
|
||
document.FolderPropertiesOutput:
|
||
properties:
|
||
author:
|
||
$ref: '#/definitions/document.AuthorOutput'
|
||
created_at:
|
||
type: string
|
||
document_id:
|
||
type: integer
|
||
file_count:
|
||
type: integer
|
||
file_types:
|
||
items:
|
||
$ref: '#/definitions/document.FileTypeCount'
|
||
type: array
|
||
folder_count:
|
||
type: integer
|
||
size:
|
||
type: integer
|
||
type: object
|
||
document.RenameRequest:
|
||
properties:
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
required:
|
||
- name
|
||
type: object
|
||
document.RenameResponse:
|
||
properties:
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
type: object
|
||
document.ResolveRelativePathRequest:
|
||
properties:
|
||
document_ids:
|
||
items:
|
||
type: integer
|
||
minItems: 1
|
||
type: array
|
||
relative_path:
|
||
type: string
|
||
should_folder_be_created:
|
||
type: boolean
|
||
user_service_accounts:
|
||
items:
|
||
type: string
|
||
minItems: 1
|
||
type: array
|
||
required:
|
||
- document_ids
|
||
- user_service_accounts
|
||
type: object
|
||
document.ResolveRelativePathResponse:
|
||
properties:
|
||
result:
|
||
items:
|
||
$ref: '#/definitions/document.ResolvedDocumentPathResponse'
|
||
type: array
|
||
type: object
|
||
document.ResolvedDocumentPathResponse:
|
||
properties:
|
||
document_id:
|
||
type: integer
|
||
path:
|
||
type: string
|
||
type: object
|
||
document.SuperCreateBundleRequest:
|
||
properties:
|
||
date:
|
||
type: string
|
||
keys:
|
||
items:
|
||
$ref: '#/definitions/document.SuperCreateKeyRequest'
|
||
minItems: 1
|
||
type: array
|
||
type:
|
||
type: string
|
||
required:
|
||
- keys
|
||
- type
|
||
type: object
|
||
document.SuperCreateKeyRequest:
|
||
properties:
|
||
key:
|
||
type: string
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
type:
|
||
enum:
|
||
- folder
|
||
- file
|
||
type: string
|
||
required:
|
||
- key
|
||
- name
|
||
- type
|
||
type: object
|
||
document.SuperCreateRequest:
|
||
properties:
|
||
author_id:
|
||
type: integer
|
||
bundles:
|
||
items:
|
||
$ref: '#/definitions/document.SuperCreateBundleRequest'
|
||
minItems: 1
|
||
type: array
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
parent_doc_id:
|
||
type: integer
|
||
type:
|
||
type: string
|
||
required:
|
||
- author_id
|
||
- bundles
|
||
- name
|
||
- parent_doc_id
|
||
- type
|
||
type: object
|
||
document.SuperCreateResponse:
|
||
properties:
|
||
bundles:
|
||
items:
|
||
$ref: '#/definitions/document.CreatedBundleResponse'
|
||
type: array
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
type:
|
||
type: string
|
||
workspace_id:
|
||
type: string
|
||
type: object
|
||
document.TreeNodeOutput:
|
||
properties:
|
||
has_children:
|
||
type: boolean
|
||
id:
|
||
type: integer
|
||
is_folder:
|
||
type: boolean
|
||
name:
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
path:
|
||
type: string
|
||
type:
|
||
type: string
|
||
type: object
|
||
document.TreeOutput:
|
||
properties:
|
||
documents:
|
||
items:
|
||
$ref: '#/definitions/document.TreeNodeOutput'
|
||
type: array
|
||
type: object
|
||
document.UpdatePathRequest:
|
||
properties:
|
||
parent_id:
|
||
type: integer
|
||
required:
|
||
- parent_id
|
||
type: object
|
||
document.UpdatePathResponse:
|
||
properties:
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
path:
|
||
type: string
|
||
type: object
|
||
link.CreateOutput:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
target_document_id:
|
||
type: integer
|
||
type:
|
||
$ref: '#/definitions/document.DocumentType'
|
||
type: object
|
||
link.CreateRequest:
|
||
properties:
|
||
disk_id:
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
target_document_id:
|
||
type: integer
|
||
required:
|
||
- disk_id
|
||
- parent_id
|
||
- target_document_id
|
||
type: object
|
||
mark.deleteMarksRequest:
|
||
properties:
|
||
qr_ids:
|
||
items:
|
||
type: string
|
||
type: array
|
||
signature_ids:
|
||
items:
|
||
type: string
|
||
type: array
|
||
stamp_ids:
|
||
items:
|
||
type: string
|
||
type: array
|
||
type: object
|
||
mark.listMarksMarkResponse:
|
||
properties:
|
||
id:
|
||
type: string
|
||
pages:
|
||
items:
|
||
type: integer
|
||
type: array
|
||
timestamp:
|
||
type: string
|
||
x_coordinate:
|
||
type: integer
|
||
y_coordinate:
|
||
type: integer
|
||
type: object
|
||
mark.listMarksQRsResponse:
|
||
properties:
|
||
is_canceled:
|
||
type: boolean
|
||
mark:
|
||
$ref: '#/definitions/mark.listMarksMarkResponse'
|
||
type: object
|
||
mark.listMarksResponse:
|
||
properties:
|
||
qrs:
|
||
items:
|
||
$ref: '#/definitions/mark.listMarksQRsResponse'
|
||
type: array
|
||
signatures:
|
||
items:
|
||
$ref: '#/definitions/mark.listMarksSignaturesResponse'
|
||
type: array
|
||
stamps:
|
||
items:
|
||
$ref: '#/definitions/mark.listMarksStampsResponse'
|
||
type: array
|
||
type: object
|
||
mark.listMarksSignaturesResponse:
|
||
properties:
|
||
company_name:
|
||
type: string
|
||
header:
|
||
type: string
|
||
mark:
|
||
$ref: '#/definitions/mark.listMarksMarkResponse'
|
||
owner:
|
||
type: string
|
||
thumbprint:
|
||
type: string
|
||
user_full_name:
|
||
type: string
|
||
valid_from:
|
||
type: string
|
||
valid_to:
|
||
type: string
|
||
type: object
|
||
mark.listMarksStampsResponse:
|
||
properties:
|
||
company_name:
|
||
type: string
|
||
header:
|
||
type: string
|
||
mark:
|
||
$ref: '#/definitions/mark.listMarksMarkResponse'
|
||
role_name:
|
||
type: string
|
||
user_full_name:
|
||
type: string
|
||
type: object
|
||
move.ItemStatusResponse:
|
||
properties:
|
||
action:
|
||
type: string
|
||
document_id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
path:
|
||
type: string
|
||
reason:
|
||
type: string
|
||
status:
|
||
type: string
|
||
target_document_id:
|
||
description: Созданный или целевой документ копирования.
|
||
type: integer
|
||
type: object
|
||
move.MoveBundlesRequest:
|
||
properties:
|
||
bundle_ids:
|
||
items:
|
||
type: string
|
||
type: array
|
||
skip_copied_guard:
|
||
description: |-
|
||
Разрешить объединение версий, у которых есть копии на согласовании.
|
||
Завершение активного согласования может ссылаться на уже удалённый исходный документ.
|
||
type: boolean
|
||
type: object
|
||
move.MoveRequest:
|
||
properties:
|
||
items:
|
||
items:
|
||
$ref: '#/definitions/move.MoveRequestItem'
|
||
type: array
|
||
skip_copied_guard:
|
||
description: |-
|
||
Разрешить объединение версий, у которых есть копии на согласовании.
|
||
Завершение активного согласования может ссылаться на уже удалённый исходный документ.
|
||
type: boolean
|
||
to_parent_document_id:
|
||
type: integer
|
||
type: object
|
||
move.MoveRequestItem:
|
||
properties:
|
||
action:
|
||
description: 'Action: reparent (default) | as_copy | union | skip.'
|
||
type: string
|
||
document_id:
|
||
type: integer
|
||
new_document_name:
|
||
description: |-
|
||
NewDocumentName — опциональное переименование в рамках переноса (например,
|
||
когда целевая папка диктует шаблон наименования). reparent: документ
|
||
переносится под новым именем, конфликт в назначении проверяется по
|
||
финальному имени (новому, если задано, иначе текущему). union: пара для
|
||
объединения ищется по старому имени источника, объединение происходит под
|
||
ним, затем целевой документ переименовывается — новое имя должно
|
||
быть свободно (иначе 409). as_copy: новое имя служит базой для суффикса
|
||
« copy N». Переименование без смены папки — 400 (это задача /rename).
|
||
type: string
|
||
type: object
|
||
move.OperationListResponse:
|
||
properties:
|
||
operations:
|
||
items:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
type: array
|
||
type: object
|
||
move.ProgressResponse:
|
||
properties:
|
||
done:
|
||
type: integer
|
||
failed:
|
||
type: integer
|
||
in_progress:
|
||
type: integer
|
||
percent:
|
||
type: integer
|
||
skipped:
|
||
type: integer
|
||
total:
|
||
type: integer
|
||
type: object
|
||
move.RefreshDocument:
|
||
properties:
|
||
document_id:
|
||
type: integer
|
||
name:
|
||
type: string
|
||
role:
|
||
type: string
|
||
type: object
|
||
move.StartResponse:
|
||
properties:
|
||
operation_id:
|
||
type: string
|
||
type: object
|
||
move.StatusResponse:
|
||
properties:
|
||
cancel_requested:
|
||
type: boolean
|
||
created_at:
|
||
type: string
|
||
current_step:
|
||
type: string
|
||
error:
|
||
type: string
|
||
items:
|
||
items:
|
||
$ref: '#/definitions/move.ItemStatusResponse'
|
||
type: array
|
||
items_total:
|
||
description: |-
|
||
Число элементов, соответствующих фильтру; при переносе учитываются
|
||
только пропущенные элементы и ошибки.
|
||
type: integer
|
||
operation_id:
|
||
type: string
|
||
progress:
|
||
$ref: '#/definitions/move.ProgressResponse'
|
||
refresh_document_ids:
|
||
items:
|
||
$ref: '#/definitions/move.RefreshDocument'
|
||
type: array
|
||
status:
|
||
type: string
|
||
type:
|
||
type: string
|
||
updated_at:
|
||
type: string
|
||
type: object
|
||
optional.Value-string:
|
||
type: object
|
||
page.CreateRequest:
|
||
properties:
|
||
data_source:
|
||
type: string
|
||
id:
|
||
type: string
|
||
page_order:
|
||
type: integer
|
||
thumbnail:
|
||
type: string
|
||
required:
|
||
- data_source
|
||
- id
|
||
type: object
|
||
page.CreateResponse:
|
||
properties:
|
||
id:
|
||
type: string
|
||
page_order:
|
||
type: integer
|
||
thumbnail:
|
||
type: string
|
||
type: object
|
||
permission.SetRequest:
|
||
properties:
|
||
permissions:
|
||
description: 'Полный желаемый набор прав: отсутствующие права отзываются,
|
||
новые добавляются. Пустой список отзывает все прямые права получателя; унаследованные
|
||
права сохраняются.'
|
||
items:
|
||
type: string
|
||
type: array
|
||
service_account:
|
||
description: Получатель, чьи прямые права на документе нужно полностью заменить.
|
||
type: string
|
||
type: object
|
||
permissionmatrix.GrantOutput:
|
||
properties:
|
||
document_id:
|
||
type: integer
|
||
permissions:
|
||
items:
|
||
type: string
|
||
type: array
|
||
service_account:
|
||
type: string
|
||
type: object
|
||
permissionmatrix.GrantsQueryRequest:
|
||
properties:
|
||
document_ids:
|
||
items:
|
||
type: integer
|
||
minItems: 1
|
||
type: array
|
||
service_accounts:
|
||
items:
|
||
type: string
|
||
minItems: 1
|
||
type: array
|
||
required:
|
||
- document_ids
|
||
- service_accounts
|
||
type: object
|
||
permissionmatrix.GrantsQueryResponse:
|
||
properties:
|
||
grants:
|
||
items:
|
||
$ref: '#/definitions/permissionmatrix.GrantOutput'
|
||
type: array
|
||
type: object
|
||
publiclink.CreateOutput:
|
||
properties:
|
||
id:
|
||
type: string
|
||
public_link:
|
||
type: string
|
||
type: object
|
||
publiclink.CreateRequest:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
document_id:
|
||
type: integer
|
||
document_url:
|
||
type: string
|
||
expires_at:
|
||
type: string
|
||
is_auto_deletion_available:
|
||
type: boolean
|
||
version:
|
||
enum:
|
||
- latest
|
||
- specified
|
||
- latest_approved
|
||
type: string
|
||
required:
|
||
- version
|
||
type: object
|
||
publiclink.UpdateOutput:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
created_by:
|
||
type: integer
|
||
document_id:
|
||
type: integer
|
||
expires_at:
|
||
type: string
|
||
id:
|
||
type: string
|
||
is_auto_deletion_available:
|
||
type: boolean
|
||
updated_at:
|
||
type: string
|
||
version:
|
||
type: string
|
||
type: object
|
||
publiclink.UpdateRequest:
|
||
properties:
|
||
bundle_id:
|
||
description: Идентификатор выбранной версии; null очищает значение. Для version=specified
|
||
у ссылки должна быть выбрана версия.
|
||
format: uuid
|
||
type: string
|
||
x-nullable: true
|
||
expires_at:
|
||
description: Срок действия ссылки; null делает ссылку бессрочной.
|
||
format: date-time
|
||
type: string
|
||
x-nullable: true
|
||
is_auto_deletion_available:
|
||
description: Разрешить автоматическое удаление; null равнозначен false.
|
||
type: boolean
|
||
x-nullable: true
|
||
version:
|
||
description: Выбор версии; отсутствие поля сохраняет текущее значение.
|
||
enum:
|
||
- latest
|
||
- specified
|
||
- latest_approved
|
||
type: string
|
||
type: object
|
||
s32d.CheckConflictsRequest:
|
||
properties:
|
||
disk_id:
|
||
type: string
|
||
items:
|
||
items:
|
||
$ref: '#/definitions/s32d.ConflictCheckItem'
|
||
minItems: 1
|
||
type: array
|
||
required:
|
||
- disk_id
|
||
- items
|
||
type: object
|
||
s32d.CheckConflictsResponse:
|
||
properties:
|
||
conflicts:
|
||
items:
|
||
$ref: '#/definitions/s32d.ConflictResult'
|
||
type: array
|
||
no_conflict_count:
|
||
type: integer
|
||
type: object
|
||
s32d.ConflictCheckItem:
|
||
properties:
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
required:
|
||
- name
|
||
- parent_id
|
||
type: object
|
||
s32d.ConflictResult:
|
||
properties:
|
||
existing_document_id:
|
||
type: integer
|
||
existing_document_type:
|
||
type: string
|
||
name:
|
||
type: string
|
||
parent_id:
|
||
type: integer
|
||
type: object
|
||
s32d.CreateSessionRequest:
|
||
properties:
|
||
archive_name:
|
||
maxLength: 500
|
||
type: string
|
||
disk_id:
|
||
type: string
|
||
manifest:
|
||
$ref: '#/definitions/s32d.ManifestRequest'
|
||
required:
|
||
- archive_name
|
||
- disk_id
|
||
- manifest
|
||
type: object
|
||
s32d.CreateSessionResponse:
|
||
properties:
|
||
session_id:
|
||
type: string
|
||
type: object
|
||
s32d.InitMultipartResponse:
|
||
properties:
|
||
upload_id:
|
||
type: string
|
||
type: object
|
||
s32d.ListSessionsResponse:
|
||
properties:
|
||
items:
|
||
items:
|
||
$ref: '#/definitions/s32d.SessionListItemResponse'
|
||
type: array
|
||
total:
|
||
type: integer
|
||
type: object
|
||
s32d.ManifestAttributeRequest:
|
||
properties:
|
||
asset_id:
|
||
type: integer
|
||
asset_level_id:
|
||
type: integer
|
||
id:
|
||
type: integer
|
||
values:
|
||
items: {}
|
||
type: array
|
||
required:
|
||
- id
|
||
type: object
|
||
s32d.ManifestBundleRequest:
|
||
properties:
|
||
changelog:
|
||
$ref: '#/definitions/s32d.ManifestChangelogRequest'
|
||
comment:
|
||
type: string
|
||
keys:
|
||
items:
|
||
$ref: '#/definitions/s32d.ManifestKeyRequest'
|
||
minItems: 1
|
||
type: array
|
||
type:
|
||
type: string
|
||
required:
|
||
- keys
|
||
- type
|
||
type: object
|
||
s32d.ManifestChangelogRequest:
|
||
properties:
|
||
description:
|
||
maxLength: 1000
|
||
type: string
|
||
"no":
|
||
type: string
|
||
required:
|
||
- "no"
|
||
type: object
|
||
s32d.ManifestDocumentRequest:
|
||
properties:
|
||
attributes:
|
||
items:
|
||
$ref: '#/definitions/s32d.ManifestAttributeRequest'
|
||
type: array
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
required:
|
||
- name
|
||
type: object
|
||
s32d.ManifestItemRequest:
|
||
properties:
|
||
action:
|
||
enum:
|
||
- create
|
||
- add_bundle
|
||
type: string
|
||
bundle:
|
||
$ref: '#/definitions/s32d.ManifestBundleRequest'
|
||
document:
|
||
$ref: '#/definitions/s32d.ManifestDocumentRequest'
|
||
existing_document_id:
|
||
type: integer
|
||
parent_id:
|
||
type: integer
|
||
s32d_file_path:
|
||
type: string
|
||
required:
|
||
- action
|
||
- bundle
|
||
- parent_id
|
||
- s32d_file_path
|
||
type: object
|
||
s32d.ManifestKeyRequest:
|
||
properties:
|
||
key:
|
||
type: string
|
||
name:
|
||
maxLength: 250
|
||
type: string
|
||
type:
|
||
enum:
|
||
- folder
|
||
- file
|
||
type: string
|
||
required:
|
||
- key
|
||
- name
|
||
- type
|
||
type: object
|
||
s32d.ManifestRequest:
|
||
properties:
|
||
items:
|
||
items:
|
||
$ref: '#/definitions/s32d.ManifestItemRequest'
|
||
minItems: 1
|
||
type: array
|
||
required:
|
||
- items
|
||
type: object
|
||
s32d.ProcessSessionResponse:
|
||
properties:
|
||
session_id:
|
||
type: string
|
||
type: object
|
||
s32d.ProgressOutput:
|
||
properties:
|
||
published_files:
|
||
type: integer
|
||
total_files:
|
||
type: integer
|
||
uploaded_files:
|
||
type: integer
|
||
workflows_completed:
|
||
type: integer
|
||
type: object
|
||
s32d.SessionListItemResponse:
|
||
properties:
|
||
archive_name:
|
||
type: string
|
||
completed_at:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
current_step:
|
||
type: string
|
||
errors:
|
||
items:
|
||
type: string
|
||
type: array
|
||
progress:
|
||
$ref: '#/definitions/s32d.ProgressOutput'
|
||
session_id:
|
||
type: string
|
||
status:
|
||
type: string
|
||
type: object
|
||
s32d.SessionStatusResponse:
|
||
properties:
|
||
archive_name:
|
||
type: string
|
||
completed_at:
|
||
type: string
|
||
created_at:
|
||
type: string
|
||
current_step:
|
||
type: string
|
||
errors:
|
||
items:
|
||
type: string
|
||
type: array
|
||
progress:
|
||
$ref: '#/definitions/s32d.ProgressOutput'
|
||
session_id:
|
||
type: string
|
||
status:
|
||
type: string
|
||
type: object
|
||
s32d.UploadArchiveResponse:
|
||
properties:
|
||
archive_size:
|
||
type: integer
|
||
type: object
|
||
s32d.UploadPartResponse:
|
||
properties:
|
||
etag:
|
||
type: string
|
||
part_number:
|
||
type: integer
|
||
type: object
|
||
sizer.getLatestStatResponse:
|
||
properties:
|
||
created_at:
|
||
type: string
|
||
run_id:
|
||
type: string
|
||
stat:
|
||
items:
|
||
$ref: '#/definitions/sizer.getLatestStatResponseStat'
|
||
type: array
|
||
type: object
|
||
sizer.getLatestStatResponseStat:
|
||
properties:
|
||
count:
|
||
type: integer
|
||
total_size:
|
||
type: integer
|
||
type:
|
||
type: string
|
||
user_size:
|
||
type: integer
|
||
type: object
|
||
upload.MultipartFinishedResponse:
|
||
properties:
|
||
status:
|
||
example: completed
|
||
type: string
|
||
upload_id:
|
||
type: string
|
||
type: object
|
||
upload.StartMultipartInternalResponse:
|
||
properties:
|
||
upload_id:
|
||
type: string
|
||
upload_url:
|
||
type: string
|
||
type: object
|
||
upload.StartMultipartResponse:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
key:
|
||
example: pdf
|
||
type: string
|
||
upload_id:
|
||
type: string
|
||
upload_url:
|
||
type: string
|
||
type: object
|
||
upload.UploadPartResponse:
|
||
properties:
|
||
etag:
|
||
type: string
|
||
part_number:
|
||
type: integer
|
||
size:
|
||
type: integer
|
||
status:
|
||
example: uploaded
|
||
type: string
|
||
upload_id:
|
||
type: string
|
||
type: object
|
||
upload.UploadSingleResponse:
|
||
properties:
|
||
bundle_id:
|
||
type: string
|
||
filename:
|
||
type: string
|
||
key:
|
||
example: pdf
|
||
type: string
|
||
size:
|
||
type: integer
|
||
status:
|
||
example: uploaded
|
||
type: string
|
||
type: object
|
||
info:
|
||
contact: {}
|
||
description: API для работы с документами, версиями, файлами, правами доступа и
|
||
публичными ссылками.
|
||
title: cde-api
|
||
version: "1.0"
|
||
paths:
|
||
/app/v1/async-operations:
|
||
get:
|
||
description: Возвращает активные и недавно завершённые операции копирования
|
||
и переноса. Доступны только собственные операции пользователя.
|
||
parameters:
|
||
- description: 'Фильтр по типу: copy|move|move_bundles'
|
||
in: query
|
||
name: type
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/move.OperationListResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
summary: Получить список операций
|
||
tags:
|
||
- async-operations
|
||
/app/v1/async-operations/{id}:
|
||
get:
|
||
description: Возвращает состояние, прогресс и результаты копирования или переноса.
|
||
Доступно только создателю операции.
|
||
parameters:
|
||
- description: UUID операции
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: 'copy: размер страницы items (default 1000)'
|
||
in: query
|
||
name: items_limit
|
||
type: integer
|
||
- description: 'copy: смещение'
|
||
in: query
|
||
name: items_offset
|
||
type: integer
|
||
- description: 'copy: фильтр pending|running|done|skipped|failed'
|
||
in: query
|
||
name: items_status
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Получить состояние операции
|
||
tags:
|
||
- async-operations
|
||
/app/v1/async-operations/{id}/cancel:
|
||
post:
|
||
description: Запрашивает отмену копирования или переноса. Уже выполненные изменения
|
||
не откатываются. Если копирование достигло этапа публикации результата, возвращается
|
||
409. Доступно только создателю операции.
|
||
parameters:
|
||
- description: UUID операции
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"202":
|
||
description: Отмена запрошена
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Отменить операцию
|
||
tags:
|
||
- async-operations
|
||
/app/v1/bundles/:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт версию и возвращает параметры для загрузки её файлов. Диск
|
||
должен принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Параметры версии документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.CreateResponse'
|
||
"400":
|
||
description: Некорректное тело / диск не найден
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"422":
|
||
description: Ключи не подходят типу версии / расширение имени
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Создать версию документа
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}:
|
||
delete:
|
||
description: Мягкое удаление версии; последнюю версию документа удалить нельзя.
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Удалён
|
||
"400":
|
||
description: Не загружен / без документа / последняя версия
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Удалить бандл
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}/{key}/upload_multipart:
|
||
post:
|
||
description: Возвращает идентификатор загрузки и адрес для отправки частей в
|
||
той же версии API. Диск должен принадлежать одной из компаний пользователя,
|
||
указанных в токене.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Ключ файла версии
|
||
in: path
|
||
name: key
|
||
required: true
|
||
type: string
|
||
- description: Относительный путь файла в наборе файлов версии; только для типа
|
||
folder
|
||
in: query
|
||
name: path
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.StartMultipartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Начать загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/app/v1/bundles/{bundle_id}/{key}/upload_single:
|
||
post:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: 'Файл передаётся в теле запроса с Content-Type: application/octet-stream
|
||
и Content-Length. Формат multipart/form-data не поддерживается. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.'
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Ключ файла версии
|
||
in: path
|
||
name: key
|
||
required: true
|
||
type: string
|
||
- description: Относительный путь файла в наборе файлов версии; только для типа
|
||
folder
|
||
in: query
|
||
name: path
|
||
type: string
|
||
- description: Имя файла
|
||
in: query
|
||
name: filename
|
||
type: string
|
||
- description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
|
||
in: body
|
||
name: content
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- description: Размер тела запроса в байтах
|
||
format: int64
|
||
in: header
|
||
minimum: 1
|
||
name: Content-Length
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.UploadSingleResponse'
|
||
"400":
|
||
description: Форма вместо raw / нет Content-Length
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить файл версии одним запросом
|
||
tags:
|
||
- uploads
|
||
/app/v1/bundles/{bundle_id}/bindings:
|
||
get:
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/binding.GetBindingsOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Связи s32d бандла
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}/cancel_qr:
|
||
post:
|
||
description: Аннулирует QR-код указанной версии. Требуется право нанесения QR-кода
|
||
или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Аннулирован
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Аннулировать QR-код версии документа
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}/changelog/:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Обновляет номер и описание изменений. Отсутствующее description
|
||
сохраняется, null очищает его. Требуется право редактирования или администрирования
|
||
документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Изменения
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/changelog.UpdateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Обновлённое описание изменений
|
||
schema:
|
||
$ref: '#/definitions/changelog.UpdateResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"422":
|
||
description: Unprocessable Entity
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Изменить описание изменений версии
|
||
tags:
|
||
- changelogs
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Сохраняет номер и описание изменений версии. Повторное создание
|
||
возвращает 409. Требуется право редактирования или администрирования документа;
|
||
также доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Номер и описание
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/changelog.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Описание изменений версии
|
||
schema:
|
||
$ref: '#/definitions/changelog.Response'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
"422":
|
||
description: Unprocessable Entity
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Добавить описание изменений версии
|
||
tags:
|
||
- changelogs
|
||
/app/v1/bundles/{bundle_id}/comment:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: 'Tri-state тело: строка — установить, null — очистить, отсутствие
|
||
поля — 400.'
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Комментарий
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.UpdateCommentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Обновлён
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Изменить комментарий бандла
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}/mark:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт новую промаркированную версию по чистому бандлу и определениям
|
||
марок.
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Определения марок
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.markBundleRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.markBundleResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Нанести марки (QR/штамп/подпись)
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}/presign:
|
||
get:
|
||
description: Возвращает хеш файла версии для формирования электронной подписи.
|
||
Требуется право электронной подписи или администрирования документа; также
|
||
доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор формата UUID версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.PresignResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Подготовить версию к электронной подписи
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}/regenerate_marks:
|
||
put:
|
||
description: Замещает текущую печатную версию на новую, сгенерированную по состоянию
|
||
из базы данных
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
responses:
|
||
"204":
|
||
description: No Content
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Перегенерация печатной версии документа
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}/restart:
|
||
post:
|
||
description: Переигрывает упавшую задачу workflow либо стартует пайплайн, если
|
||
workflow ещё нет.
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.RestartResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Уже выполняется (CDE-0011) / завершена (CDE-0012) / нечего
|
||
перезапускать (CDE-0013)
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Перезапустить обработку
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/{bundle_id}/upload_finish:
|
||
post:
|
||
description: Подтверждает завершение загрузки всех файлов версии. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.CompleteUploadResponse'
|
||
"400":
|
||
description: Некорректный bundle_id / контент не залит
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Версия не найдена
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку версии документа
|
||
tags:
|
||
- bundles
|
||
/app/v1/bundles/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Создаёт новый документ на основе выбранной версии. Возвращает идентификатор операции; Prefer: wait заголовок позволяет дождаться результата в течение выбранного количества секунд в том же запросе, вместо того, чтобы отслеживать статус через API асинхронных операций. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.NewDocumentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать версию в новый документ
|
||
tags:
|
||
- copy
|
||
/app/v1/bundles/copy-to-document:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Добавляет копию версии в другой документ. Копирование BIM-версий этим способом не поддерживается. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата в том же запросе, если операция не успела завершиться за это время, то возвращает статус создания асинхронной операции, а не ее результат. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.ToDocumentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать версию в существующий документ
|
||
tags:
|
||
- copy
|
||
/app/v1/dashboards:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.CreateDashboardRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.CreateDashboardResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Создать дашборд-документ
|
||
tags:
|
||
- documents
|
||
/app/v1/disks:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Создаёт диск компании: имя и бакет выводятся из компании, создаётся
|
||
S3-бакет и корневой документ. Доступно только суперюзеру. Ответ упрощённый.'
|
||
parameters:
|
||
- description: Параметры диска
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/disk.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/disk.CreateInternalResponse'
|
||
"400":
|
||
description: Компания/админы не найдены
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Требуются права суперюзера
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Бакет уже существует
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
"422":
|
||
description: Unprocessable Entity
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
"502":
|
||
description: Каталог пользователей недоступен
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError502'
|
||
summary: Создать диск
|
||
tags:
|
||
- disks
|
||
/app/v1/disks/{disk_id}/documents/tree:
|
||
get:
|
||
description: 'Минимальная проекция дерева с видимостью запрашивающего. parent_id
|
||
— дети узла (по умолчанию корень диска); child_id — deep-link: цепочка от
|
||
корня до узла и дети каждого узла цепочки. Параметры взаимоисключающие.'
|
||
parameters:
|
||
- description: ID диска (UUID)
|
||
in: path
|
||
name: disk_id
|
||
required: true
|
||
type: string
|
||
- description: Узел, детей которого вернуть
|
||
in: query
|
||
name: parent_id
|
||
type: integer
|
||
- description: Deep-link до узла
|
||
in: query
|
||
name: child_id
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.TreeOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Дерево документации с минимальным набором данных
|
||
tags:
|
||
- documents
|
||
/app/v1/disks/{disk_id}/permission-matrix/grants:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Прямые permission-строки запрошенных сервисных аккаунтов на запрошенных
|
||
документах. Доступ: администратор диска или права админа на корне диска. Удалённые,
|
||
неопубликованные и принадлежащие другому диску документы исключаются. Лимиты:
|
||
≤100 SA, ≤1000 id, произведение ≤50000.'
|
||
parameters:
|
||
- description: ID диска (UUID)
|
||
in: path
|
||
name: disk_id
|
||
required: true
|
||
type: string
|
||
- description: Прямоугольник запроса
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/permissionmatrix.GrantsQueryRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/permissionmatrix.GrantsQueryResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Гранты матрицы прав (прямоугольник ids × SA)
|
||
tags:
|
||
- permission-matrix
|
||
/app/v1/documents/:
|
||
delete:
|
||
description: ID через запятую в query; недоступные попадают в skipped_ids.
|
||
parameters:
|
||
- description: ID через запятую
|
||
in: query
|
||
name: document_ids
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.BulkDeleteResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
summary: Массовое удаление
|
||
tags:
|
||
- documents
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Для проекта требуется право администрирования родительской папки;
|
||
для папки — записи или администрирования; для документа — загрузки, записи
|
||
или администрирования. Также доступно администратору диска. Диск должен принадлежать
|
||
одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Параметры документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.CreateResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Родитель не найден
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Имя занято
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Создать документ, папку или проект
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/{document_id}:
|
||
delete:
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Удалён
|
||
"400":
|
||
description: Корень диска удалить нельзя
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Удалить документ
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/{document_id}/add_bundle:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Привязывает загруженную версию к документу. Требуется право загрузки,
|
||
записи или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Идентификатор версии документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.AddBundleRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.AddBundleResponse'
|
||
"400":
|
||
description: Версия уже привязана к документу или ещё не загружена
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Добавить версию в документ
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/{document_id}/attributes/:
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 'Заменяет атрибуты документа полным набором из attributes. Новые
|
||
атрибуты добавляются, значения существующих обновляются, отсутствующие в запросе
|
||
атрибуты удаляются из активного набора. Атрибуты с пустым списком values также
|
||
удаляются из активного набора. Передавайте весь желаемый набор атрибутов,
|
||
а не только изменения. Пустой список attributes: [] очищает все атрибуты документа.
|
||
Требуется право редактирования или администрирования документа; также доступно
|
||
администратору соответствующего диска.'
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Полный желаемый набор атрибутов; пустой список очищает все атрибуты
|
||
документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/attribute.ReplaceRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Набор атрибутов документа полностью заменён
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"422":
|
||
description: Unprocessable Entity
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Полностью заменить набор атрибутов документа
|
||
tags:
|
||
- attributes
|
||
/app/v1/documents/{document_id}/move_bundles:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Переносит выбранные версии в целевой документ; исходные документы без версий удаляются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: ID целевого документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Идентификаторы версий документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/move.MoveBundlesRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/move.StartResponse'
|
||
"400":
|
||
description: Разные документы-источники / не загружен / гейт обработки
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Перенести версии в другой документ
|
||
tags:
|
||
- move
|
||
/app/v1/documents/{document_id}/permissions/:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Заменяет права, назначенные непосредственно на документе указанному
|
||
в service_account получателю, полным набором из permissions. Новые права добавляются,
|
||
отсутствующие в переданном списке отзываются, совпадающие сохраняются. Передавайте
|
||
весь желаемый набор прав, а не только изменения. Пустой список permissions:
|
||
[] отзывает все прямые права этого получателя на документе. Права других получателей
|
||
и права, унаследованные от родительских папок, не изменяются; поэтому отзыв
|
||
прямых прав не обязательно лишает получателя доступа. Требуется право управления
|
||
доступом или администрирования документа; также доступно администратору диска.
|
||
При управлении доступом без прав администратора можно добавлять и отзывать
|
||
только те права, которыми обладает пользователь.'
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Получатель и полный желаемый набор прав; пустой список отзывает
|
||
все его прямые права на документе
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/permission.SetRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Прямые права получателя заменены переданным набором
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Полностью заменить набор прав на документ для указанного получателя
|
||
tags:
|
||
- permissions
|
||
/app/v1/documents/{document_id}/properties:
|
||
get:
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.FolderPropertiesOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Свойства документа
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/{document_id}/rename:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Изменяет имя документа или папки. Требуется право редактирования
|
||
или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Новое имя
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.RenameRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.RenameResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Имя занято в папке
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Переименовать документ или папку
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/{document_id}/update-path:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Изменяет родительскую папку. Требуется право записи или администрирования
|
||
исходного документа и право редактирования или администрирования папки назначения;
|
||
администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Новый родитель
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.UpdatePathRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.UpdatePathResponse'
|
||
"400":
|
||
description: Между дисками/проектами / в своё поддерево
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Переместить документ или папку
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/{document_id}/workspace:
|
||
post:
|
||
description: Создаёт workspace, если отсутствует связь рабочей области и документа
|
||
в СОД. Требует storage.edit или storage.admin на документе.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.CreateDocumentWorkspaceResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
"502":
|
||
description: Bad Gateway
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError502'
|
||
summary: Создать рабочую область документа
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/{id}/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Копирует документ либо папку с содержимым. exclude исключает выбранные ветки. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: ID корня
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.SubtreeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать документ или дерево папок
|
||
tags:
|
||
- copy
|
||
/app/v1/documents/bin:
|
||
delete:
|
||
parameters:
|
||
- description: Корневая папка
|
||
in: query
|
||
name: parent_id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Очищено
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
summary: Очистить корзину
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/bin/restore:
|
||
patch:
|
||
parameters:
|
||
- description: Корневая папка
|
||
in: query
|
||
name: parent_id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Восстановлено
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
summary: Восстановить из корзины
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/check-conflicts:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Проверяет наличие одноимённых документов в указанных папках. Требуется
|
||
авторизация; отдельная проверка прав на документы не выполняется.
|
||
parameters:
|
||
- description: Кандидаты
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/s32d.CheckConflictsRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.CheckConflictsResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
summary: Проверить конфликты имён
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Копирует выбранные документы и папки с содержимым. Вложенные выбранные элементы копируются вместе с родительскими. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.SelectionRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать выбранные документы и папки
|
||
tags:
|
||
- copy
|
||
/app/v1/documents/copy_structure:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт копию исходной папки и её вложенных папок в месте назначения
|
||
без файлов. При copy_permissions=true также копирует действующие права доступа,
|
||
назначенные непосредственно каждой исходной папке. Унаследованные от родителей
|
||
источника права и права администраторов диска не копируются. По умолчанию
|
||
копирование прав выключено. Требуется право администрирования источника и
|
||
назначения; администратор соответствующего диска имеет доступ к объектам этого
|
||
диска.
|
||
parameters:
|
||
- description: Источник и цель
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.CopyStructureRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Скопировано
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
summary: Скопировать структуру папок
|
||
tags:
|
||
- documents
|
||
/app/v1/documents/move:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Перемещает выбранные элементы, переименовывает или объединяет одноимённые документы согласно запросу. При объединении версии переходят в целевой документ, а исходный документ удаляется. Перенос между дисками или проектами запрещён. Требуется право записи или администрирования источника; право записи, редактирования или администрирования назначения. Для объединения требуется право записи или администрирования целевого документа. Администратор соответствующего диска имеет доступ к объектам этого диска. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Манифест
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/move.MoveRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/move.StartResponse'
|
||
"400":
|
||
description: Смешение файлов и папок / между дисками/проектами / невалидный
|
||
union
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликты имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Переместить документы и папки
|
||
tags:
|
||
- move
|
||
/app/v1/documents/public_link/:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт ссылку на последнюю, указанную или последнюю согласованную
|
||
версию документа. Можно задать срок действия. Требуется право создания публичных
|
||
ссылок или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/publiclink.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/publiclink.CreateOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Создать публичную ссылку
|
||
tags:
|
||
- public-links
|
||
/app/v1/documents/public_link/{id}:
|
||
delete:
|
||
parameters:
|
||
- description: ID ссылки
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Удалена
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Удалить публичную ссылку
|
||
tags:
|
||
- public-links
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Меняет параметры ссылки. Отсутствующие поля сохраняются; expires_at=null
|
||
отменяет ограничение срока действия. Требуется право создания публичных ссылок
|
||
или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID ссылки
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Изменения
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/publiclink.UpdateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/publiclink.UpdateOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Изменить публичную ссылку
|
||
tags:
|
||
- public-links
|
||
/app/v1/documents/update-path:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Изменяет родительскую папку выбранных документов. Документы, для
|
||
которых недостаточно прав, пропускаются. Требуется право записи или администрирования
|
||
исходного документа и право редактирования или администрирования папки назначения;
|
||
администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
parameters:
|
||
- description: Список документов и родитель
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.BulkUpdatePathRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.BulkUpdatePathResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Переместить несколько документов
|
||
tags:
|
||
- documents
|
||
/app/v1/links/:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт ссылку на существующий документ в выбранной папке. Требуется
|
||
право записи или администрирования и на документ, и на папку назначения; администратор
|
||
соответствующего диска имеет доступ к объектам этого диска.
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/link.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/link.CreateOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Имя занято / линк уже есть
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
"422":
|
||
description: Цель — линк или папка
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Создать ссылку на документ в папке
|
||
tags:
|
||
- links
|
||
/app/v1/marks/:
|
||
get:
|
||
description: Возвращает последнюю статистику по занимаемому пространству компанией
|
||
если она есть
|
||
parameters:
|
||
- description: Идентификатор компании
|
||
in: query
|
||
name: company_id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/sizer.getLatestStatResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Последняя статистика компании по занимаемому пространству если она
|
||
есть
|
||
tags:
|
||
- sizer
|
||
/app/v1/marks/delete:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Удаляет указанные маркировки если они принадлежат одной версии
|
||
документа
|
||
parameters:
|
||
- description: Параметры удаления
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/mark.deleteMarksRequest'
|
||
responses:
|
||
"204":
|
||
description: No Content
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
summary: Удалить маркировки
|
||
tags:
|
||
- marks
|
||
/app/v1/s32d/sessions/:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.ListSessionsResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Список S32D-сессий
|
||
tags:
|
||
- s32d
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт сессию конвертации архива страниц в документы.
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/s32d.CreateSessionRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.CreateSessionResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Создать S32D-сессию
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}:
|
||
delete:
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Удалена
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Удалить S32D-сессию
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}/archive:
|
||
put:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: Архив сырым телом (application/octet-stream).
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.UploadArchiveResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить архив сессии
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}/archive/multipart:
|
||
post:
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.InitMultipartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Начать multipart-загрузку архива
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}/archive/multipart/{upload_id}/complete:
|
||
post:
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Завершена
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить multipart-загрузку архива
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}/archive/multipart/{upload_id}/parts/{part_number}:
|
||
put:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: Часть сырым телом.
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
- description: Номер части
|
||
in: path
|
||
name: part_number
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.UploadPartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить часть архива
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}/cancel:
|
||
post:
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Отменена
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Отменить S32D-сессию
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}/process:
|
||
post:
|
||
description: Стартует BPMN-процесс разбора загруженного архива.
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.ProcessSessionResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Запустить обработку сессии
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}/retry:
|
||
post:
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Перезапущена
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Повторить упавшую сессию
|
||
tags:
|
||
- s32d
|
||
/app/v1/s32d/sessions/{session_id}/status:
|
||
get:
|
||
parameters:
|
||
- description: UUID сессии
|
||
in: path
|
||
name: session_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.SessionStatusResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Статус S32D-сессии
|
||
tags:
|
||
- s32d
|
||
/app/v1/uploads/multipart/{upload_id}/{part_number}:
|
||
post:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: 'Часть файла передаётся в теле запроса с Content-Type: application/octet-stream
|
||
и Content-Length. Размер каждой части, кроме последней, должен быть не менее
|
||
5 МиБ. Диск должен принадлежать одной из компаний пользователя, указанных
|
||
в токене.'
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
- description: Номер части (с 1)
|
||
in: path
|
||
name: part_number
|
||
required: true
|
||
type: integer
|
||
- description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
|
||
in: body
|
||
name: content
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- description: Размер тела запроса в байтах
|
||
format: int64
|
||
in: header
|
||
minimum: 1
|
||
name: Content-Length
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.UploadPartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить часть файла
|
||
tags:
|
||
- uploads
|
||
/app/v1/uploads/multipart/{upload_id}/abort:
|
||
post:
|
||
description: Отменяет незавершённую загрузку и удаляет её части. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.MultipartFinishedResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Отменить загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/app/v1/uploads/multipart/{upload_id}/complete:
|
||
post:
|
||
description: Собирает загруженные части в файл версии документа. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.MultipartFinishedResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/app/v1/workspaces:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт документ типа workspace и воркспейс во внешнем сервисе
|
||
для набора документов.
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.CreateWorkspaceNodeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.CreateWorkspaceNodeResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Создать workspace-документ
|
||
tags:
|
||
- documents
|
||
/external/v1/async-operations:
|
||
get:
|
||
description: Возвращает активные и недавно завершённые операции копирования
|
||
и переноса. Доступны только собственные операции пользователя.
|
||
parameters:
|
||
- description: 'Фильтр по типу: copy|move|move_bundles'
|
||
in: query
|
||
name: type
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/move.OperationListResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
summary: Получить список операций
|
||
tags:
|
||
- async-operations
|
||
/external/v1/async-operations/{id}:
|
||
get:
|
||
description: Возвращает состояние, прогресс и результаты копирования или переноса.
|
||
Доступно только создателю операции.
|
||
parameters:
|
||
- description: UUID операции
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: 'copy: размер страницы items (default 1000)'
|
||
in: query
|
||
name: items_limit
|
||
type: integer
|
||
- description: 'copy: смещение'
|
||
in: query
|
||
name: items_offset
|
||
type: integer
|
||
- description: 'copy: фильтр pending|running|done|skipped|failed'
|
||
in: query
|
||
name: items_status
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Получить состояние операции
|
||
tags:
|
||
- async-operations
|
||
/external/v1/async-operations/{id}/cancel:
|
||
post:
|
||
description: Запрашивает отмену копирования или переноса. Уже выполненные изменения
|
||
не откатываются. Если копирование достигло этапа публикации результата, возвращается
|
||
409. Доступно только создателю операции.
|
||
parameters:
|
||
- description: UUID операции
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"202":
|
||
description: Отмена запрошена
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Отменить операцию
|
||
tags:
|
||
- async-operations
|
||
/external/v1/bundles/:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт версию и возвращает параметры для загрузки её файлов. Диск
|
||
должен принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Параметры версии документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.CreateResponse'
|
||
"400":
|
||
description: Некорректное тело / диск не найден
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"422":
|
||
description: Ключи не подходят типу версии / расширение имени
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Создать версию документа
|
||
tags:
|
||
- bundles
|
||
/external/v1/bundles/{bundle_id}/{key}/upload_multipart:
|
||
post:
|
||
description: Возвращает идентификатор загрузки и адрес для отправки частей в
|
||
той же версии API. Диск должен принадлежать одной из компаний пользователя,
|
||
указанных в токене.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Ключ файла версии
|
||
in: path
|
||
name: key
|
||
required: true
|
||
type: string
|
||
- description: Относительный путь файла в наборе файлов версии; только для типа
|
||
folder
|
||
in: query
|
||
name: path
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.StartMultipartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Начать загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/external/v1/bundles/{bundle_id}/{key}/upload_single:
|
||
post:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: 'Файл передаётся в теле запроса с Content-Type: application/octet-stream
|
||
и Content-Length. Формат multipart/form-data не поддерживается. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.'
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Ключ файла версии
|
||
in: path
|
||
name: key
|
||
required: true
|
||
type: string
|
||
- description: Относительный путь файла в наборе файлов версии; только для типа
|
||
folder
|
||
in: query
|
||
name: path
|
||
type: string
|
||
- description: Имя файла
|
||
in: query
|
||
name: filename
|
||
type: string
|
||
- description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
|
||
in: body
|
||
name: content
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- description: Размер тела запроса в байтах
|
||
format: int64
|
||
in: header
|
||
minimum: 1
|
||
name: Content-Length
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.UploadSingleResponse'
|
||
"400":
|
||
description: Форма вместо raw / нет Content-Length
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить файл версии одним запросом
|
||
tags:
|
||
- uploads
|
||
/external/v1/bundles/{bundle_id}/author:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Назначает нового автора указанной версии документа. Требуется право
|
||
редактирования или администрирования документа; также доступно администратору
|
||
диска.
|
||
parameters:
|
||
- description: Идентификатор UUID формата версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Новый автор
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.ChangeAuthorRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: No Content
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Сменить автора версии документа
|
||
tags:
|
||
- bundles
|
||
/external/v1/bundles/{bundle_id}/mark:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Наносит маркировку на существующую или новую версию документа.
|
||
Достаточно права на один из запрошенных видов маркировки либо права администрирования
|
||
документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор формата UUID версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Определения марок
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.markExternalBundleRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.markBundleResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Нанести QR-код, штамп или электронную подпись
|
||
tags:
|
||
- bundles
|
||
/external/v1/bundles/{bundle_id}/presign:
|
||
get:
|
||
description: Возвращает хеш файла версии для формирования электронной подписи.
|
||
Требуется право электронной подписи или администрирования документа; также
|
||
доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор формата UUID версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.PresignResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Подготовить версию к электронной подписи
|
||
tags:
|
||
- bundles
|
||
/external/v1/bundles/{bundle_id}/upload_finish:
|
||
post:
|
||
description: Подтверждает завершение загрузки всех файлов версии. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.CompleteUploadResponse'
|
||
"400":
|
||
description: Некорректный bundle_id / контент не залит
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Версия не найдена
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку версии документа
|
||
tags:
|
||
- bundles
|
||
/external/v1/bundles/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Создаёт новый документ на основе выбранной версии. Возвращает идентификатор операции; Prefer: wait заголовок позволяет дождаться результата в течение выбранного количества секунд в том же запросе, вместо того, чтобы отслеживать статус через API асинхронных операций. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.NewDocumentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать версию в новый документ
|
||
tags:
|
||
- copy
|
||
/external/v1/bundles/copy-to-document:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Добавляет копию версии в другой документ. Копирование BIM-версий этим способом не поддерживается. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата в том же запросе, если операция не успела завершиться за это время, то возвращает статус создания асинхронной операции, а не ее результат. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.ToDocumentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать версию в существующий документ
|
||
tags:
|
||
- copy
|
||
/external/v1/documents/:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Для проекта требуется право администрирования родительской папки;
|
||
для папки — записи или администрирования; для документа — загрузки, записи
|
||
или администрирования. Также доступно администратору диска. Диск должен принадлежать
|
||
одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Параметры документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.CreateResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Родитель не найден
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Имя занято
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Создать документ, папку или проект
|
||
tags:
|
||
- documents
|
||
/external/v1/documents/{document_id}/add_bundle:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Привязывает загруженную версию к документу. Требуется право загрузки,
|
||
записи или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Идентификатор версии документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.AddBundleRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.AddBundleResponse'
|
||
"400":
|
||
description: Версия уже привязана к документу или ещё не загружена
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Добавить версию в документ
|
||
tags:
|
||
- documents
|
||
/external/v1/documents/{document_id}/author:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Назначает нового автора документа; при include_bundles=true также
|
||
меняет автора всех его версий. Требуется право редактирования или администрирования
|
||
документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Новый автор; include_bundles=true также меняет автора всех версий
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.ChangeAuthorRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: No Content
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Сменить автора документа
|
||
tags:
|
||
- documents
|
||
/external/v1/documents/{document_id}/move_bundles:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Переносит выбранные версии в целевой документ; исходные документы без версий удаляются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: ID целевого документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Идентификаторы версий документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/move.MoveBundlesRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/move.StartResponse'
|
||
"400":
|
||
description: Разные документы-источники / не загружен / гейт обработки
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Перенести версии в другой документ
|
||
tags:
|
||
- move
|
||
/external/v1/documents/{document_id}/permissions/:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Заменяет права, назначенные непосредственно на документе указанному
|
||
в service_account получателю, полным набором из permissions. Новые права добавляются,
|
||
отсутствующие в переданном списке отзываются, совпадающие сохраняются. Передавайте
|
||
весь желаемый набор прав, а не только изменения. Пустой список permissions:
|
||
[] отзывает все прямые права этого получателя на документе. Права других получателей
|
||
и права, унаследованные от родительских папок, не изменяются; поэтому отзыв
|
||
прямых прав не обязательно лишает получателя доступа. Требуется право управления
|
||
доступом или администрирования документа; также доступно администратору диска.
|
||
При управлении доступом без прав администратора можно добавлять и отзывать
|
||
только те права, которыми обладает пользователь.'
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Получатель и полный желаемый набор прав; пустой список отзывает
|
||
все его прямые права на документе
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/permission.SetRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Прямые права получателя заменены переданным набором
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Полностью заменить набор прав на документ для указанного получателя
|
||
tags:
|
||
- permissions
|
||
/external/v1/documents/{id}/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Копирует документ либо папку с содержимым. exclude исключает выбранные ветки. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: ID корня
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.SubtreeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать документ или дерево папок
|
||
tags:
|
||
- copy
|
||
/external/v1/documents/check-conflicts:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Проверяет наличие одноимённых документов в указанных папках. Требуется
|
||
авторизация; отдельная проверка прав на документы не выполняется.
|
||
parameters:
|
||
- description: Кандидаты
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/s32d.CheckConflictsRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.CheckConflictsResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
summary: Проверить конфликты имён
|
||
tags:
|
||
- documents
|
||
/external/v1/documents/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Копирует выбранные документы и папки с содержимым. Вложенные выбранные элементы копируются вместе с родительскими. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.SelectionRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать выбранные документы и папки
|
||
tags:
|
||
- copy
|
||
/external/v1/documents/move:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Перемещает выбранные элементы, переименовывает или объединяет одноимённые документы согласно запросу. При объединении версии переходят в целевой документ, а исходный документ удаляется. Перенос между дисками или проектами запрещён. Требуется право записи или администрирования источника; право записи, редактирования или администрирования назначения. Для объединения требуется право записи или администрирования целевого документа. Администратор соответствующего диска имеет доступ к объектам этого диска. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Манифест
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/move.MoveRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/move.StartResponse'
|
||
"400":
|
||
description: Смешение файлов и папок / между дисками/проектами / невалидный
|
||
union
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликты имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Переместить документы и папки
|
||
tags:
|
||
- move
|
||
/external/v1/uploads/multipart/{upload_id}/{part_number}:
|
||
post:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: 'Часть файла передаётся в теле запроса с Content-Type: application/octet-stream
|
||
и Content-Length. Размер каждой части, кроме последней, должен быть не менее
|
||
5 МиБ. Диск должен принадлежать одной из компаний пользователя, указанных
|
||
в токене.'
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
- description: Номер части (с 1)
|
||
in: path
|
||
name: part_number
|
||
required: true
|
||
type: integer
|
||
- description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
|
||
in: body
|
||
name: content
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- description: Размер тела запроса в байтах
|
||
format: int64
|
||
in: header
|
||
minimum: 1
|
||
name: Content-Length
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.UploadPartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить часть файла
|
||
tags:
|
||
- uploads
|
||
/external/v1/uploads/multipart/{upload_id}/abort:
|
||
post:
|
||
description: Отменяет незавершённую загрузку и удаляет её части. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.MultipartFinishedResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Отменить загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/external/v1/uploads/multipart/{upload_id}/complete:
|
||
post:
|
||
description: Собирает загруженные части в файл версии документа. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.MultipartFinishedResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/external/v2/async-operations:
|
||
get:
|
||
description: Возвращает активные и недавно завершённые операции копирования
|
||
и переноса. Доступны только собственные операции пользователя.
|
||
parameters:
|
||
- description: 'Фильтр по типу: copy|move|move_bundles'
|
||
in: query
|
||
name: type
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/move.OperationListResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
summary: Получить список операций
|
||
tags:
|
||
- async-operations
|
||
/external/v2/async-operations/{id}:
|
||
get:
|
||
description: Возвращает состояние, прогресс и результаты копирования или переноса.
|
||
Доступно только создателю операции.
|
||
parameters:
|
||
- description: UUID операции
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: 'copy: размер страницы items (default 1000)'
|
||
in: query
|
||
name: items_limit
|
||
type: integer
|
||
- description: 'copy: смещение'
|
||
in: query
|
||
name: items_offset
|
||
type: integer
|
||
- description: 'copy: фильтр pending|running|done|skipped|failed'
|
||
in: query
|
||
name: items_status
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Получить состояние операции
|
||
tags:
|
||
- async-operations
|
||
/external/v2/async-operations/{id}/cancel:
|
||
post:
|
||
description: Запрашивает отмену копирования или переноса. Уже выполненные изменения
|
||
не откатываются. Если копирование достигло этапа публикации результата, возвращается
|
||
409. Доступно только создателю операции.
|
||
parameters:
|
||
- description: UUID операции
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"202":
|
||
description: Отмена запрошена
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Отменить операцию
|
||
tags:
|
||
- async-operations
|
||
/external/v2/bundles:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт версию и возвращает параметры для загрузки её файлов. Диск
|
||
должен принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Параметры версии документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.CreateResponse'
|
||
"400":
|
||
description: Некорректное тело / диск не найден
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"422":
|
||
description: Ключи не подходят типу версии / расширение имени
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Создать версию документа
|
||
tags:
|
||
- bundles
|
||
/external/v2/bundles/{bundle_id}/{key}/upload_multipart:
|
||
post:
|
||
description: Возвращает идентификатор загрузки и адрес для отправки частей в
|
||
той же версии API. Диск должен принадлежать одной из компаний пользователя,
|
||
указанных в токене.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Ключ файла версии
|
||
in: path
|
||
name: key
|
||
required: true
|
||
type: string
|
||
- description: Относительный путь файла в наборе файлов версии; только для типа
|
||
folder
|
||
in: query
|
||
name: path
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.StartMultipartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Начать загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/external/v2/bundles/{bundle_id}/{key}/upload_single:
|
||
post:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: 'Файл передаётся в теле запроса с Content-Type: application/octet-stream
|
||
и Content-Length. Формат multipart/form-data не поддерживается. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.'
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Ключ файла версии
|
||
in: path
|
||
name: key
|
||
required: true
|
||
type: string
|
||
- description: Относительный путь файла в наборе файлов версии; только для типа
|
||
folder
|
||
in: query
|
||
name: path
|
||
type: string
|
||
- description: Имя файла
|
||
in: query
|
||
name: filename
|
||
type: string
|
||
- description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
|
||
in: body
|
||
name: content
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- description: Размер тела запроса в байтах
|
||
format: int64
|
||
in: header
|
||
minimum: 1
|
||
name: Content-Length
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.UploadSingleResponse'
|
||
"400":
|
||
description: Форма вместо raw / нет Content-Length
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить файл версии одним запросом
|
||
tags:
|
||
- uploads
|
||
/external/v2/bundles/{bundle_id}/author:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Назначает нового автора указанной версии документа. Требуется право
|
||
редактирования или администрирования документа; также доступно администратору
|
||
диска.
|
||
parameters:
|
||
- description: Идентификатор UUID формата версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Новый автор
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.ChangeAuthorRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: No Content
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Сменить автора версии документа
|
||
tags:
|
||
- bundles
|
||
/external/v2/bundles/{bundle_id}/cancel_qr:
|
||
post:
|
||
description: Аннулирует QR-код указанной версии. Требуется право нанесения QR-кода
|
||
или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Аннулирован
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Аннулировать QR-код версии документа
|
||
tags:
|
||
- bundles
|
||
/external/v2/bundles/{bundle_id}/changelog:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Обновляет номер и описание изменений. Отсутствующее description
|
||
сохраняется, null очищает его. Требуется право редактирования или администрирования
|
||
документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Изменения
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/changelog.UpdateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Обновлённое описание изменений
|
||
schema:
|
||
$ref: '#/definitions/changelog.UpdateResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"422":
|
||
description: Unprocessable Entity
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Изменить описание изменений версии
|
||
tags:
|
||
- changelogs
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Сохраняет номер и описание изменений версии. Повторное создание
|
||
возвращает 409. Требуется право редактирования или администрирования документа;
|
||
также доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Номер и описание
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/changelog.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Описание изменений версии
|
||
schema:
|
||
$ref: '#/definitions/changelog.Response'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
"422":
|
||
description: Unprocessable Entity
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Добавить описание изменений версии
|
||
tags:
|
||
- changelogs
|
||
/external/v2/bundles/{bundle_id}/mark:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Наносит маркировку на существующую или новую версию документа.
|
||
Достаточно права на один из запрошенных видов маркировки либо права администрирования
|
||
документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор формата UUID версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Определения марок
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.markExternalBundleRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.markBundleResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Нанести QR-код, штамп или электронную подпись
|
||
tags:
|
||
- bundles
|
||
/external/v2/bundles/{bundle_id}/presign:
|
||
get:
|
||
description: Возвращает хеш файла версии для формирования электронной подписи.
|
||
Требуется право электронной подписи или администрирования документа; также
|
||
доступно администратору диска.
|
||
parameters:
|
||
- description: Идентификатор формата UUID версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.PresignResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Подготовить версию к электронной подписи
|
||
tags:
|
||
- bundles
|
||
/external/v2/bundles/{bundle_id}/upload_finish:
|
||
post:
|
||
description: Подтверждает завершение загрузки всех файлов версии. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Идентификатор версии документа
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.CompleteUploadResponse'
|
||
"400":
|
||
description: Некорректный bundle_id / контент не залит
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Версия не найдена
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку версии документа
|
||
tags:
|
||
- bundles
|
||
/external/v2/bundles/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Создаёт новый документ на основе выбранной версии. Возвращает идентификатор операции; Prefer: wait заголовок позволяет дождаться результата в течение выбранного количества секунд в том же запросе, вместо того, чтобы отслеживать статус через API асинхронных операций. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.NewDocumentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать версию в новый документ
|
||
tags:
|
||
- copy
|
||
/external/v2/bundles/copy-to-document:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Добавляет копию версии в другой документ. Копирование BIM-версий этим способом не поддерживается. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата в том же запросе, если операция не успела завершиться за это время, то возвращает статус создания асинхронной операции, а не ее результат. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.ToDocumentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать версию в существующий документ
|
||
tags:
|
||
- copy
|
||
/external/v2/documents:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Для проекта требуется право администрирования родительской папки;
|
||
для папки — записи или администрирования; для документа — загрузки, записи
|
||
или администрирования. Также доступно администратору диска. Диск должен принадлежать
|
||
одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: Параметры документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.CreateResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Родитель не найден
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Имя занято
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Создать документ, папку или проект
|
||
tags:
|
||
- documents
|
||
/external/v2/documents/{document_id}/add_bundle:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Привязывает загруженную версию к документу. Требуется право загрузки,
|
||
записи или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Идентификатор версии документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.AddBundleRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.AddBundleResponse'
|
||
"400":
|
||
description: Версия уже привязана к документу или ещё не загружена
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Добавить версию в документ
|
||
tags:
|
||
- documents
|
||
/external/v2/documents/{document_id}/attributes:
|
||
put:
|
||
consumes:
|
||
- application/json
|
||
description: 'Заменяет атрибуты документа полным набором из attributes. Новые
|
||
атрибуты добавляются, значения существующих обновляются, отсутствующие в запросе
|
||
атрибуты удаляются из активного набора. Атрибуты с пустым списком values также
|
||
удаляются из активного набора. Передавайте весь желаемый набор атрибутов,
|
||
а не только изменения. Пустой список attributes: [] очищает все атрибуты документа.
|
||
Требуется право редактирования или администрирования документа; также доступно
|
||
администратору соответствующего диска.'
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Полный желаемый набор атрибутов; пустой список очищает все атрибуты
|
||
документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/attribute.ReplaceRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Набор атрибутов документа полностью заменён
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"422":
|
||
description: Unprocessable Entity
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Полностью заменить набор атрибутов документа
|
||
tags:
|
||
- attributes
|
||
/external/v2/documents/{document_id}/author:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Назначает нового автора документа; при include_bundles=true также
|
||
меняет автора всех его версий. Требуется право редактирования или администрирования
|
||
документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Новый автор; include_bundles=true также меняет автора всех версий
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.ChangeAuthorRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: No Content
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Сменить автора документа
|
||
tags:
|
||
- documents
|
||
/external/v2/documents/{document_id}/move_bundles:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Переносит выбранные версии в целевой документ; исходные документы без версий удаляются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право записи или администрирования в месте назначения; также доступно администратору соответствующего диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: ID целевого документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Идентификаторы версий документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/move.MoveBundlesRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/move.StartResponse'
|
||
"400":
|
||
description: Разные документы-источники / не загружен / гейт обработки
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Перенести версии в другой документ
|
||
tags:
|
||
- move
|
||
/external/v2/documents/{document_id}/permissions:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Заменяет права, назначенные непосредственно на документе указанному
|
||
в service_account получателю, полным набором из permissions. Новые права добавляются,
|
||
отсутствующие в переданном списке отзываются, совпадающие сохраняются. Передавайте
|
||
весь желаемый набор прав, а не только изменения. Пустой список permissions:
|
||
[] отзывает все прямые права этого получателя на документе. Права других получателей
|
||
и права, унаследованные от родительских папок, не изменяются; поэтому отзыв
|
||
прямых прав не обязательно лишает получателя доступа. Требуется право управления
|
||
доступом или администрирования документа; также доступно администратору диска.
|
||
При управлении доступом без прав администратора можно добавлять и отзывать
|
||
только те права, которыми обладает пользователь.'
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Получатель и полный желаемый набор прав; пустой список отзывает
|
||
все его прямые права на документе
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/permission.SetRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Прямые права получателя заменены переданным набором
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Полностью заменить набор прав на документ для указанного получателя
|
||
tags:
|
||
- permissions
|
||
/external/v2/documents/{document_id}/rename:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Изменяет имя документа или папки. Требуется право редактирования
|
||
или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Новое имя
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.RenameRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.RenameResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Имя занято в папке
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Переименовать документ или папку
|
||
tags:
|
||
- documents
|
||
/external/v2/documents/{document_id}/update-path:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Изменяет родительскую папку. Требуется право записи или администрирования
|
||
исходного документа и право редактирования или администрирования папки назначения;
|
||
администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Новый родитель
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.UpdatePathRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.UpdatePathResponse'
|
||
"400":
|
||
description: Между дисками/проектами / в своё поддерево
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Переместить документ или папку
|
||
tags:
|
||
- documents
|
||
/external/v2/documents/{id}/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Копирует документ либо папку с содержимым. exclude исключает выбранные ветки. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: ID корня
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.SubtreeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать документ или дерево папок
|
||
tags:
|
||
- copy
|
||
/external/v2/documents/check-conflicts:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Проверяет наличие одноимённых документов в указанных папках. Требуется
|
||
авторизация; отдельная проверка прав на документы не выполняется.
|
||
parameters:
|
||
- description: Кандидаты
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/s32d.CheckConflictsRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/s32d.CheckConflictsResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
summary: Проверить конфликты имён
|
||
tags:
|
||
- documents
|
||
/external/v2/documents/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Копирует выбранные документы и папки с содержимым. Вложенные выбранные элементы копируются вместе с родительскими. options.conflict_policy определяет поведение при совпадении имени в папке назначения: skip (по умолчанию, в том числе при пустом значении) — пропустить документ или папку целиком со всем содержимым; as_copy — создать копию под первым свободным именем с суффиксом « copy», « copy 2», …, « copy 50». Например, при занятом имени «Проект» копия получит имя «Проект copy». Если все 50 вариантов заняты, элемент также пропускается. При отсутствии совпадения сохраняется исходное имя. Существующие документы и папки не перезаписываются и не объединяются. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата. Требуется право администрирования исходных документов и право записи или администрирования в папке назначения; администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.SelectionRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликт имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Скопировать выбранные документы и папки
|
||
tags:
|
||
- copy
|
||
/external/v2/documents/copy_structure:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт копию исходной папки и её вложенных папок в месте назначения
|
||
без файлов. При copy_permissions=true также копирует действующие права доступа,
|
||
назначенные непосредственно каждой исходной папке. Унаследованные от родителей
|
||
источника права и права администраторов диска не копируются. По умолчанию
|
||
копирование прав выключено. Требуется право администрирования источника и
|
||
назначения; администратор соответствующего диска имеет доступ к объектам этого
|
||
диска.
|
||
parameters:
|
||
- description: Источник и цель
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.CopyStructureRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Скопировано
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
summary: Скопировать структуру папок
|
||
tags:
|
||
- documents
|
||
/external/v2/documents/move:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: |-
|
||
Перемещает выбранные элементы, переименовывает или объединяет одноимённые документы согласно запросу. При объединении версии переходят в целевой документ, а исходный документ удаляется. Перенос между дисками или проектами запрещён. Требуется право записи или администрирования источника; право записи, редактирования или администрирования назначения. Для объединения требуется право записи или администрирования целевого документа. Администратор соответствующего диска имеет доступ к объектам этого диска. Возвращает идентификатор операции; Prefer: wait позволяет дождаться результата.
|
||
Для ожидания результата в том же запросе передайте заголовок Prefer: wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за это время получен итоговый статус операции, возвращается HTTP 200 с её результатом. HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время итоговый результат не получен возвращается HTTP 202 с operation_id, без результата операции; дальнейший статус проверяйте через GET /async-operations/{id} в том же контуре и версии API. Истечение времени ожидания не отменяет операцию.
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Манифест
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/move.MoveRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/move.StartResponse'
|
||
"400":
|
||
description: Смешение файлов и папок / между дисками/проектами / невалидный
|
||
union
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Конфликты имён в назначении
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Переместить документы и папки
|
||
tags:
|
||
- move
|
||
/external/v2/documents/public_link:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт ссылку на последнюю, указанную или последнюю согласованную
|
||
версию документа. Можно задать срок действия. Требуется право создания публичных
|
||
ссылок или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/publiclink.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/publiclink.CreateOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Создать публичную ссылку
|
||
tags:
|
||
- public-links
|
||
/external/v2/documents/public_link/{id}:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Меняет параметры ссылки. Отсутствующие поля сохраняются; expires_at=null
|
||
отменяет ограничение срока действия. Требуется право создания публичных ссылок
|
||
или администрирования документа; также доступно администратору диска.
|
||
parameters:
|
||
- description: ID ссылки
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
- description: Изменения
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/publiclink.UpdateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/publiclink.UpdateOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Изменить публичную ссылку
|
||
tags:
|
||
- public-links
|
||
/external/v2/documents/update-path:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: Изменяет родительскую папку выбранных документов. Документы, для
|
||
которых недостаточно прав, пропускаются. Требуется право записи или администрирования
|
||
исходного документа и право редактирования или администрирования папки назначения;
|
||
администратор соответствующего диска имеет доступ к объектам этого диска.
|
||
parameters:
|
||
- description: Список документов и родитель
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.BulkUpdatePathRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.BulkUpdatePathResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Переместить несколько документов
|
||
tags:
|
||
- documents
|
||
/external/v2/links:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Создаёт ссылку на существующий документ в выбранной папке. Требуется
|
||
право записи или администрирования и на документ, и на папку назначения; администратор
|
||
соответствующего диска имеет доступ к объектам этого диска.
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/link.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"201":
|
||
description: Created
|
||
schema:
|
||
$ref: '#/definitions/link.CreateOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"409":
|
||
description: Имя занято / линк уже есть
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
"422":
|
||
description: Цель — линк или папка
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
summary: Создать ссылку на документ в папке
|
||
tags:
|
||
- links
|
||
/external/v2/uploads/multipart/{upload_id}/{part_number}:
|
||
post:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: 'Часть файла передаётся в теле запроса с Content-Type: application/octet-stream
|
||
и Content-Length. Размер каждой части, кроме последней, должен быть не менее
|
||
5 МиБ. Диск должен принадлежать одной из компаний пользователя, указанных
|
||
в токене.'
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
- description: Номер части (с 1)
|
||
in: path
|
||
name: part_number
|
||
required: true
|
||
type: integer
|
||
- description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
|
||
in: body
|
||
name: content
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- description: Размер тела запроса в байтах
|
||
format: int64
|
||
in: header
|
||
minimum: 1
|
||
name: Content-Length
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.UploadPartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить часть файла
|
||
tags:
|
||
- uploads
|
||
/external/v2/uploads/multipart/{upload_id}/abort:
|
||
post:
|
||
description: Отменяет незавершённую загрузку и удаляет её части. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.MultipartFinishedResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Отменить загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/external/v2/uploads/multipart/{upload_id}/complete:
|
||
post:
|
||
description: Собирает загруженные части в файл версии документа. Диск должен
|
||
принадлежать одной из компаний пользователя, указанных в токене.
|
||
parameters:
|
||
- description: UUID загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.MultipartFinishedResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"401":
|
||
description: Unauthorized
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError401'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/internal/v1/async-operations:
|
||
get:
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/move.OperationListResponse'
|
||
summary: Список async-операций (internal)
|
||
tags:
|
||
- async-operations-internal
|
||
/internal/v1/async-operations/{id}:
|
||
get:
|
||
parameters:
|
||
- description: UUID операции
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Статус async-операции (internal)
|
||
tags:
|
||
- async-operations-internal
|
||
/internal/v1/async-operations/{id}/cancel:
|
||
post:
|
||
parameters:
|
||
- description: UUID операции
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"202":
|
||
description: Отмена запрошена
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Отменить async-операцию (internal)
|
||
tags:
|
||
- async-operations-internal
|
||
/internal/v1/bundles/{bundle_id}/{key}/upload_multipart:
|
||
post:
|
||
description: 'Легаси-совместимый init: активный незавершённый upload той же
|
||
цели супersед-ится.'
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Ключ датасорса
|
||
in: path
|
||
name: key
|
||
required: true
|
||
type: string
|
||
- description: 'Только для датасорса типа folder (облака точек, тайлы): относительный
|
||
путь файла внутри него'
|
||
in: query
|
||
name: path
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.StartMultipartInternalResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Начать multipart-загрузку (internal)
|
||
tags:
|
||
- bundles-internal
|
||
/internal/v1/bundles/{bundle_id}/attributes:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: 'ВНИМАНИЕ, легаси-поведение: заменяет JSONB атрибутов обработки
|
||
и для геопривязываемых типов (облака точек) ПЕРЕЗАПУСКАЕТ workflow-пайплайн
|
||
(создаёт tiles-датасорс и переигрывает задачу геопривязки); для остальных
|
||
типов проставляет workflow_status=skipped. Это не пользовательские атрибуты
|
||
документа (те — PUT /documents/{id}/attributes).'
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Атрибуты
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.UpdateAttributesRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.UpdateAttributesOutput'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Обновить атрибуты обработки бандла
|
||
tags:
|
||
- bundles-internal
|
||
/internal/v1/bundles/{bundle_id}/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'DEPRECATED. Повторяет семантику старого POST /bundles/{id}/copy:
|
||
create-vs-reuse по имени, синхронное ожидание до дедлайна; ответ — легаси-тело
|
||
документа либо заглушка при 202-таймауте. Дельта от легаси: параметр use_source_bundle_as_copied_from
|
||
не поддержан — bundle_copied_from проставляется ВСЕГДА (маркер происхождения
|
||
копии; по нему наследуются согласования).'
|
||
parameters:
|
||
- description: UUID исходного бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.LegacyBundleCopyRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Легаси-тело документа
|
||
schema:
|
||
$ref: '#/definitions/copy.LegacyDocument'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Легаси-копия бандла (compat-шим)
|
||
tags:
|
||
- copy-internal
|
||
/internal/v1/bundles/{bundle_id}/datasources/{key}/ensure:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Создаёт запись датасорса, если её нет; существующей обновляет
|
||
имя. Идемпотентно. Основной потребитель — filestreamer (documentation-api):
|
||
его upload-хендлеры регистрируют датасорс через этот эндпоинт, чтобы запись
|
||
и outbox-событие происходили в cde-api.'
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: Ключ датасорса
|
||
in: path
|
||
name: key
|
||
required: true
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.EnsureDataSourceRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.EnsureDataSourceResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Гарантировать датасорс по ключу
|
||
tags:
|
||
- bundles-internal
|
||
/internal/v1/bundles/{bundle_id}/workflow:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Специфичный эндпоинт сценария «Сравнение» (deviation): регистрирует
|
||
workflow, созданный внешне в workflows-api, за бандлом и публикует workflow.assigned.
|
||
Не общий механизм привязки произвольных workflow.'
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
- description: ID workflow
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/bundle.AddWorkflowRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Привязан
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Привязать deviation-workflow к бандлу
|
||
tags:
|
||
- bundles-internal
|
||
/internal/v1/bundles/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
|
||
wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
|
||
это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
|
||
HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
|
||
и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
|
||
итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
|
||
операции; дальнейший статус проверяйте через GET /async-operations/{id} в
|
||
том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.NewDocumentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Копия версии в новый документ (internal)
|
||
tags:
|
||
- copy-internal
|
||
/internal/v1/bundles/copy-to-document:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
|
||
wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
|
||
это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
|
||
HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
|
||
и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
|
||
итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
|
||
операции; дальнейший статус проверяйте через GET /async-operations/{id} в
|
||
том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.ToDocumentRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Копия версии в существующий документ (internal)
|
||
tags:
|
||
- copy-internal
|
||
/internal/v1/disks:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Создаёт диск: имя и бакет выводятся из компании, создаётся S3-бакет
|
||
и корневой документ.'
|
||
parameters:
|
||
- description: Параметры диска
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/disk.CreateInternalRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/disk.CreateInternalResponse'
|
||
"400":
|
||
description: Компания/админы не найдены
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"409":
|
||
description: Бакет уже существует
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
"422":
|
||
description: Unprocessable Entity
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError422'
|
||
"502":
|
||
description: Каталог пользователей недоступен
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError502'
|
||
summary: Создать диск (internal)
|
||
tags:
|
||
- disks-internal
|
||
/internal/v1/documents/:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Легаси-совместимое внутреннее создание: документ + скелет бандла
|
||
с датасорсами по типу.'
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.CreateInternalRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.CreateInternalResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Создать документ (internal)
|
||
tags:
|
||
- documents-internal
|
||
/internal/v1/documents/{document_id}:
|
||
delete:
|
||
parameters:
|
||
- description: ID документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Удалён
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Удалить документ (internal)
|
||
tags:
|
||
- documents-internal
|
||
/internal/v1/documents/{document_id}/move_bundles:
|
||
patch:
|
||
consumes:
|
||
- application/json
|
||
description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
|
||
wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
|
||
это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
|
||
HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
|
||
и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
|
||
итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
|
||
операции; дальнейший статус проверяйте через GET /async-operations/{id} в
|
||
том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: ID целевого документа
|
||
in: path
|
||
name: document_id
|
||
required: true
|
||
type: integer
|
||
- description: Идентификаторы версий документа
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/move.MoveBundlesRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/move.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Перенести версии (internal)
|
||
tags:
|
||
- move-internal
|
||
/internal/v1/documents/{id}/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
|
||
wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
|
||
это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
|
||
HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
|
||
и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
|
||
итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
|
||
операции; дальнейший статус проверяйте через GET /async-operations/{id} в
|
||
том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
|
||
parameters:
|
||
- description: ID корня
|
||
in: path
|
||
name: id
|
||
required: true
|
||
type: integer
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.SubtreeRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Копия поддерева (internal)
|
||
tags:
|
||
- copy-internal
|
||
/internal/v1/documents/copy:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
|
||
wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
|
||
это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
|
||
HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
|
||
и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
|
||
итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
|
||
операции; дальнейший статус проверяйте через GET /async-operations/{id} в
|
||
том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/copy.SelectionRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/copy.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Копия выбранных узлов (internal)
|
||
tags:
|
||
- copy-internal
|
||
/internal/v1/documents/move:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Для ожидания результата в том же запросе передайте заголовок Prefer:
|
||
wait=N, например Prefer: wait=10 (N — число секунд, максимум 30). Если за
|
||
это время получен итоговый статус операции, возвращается HTTP 200 с её результатом.
|
||
HTTP 200 сам по себе не означает успешного выполнения: проверьте поле status
|
||
и сведения об ошибках в теле ответа. Без ожидания или если за отведённое время
|
||
итоговый результат не получен возвращается HTTP 202 с operation_id, без результата
|
||
операции; дальнейший статус проверяйте через GET /async-operations/{id} в
|
||
том же контуре и версии API. Истечение времени ожидания не отменяет операцию.'
|
||
parameters:
|
||
- description: wait=N — ожидать результат N секунд, максимум 30; например wait=10.
|
||
HTTP 200 — итоговый статус в теле ответа; HTTP 202 — operation_id для дальнейшей
|
||
проверки статуса
|
||
in: header
|
||
name: Prefer
|
||
type: string
|
||
- description: Манифест
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/move.MoveRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: 'Итоговый статус получен за время Prefer: wait=N. Результат
|
||
операции и ошибки смотрите в теле ответа; HTTP 200 не гарантирует успешного
|
||
выполнения'
|
||
schema:
|
||
$ref: '#/definitions/move.StatusResponse'
|
||
"202":
|
||
description: 'Операция принята: возвращается operation_id без итогового
|
||
результата. Ожидание не запрошено либо итоговый результат не получен за
|
||
отведённое время'
|
||
schema:
|
||
$ref: '#/definitions/move.StartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Переместить документы (internal)
|
||
tags:
|
||
- move-internal
|
||
/internal/v1/documents/resolve_relative_path:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Используется flows-backend в согласованиях: для каждого документа
|
||
находит (или создаёт при should_folder_be_created) папку по relative_path
|
||
относительно папки документа — туда раскладываются согласованные документы.'
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.ResolveRelativePathRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.ResolveRelativePathResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"403":
|
||
description: Forbidden
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError403'
|
||
summary: Резолв относительного пути
|
||
tags:
|
||
- documents-internal
|
||
/internal/v1/documents/super_create:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Документ + N бандлов, сразу помеченных uploaded (контент уже в
|
||
S3). Админ-гейт остаётся на doc-api.
|
||
parameters:
|
||
- description: Параметры
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/document.SuperCreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/document.SuperCreateResponse'
|
||
"400":
|
||
description: Гейты структуры / диск не найден / расширения
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
"409":
|
||
description: Conflict
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError409'
|
||
summary: Super create (internal)
|
||
tags:
|
||
- documents-internal
|
||
/internal/v1/pages:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: Регистрирует страницу и тамбнейл, произведённые пайплайном обработки.
|
||
parameters:
|
||
- description: Параметры страницы
|
||
in: body
|
||
name: request
|
||
required: true
|
||
schema:
|
||
$ref: '#/definitions/page.CreateRequest'
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/page.CreateResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Создать страницу (internal)
|
||
tags:
|
||
- pages-internal
|
||
/internal/v1/s3/file:
|
||
delete:
|
||
description: Удаляет объект и связанную датасорс-запись по пути bucket/key (легаси
|
||
DELETE /s3/file).
|
||
parameters:
|
||
- description: 'Путь объекта: bucket/key'
|
||
in: query
|
||
name: path
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"204":
|
||
description: Удалён
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Удалить файл из S3
|
||
tags:
|
||
- bundles-internal
|
||
/internal/v1/upload_finish/bundles/{bundle_id}:
|
||
post:
|
||
description: 'Внутренний finish: пересчитывает размер по фактическим объектам;
|
||
вариант с /{key} — по одному датасорсу.'
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.CompleteUploadResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку (internal)
|
||
tags:
|
||
- bundles-internal
|
||
/internal/v1/upload_finish/bundles/{bundle_id}/{key}:
|
||
post:
|
||
description: 'Внутренний finish: пересчитывает размер по фактическим объектам;
|
||
вариант с /{key} — по одному датасорсу.'
|
||
parameters:
|
||
- description: UUID бандла
|
||
in: path
|
||
name: bundle_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/bundle.CompleteUploadResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку (internal)
|
||
tags:
|
||
- bundles-internal
|
||
/internal/v1/uploads/multipart/{upload_id}/{part_number}:
|
||
post:
|
||
consumes:
|
||
- application/octet-stream
|
||
description: 'Часть файла передаётся сырым телом с Content-Type: application/octet-stream
|
||
и Content-Length. Размер каждой части, кроме последней, должен быть не менее
|
||
5 МиБ. Доверенный внутренний маршрут без авторизации пользователя.'
|
||
parameters:
|
||
- description: Идентификатор загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
- description: Номер части (с 1)
|
||
in: path
|
||
name: part_number
|
||
required: true
|
||
type: integer
|
||
- description: Байты файла в теле запроса, без JSON-обёртки и кодирования Base64
|
||
in: body
|
||
name: content
|
||
required: true
|
||
schema:
|
||
type: string
|
||
- description: Размер тела запроса в байтах
|
||
format: int64
|
||
in: header
|
||
minimum: 1
|
||
name: Content-Length
|
||
required: true
|
||
type: integer
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.UploadPartResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Загрузить часть файла
|
||
tags:
|
||
- uploads
|
||
/internal/v1/uploads/multipart/{upload_id}/abort:
|
||
post:
|
||
description: Отменяет незавершённую загрузку и удаляет её части. Доверенный
|
||
внутренний маршрут без авторизации пользователя.
|
||
parameters:
|
||
- description: Идентификатор загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.MultipartFinishedResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Отменить загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/internal/v1/uploads/multipart/{upload_id}/complete:
|
||
post:
|
||
description: Собирает загруженные части в файл версии документа. Доверенный
|
||
внутренний маршрут без авторизации пользователя.
|
||
parameters:
|
||
- description: Идентификатор загрузки
|
||
in: path
|
||
name: upload_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: OK
|
||
schema:
|
||
$ref: '#/definitions/upload.MultipartFinishedResponse'
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Завершить загрузку файла по частям
|
||
tags:
|
||
- uploads
|
||
/internal/v1/workflows/{wf_id}:
|
||
post:
|
||
consumes:
|
||
- application/json
|
||
description: 'Колбэк последней задачи пайплайна, вызывается только при успехе:
|
||
помечает workflow и его бандл done (write-side кэш статуса; события не публикуются
|
||
— статус workflow принадлежит workflows-api).'
|
||
parameters:
|
||
- description: UUID workflow
|
||
in: path
|
||
name: wf_id
|
||
required: true
|
||
type: string
|
||
produces:
|
||
- application/json
|
||
responses:
|
||
"200":
|
||
description: Принято
|
||
"400":
|
||
description: Bad Request
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError400'
|
||
"404":
|
||
description: Not Found
|
||
schema:
|
||
$ref: '#/definitions/apperrors.APIError404'
|
||
summary: Финализация workflow (internal)
|
||
tags:
|
||
- workflows-internal
|
||
securityDefinitions:
|
||
UserToken:
|
||
in: header
|
||
name: Authorization
|
||
type: apiKey
|
||
swagger: "2.0"
|