{"components":{"parameters":{"Key":{"in":"path","name":"key","required":true,"schema":{"type":"string"}},"Origin":{"description":"Must exactly match AUTH_PUBLIC_ORIGIN. Cross-site mutations are rejected.","in":"header","name":"Origin","required":true,"schema":{"const":"https://eval.su","type":"string"}},"Query":{"description":"Case-insensitive, all terms, Russian ё/е normalization","in":"query","name":"q","schema":{"maxLength":4096,"type":"string"}}},"responses":{"AuthInvalid":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"invalid_email, invalid_request, invalid_code or invalid_link. Wrong, expired, used and exhausted codes share the same invalid_code error. Missing, malformed, expired, superseded and consumed links share invalid_link without revealing account details."},"AuthOrigin":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"forbidden_origin; no mutation was performed."},"AuthRateLimited":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"rate_limited; limits persist across service restarts.","headers":{"Retry-After":{"schema":{"minimum":1,"type":"integer"}}}},"NotFound":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Record absent or not publicly visible; no visibility disclosure"},"TaskInvalid":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"invalid_task; invalid fields, unsupported attachment format or malformed body. No partial save occurs."},"Unauthenticated":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Session absent, expired, revoked or the owner/profile is deleted."},"Unavailable":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Backend temporarily unavailable"}},"schemas":{"AuthSession":{"additionalProperties":false,"properties":{"expiresAt":{"format":"date-time","type":"string"},"profile":{"properties":{"name":{"type":"string"},"type":{"type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","name","type"],"type":"object"},"user":{"properties":{"email":{"format":"email","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","email"],"type":"object"}},"required":["user","profile","expiresAt"],"type":"object"},"CatalogPublication":{"additionalProperties":false,"description":"Compact public bootstrap entry. The client restores draft from approved. When approved.content has canonical assets and blocks arrays, approved.portfolio keeps those arrays empty; portfolio metadata and canonical content remain complete. This projection never changes stored data or individual publication reads.","properties":{"approved":{"type":"object"},"closed":{"type":"boolean"},"createdAt":{"type":"string"},"demo":{"description":"Internal editorial source marker","type":"boolean"},"hidden":{"const":false,"type":"boolean"},"history":{"maxItems":0,"type":"array"},"id":{"type":"string"},"kind":{"$ref":"#/components/schemas/PublicationKind"},"ownerId":{"type":"string"},"ownerUuid":{"format":"uuid","type":"string"},"reason":{"const":"","type":"string"},"status":{"const":"approved","type":"string"},"updatedAt":{"type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","id","ownerId","ownerUuid","kind","approved","status","hidden","history","reason"],"type":"object"},"Error":{"properties":{"error":{"properties":{"code":{"type":"string"},"message":{"type":"string"}},"required":["code","message"],"type":"object"}},"required":["error"],"type":"object"},"OwnTask":{"properties":{"createdAt":{"format":"date-time","type":"string"},"draft":{"$ref":"#/components/schemas/TaskData"},"id":{"description":"Stable legacy routing identity.","type":"string"},"revision":{"minimum":1,"type":"integer"},"status":{"enum":["draft","pending","approved","returned","rejected"],"type":"string"},"updatedAt":{"format":"date-time","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","id","revision","status","draft","createdAt","updatedAt"],"type":"object"},"Profile":{"additionalProperties":true,"description":"Compatible public Profile view; private account fields are excluded by an allowlist.","properties":{"avatarUrl":{"type":"string"},"categories":{"items":{"type":"string"},"type":"array"},"contacts":{"description":"Empty unless showContacts is true","type":"string"},"id":{"description":"Legacy routing key","not the database identity":null,"type":"string"},"name":{"type":"string"},"networks":{"items":{"type":"object"},"type":"array"},"showContacts":{"type":"boolean"},"skills":{"items":{"type":"object"},"type":"array"},"structuredContacts":{"items":{"type":"object"},"type":"array"},"type":{"enum":["Физлицо","Самозанятый","ИП","Компания"],"type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","id","name","type","showContacts"],"type":"object"},"Publication":{"additionalProperties":false,"description":"Public approved data only. draft is a compatibility alias of approved; no real draft, history, import source or moderation data is returned.","properties":{"approved":{"type":"object"},"closed":{"type":"boolean"},"createdAt":{"type":"string"},"draft":{"type":"object"},"hidden":{"const":false,"type":"boolean"},"history":{"maxItems":0,"type":"array"},"id":{"description":"Stable legacy routing key","type":"string"},"kind":{"$ref":"#/components/schemas/PublicationKind"},"ownerId":{"description":"Owner legacy routing key","type":"string"},"ownerUuid":{"format":"uuid","type":"string"},"reason":{"const":"","type":"string"},"status":{"const":"approved","type":"string"},"updatedAt":{"type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","id","ownerId","ownerUuid","kind","approved","draft","status","hidden","history","reason"],"type":"object"},"PublicationComment":{"properties":{"authorId":{"type":"string"},"authorName":{"type":"string"},"authorProfileUuid":{"format":"uuid","type":"string"},"authorType":{"enum":["Person","Organization"],"type":"string"},"avatarUrl":{"type":"string"},"body":{"description":"Empty only for a deleted root with live answers.","maxLength":5000,"type":"string"},"canDelete":{"type":"boolean"},"createdAt":{"format":"date-time","type":"string"},"deleted":{"type":"boolean"},"isPublicationAuthor":{"description":"Computed from the current publication owner profile.","type":"boolean"},"parentCommentUuid":{"format":"uuid","type":"string"},"publicationUuid":{"format":"uuid","type":"string"},"replyCount":{"description":"Number of currently visible answers to this root.","minimum":0,"type":"integer"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","publicationUuid","authorName","body","createdAt","canDelete","isPublicationAuthor","deleted","replyCount"],"type":"object"},"PublicationKind":{"enum":["task","service","portfolio","article","vacancy","resume","training"],"type":"string"},"TaskData":{"additionalProperties":false,"properties":{"budget":{"maxLength":80,"type":"string"},"category":{"enum":["Сайты","Картинки и видео","Тексты и контент-редакторы","Боты","Автоматизация","Аналитика","Логотипы и графика","ИИ-агенты","Серверы и инфраструктура","Другое"],"type":"string"},"deadline":{"maxLength":120,"type":"string"},"description":{"description":"At least 20 characters when submit is true.","maxLength":20000,"type":"string"},"files":{"items":{"$ref":"#/components/schemas/TaskFile"},"maxItems":5,"type":"array"},"title":{"maxLength":160,"minLength":3,"type":"string"}},"required":["title","category","description","budget","deadline","files"],"type":"object"},"TaskFile":{"additionalProperties":false,"properties":{"id":{"maxLength":100,"minLength":1,"type":"string"},"mimeType":{"enum":["image/png","image/jpeg","image/webp","image/gif","image/avif","application/pdf","text/plain","text/csv","application/json","application/zip","application/vnd.openxmlformats-officedocument.wordprocessingml.document","application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"],"type":"string"},"name":{"maxLength":240,"minLength":1,"type":"string"},"size":{"maximum":1048576,"minimum":1,"type":"integer"},"url":{"description":"Strict data:MIME;base64 content; external URLs and Blob URLs are not accepted.","type":"string"}},"required":["id","name","url","size","mimeType"],"type":"object"}},"securitySchemes":{"SessionCookie":{"in":"cookie","name":"__Host-aishka_session","type":"apiKey"},"bearerAuth":{"scheme":"bearer","type":"http"}}},"info":{"description":"Implemented server operations shared by browser, HTTP and MCP. Bearer significant actions require a prepared command and exact human approval. Public draft is the approved compatibility copy, not the owner's working draft. No payment execution or built-in model calls.","title":"Аишка API","version":"2026-10-15"},"openapi":"3.1.0","paths":{"/api/healthz":{"get":{"operationId":"health","responses":{"200":{"description":"Process is alive"}}}},"/api/readyz":{"get":{"operationId":"readiness","responses":{"200":{"description":"Database and required migration are available"},"503":{"description":"Database or migration unavailable"}}}},"/api/v1/auth/email/link":{"post":{"description":"Consumes the email sign-in link after an explicit user action on /auth/email/. GET requests never consume it. The 32-byte random token is received from the email URL fragment and posted in the JSON body; it is never accepted from query parameters. It works on another device without the originating browser session. The challenge shares its 10-minute expiry, invalidation and single-use state with the six-digit code. On success, creates a verified account and private individual profile when needed and sets a 30-day session after the transaction commits. The raw link token is stored only as a keyed hash; an old challenge without a link token remains usable by code only.","operationId":"verifyEmailAuthenticationLink","parameters":[{"$ref":"#/components/parameters/Origin"}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"challengeUuid":{"format":"uuid","type":"string"},"token":{"maxLength":43,"minLength":43,"pattern":"^[A-Za-z0-9_-]{43}$","type":"string"}},"required":["challengeUuid","token"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthSession"}}},"description":"Verified session. Sets __Host-aishka_session with Secure, HttpOnly, SameSite=Lax and Path=/; the raw session token is never returned in JSON. The code and link can no longer be reused.","headers":{"Set-Cookie":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/AuthInvalid"},"403":{"$ref":"#/components/responses/AuthOrigin"},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"The verified account was deleted; no session was created."},"429":{"$ref":"#/components/responses/AuthRateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/auth/email/start":{"post":{"description":"Sends a six-digit code and a one-time sign-in link in the same email. Both belong to one challenge and expire in 10 minutes; using either invalidates both. SMTP acceptance and challenge persistence are required before success. There is a 60-second resend cooldown, 5 sends/email/hour and 20 sends/IP/hour. No account is created until verification; a new account and private profile are created after successful verification when needed. The link token is sent only in the email URL fragment and never returned by this endpoint.","operationId":"startEmailAuthentication","parameters":[{"$ref":"#/components/parameters/Origin"}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"email":{"format":"email","maxLength":254,"type":"string"}},"required":["email"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"challengeUuid":{"format":"uuid","type":"string"},"expiresAt":{"format":"date-time","type":"string"},"resendAfterSeconds":{"const":60,"type":"integer"}},"required":["challengeUuid","expiresAt","resendAfterSeconds"],"type":"object"}}},"description":"Email containing the code and sign-in link accepted by the configured SMTP provider; this is not an inbox delivery receipt."},"400":{"$ref":"#/components/responses/AuthInvalid"},"403":{"$ref":"#/components/responses/AuthOrigin"},"429":{"$ref":"#/components/responses/AuthRateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/auth/email/verify":{"post":{"description":"Consumes the shared code/link challenge once, with a maximum of five wrong guesses. Creates a verified account and private individual profile when needed; never grants ownership of imported profiles. Creates a 30-day session only after the transaction commits. Successful code verification also invalidates the email link.","operationId":"verifyEmailAuthentication","parameters":[{"$ref":"#/components/parameters/Origin"}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"challengeUuid":{"format":"uuid","type":"string"},"code":{"pattern":"^[0-9]{6}$","type":"string"}},"required":["challengeUuid","code"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthSession"}}},"description":"Verified session. Sets __Host-aishka_session with Secure, HttpOnly, SameSite=Lax and Path=/; the raw token is never returned in JSON.","headers":{"Set-Cookie":{"schema":{"type":"string"}}}},"400":{"$ref":"#/components/responses/AuthInvalid"},"403":{"$ref":"#/components/responses/AuthOrigin"},"429":{"$ref":"#/components/responses/AuthRateLimited"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/auth/logout":{"post":{"description":"Idempotent revocation; clears the secure cookie only after the database update succeeds.","operationId":"logout","parameters":[{"$ref":"#/components/parameters/Origin"}],"responses":{"204":{"description":"Session revoked and cookie cleared","including an already absent session.":null},"403":{"$ref":"#/components/responses/AuthOrigin"},"503":{"$ref":"#/components/responses/Unavailable"}},"security":[{"SessionCookie":[]}]}},"/api/v1/auth/session":{"get":{"operationId":"getSession","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/AuthSession"}}},"description":"Current verified account; Cache-Control no-store."},"401":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"Session absent, expired or revoked."},"503":{"$ref":"#/components/responses/Unavailable"}},"security":[{"SessionCookie":[]}]}},"/api/v1/automations":{"get":{"description":"Only rules of the acting profile.","operationId":"automations.list","parameters":[],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Получить правила","x-scopes":["automations:read"]},"post":{"description":"Idempotent requestUuid; at most 100 rules per profile. Typed filter depth \u003c=6. One allowed action, bounded daily executions; credentials and membership are rechecked at execution.","operationId":"automations.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$defs":{"condition":{"additionalProperties":false,"properties":{"all":{"items":{"$ref":"#/$defs/condition"},"maxItems":10,"minItems":1,"type":"array"},"any":{"items":{"$ref":"#/$defs/condition"},"maxItems":10,"minItems":1,"type":"array"},"field":{"enum":["type","aggregate.kind","aggregate.uuid","aggregate.revision","data.status","data.objectUuid"],"type":"string"},"op":{"enum":["exists","eq","in","contains","gte","lte"],"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"items":{"type":["string","number"]},"maxItems":30,"minItems":1,"type":"array"}]}},"required":[],"type":"object"}},"additionalProperties":false,"properties":{"action":{"oneOf":[{"additionalProperties":false,"properties":{"type":{"const":"notification.create"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"endpointUuid":{"format":"uuid","type":"string"},"type":{"const":"webhook.deliver"}},"required":["type","endpointUuid"],"type":"object"},{"additionalProperties":false,"properties":{"arguments":{"additionalProperties":false,"dependentRequired":{"expectedRevision":["publicationUuid"],"publicationUuid":["expectedRevision"]},"description":"The operation determines the publication kind. requestUuid and profileUuid are server-bound and forbidden. Updating an existing draft requires publicationUuid and its current expectedRevision.","properties":{"data":{"additionalProperties":true,"description":"Publication draft data, validated by the same domain contract as a manual draft save. A non-empty title is required; null data is forbidden.","properties":{"title":{"maxLength":160,"minLength":3,"type":"string"}},"required":["title"],"type":"object"},"expectedRevision":{"minimum":1,"type":"integer"},"publicationUuid":{"format":"uuid","type":"string"}},"required":["data"],"type":"object"},"operationId":{"enum":["articles.save","jobs.save","learning.save","portfolio.save","resumes.save","services.save","tasks.save"],"type":"string"},"type":{"const":"command.execute"}},"required":["type","operationId","arguments"],"type":"object"}]},"enabled":{"type":"boolean"},"expectedRevision":{"minimum":1,"type":"integer"},"limits":{"additionalProperties":false,"properties":{"maxRunsPerDay":{"maximum":1000,"minimum":1,"type":"integer"}},"required":["maxRunsPerDay"],"type":"object"},"name":{"maxLength":160,"minLength":1,"type":"string"},"requestUuid":{"format":"uuid","type":"string"},"trigger":{"additionalProperties":false,"properties":{"eventType":{"enum":["complaint.created","complaint.moderated","deal.started","deal.status_changed","favorite.changed","file.ready","job_invitation.received","job_invitation.status_changed","job_invitation.withdrawn","job_response.received","job_response.status_changed","job_response.withdrawn","learning.appeal.opened","learning.checker.failed","learning.community.created","learning.community.replied","learning.community.resolved","learning.course.completed","learning.course.published","learning.deadline.approaching","learning.deadline.changed","learning.enrollment.activated","learning.enrollment.completed","learning.enrollment.invited","learning.enrollment.pause","learning.enrollment.requested","learning.enrollment.restored","learning.enrollment.resume","learning.enrollment.start","learning.enrollment.transferred","learning.enrollment.withdraw","learning.enrollment.withdrawn","learning.module.completed","learning.review.overdue","learning.review.requested","learning.revision.requested","learning.run.cancelled","learning.step.available","learning.submission.accepted","learning.submission.graded","message.received","offer.received","offer.status_changed","offer.withdrawn","profile.updated","publication.deleted","publication.draft_saved","publication.hidden","publication.moderated","publication.restored","publication.submitted","response.received","response.status_changed","response.withdrawn","review.moderated","review.submitted","task.closed"],"type":"string"},"filter":{"$ref":"#/$defs/condition"}},"required":["eventType"],"type":"object"},"uuid":{"format":"uuid","type":"string"}},"required":["name","trigger","action","limits","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Создать правило","x-human-approval":false,"x-scopes":["automations:write"]}},"/api/v1/automations/dry-run":{"post":{"description":"No effects or execution rows. Supply a visible eventUuid or a synthetic event, never both.","operationId":"automations.dry_run","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"$defs":{"condition":{"additionalProperties":false,"properties":{"all":{"items":{"$ref":"#/$defs/condition"},"maxItems":10,"minItems":1,"type":"array"},"any":{"items":{"$ref":"#/$defs/condition"},"maxItems":10,"minItems":1,"type":"array"},"field":{"enum":["type","aggregate.kind","aggregate.uuid","aggregate.revision","data.status","data.objectUuid"],"type":"string"},"op":{"enum":["exists","eq","in","contains","gte","lte"],"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"items":{"type":["string","number"]},"maxItems":30,"minItems":1,"type":"array"}]}},"required":[],"type":"object"}},"additionalProperties":false,"properties":{"event":{"description":"Synthetic Event envelope. Used only to evaluate the condition; never triggers an action.","type":"object"},"eventUuid":{"format":"uuid","type":"string"},"rule":{"$defs":{"condition":{"additionalProperties":false,"properties":{"all":{"items":{"$ref":"#/$defs/condition"},"maxItems":10,"minItems":1,"type":"array"},"any":{"items":{"$ref":"#/$defs/condition"},"maxItems":10,"minItems":1,"type":"array"},"field":{"enum":["type","aggregate.kind","aggregate.uuid","aggregate.revision","data.status","data.objectUuid"],"type":"string"},"op":{"enum":["exists","eq","in","contains","gte","lte"],"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"items":{"type":["string","number"]},"maxItems":30,"minItems":1,"type":"array"}]}},"required":[],"type":"object"}},"additionalProperties":false,"properties":{"action":{"oneOf":[{"additionalProperties":false,"properties":{"type":{"const":"notification.create"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"endpointUuid":{"format":"uuid","type":"string"},"type":{"const":"webhook.deliver"}},"required":["type","endpointUuid"],"type":"object"},{"additionalProperties":false,"properties":{"arguments":{"additionalProperties":false,"dependentRequired":{"expectedRevision":["publicationUuid"],"publicationUuid":["expectedRevision"]},"description":"The operation determines the publication kind. requestUuid and profileUuid are server-bound and forbidden. Updating an existing draft requires publicationUuid and its current expectedRevision.","properties":{"data":{"additionalProperties":true,"description":"Publication draft data, validated by the same domain contract as a manual draft save. A non-empty title is required; null data is forbidden.","properties":{"title":{"maxLength":160,"minLength":3,"type":"string"}},"required":["title"],"type":"object"},"expectedRevision":{"minimum":1,"type":"integer"},"publicationUuid":{"format":"uuid","type":"string"}},"required":["data"],"type":"object"},"operationId":{"enum":["articles.save","jobs.save","learning.save","portfolio.save","resumes.save","services.save","tasks.save"],"type":"string"},"type":{"const":"command.execute"}},"required":["type","operationId","arguments"],"type":"object"}]},"enabled":{"type":"boolean"},"expectedRevision":{"minimum":1,"type":"integer"},"limits":{"additionalProperties":false,"properties":{"maxRunsPerDay":{"maximum":1000,"minimum":1,"type":"integer"}},"required":["maxRunsPerDay"],"type":"object"},"name":{"maxLength":160,"minLength":1,"type":"string"},"requestUuid":{"format":"uuid","type":"string"},"trigger":{"additionalProperties":false,"properties":{"eventType":{"enum":["complaint.created","complaint.moderated","deal.started","deal.status_changed","favorite.changed","file.ready","job_invitation.received","job_invitation.status_changed","job_invitation.withdrawn","job_response.received","job_response.status_changed","job_response.withdrawn","learning.appeal.opened","learning.checker.failed","learning.community.created","learning.community.replied","learning.community.resolved","learning.course.completed","learning.course.published","learning.deadline.approaching","learning.deadline.changed","learning.enrollment.activated","learning.enrollment.completed","learning.enrollment.invited","learning.enrollment.pause","learning.enrollment.requested","learning.enrollment.restored","learning.enrollment.resume","learning.enrollment.start","learning.enrollment.transferred","learning.enrollment.withdraw","learning.enrollment.withdrawn","learning.module.completed","learning.review.overdue","learning.review.requested","learning.revision.requested","learning.run.cancelled","learning.step.available","learning.submission.accepted","learning.submission.graded","message.received","offer.received","offer.status_changed","offer.withdrawn","profile.updated","publication.deleted","publication.draft_saved","publication.hidden","publication.moderated","publication.restored","publication.submitted","response.received","response.status_changed","response.withdrawn","review.moderated","review.submitted","task.closed"],"type":"string"},"filter":{"$ref":"#/$defs/condition"}},"required":["eventType"],"type":"object"},"uuid":{"format":"uuid","type":"string"}},"required":["name","trigger","action","limits"],"type":"object"}},"required":["rule"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Проверить правило","x-human-approval":false,"x-scopes":["automations:write"]}},"/api/v1/automations/{uuid}":{"delete":{"description":"Soft deletion cancels pending executions; history is retained.","operationId":"automations.delete","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"requestUuid":{"format":"uuid","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Удалить правило","x-human-approval":false,"x-scopes":["automations:write"]},"patch":{"description":"Full replacement with expectedRevision; cancels pending executions of the old revision.","operationId":"automations.update","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$defs":{"condition":{"additionalProperties":false,"properties":{"all":{"items":{"$ref":"#/$defs/condition"},"maxItems":10,"minItems":1,"type":"array"},"any":{"items":{"$ref":"#/$defs/condition"},"maxItems":10,"minItems":1,"type":"array"},"field":{"enum":["type","aggregate.kind","aggregate.uuid","aggregate.revision","data.status","data.objectUuid"],"type":"string"},"op":{"enum":["exists","eq","in","contains","gte","lte"],"type":"string"},"value":{"anyOf":[{"type":"string"},{"type":"number"},{"type":"boolean"},{"items":{"type":["string","number"]},"maxItems":30,"minItems":1,"type":"array"}]}},"required":[],"type":"object"}},"additionalProperties":false,"properties":{"action":{"oneOf":[{"additionalProperties":false,"properties":{"type":{"const":"notification.create"}},"required":["type"],"type":"object"},{"additionalProperties":false,"properties":{"endpointUuid":{"format":"uuid","type":"string"},"type":{"const":"webhook.deliver"}},"required":["type","endpointUuid"],"type":"object"},{"additionalProperties":false,"properties":{"arguments":{"additionalProperties":false,"dependentRequired":{"expectedRevision":["publicationUuid"],"publicationUuid":["expectedRevision"]},"description":"The operation determines the publication kind. requestUuid and profileUuid are server-bound and forbidden. Updating an existing draft requires publicationUuid and its current expectedRevision.","properties":{"data":{"additionalProperties":true,"description":"Publication draft data, validated by the same domain contract as a manual draft save. A non-empty title is required; null data is forbidden.","properties":{"title":{"maxLength":160,"minLength":3,"type":"string"}},"required":["title"],"type":"object"},"expectedRevision":{"minimum":1,"type":"integer"},"publicationUuid":{"format":"uuid","type":"string"}},"required":["data"],"type":"object"},"operationId":{"enum":["articles.save","jobs.save","learning.save","portfolio.save","resumes.save","services.save","tasks.save"],"type":"string"},"type":{"const":"command.execute"}},"required":["type","operationId","arguments"],"type":"object"}]},"enabled":{"type":"boolean"},"expectedRevision":{"minimum":1,"type":"integer"},"limits":{"additionalProperties":false,"properties":{"maxRunsPerDay":{"maximum":1000,"minimum":1,"type":"integer"}},"required":["maxRunsPerDay"],"type":"object"},"name":{"maxLength":160,"minLength":1,"type":"string"},"requestUuid":{"format":"uuid","type":"string"},"trigger":{"additionalProperties":false,"properties":{"eventType":{"enum":["complaint.created","complaint.moderated","deal.started","deal.status_changed","favorite.changed","file.ready","job_invitation.received","job_invitation.status_changed","job_invitation.withdrawn","job_response.received","job_response.status_changed","job_response.withdrawn","learning.appeal.opened","learning.checker.failed","learning.community.created","learning.community.replied","learning.community.resolved","learning.course.completed","learning.course.published","learning.deadline.approaching","learning.deadline.changed","learning.enrollment.activated","learning.enrollment.completed","learning.enrollment.invited","learning.enrollment.pause","learning.enrollment.requested","learning.enrollment.restored","learning.enrollment.resume","learning.enrollment.start","learning.enrollment.transferred","learning.enrollment.withdraw","learning.enrollment.withdrawn","learning.module.completed","learning.review.overdue","learning.review.requested","learning.revision.requested","learning.run.cancelled","learning.step.available","learning.submission.accepted","learning.submission.graded","message.received","offer.received","offer.status_changed","offer.withdrawn","profile.updated","publication.deleted","publication.draft_saved","publication.hidden","publication.moderated","publication.restored","publication.submitted","response.received","response.status_changed","response.withdrawn","review.moderated","review.submitted","task.closed"],"type":"string"},"filter":{"$ref":"#/$defs/condition"}},"required":["eventType"],"type":"object"},"uuid":{"format":"uuid","type":"string"}},"required":["name","trigger","action","limits","uuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Изменить правило","x-human-approval":false,"x-scopes":["automations:write"]}},"/api/v1/automations/{uuid}/executions":{"get":{"description":"Latest 100 executions with persistent outcome and attempts.","operationId":"automations.executions","parameters":[{"in":"query","name":"requestUuid","required":false,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"uuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Исполнения правила","x-scopes":["automations:read"]}},"/api/v1/catalog":{"get":{"operationId":"getCatalog","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"profiles":{"items":{"$ref":"#/components/schemas/Profile"},"type":"array"},"publications":{"items":{"$ref":"#/components/schemas/CatalogPublication"},"type":"array"},"schemaVersion":{"const":1,"type":"integer"}},"required":["schemaVersion","profiles","publications"],"type":"object"}}},"description":"Public catalog, no private account state"},"503":{"$ref":"#/components/responses/Unavailable"}}}},"/api/v1/commands/articles.delete":{"post":{"operationId":"articles.delete","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Статьи: удалить","x-human-approval":true,"x-scopes":["articles:write"]}},"/api/v1/commands/articles.get":{"get":{"operationId":"articles.get","parameters":[{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Статьи: открыть редакцию","x-scopes":["articles:read"]}},"/api/v1/commands/articles.hide":{"post":{"operationId":"articles.hide","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Статьи: скрыть","x-human-approval":true,"x-scopes":["articles:write"]}},"/api/v1/commands/articles.list":{"get":{"operationId":"articles.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Статьи: мои публикации","x-scopes":["articles:read"]}},"/api/v1/commands/articles.restore":{"post":{"operationId":"articles.restore","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Статьи: восстановить","x-human-approval":true,"x-scopes":["articles:write"]}},"/api/v1/commands/articles.save":{"post":{"description":"Сохранить частный черновик; data заменяет весь черновик. Для правки сначала прочитайте текущий draft, сохраните поля и передайте publicationUuid/expectedRevision. Фото: files.prepare → HTTP PUT uploadUrl → files.complete → ready; UUID того же профиля/назначения в content.assets[].id, подпись caption, alt, content.version=1. Форматирование, обложки и полные примеры: /docs/examples/media-publications.md и .json (также MCP resources).","operationId":"articles.save","parameters":[],"requestBody":{"content":{"application/json":{"example":{"data":{"category":"Картинки и видео","content":{"article":{"coverId":"00000000-0000-4000-8000-000000000101","lead":"Нейтральный фон помогает рассмотреть форму предмета, а интерьерный кадр показывает его в окружении. Это учебный материал с готовыми демонстрационными изображениями, а не реальный клиентский проект.","readingMinutes":"","sources":[],"tags":["Демо","Фотографии","Подготовка материалов"]},"assets":[{"alt":"Светлая керамическая ваза с узким горлышком на бежевом фоне","caption":"Демо: светлая керамическая ваза на нейтральном бежевом фоне.","id":"00000000-0000-4000-8000-000000000101","kind":"image"},{"alt":"Керамическая ваза с оливковой веткой на деревянной тумбе у светлой стены","caption":"Демо: светлая ваза с оливковой веткой на деревянной тумбе в солнечном свете.","id":"00000000-0000-4000-8000-000000000102","kind":"image"}],"blocks":[{"author":"","id":"preparation","items":[],"language":"","layout":"wide","lead":"","mediaIds":[],"role":"","text":"Сохраните **исходный файл**, рассмотрите *фактуру* и силуэт. Файл `studio.jpg` показывает светлую вазу на спокойном бежевом фоне: окружение не отвлекает от формы.\n\n## Проверка перед загрузкой\n\n- Назовите предмет, который действительно виден на изображении.\n- Не выдавайте демонстрацию за работу для клиента.\n\n[Описание работы с файлами](https://eval.su/docs/examples/media-publications.md).","title":"Как читать предметный кадр","tone":"plain","type":"richtext"},{"author":"","id":"details","items":[],"language":"","layout":"wide","lead":"На втором изображении ваза стоит на деревянной тумбе. Ветка и солнечный свет добавляют контекст; этот кадр не подтверждает размеры или характеристики изделия.","mediaIds":["00000000-0000-4000-8000-000000000102"],"role":"","text":"","title":"Предмет в интерьере","tone":"plain","type":"image"},{"author":"","id":"comparison-gallery","items":[],"language":"","layout":"wide","lead":"Откройте изображения, чтобы рассмотреть нейтральную и интерьерную композиции. Под каждым кадром сохранена собственная подпись.","mediaIds":["00000000-0000-4000-8000-000000000101","00000000-0000-4000-8000-000000000102"],"role":"","text":"","title":"Два варианта подачи","tone":"plain","type":"gallery"},{"author":"","id":"checklist","items":["Свои изображения, которые относятся к тексту.","Подпись с контекстом и alt с кратким описанием видимого.","Факты из исходных материалов; неизвестные даты, сроки и показатели не добавляйте."],"language":"","layout":"wide","lead":"","mediaIds":[],"role":"","text":"","title":"Что переносить в собственную статью","tone":"plain","type":"list"},{"author":"","id":"upload-code","items":[],"language":"javascript","layout":"wide","lead":"","mediaIds":[],"role":"","text":"if (file.status !== 'ready') {\n  throw new Error('Файл ещё не готов');\n}","title":"Пример проверки результата","tone":"plain","type":"code"}],"preview":{"assetIds":["00000000-0000-4000-8000-000000000101"],"fit":"contain","focalPoint":{"x":50,"y":50},"kind":"image","summary":"Демо: два кадра, подписи и структура статьи","title":""},"version":1},"description":"Два изображения керамической вазы показывают, как собрать статью с обложкой, подписями, галереей и форматированным текстом.","files":[],"title":"Демо · Предмет на нейтральном фоне и в интерьере"},"requestUuid":"00000000-0000-4000-8000-000000000001"},"schema":{"additionalProperties":false,"properties":{"data":{"additionalProperties":true,"description":"PublicationData. Whole draft, not a patch. For media use ContentDocument version 1: assets (ready profile-owned UUID id, kind, caption, alt), blocks, preview; articles may have content.article. Read /docs/examples/media-publications.md and .json or matching MCP resources before generating media/formatting fields.","type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","data"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Статьи: сохранить черновик","x-human-approval":false,"x-scopes":["articles:write"]}},"/api/v1/commands/articles.submit":{"post":{"operationId":"articles.submit","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Статьи: отправить на проверку","x-human-approval":true,"x-scopes":["articles:submit"]}},"/api/v1/commands/complaints.create":{"post":{"operationId":"complaints.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"requestUuid":{"type":"string"},"subjectKind":{"enum":["profile","publication","message","relation"],"type":"string"},"subjectUuid":{"type":"string"}},"required":["requestUuid","subjectKind","subjectUuid","body"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Сообщить о нарушении","x-human-approval":true,"x-scopes":["complaints:write"]}},"/api/v1/commands/complaints.get":{"get":{"operationId":"complaints.get","parameters":[{"in":"query","name":"complaintUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Открыть обращение","x-scopes":["complaints:read"]}},"/api/v1/commands/complaints.list":{"get":{"operationId":"complaints.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Мои обращения в поддержку","x-scopes":["complaints:read"]}},"/api/v1/commands/customers.get":{"get":{"operationId":"customers.get","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"customerAlias","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Отзывы о заказчике"}},"/api/v1/commands/deals.complete":{"post":{"operationId":"deals.complete","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Принять работу","x-human-approval":true,"x-scopes":["deals:write"]}},"/api/v1/commands/deals.get":{"get":{"operationId":"deals.get","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Открыть сделку","x-scopes":["deals:read"]}},"/api/v1/commands/deals.list":{"get":{"operationId":"deals.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Мои сделки","x-scopes":["deals:read"]}},"/api/v1/commands/deals.results":{"post":{"operationId":"deals.results","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Передать результат работы","x-human-approval":true,"x-scopes":["deals:write"]}},"/api/v1/commands/deals.terminate":{"post":{"operationId":"deals.terminate","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Завершить сотрудничество","x-human-approval":true,"x-scopes":["deals:write"]}},"/api/v1/commands/favorites.list":{"get":{"operationId":"favorites.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Моё избранное","x-scopes":["favorites:read"]}},"/api/v1/commands/favorites.remove":{"post":{"operationId":"favorites.remove","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"entityKind":{"enum":["profile","publication"],"type":"string"},"entityUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","entityKind","entityUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Удалить из избранного","x-human-approval":false,"x-scopes":["favorites:write"]}},"/api/v1/commands/favorites.set":{"post":{"operationId":"favorites.set","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"entityKind":{"enum":["profile","publication"],"type":"string"},"entityUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","entityKind","entityUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Добавить в избранное","x-human-approval":false,"x-scopes":["favorites:write"]}},"/api/v1/commands/job_contacts.get":{"get":{"operationId":"job_contacts.get","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Открыть обращение по работе","x-scopes":["responses:read"]}},"/api/v1/commands/job_contacts.list":{"get":{"operationId":"job_contacts.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обращения по работе","x-scopes":["responses:read"]}},"/api/v1/commands/job_contacts.status":{"post":{"operationId":"job_contacts.status","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Изменить статус обращения","x-human-approval":true,"x-scopes":["responses:write"]}},"/api/v1/commands/job_invitations.create":{"post":{"operationId":"job_invitations.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","body"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Пригласить по резюме","x-human-approval":true,"x-scopes":["responses:write"]}},"/api/v1/commands/job_responses.create":{"post":{"operationId":"job_responses.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","body"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Откликнуться на вакансию","x-human-approval":true,"x-scopes":["responses:write"]}},"/api/v1/commands/jobs.delete":{"post":{"operationId":"jobs.delete","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Вакансии: удалить","x-human-approval":true,"x-scopes":["jobs:write"]}},"/api/v1/commands/jobs.get":{"get":{"operationId":"jobs.get","parameters":[{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Вакансии: открыть редакцию","x-scopes":["jobs:read"]}},"/api/v1/commands/jobs.hide":{"post":{"operationId":"jobs.hide","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Вакансии: скрыть","x-human-approval":true,"x-scopes":["jobs:write"]}},"/api/v1/commands/jobs.list":{"get":{"operationId":"jobs.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Вакансии: мои публикации","x-scopes":["jobs:read"]}},"/api/v1/commands/jobs.restore":{"post":{"operationId":"jobs.restore","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Вакансии: восстановить","x-human-approval":true,"x-scopes":["jobs:write"]}},"/api/v1/commands/jobs.save":{"post":{"description":"Сохранить частный черновик; data заменяет весь черновик. Для правки сначала прочитайте текущий draft, сохраните поля и передайте publicationUuid/expectedRevision. Фото: files.prepare → HTTP PUT uploadUrl → files.complete → ready; UUID того же профиля/назначения в content.assets[].id, подпись caption, alt, content.version=1. Форматирование, обложки и полные примеры: /docs/examples/media-publications.md и .json (также MCP resources).","operationId":"jobs.save","parameters":[],"requestBody":{"content":{"application/json":{"example":{"data":{"category":"Аналитика","description":"Описание задачи, процесса и результата.","title":"Новая публикация"},"requestUuid":"REQUEST_UUID"},"schema":{"additionalProperties":false,"properties":{"data":{"additionalProperties":true,"description":"PublicationData. Whole draft, not a patch. For media use ContentDocument version 1: assets (ready profile-owned UUID id, kind, caption, alt), blocks, preview; articles may have content.article. Read /docs/examples/media-publications.md and .json or matching MCP resources before generating media/formatting fields.","type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","data"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Вакансии: сохранить черновик","x-human-approval":false,"x-scopes":["jobs:write"]}},"/api/v1/commands/jobs.submit":{"post":{"operationId":"jobs.submit","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Вакансии: отправить на проверку","x-human-approval":true,"x-scopes":["jobs:submit"]}},"/api/v1/commands/learning.delete":{"post":{"operationId":"learning.delete","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: удалить","x-human-approval":true,"x-scopes":["learning:write"]}},"/api/v1/commands/learning.get":{"get":{"operationId":"learning.get","parameters":[{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: открыть редакцию","x-scopes":["learning:read"]}},"/api/v1/commands/learning.hide":{"post":{"operationId":"learning.hide","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: скрыть","x-human-approval":true,"x-scopes":["learning:write"]}},"/api/v1/commands/learning.list":{"get":{"operationId":"learning.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: мои публикации","x-scopes":["learning:read"]}},"/api/v1/commands/learning.restore":{"post":{"operationId":"learning.restore","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: восстановить","x-human-approval":true,"x-scopes":["learning:write"]}},"/api/v1/commands/learning.save":{"post":{"description":"Сохранить частный черновик; data заменяет весь черновик. Для правки сначала прочитайте текущий draft, сохраните поля и передайте publicationUuid/expectedRevision. Фото: files.prepare → HTTP PUT uploadUrl → files.complete → ready; UUID того же профиля/назначения в content.assets[].id, подпись caption, alt, content.version=1. Форматирование, обложки и полные примеры: /docs/examples/media-publications.md и .json (также MCP resources).","operationId":"learning.save","parameters":[],"requestBody":{"content":{"application/json":{"example":{"data":{"category":"Аналитика","description":"Описание задачи, процесса и результата.","title":"Новая публикация"},"requestUuid":"REQUEST_UUID"},"schema":{"additionalProperties":false,"properties":{"data":{"additionalProperties":true,"description":"PublicationData. Whole draft, not a patch. For media use ContentDocument version 1: assets (ready profile-owned UUID id, kind, caption, alt), blocks, preview; articles may have content.article. Read /docs/examples/media-publications.md and .json or matching MCP resources before generating media/formatting fields.","type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","data"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: сохранить черновик","x-human-approval":false,"x-scopes":["learning:write"]}},"/api/v1/commands/learning.submit":{"post":{"operationId":"learning.submit","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: отправить на проверку","x-human-approval":true,"x-scopes":["learning:submit"]}},"/api/v1/commands/messages.send":{"post":{"operationId":"messages.send","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","threadUuid","body"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Отправить сообщение","x-human-approval":true,"x-scopes":["messages:write"]}},"/api/v1/commands/offers.accept":{"post":{"operationId":"offers.accept","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Принять предложение","x-human-approval":true,"x-scopes":["offers:write"]}},"/api/v1/commands/offers.create":{"post":{"operationId":"offers.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","body","recipientProfileUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Предложить заказ","x-human-approval":true,"x-scopes":["offers:write"]}},"/api/v1/commands/offers.decline":{"post":{"operationId":"offers.decline","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Отклонить предложение","x-human-approval":true,"x-scopes":["offers:write"]}},"/api/v1/commands/offers.get":{"get":{"operationId":"offers.get","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Открыть предложение","x-scopes":["offers:read"]}},"/api/v1/commands/offers.list":{"get":{"operationId":"offers.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Предложения заказов","x-scopes":["offers:read"]}},"/api/v1/commands/offers.withdraw":{"post":{"operationId":"offers.withdraw","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Отозвать предложение","x-human-approval":true,"x-scopes":["offers:write"]}},"/api/v1/commands/portfolio.delete":{"post":{"operationId":"portfolio.delete","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Портфолио: удалить","x-human-approval":true,"x-scopes":["portfolio:write"]}},"/api/v1/commands/portfolio.get":{"get":{"operationId":"portfolio.get","parameters":[{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Портфолио: открыть редакцию","x-scopes":["portfolio:read"]}},"/api/v1/commands/portfolio.hide":{"post":{"operationId":"portfolio.hide","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Портфолио: скрыть","x-human-approval":true,"x-scopes":["portfolio:write"]}},"/api/v1/commands/portfolio.list":{"get":{"operationId":"portfolio.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Портфолио: мои публикации","x-scopes":["portfolio:read"]}},"/api/v1/commands/portfolio.restore":{"post":{"operationId":"portfolio.restore","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Портфолио: восстановить","x-human-approval":true,"x-scopes":["portfolio:write"]}},"/api/v1/commands/portfolio.save":{"post":{"description":"Сохранить частный черновик; data заменяет весь черновик. Для правки сначала прочитайте текущий draft, сохраните поля и передайте publicationUuid/expectedRevision. Фото: files.prepare → HTTP PUT uploadUrl → files.complete → ready; UUID того же профиля/назначения в content.assets[].id, подпись caption, alt, content.version=1. Форматирование, обложки и полные примеры: /docs/examples/media-publications.md и .json (также MCP resources).","operationId":"portfolio.save","parameters":[],"requestBody":{"content":{"application/json":{"example":{"data":{"category":"Картинки и видео","content":{"assets":[{"alt":"Светлая керамическая ваза с узким горлышком на бежевом фоне","caption":"Демо: светлая керамическая ваза на нейтральном бежевом фоне.","id":"00000000-0000-4000-8000-000000000101","kind":"image"},{"alt":"Керамическая ваза с оливковой веткой на деревянной тумбе у светлой стены","caption":"Демо: светлая ваза с оливковой веткой на деревянной тумбе в солнечном свете.","id":"00000000-0000-4000-8000-000000000102","kind":"image"}],"blocks":[{"author":"","id":"objective","items":[],"language":"","layout":"wide","lead":"","mediaIds":[],"role":"","text":"Показать, как **собрать кейс из изображений**, не теряя контекст каждого кадра. Нейтральный фон выделяет форму вазы, интерьер добавляет окружение.\n\nВ примере нет сведений о клиенте, реальной съёмке или коммерческих результатах.","title":"Задача демонстрации","tone":"plain","type":"richtext"},{"author":"","id":"process","items":["Выбрать предметный кадр для первого экрана и превью.","Добавить интерьерный кадр, объяснив его роль в подаче.","Заполнить подписи и alt отдельно для каждого изображения.","Проверить галерею и превью перед сохранением черновика."],"language":"","layout":"wide","lead":"","mediaIds":[],"role":"","text":"","title":"Порядок сборки кейса","tone":"plain","type":"steps"},{"author":"","id":"visuals","items":[],"language":"","layout":"wide","lead":"Галерея объединяет два демонстрационных изображения. Это разные композиции, а не сравнение «до и после».","mediaIds":["00000000-0000-4000-8000-000000000101","00000000-0000-4000-8000-000000000102"],"role":"","text":"","title":"Визуальные материалы","tone":"plain","type":"gallery"},{"author":"","id":"result","items":[],"language":"","layout":"wide","lead":"","mediaIds":[],"role":"","text":"Готова структура портфолио с двумя изображениями, галереей и подписями. Для настоящей работы замените материалы и укажите только подтверждённый результат.","title":"Результат примера","tone":"soft","type":"callout"}],"preview":{"assetIds":["00000000-0000-4000-8000-000000000101","00000000-0000-4000-8000-000000000102"],"fit":"contain","focalPoint":{"x":50,"y":50},"kind":"gallery","summary":"Демо: предметная и интерьерная композиции","title":""},"version":1},"contribution":"Пример структуры кейса: задача, этапы, визуальные материалы и результат. Реальные исполнители и заказчики не заявлены.","description":"Учебная работа о двух способах показать предмет: отдельно на нейтральном фоне и в жилом окружении. Это демонстрация оформления портфолио, а не клиентский кейс.","files":[],"result":"Демонстрационный комплект из двух изображений: предметная композиция и интерьерная сцена с отдельными подписями.","title":"Демо · Визуальная подача керамической вазы"},"requestUuid":"00000000-0000-4000-8000-000000000001"},"schema":{"additionalProperties":false,"properties":{"data":{"additionalProperties":true,"description":"PublicationData. Whole draft, not a patch. For media use ContentDocument version 1: assets (ready profile-owned UUID id, kind, caption, alt), blocks, preview; articles may have content.article. Read /docs/examples/media-publications.md and .json or matching MCP resources before generating media/formatting fields.","type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","data"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Портфолио: сохранить черновик","x-human-approval":false,"x-scopes":["portfolio:write"]}},"/api/v1/commands/portfolio.submit":{"post":{"operationId":"portfolio.submit","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Портфолио: отправить на проверку","x-human-approval":true,"x-scopes":["portfolio:submit"]}},"/api/v1/commands/profiles.get_own":{"get":{"operationId":"profiles.get_own","parameters":[],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Мой профиль","x-scopes":["profiles:read"]}},"/api/v1/commands/profiles.update":{"post":{"operationId":"profiles.update","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"avatarFileUuid":{"type":"string"},"data":{"additionalProperties":true,"description":"Editable profile fields only; ownership and verification cannot be set; visibility is a separate explicit field","type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"profileUuid":{"type":"string"},"requestUuid":{"type":"string"},"visibility":{"enum":["private","public"],"type":"string"}},"required":["requestUuid","expectedRevision","data"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Сохранить профиль","x-human-approval":true,"x-scopes":["profiles:write"]}},"/api/v1/commands/responses.create":{"post":{"operationId":"responses.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","body"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Откликнуться на заказ","x-human-approval":true,"x-scopes":["responses:write"]}},"/api/v1/commands/responses.get":{"get":{"operationId":"responses.get","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Открыть отклик","x-scopes":["responses:read"]}},"/api/v1/commands/responses.list":{"get":{"operationId":"responses.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Мои отклики","x-scopes":["responses:read"]}},"/api/v1/commands/responses.status":{"post":{"operationId":"responses.status","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Изменить статус отклика","x-human-approval":true,"x-scopes":["responses:write"]}},"/api/v1/commands/responses.withdraw":{"post":{"operationId":"responses.withdraw","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","relationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Отозвать отклик","x-human-approval":true,"x-scopes":["responses:write"]}},"/api/v1/commands/resumes.delete":{"post":{"operationId":"resumes.delete","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Резюме: удалить","x-human-approval":true,"x-scopes":["resumes:write"]}},"/api/v1/commands/resumes.get":{"get":{"operationId":"resumes.get","parameters":[{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Резюме: открыть редакцию","x-scopes":["resumes:read"]}},"/api/v1/commands/resumes.hide":{"post":{"operationId":"resumes.hide","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Резюме: скрыть","x-human-approval":true,"x-scopes":["resumes:write"]}},"/api/v1/commands/resumes.list":{"get":{"operationId":"resumes.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Резюме: мои публикации","x-scopes":["resumes:read"]}},"/api/v1/commands/resumes.restore":{"post":{"operationId":"resumes.restore","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Резюме: восстановить","x-human-approval":true,"x-scopes":["resumes:write"]}},"/api/v1/commands/resumes.save":{"post":{"description":"Сохранить частный черновик; data заменяет весь черновик. Для правки сначала прочитайте текущий draft, сохраните поля и передайте publicationUuid/expectedRevision. Фото: files.prepare → HTTP PUT uploadUrl → files.complete → ready; UUID того же профиля/назначения в content.assets[].id, подпись caption, alt, content.version=1. Форматирование, обложки и полные примеры: /docs/examples/media-publications.md и .json (также MCP resources).","operationId":"resumes.save","parameters":[],"requestBody":{"content":{"application/json":{"example":{"data":{"category":"Аналитика","description":"Описание задачи, процесса и результата.","title":"Новая публикация"},"requestUuid":"REQUEST_UUID"},"schema":{"additionalProperties":false,"properties":{"data":{"additionalProperties":true,"description":"PublicationData. Whole draft, not a patch. For media use ContentDocument version 1: assets (ready profile-owned UUID id, kind, caption, alt), blocks, preview; articles may have content.article. Read /docs/examples/media-publications.md and .json or matching MCP resources before generating media/formatting fields.","type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","data"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Резюме: сохранить черновик","x-human-approval":false,"x-scopes":["resumes:write"]}},"/api/v1/commands/resumes.submit":{"post":{"operationId":"resumes.submit","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Резюме: отправить на проверку","x-human-approval":true,"x-scopes":["resumes:submit"]}},"/api/v1/commands/reviews.create":{"post":{"operationId":"reviews.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"dealUuid":{"type":"string"},"rating":{"maximum":5,"minimum":1,"type":"integer"},"requestUuid":{"type":"string"}},"required":["requestUuid","dealUuid","rating","body"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Оставить отзыв о завершённой работе","x-human-approval":true,"x-scopes":["reviews:write"]}},"/api/v1/commands/reviews.list_own":{"get":{"operationId":"reviews.list_own","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Мои отзывы","x-scopes":["reviews:read"]}},"/api/v1/commands/reviews.list_public":{"get":{"operationId":"reviews.list_public","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"profileUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Отзывы специалиста"}},"/api/v1/commands/reviews.reply":{"post":{"operationId":"reviews.reply","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"maxLength":3000,"minLength":1,"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"}},"required":["requestUuid","reviewUuid","expectedRevision","body"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Ответить на полученный отзыв","x-human-approval":true,"x-scopes":["reviews:write"]}},"/api/v1/commands/reviews.reply_remove":{"post":{"operationId":"reviews.reply_remove","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"}},"required":["requestUuid","reviewUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Удалить свой ответ на отзыв","x-human-approval":true,"x-scopes":["reviews:write"]}},"/api/v1/commands/services.delete":{"post":{"operationId":"services.delete","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Услуги: удалить","x-human-approval":true,"x-scopes":["services:write"]}},"/api/v1/commands/services.get":{"get":{"operationId":"services.get","parameters":[{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Услуги: открыть редакцию","x-scopes":["services:read"]}},"/api/v1/commands/services.hide":{"post":{"operationId":"services.hide","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Услуги: скрыть","x-human-approval":true,"x-scopes":["services:write"]}},"/api/v1/commands/services.list":{"get":{"operationId":"services.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Услуги: мои публикации","x-scopes":["services:read"]}},"/api/v1/commands/services.restore":{"post":{"operationId":"services.restore","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Услуги: восстановить","x-human-approval":true,"x-scopes":["services:write"]}},"/api/v1/commands/services.save":{"post":{"description":"Сохранить частный черновик; data заменяет весь черновик. Для правки сначала прочитайте текущий draft, сохраните поля и передайте publicationUuid/expectedRevision. Фото: files.prepare → HTTP PUT uploadUrl → files.complete → ready; UUID того же профиля/назначения в content.assets[].id, подпись caption, alt, content.version=1. Форматирование, обложки и полные примеры: /docs/examples/media-publications.md и .json (также MCP resources).","operationId":"services.save","parameters":[],"requestBody":{"content":{"application/json":{"example":{"data":{"category":"Картинки и видео","content":{"assets":[{"alt":"Светлая керамическая ваза с узким горлышком на бежевом фоне","caption":"Демо: светлая керамическая ваза на нейтральном бежевом фоне.","id":"00000000-0000-4000-8000-000000000101","kind":"image"},{"alt":"Керамическая ваза с оливковой веткой на деревянной тумбе у светлой стены","caption":"Демо: светлая ваза с оливковой веткой на деревянной тумбе в солнечном свете.","id":"00000000-0000-4000-8000-000000000102","kind":"image"}],"blocks":[{"author":"","id":"scope","items":[],"language":"","layout":"wide","lead":"","mediaIds":[],"role":"","text":"Этот **учебный пример** показывает, как описать подготовку изображений товара. Будущий заказчик должен понимать, какие материалы передать и что получить на выходе.\n\nДля настоящей услуги замените описание на свой процесс и свои условия.","title":"Что входит в услугу","tone":"plain","type":"richtext"},{"author":"","id":"examples","items":[],"language":"","layout":"wide","lead":"Нейтральный фон помогает рассмотреть предмет, интерьерная сцена показывает окружение. Оба изображения демонстрационные.","mediaIds":["00000000-0000-4000-8000-000000000101","00000000-0000-4000-8000-000000000102"],"role":"","text":"","title":"Примеры визуальной подачи","tone":"plain","type":"gallery"},{"author":"","id":"inputs","items":["Исходные изображения и сведения о товаре.","Площадка размещения и требования к размерам файлов.","Пожелания к подаче и примеры подходящего стиля."],"language":"","layout":"wide","lead":"","mediaIds":[],"role":"","text":"","title":"Что понадобится от заказчика","tone":"plain","type":"list"},{"author":"","id":"result","items":[],"language":"","layout":"wide","lead":"","mediaIds":[],"role":"","text":"Согласованный комплект изображений, подписи и выбранное превью. Точный объём и условия определяют по исходным материалам до начала работы.","title":"Что получает заказчик","tone":"soft","type":"callout"}],"preview":{"assetIds":["00000000-0000-4000-8000-000000000101","00000000-0000-4000-8000-000000000102"],"fit":"contain","focalPoint":{"x":50,"y":50},"kind":"gallery","summary":"Демо: состав услуги с визуальными примерами","title":""},"version":1},"description":"Пример оформления услуги: превью, визуальные примеры, состав работ и ограничения. Демонстрационные изображения не подтверждают выполнение заказов и не являются предложением реального исполнителя.","files":[],"result":"Ожидаемый результат услуги: согласованный комплект изображений с подписями и выбранным превью для карточки товара.","service":{"deliverables":["Изображения в согласованных форматах.","Подписи и alt для каждого кадра.","Выбранное превью и порядок изображений."],"limitations":["Пример не устанавливает цену, срок или число правок: их согласуют после изучения задачи.","Для реальной услуги нужны собственные материалы и право на их использование.","Демонстрационные изображения не являются доказательством клиентских результатов."],"relatedWorkIds":[],"stages":["Разобрать задачу и исходные изображения товара.","Согласовать состав кадров и формат размещения.","Подготовить изображения и проверить подписи.","Передать согласованный комплект для публикации."]},"title":"Демо · Подготовка изображений товара к публикации"},"requestUuid":"00000000-0000-4000-8000-000000000001"},"schema":{"additionalProperties":false,"properties":{"data":{"additionalProperties":true,"description":"PublicationData. Whole draft, not a patch. For media use ContentDocument version 1: assets (ready profile-owned UUID id, kind, caption, alt), blocks, preview; articles may have content.article. Read /docs/examples/media-publications.md and .json or matching MCP resources before generating media/formatting fields.","type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","data"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Услуги: сохранить черновик","x-human-approval":false,"x-scopes":["services:write"]}},"/api/v1/commands/services.submit":{"post":{"operationId":"services.submit","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Услуги: отправить на проверку","x-human-approval":true,"x-scopes":["services:submit"]}},"/api/v1/commands/tasks.delete":{"post":{"operationId":"tasks.delete","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Заказы: удалить","x-human-approval":true,"x-scopes":["tasks:write"]}},"/api/v1/commands/tasks.get":{"get":{"operationId":"tasks.get","parameters":[{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Заказы: открыть редакцию","x-scopes":["tasks:read"]}},"/api/v1/commands/tasks.hide":{"post":{"operationId":"tasks.hide","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Заказы: скрыть","x-human-approval":true,"x-scopes":["tasks:write"]}},"/api/v1/commands/tasks.list":{"get":{"operationId":"tasks.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Заказы: мои публикации","x-scopes":["tasks:read"]}},"/api/v1/commands/tasks.restore":{"post":{"operationId":"tasks.restore","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Заказы: восстановить","x-human-approval":true,"x-scopes":["tasks:write"]}},"/api/v1/commands/tasks.save":{"post":{"description":"Сохранить частный черновик; data заменяет весь черновик. Для правки сначала прочитайте текущий draft, сохраните поля и передайте publicationUuid/expectedRevision. Фото: files.prepare → HTTP PUT uploadUrl → files.complete → ready; UUID того же профиля/назначения в content.assets[].id, подпись caption, alt, content.version=1. Форматирование, обложки и полные примеры: /docs/examples/media-publications.md и .json (также MCP resources).","operationId":"tasks.save","parameters":[],"requestBody":{"content":{"application/json":{"example":{"data":{"category":"Аналитика","description":"Описание задачи, процесса и результата.","title":"Новая публикация"},"requestUuid":"REQUEST_UUID"},"schema":{"additionalProperties":false,"properties":{"data":{"additionalProperties":true,"description":"PublicationData. Whole draft, not a patch. For media use ContentDocument version 1: assets (ready profile-owned UUID id, kind, caption, alt), blocks, preview; articles may have content.article. Read /docs/examples/media-publications.md and .json or matching MCP resources before generating media/formatting fields.","type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","data"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Заказы: сохранить черновик","x-human-approval":false,"x-scopes":["tasks:write"]}},"/api/v1/commands/tasks.submit":{"post":{"operationId":"tasks.submit","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","publicationUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Заказы: отправить на проверку","x-human-approval":true,"x-scopes":["tasks:submit"]}},"/api/v1/commands/threads.get":{"get":{"operationId":"threads.get","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Открыть существующий диалог","x-scopes":["messages:read"]}},"/api/v1/commands/threads.list":{"get":{"operationId":"threads.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Мои диалоги","x-scopes":["messages:read"]}},"/api/v1/commands/threads.messages":{"get":{"operationId":"threads.messages","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"budget","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"deadline","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"publicationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"references","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"}},{"in":"query","name":"relationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Сообщения диалога","x-scopes":["messages:read"]}},"/api/v1/commands/threads.open":{"post":{"operationId":"threads.open","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"budget":{"type":"string"},"cursor":{"type":"string"},"deadline":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"references":{"items":{"additionalProperties":false,"properties":{"kind":{"type":"string"},"uuid":{"type":"string"}},"required":["kind","uuid"],"type":"object"},"maxItems":20,"type":"array"},"relationUuid":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"},"threadUuid":{"type":"string"}},"required":["requestUuid","recipientProfileUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Открыть диалог","x-human-approval":false,"x-scopes":["messages:write"]}},"/api/v1/customers/{customerAlias}":{"get":{"description":"Случайный стабильный customerAlias не связан с UUID профиля. Возвращаются alias, name (Заказчик), items полученных одобренных отзывов и nextCursor. Клиентская сторона отзывов содержит только customerAlias, без profile UUID, legacy ID и аватара. Автор-специалист и его публичный проект могут содержать безопасные ссылки. Профиль заказчика может быть закрыт. Страница доступна при наличии опубликованного заказа или одобренного отзыва; до первого отзыва items пуст.","operationId":"getAnonymousCustomerReviews","parameters":[{"in":"path","name":"customerAlias","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","schema":{"type":"string"}},{"in":"query","name":"limit","schema":{"default":25,"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"404":{"description":"Публичная репутация с этим alias недоступна"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{}],"summary":"Обезличенная репутация заказчика","x-browser-only":false}},"/api/v1/event-catalog":{"get":{"description":"Every produced event: label, group, read scopes, domain retrieval, reference/current examples, fields and delivery headers. Examples are synthetic and do not read user data.","operationId":"events.catalog","parameters":[],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Данные и примеры событий","x-scopes":["events:read"]}},"/api/v1/event-types":{"get":{"description":"Only types with committed domain producers are advertised.","operationId":"events.types","parameters":[],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Типы событий","x-scopes":["events:read"]}},"/api/v1/events":{"get":{"description":"Cursor is opaque, profile/filter-bound and expires after 30 days; now returns a cursor without events. Domain read scopes and current visibility are rechecked.","operationId":"events.list","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"now","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"types","required":false,"schema":{"items":{"enum":["complaint.created","complaint.moderated","deal.started","deal.status_changed","favorite.changed","file.ready","job_invitation.received","job_invitation.status_changed","job_invitation.withdrawn","job_response.received","job_response.status_changed","job_response.withdrawn","learning.appeal.opened","learning.checker.failed","learning.community.created","learning.community.replied","learning.community.resolved","learning.course.completed","learning.course.published","learning.deadline.approaching","learning.deadline.changed","learning.enrollment.activated","learning.enrollment.completed","learning.enrollment.invited","learning.enrollment.pause","learning.enrollment.requested","learning.enrollment.restored","learning.enrollment.resume","learning.enrollment.start","learning.enrollment.transferred","learning.enrollment.withdraw","learning.enrollment.withdrawn","learning.module.completed","learning.review.overdue","learning.review.requested","learning.revision.requested","learning.run.cancelled","learning.step.available","learning.submission.accepted","learning.submission.graded","message.received","offer.received","offer.status_changed","offer.withdrawn","profile.updated","publication.deleted","publication.draft_saved","publication.hidden","publication.moderated","publication.restored","publication.submitted","response.received","response.status_changed","response.withdrawn","review.moderated","review.submitted","task.closed"],"type":"string"},"maxItems":128,"minItems":1,"type":"array","uniqueItems":true}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Получить события","x-scopes":["events:read"]}},"/api/v1/events/{uuid}":{"get":{"description":"Minimal event IDs and status; private object bodies are not embedded.","operationId":"events.get","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Прочитать событие","x-scopes":["events:read"]}},"/api/v1/files/uploads":{"post":{"description":"Подготовить загрузку: фактические name/mimeType/size/SHA-256 и purpose, равный виду публикации. Ответ после исполнения содержит uuid/uploadUrl/expiresAt. Передайте исходные байты HTTP PUT на uploadUrl, затем files.complete. MCP не передаёт бинарные байты; не вставляйте Base64 или OpenAI file ID. Пример: /docs/examples/media-publications.md (MCP resource).","operationId":"files.prepare","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"mimeType":{"type":"string"},"name":{"type":"string"},"purpose":{"type":"string"},"requestUuid":{"type":"string"},"sha256":{"type":"string"},"size":{"minimum":0,"type":"integer"}},"required":["requestUuid","name","mimeType","size","sha256","purpose"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Подготовить загрузку файла","x-human-approval":false,"x-scopes":["files:write"]}},"/api/v1/files/uploads/{uuid}/complete":{"post":{"description":"После успешного HTTP PUT завершить загрузку и проверить status=ready. Только готовый UUID того же профиля и purpose можно использовать в assets. При неизвестном исходе повторите ту же команду или files.status. Пример: /docs/examples/media-publications.md.","operationId":"files.complete","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"fileUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","fileUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Завершить загрузку","x-human-approval":false,"x-scopes":["files:write"]}},"/api/v1/files/uploads/{uuid}/content":{"put":{"operationId":"uploadFileBytes","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/octet-stream":{"schema":{"format":"binary","type":"string"}}},"required":true},"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]},{"bearerAuth":[]}],"summary":"Передать байты подготовленного файла","x-browser-only":false}},"/api/v1/files/{uuid}":{"get":{"operationId":"files.status","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Проверить файл","x-scopes":["files:read"]}},"/api/v1/files/{uuid}/content":{"get":{"operationId":"downloadFileBytes","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]},{"bearerAuth":[]},{}],"summary":"Скачать публичный либо доступный участнику файл","x-browser-only":false}},"/api/v1/integration-commands/prepare":{"post":{"operationId":"prepareIntegrationCommand","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"arguments":{"additionalProperties":true,"type":"object"},"operationId":{"type":"string"}},"required":["operationId","arguments"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]},{"bearerAuth":[]}],"summary":"Подготовить точное действие без выполнения","x-browser-only":false}},"/api/v1/integration-commands/{uuid}":{"get":{"operationId":"getIntegrationCommand","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]},{"bearerAuth":[]}],"summary":"Состояние; браузеру доступен точный просмотр аргументов","x-browser-only":false}},"/api/v1/integration-commands/{uuid}/approve":{"post":{"operationId":"approveIntegrationCommand","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"argsHash":{"type":"string"}},"required":["argsHash"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Решение владельца по точным аргументам; само действие не выполняется","x-browser-only":true}},"/api/v1/integration-commands/{uuid}/commit":{"post":{"operationId":"commitIntegrationCommand","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]},{"bearerAuth":[]}],"summary":"Выполнить подготовленное действие исходным подключением","x-browser-only":false}},"/api/v1/integration-commands/{uuid}/reject":{"post":{"operationId":"rejectIntegrationCommand","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"argsHash":{"type":"string"}},"required":["argsHash"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Решение владельца по точным аргументам; само действие не выполняется","x-browser-only":true}},"/api/v1/integration-notifications":{"get":{"operationId":"listIntegrationNotifications","parameters":[],"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]},{"bearerAuth":[]}],"summary":"Уведомления выбранного профиля","x-browser-only":false}},"/api/v1/integration-notifications/{uuid}/read":{"post":{"operationId":"readIntegrationNotification","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]},{"bearerAuth":[]}],"summary":"Отметить своё уведомление прочитанным","x-browser-only":false}},"/api/v1/integrations/keys":{"get":{"operationId":"listIntegrationKeys","parameters":[],"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Мои ключи без секретов","x-browser-only":true},"post":{"operationId":"createIntegrationKey","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expiresInDays":{"maximum":90,"minimum":1,"type":"integer"},"name":{"type":"string"},"profileUuid":{"type":"string"},"scopes":{"items":{"type":"string"},"type":"array"},"surfaces":{"items":{"enum":["api","mcp"],"type":"string"},"type":"array"}},"required":["name","scopes","surfaces","expiresInDays"],"type":"object"}}},"required":true},"responses":{"201":{"description":"Ключ создан; сохраните secret сейчас"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Создать ключ; секрет возвращается один раз","x-browser-only":true}},"/api/v1/integrations/keys/{uuid}":{"delete":{"operationId":"revokeIntegrationKey","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Доступ отозван"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Отозвать ключ","x-browser-only":true}},"/api/v1/integrations/oauth/grants":{"get":{"operationId":"listOAuthGrants","parameters":[],"responses":{"200":{"description":"Успешный результат"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Подключённые приложения","x-browser-only":true}},"/api/v1/integrations/oauth/grants/{uuid}":{"delete":{"operationId":"revokeOAuthGrant","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"204":{"description":"Доступ отозван"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Отозвать приложение и его токены","x-browser-only":true}},"/api/v1/integrations/personal-key":{"get":{"description":"Управление только через браузерную сессию владельца. Все изменения требуют Origin и текущую version; при 409 прочитайте ключ заново. Просмотр секрета, смена прав и перевыпуск требуют входа не старше 15 минут. Отключение не требует повторного входа.","operationId":"getPersonalAPIKey","parameters":[],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item":{"additionalProperties":false,"properties":{"expiresAt":{"format":"date-time","type":"string"},"lastUsedAt":{"format":"date-time","type":["string","null"]},"name":{"type":"string"},"profileUuid":{"type":"string"},"revokedAt":{"format":"date-time","type":["string","null"]},"scopes":{"items":{"enum":["reviews:read","reviews:write","complaints:read","complaints:write","portfolio:read","portfolio:write","portfolio:submit","services:read","services:write","services:submit","articles:read","articles:write","articles:submit","jobs:read","jobs:write","jobs:submit","resumes:read","resumes:write","resumes:submit","learning:read","learning:write","learning:submit","learning:study","learning:enroll","learning:answer","learning:author","learning:review","learning:grade_override","learning:manage","learning:checkers","learning:export","tasks:submit","profiles:read","profiles:write","publications:read","publications:write","publications:submit","files:read","files:write","tasks:read","tasks:write","responses:read","responses:write","offers:read","offers:write","deals:read","deals:write","messages:read","messages:write","favorites:read","favorites:write","events:read","webhooks:read","webhooks:write","automations:read","automations:write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true},"secretAvailable":{"type":"boolean"},"surfaces":{"items":{"enum":["api","mcp"],"type":"string"},"maxItems":2,"minItems":1,"type":"array","uniqueItems":true},"uuid":{"type":"string"},"version":{"minimum":1,"type":"integer"}},"required":["uuid","name","profileUuid","scopes","surfaces","expiresAt","version","secretAvailable"],"type":"object"}},"required":["item"],"type":"object"}}},"description":"Личный ключ и его актуальная версия"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Личный API-ключ без секрета","x-browser-only":true},"patch":{"description":"Управление только через браузерную сессию владельца. Все изменения требуют Origin и текущую version; при 409 прочитайте ключ заново. Просмотр секрета, смена прав и перевыпуск требуют входа не старше 15 минут. Отключение не требует повторного входа.","operationId":"updatePersonalAPIKey","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"scopes":{"items":{"enum":["reviews:read","reviews:write","complaints:read","complaints:write","portfolio:read","portfolio:write","portfolio:submit","services:read","services:write","services:submit","articles:read","articles:write","articles:submit","jobs:read","jobs:write","jobs:submit","resumes:read","resumes:write","resumes:submit","learning:read","learning:write","learning:submit","learning:study","learning:enroll","learning:answer","learning:author","learning:review","learning:grade_override","learning:manage","learning:checkers","learning:export","tasks:submit","profiles:read","profiles:write","publications:read","publications:write","publications:submit","files:read","files:write","tasks:read","tasks:write","responses:read","responses:write","offers:read","offers:write","deals:read","deals:write","messages:read","messages:write","favorites:read","favorites:write","events:read","webhooks:read","webhooks:write","automations:read","automations:write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true},"surfaces":{"items":{"enum":["api","mcp"],"type":"string"},"maxItems":2,"minItems":1,"type":"array","uniqueItems":true},"version":{"minimum":1,"type":"integer"}},"required":["version","scopes","surfaces"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item":{"additionalProperties":false,"properties":{"expiresAt":{"format":"date-time","type":"string"},"lastUsedAt":{"format":"date-time","type":["string","null"]},"name":{"type":"string"},"profileUuid":{"type":"string"},"revokedAt":{"format":"date-time","type":["string","null"]},"scopes":{"items":{"enum":["reviews:read","reviews:write","complaints:read","complaints:write","portfolio:read","portfolio:write","portfolio:submit","services:read","services:write","services:submit","articles:read","articles:write","articles:submit","jobs:read","jobs:write","jobs:submit","resumes:read","resumes:write","resumes:submit","learning:read","learning:write","learning:submit","learning:study","learning:enroll","learning:answer","learning:author","learning:review","learning:grade_override","learning:manage","learning:checkers","learning:export","tasks:submit","profiles:read","profiles:write","publications:read","publications:write","publications:submit","files:read","files:write","tasks:read","tasks:write","responses:read","responses:write","offers:read","offers:write","deals:read","deals:write","messages:read","messages:write","favorites:read","favorites:write","events:read","webhooks:read","webhooks:write","automations:read","automations:write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true},"secretAvailable":{"type":"boolean"},"surfaces":{"items":{"enum":["api","mcp"],"type":"string"},"maxItems":2,"minItems":1,"type":"array","uniqueItems":true},"uuid":{"type":"string"},"version":{"minimum":1,"type":"integer"}},"required":["uuid","name","profileUuid","scopes","surfaces","expiresAt","version","secretAvailable"],"type":"object"}},"required":["item"],"type":"object"}}},"description":"Личный ключ и его актуальная версия"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Изменить разрешения личного ключа","x-browser-only":true}},"/api/v1/integrations/personal-key/reveal":{"post":{"description":"Управление только через браузерную сессию владельца. Все изменения требуют Origin и текущую version; при 409 прочитайте ключ заново. Просмотр секрета, смена прав и перевыпуск требуют входа не старше 15 минут. Отключение не требует повторного входа.","operationId":"revealPersonalAPIKey","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"version":{"minimum":1,"type":"integer"}},"required":["version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item":{"additionalProperties":false,"properties":{"expiresAt":{"format":"date-time","type":"string"},"lastUsedAt":{"format":"date-time","type":["string","null"]},"name":{"type":"string"},"profileUuid":{"type":"string"},"revokedAt":{"format":"date-time","type":["string","null"]},"scopes":{"items":{"enum":["reviews:read","reviews:write","complaints:read","complaints:write","portfolio:read","portfolio:write","portfolio:submit","services:read","services:write","services:submit","articles:read","articles:write","articles:submit","jobs:read","jobs:write","jobs:submit","resumes:read","resumes:write","resumes:submit","learning:read","learning:write","learning:submit","learning:study","learning:enroll","learning:answer","learning:author","learning:review","learning:grade_override","learning:manage","learning:checkers","learning:export","tasks:submit","profiles:read","profiles:write","publications:read","publications:write","publications:submit","files:read","files:write","tasks:read","tasks:write","responses:read","responses:write","offers:read","offers:write","deals:read","deals:write","messages:read","messages:write","favorites:read","favorites:write","events:read","webhooks:read","webhooks:write","automations:read","automations:write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true},"secretAvailable":{"type":"boolean"},"surfaces":{"items":{"enum":["api","mcp"],"type":"string"},"maxItems":2,"minItems":1,"type":"array","uniqueItems":true},"uuid":{"type":"string"},"version":{"minimum":1,"type":"integer"}},"required":["uuid","name","profileUuid","scopes","surfaces","expiresAt","version","secretAvailable"],"type":"object"},"secret":{"description":"Секрет показывается один раз; не сохраняйте его в URL, логах или промптах.","type":"string"}},"required":["item","secret"],"type":"object"}}},"description":"Личный ключ и его актуальная версия"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Показать автоматически созданный ключ один раз","x-browser-only":true}},"/api/v1/integrations/personal-key/revoke":{"post":{"description":"Управление только через браузерную сессию владельца. Все изменения требуют Origin и текущую version; при 409 прочитайте ключ заново. Просмотр секрета, смена прав и перевыпуск требуют входа не старше 15 минут. Отключение не требует повторного входа.","operationId":"revokePersonalAPIKey","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"version":{"minimum":1,"type":"integer"}},"required":["version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item":{"additionalProperties":false,"properties":{"expiresAt":{"format":"date-time","type":"string"},"lastUsedAt":{"format":"date-time","type":["string","null"]},"name":{"type":"string"},"profileUuid":{"type":"string"},"revokedAt":{"format":"date-time","type":["string","null"]},"scopes":{"items":{"enum":["reviews:read","reviews:write","complaints:read","complaints:write","portfolio:read","portfolio:write","portfolio:submit","services:read","services:write","services:submit","articles:read","articles:write","articles:submit","jobs:read","jobs:write","jobs:submit","resumes:read","resumes:write","resumes:submit","learning:read","learning:write","learning:submit","learning:study","learning:enroll","learning:answer","learning:author","learning:review","learning:grade_override","learning:manage","learning:checkers","learning:export","tasks:submit","profiles:read","profiles:write","publications:read","publications:write","publications:submit","files:read","files:write","tasks:read","tasks:write","responses:read","responses:write","offers:read","offers:write","deals:read","deals:write","messages:read","messages:write","favorites:read","favorites:write","events:read","webhooks:read","webhooks:write","automations:read","automations:write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true},"secretAvailable":{"type":"boolean"},"surfaces":{"items":{"enum":["api","mcp"],"type":"string"},"maxItems":2,"minItems":1,"type":"array","uniqueItems":true},"uuid":{"type":"string"},"version":{"minimum":1,"type":"integer"}},"required":["uuid","name","profileUuid","scopes","surfaces","expiresAt","version","secretAvailable"],"type":"object"}},"required":["item"],"type":"object"}}},"description":"Личный ключ и его актуальная версия"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Отключить личный API-ключ","x-browser-only":true}},"/api/v1/integrations/personal-key/rotate":{"post":{"description":"Управление только через браузерную сессию владельца. Все изменения требуют Origin и текущую version; при 409 прочитайте ключ заново. Просмотр секрета, смена прав и перевыпуск требуют входа не старше 15 минут. Отключение не требует повторного входа.","operationId":"rotatePersonalAPIKey","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"version":{"minimum":1,"type":"integer"}},"required":["version"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"item":{"additionalProperties":false,"properties":{"expiresAt":{"format":"date-time","type":"string"},"lastUsedAt":{"format":"date-time","type":["string","null"]},"name":{"type":"string"},"profileUuid":{"type":"string"},"revokedAt":{"format":"date-time","type":["string","null"]},"scopes":{"items":{"enum":["reviews:read","reviews:write","complaints:read","complaints:write","portfolio:read","portfolio:write","portfolio:submit","services:read","services:write","services:submit","articles:read","articles:write","articles:submit","jobs:read","jobs:write","jobs:submit","resumes:read","resumes:write","resumes:submit","learning:read","learning:write","learning:submit","learning:study","learning:enroll","learning:answer","learning:author","learning:review","learning:grade_override","learning:manage","learning:checkers","learning:export","tasks:submit","profiles:read","profiles:write","publications:read","publications:write","publications:submit","files:read","files:write","tasks:read","tasks:write","responses:read","responses:write","offers:read","offers:write","deals:read","deals:write","messages:read","messages:write","favorites:read","favorites:write","events:read","webhooks:read","webhooks:write","automations:read","automations:write"],"type":"string"},"minItems":1,"type":"array","uniqueItems":true},"secretAvailable":{"type":"boolean"},"surfaces":{"items":{"enum":["api","mcp"],"type":"string"},"maxItems":2,"minItems":1,"type":"array","uniqueItems":true},"uuid":{"type":"string"},"version":{"minimum":1,"type":"integer"}},"required":["uuid","name","profileUuid","scopes","surfaces","expiresAt","version","secretAvailable"],"type":"object"},"secret":{"description":"Секрет показывается один раз; не сохраняйте его в URL, логах или промптах.","type":"string"}},"required":["item","secret"],"type":"object"}}},"description":"Личный ключ и его актуальная версия"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Перевыпустить личный ключ и отключить предыдущий","x-browser-only":true}},"/api/v1/learning/appeals/{appeal}/decision":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.appeals.decide","parameters":[{"in":"path","name":"appeal","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"appealUuid":{"type":"string"},"criteria":{"additionalProperties":{"minimum":0,"type":"integer"},"type":"object"},"criteriaFeedback":{"additionalProperties":{"type":"string"},"type":"object"},"criteriaScores":{"additionalProperties":{"type":"string"},"type":"object"},"dueAt":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"extraAttempts":{"minimum":0,"type":"integer"},"feedback":{"type":"string"},"rawScore":{"type":"string"},"reason":{"type":"string"},"replacementNodeUuid":{"type":"string"},"requestUuid":{"type":"string"},"resolution":{"enum":["confirm","re_review","correct_score","extra_attempt","extend_deadline","replace_assignment"],"type":"string"},"score":{"minimum":0,"type":"integer"},"status":{"type":"string"},"submissionClosesAt":{"type":"string"},"transferUuid":{"type":"string"},"verdict":{"type":"string"}},"required":["appealUuid","requestUuid","expectedRevision","status","reason"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: рассмотреть апелляцию","x-human-approval":true,"x-scopes":["learning:review"]}},"/api/v1/learning/appeals/{appeal}/escalate":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.appeals.escalate","parameters":[{"in":"path","name":"appeal","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"appealUuid":{"type":"string"},"criterionUuids":{"items":{"type":"string"},"maxItems":30,"type":"array"},"evaluationUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"fileUuids":{"items":{"type":"string"},"maxItems":16,"type":"array"},"reason":{"type":"string"},"requestUuid":{"type":"string"}},"required":["appealUuid","requestUuid","expectedRevision","reason"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: следующая инстанция апелляции","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/appeals/{appeal}/replacement-options":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.appeals.replacements","parameters":[{"in":"path","name":"appeal","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: подтверждённые варианты замены задания","x-scopes":["learning:review"]}},"/api/v1/learning/author/courses":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.author_list","parameters":[{"in":"query","name":"admissionOpen","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"durationMaxHours","required":false,"schema":{"maximum":8760,"minimum":0,"type":"integer"}},{"in":"query","name":"language","required":false,"schema":{"type":"string"}},{"in":"query","name":"level","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"manualReview","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"mode","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"skill","required":false,"schema":{"type":"string"}},{"in":"query","name":"startsBefore","required":false,"schema":{"type":"string"}},{"in":"query","name":"startsFrom","required":false,"schema":{"type":"string"}},{"in":"query","name":"topic","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: мои курсы","x-scopes":["learning:author"]}},"/api/v1/learning/author/courses/{course}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.author_get","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: редактор программы","x-scopes":["learning:author"]}},"/api/v1/learning/courses":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.list","parameters":[{"in":"query","name":"admissionOpen","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"durationMaxHours","required":false,"schema":{"maximum":8760,"minimum":0,"type":"integer"}},{"in":"query","name":"language","required":false,"schema":{"type":"string"}},{"in":"query","name":"level","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"manualReview","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"mode","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"skill","required":false,"schema":{"type":"string"}},{"in":"query","name":"startsBefore","required":false,"schema":{"type":"string"}},{"in":"query","name":"startsFrom","required":false,"schema":{"type":"string"}},{"in":"query","name":"topic","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Обучение: каталог курсов"},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"requestUuid":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"}},"required":["requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: создать курс","x-human-approval":false,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/from-publication":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.from_publication","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"publicationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["requestUuid","expectedRevision","publicationUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: создать программу из своей карточки","x-human-approval":true,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.get","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Обучение: карточка и программа"},"patch":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.update","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"courseUuid":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision","draft"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: сохранить программу","x-human-approval":false,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}/analytics":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.analytics.get","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Учебные показатели","x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/analytics/export":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.analytics.export","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["courseUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Выгрузить учебные показатели","x-human-approval":true,"x-scopes":["learning:export"]}},"/api/v1/learning/courses/{course}/appeals":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.appeals.list","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: апелляции","x-scopes":["learning:review"]}},"/api/v1/learning/courses/{course}/archive":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.archive","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: архивировать курс","x-human-approval":true,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}/audit":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.audit.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Журнал учебных изменений","x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/automatic-override-candidates":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.automatic_overrides.candidates","parameters":[{"in":"query","name":"automaticEvaluationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"overrideUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rawScore","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"verdict","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Работы для явных исключений автопроверки","x-scopes":["learning:review"]}},"/api/v1/learning/courses/{course}/bundle":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.bundle","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"appealUuid":{"type":"string"},"bundle":{"additionalProperties":false,"properties":{"authorName":{"type":"string"},"checkers":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"checksum":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"exportedAt":{"format":"date-time","type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"data":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"sha256":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"schemaVersion":{"minimum":0,"type":"integer"},"sourceCourseUuid":{"type":"string"}},"required":[],"type":"object"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"difficulty":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"itemUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"mappings":{"items":{"additionalProperties":false,"properties":{"mode":{"type":"string"},"reason":{"type":"string"},"sourceNodeUuid":{"type":"string"},"targetNodeUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"nodeUuid":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"skills":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"},"targetRunUuid":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"transferUuid":{"type":"string"}},"required":["courseUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Выгрузить авторский пакет","x-human-approval":true,"x-scopes":["learning:export"]}},"/api/v1/learning/courses/{course}/checkers":{"get":{"description":"Проверяющая программа исполняется только в отдельной изолированной среде. Сохранение версии не запускает Python. Preflight проходит положительные, отрицательные и граничные примеры; без готового runner публикация блокируется.","operationId":"learning.checkers.list","parameters":[{"in":"query","name":"checkerUuid","required":false,"schema":{"type":"string"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"jobUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":true,"description":"Immutable Python checker spec: mode stdio/function/file, profile standard/data, tests, samples, integer maxScore/passScore. Source/expected data are private to assigned checker developers.","type":"object"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: версии Python-проверок","x-scopes":["learning:checkers"]},"post":{"description":"Проверяющая программа исполняется только в отдельной изолированной среде. Сохранение версии не запускает Python. Preflight проходит положительные, отрицательные и граничные примеры; без готового runner публикация блокируется.","operationId":"learning.checkers.create","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"checkerUuid":{"type":"string"},"courseUuid":{"type":"string"},"jobUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":true,"description":"Immutable Python checker spec: mode stdio/function/file, profile standard/data, tests, samples, integer maxScore/passScore. Source/expected data are private to assigned checker developers.","type":"object"},"title":{"type":"string"}},"required":["courseUuid","requestUuid","title","spec"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: создать Python-проверку","x-human-approval":false,"x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/checkers/{checker}":{"get":{"description":"Проверяющая программа исполняется только в отдельной изолированной среде. Сохранение версии не запускает Python. Preflight проходит положительные, отрицательные и граничные примеры; без готового runner публикация блокируется.","operationId":"learning.checkers.get","parameters":[{"in":"path","name":"checker","required":true,"schema":{"type":"string"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"jobUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":true,"description":"Immutable Python checker spec: mode stdio/function/file, profile standard/data, tests, samples, integer maxScore/passScore. Source/expected data are private to assigned checker developers.","type":"object"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: открыть Python-проверку","x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/checkers/{checker}/control-history":{"get":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.checkers.control_history","parameters":[{"in":"query","name":"answer","required":false,"schema":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"}},{"in":"path","name":"checker","required":true,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"items","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"query","name":"jobUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"planUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"policy","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"regradeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"}},{"in":"query","name":"stdin","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"testKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: История остановок и возобновлений проверки","x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/checkers/{checker}/preflight":{"post":{"description":"Проверяющая программа исполняется только в отдельной изолированной среде. Сохранение версии не запускает Python. Preflight проходит положительные, отрицательные и граничные примеры; без готового runner публикация блокируется.","operationId":"learning.checkers.preflight","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"checker","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"checkerUuid":{"type":"string"},"courseUuid":{"type":"string"},"jobUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":true,"description":"Immutable Python checker spec: mode stdio/function/file, profile standard/data, tests, samples, integer maxScore/passScore. Source/expected data are private to assigned checker developers.","type":"object"},"title":{"type":"string"}},"required":["courseUuid","requestUuid","checkerUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: тестировать проверку в изоляции","x-human-approval":false,"x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/checkers/{checker}/resume":{"post":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.checkers.resume","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"checker","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"checkerUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"jobUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"nodeUuid":{"type":"string"},"planUuid":{"type":"string"},"policy":{"type":"string"},"reason":{"type":"string"},"regradeUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"stdin":{"type":"string"},"submissionUuid":{"type":"string"},"testKey":{"type":"string"},"title":{"type":"string"}},"required":["courseUuid","checkerUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Возобновить автоматическую проверку","x-human-approval":true,"x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/checkers/{checker}/suspend":{"post":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.checkers.suspend","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"checker","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"checkerUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"jobUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"nodeUuid":{"type":"string"},"planUuid":{"type":"string"},"policy":{"type":"string"},"reason":{"type":"string"},"regradeUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"stdin":{"type":"string"},"submissionUuid":{"type":"string"},"testKey":{"type":"string"},"title":{"type":"string"}},"required":["courseUuid","checkerUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Приостановить автоматическую проверку","x-human-approval":true,"x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/copy":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.copy","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"},"slug":{"type":"string"},"title":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: копировать курс","x-human-approval":true,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}/course-reviews":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.course_reviews.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Отзывы об обучении","x-scopes":["learning:read"]}},"/api/v1/learning/courses/{course}/demo-progress":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.demo.progress","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: learning.demo.progress","x-scopes":["learning:study"]}},"/api/v1/learning/courses/{course}/enrollments":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.course_list","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: учащиеся потока","x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/enrollments/{enrollment}/threads":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.community.staff_create","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["courseUuid","enrollmentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Связаться с учащимся","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/exports":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.exports.course","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"courseUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["courseUuid","requestUuid","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: экспорт программы","x-human-approval":true,"x-scopes":["learning:export"]}},"/api/v1/learning/courses/{course}/extension-requests":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.extensions.course_list","parameters":[{"in":"query","name":"accessEndsAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"allowShortening","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"decision","required":false,"schema":{"type":"string"}},{"in":"query","name":"dueAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuids","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"extensionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"extraAttempts","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"mediaKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"positionMs","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"previewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"startedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"submissionClosesAt","required":false,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Запросы продления учащихся","x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/grading-jobs/{job}/diagnostics":{"get":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.grading.diagnostics","parameters":[{"in":"query","name":"answer","required":false,"schema":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"}},{"in":"query","name":"checkerUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"items","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"path","name":"job","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"planUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"policy","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"regradeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"}},{"in":"query","name":"stdin","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"testKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Приватная диагностика проверяющей программы","x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/grading-usage":{"get":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.grading.usage","parameters":[{"in":"query","name":"answer","required":false,"schema":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"}},{"in":"query","name":"checkerUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"items","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"query","name":"jobUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"planUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"policy","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"regradeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"}},{"in":"query","name":"stdin","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"testKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Ресурсы автоматической проверки","x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/groups":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.groups.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Учебные группы","x-scopes":["learning:study"]}},"/api/v1/learning/courses/{course}/library":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.library.save","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"appealUuid":{"type":"string"},"bundle":{"additionalProperties":false,"properties":{"authorName":{"type":"string"},"checkers":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"checksum":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"exportedAt":{"format":"date-time","type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"data":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"sha256":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"schemaVersion":{"minimum":0,"type":"integer"},"sourceCourseUuid":{"type":"string"}},"required":[],"type":"object"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"difficulty":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"itemUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"mappings":{"items":{"additionalProperties":false,"properties":{"mode":{"type":"string"},"reason":{"type":"string"},"sourceNodeUuid":{"type":"string"},"targetNodeUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"nodeUuid":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"skills":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"},"targetRunUuid":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"transferUuid":{"type":"string"}},"required":["courseUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Сохранить задание в библиотеку","x-human-approval":true,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}/library/{item}/insert":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.library.insert","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"item","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"appealUuid":{"type":"string"},"bundle":{"additionalProperties":false,"properties":{"authorName":{"type":"string"},"checkers":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"checksum":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"exportedAt":{"format":"date-time","type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"data":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"sha256":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"schemaVersion":{"minimum":0,"type":"integer"},"sourceCourseUuid":{"type":"string"}},"required":[],"type":"object"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"difficulty":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"itemUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"mappings":{"items":{"additionalProperties":false,"properties":{"mode":{"type":"string"},"reason":{"type":"string"},"sourceNodeUuid":{"type":"string"},"targetNodeUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"nodeUuid":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"skills":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"},"targetRunUuid":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"transferUuid":{"type":"string"}},"required":["courseUuid","itemUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Вставить редакцию из библиотеки","x-human-approval":true,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}/message-recipients":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.community.recipients","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Найти учащегося для обращения","x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/ownership/candidates":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.ownership.candidates","parameters":[{"in":"query","name":"candidateCursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"candidateLimit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"candidateQuery","required":false,"schema":{"type":"string"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"expiresAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"invitationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewerUserUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: найти нового владельца","x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/ownership/invite":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.ownership.invite","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"candidateCursor":{"type":"string"},"candidateLimit":{"minimum":0,"type":"integer"},"candidateQuery":{"type":"string"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"format":"date-time","type":"string"},"invitationUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"requestUuid":{"type":"string"},"reviewerUserUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["courseUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: предложить передачу курса","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/preflights/{job}":{"get":{"description":"Проверяющая программа исполняется только в отдельной изолированной среде. Сохранение версии не запускает Python. Preflight проходит положительные, отрицательные и граничные примеры; без готового runner публикация блокируется.","operationId":"learning.preflights.get","parameters":[{"in":"query","name":"checkerUuid","required":false,"schema":{"type":"string"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"job","required":true,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":true,"description":"Immutable Python checker spec: mode stdio/function/file, profile standard/data, tests, samples, integer maxScore/passScore. Source/expected data are private to assigned checker developers.","type":"object"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: результат предварительной проверки","x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/preview":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.preview","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"admittedAt":{"type":"string"},"at":{"type":"string"},"courseUuid":{"type":"string"},"progress":{"items":{"additionalProperties":false,"properties":{"nodeUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"state":{"type":"string"}},"required":["nodeUuid","state"],"type":"object"},"type":"array"},"runUuid":{"type":"string"},"startedAt":{"type":"string"},"status":{"type":"string"}},"required":["courseUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: посмотреть глазами ученика","x-human-approval":false,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}/publish":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.publish","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: опубликовать версию","x-human-approval":true,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}/regrade-candidates":{"get":{"description":"Предварительная перепроверка неизменяемой работы новой версией checker. Только владелец либо разработчик проверки с ролью проверяющего. Применение новой immutable evaluation отдельно подтверждается; прежняя история сохранена.","operationId":"learning.regrades.candidates","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: работы для перепроверки","x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/regrade-plans":{"post":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.regrade_plans.create","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"checkerUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"jobUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"nodeUuid":{"type":"string"},"planUuid":{"type":"string"},"policy":{"type":"string"},"reason":{"type":"string"},"regradeUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"stdin":{"type":"string"},"submissionUuid":{"type":"string"},"testKey":{"type":"string"},"title":{"type":"string"}},"required":["courseUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Подготовить массовую перепроверку","x-human-approval":true,"x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/regrade-plans/{plan}":{"get":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.regrade_plans.get","parameters":[{"in":"query","name":"answer","required":false,"schema":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"}},{"in":"query","name":"checkerUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"items","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"query","name":"jobUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"path","name":"plan","required":true,"schema":{"type":"string"}},{"in":"query","name":"policy","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"regradeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"}},{"in":"query","name":"stdin","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"testKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Результаты массовой перепроверки","x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/regrade-plans/{plan}/commit":{"post":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.regrade_plans.commit","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"plan","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"checkerUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"jobUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"nodeUuid":{"type":"string"},"planUuid":{"type":"string"},"policy":{"type":"string"},"reason":{"type":"string"},"regradeUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"stdin":{"type":"string"},"submissionUuid":{"type":"string"},"testKey":{"type":"string"},"title":{"type":"string"}},"required":["courseUuid","planUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Подтвердить массовую перепроверку","x-human-approval":true,"x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/regrades":{"post":{"description":"Предварительная перепроверка неизменяемой работы новой версией checker. Только владелец либо разработчик проверки с ролью проверяющего. Применение новой immutable evaluation отдельно подтверждается; прежняя история сохранена.","operationId":"learning.regrades.create","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"checkerUuid":{"type":"string"},"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision","submissionUuid","checkerUuid","reason"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: предварительная перепроверка","x-human-approval":true,"x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/regrades/{regrade}":{"get":{"description":"Предварительная перепроверка неизменяемой работы новой версией checker. Только владелец либо разработчик проверки с ролью проверяющего. Применение новой immutable evaluation отдельно подтверждается; прежняя история сохранена.","operationId":"learning.regrades.get","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"regrade","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: влияние перепроверки","x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/regrades/{regrade}/apply":{"post":{"description":"Предварительная перепроверка неизменяемой работы новой версией checker. Только владелец либо разработчик проверки с ролью проверяющего. Применение новой immutable evaluation отдельно подтверждается; прежняя история сохранена.","operationId":"learning.regrades.apply","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"regrade","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"regradeUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["courseUuid","regradeUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: применить перепроверку","x-human-approval":true,"x-scopes":["learning:checkers"]}},"/api/v1/learning/courses/{course}/review-assignments":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.assignment_list","parameters":[{"in":"query","name":"candidateCursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"candidateLimit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"candidateQuery","required":false,"schema":{"type":"string"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"expiresAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"invitationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewerUserUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: очередь назначений проверяющих","x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/reviews":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.list","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"mine","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"mode","required":false,"schema":{"description":"queue: pending reviews (default); history: original attempts with final evaluations, read-only history ordered newest submitted first","enum":["queue","history"],"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"overdue","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"repeat","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: очередь проверки","x-scopes":["learning:review"]}},"/api/v1/learning/courses/{course}/runs":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.runs.list","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Обучение: потоки курса"},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.runs.create","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"},"run":{"additionalProperties":true,"description":"Run: title,mode,admission,timezone,capacity,opens/closes/starts/access end timestamps. Version selected by server.","type":"object"}},"required":["courseUuid","requestUuid","expectedRevision","run"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: открыть поток","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/staff":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.list","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: команда курса","x-scopes":["learning:manage"]},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.assign","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"type":"string"},"requestUuid":{"type":"string"},"role":{"type":"string"},"runUuid":{"type":"string"},"userUuid":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision","userUuid","role","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: пригласить преподавателя","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/staff/candidates":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.candidates","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: найти участника команды","x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/staff/email-invitations":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.email_list","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: отправленные приглашения команды","x-scopes":["learning:manage"]},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.email_invite","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"canInviteTeachers":{"description":"Only the course owner can grant this permission to a whole-course teacher. It becomes effective after acceptance. Delegated inviters cannot pass it on.","type":"boolean"},"confirm":{"const":true,"type":"boolean"},"courseUuid":{"type":"string"},"email":{"format":"email","maxLength":254,"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"type":"string"},"groupUuid":{"type":"string"},"requestUuid":{"type":"string"},"role":{"enum":["teacher","reviewer","curator","editor","checker"],"type":"string"},"runUuid":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision","email","role","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: пригласить участника команды по почте","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/staff/revoke":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.revoke","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"type":"string"},"requestUuid":{"type":"string"},"role":{"type":"string"},"runUuid":{"type":"string"},"userUuid":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision","userUuid","role","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: отозвать роль","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/staff/{assignment}/permissions":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.permissions","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"assignment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"assignmentUuid":{"type":"string"},"canInviteTeachers":{"type":"boolean"},"confirm":{"const":true,"type":"boolean"},"courseUuid":{"type":"string"},"expectedRevision":{"description":"Current staff assignment revision, not the course revision. Only the owner may change this permission.","minimum":1,"type":"integer"},"requestUuid":{"type":"string"}},"required":["assignmentUuid","courseUuid","requestUuid","expectedRevision","canInviteTeachers","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: изменить право приглашать преподавателей","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/steps/{node}/demo":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.demo.try","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"courseUuid":{"type":"string"},"nodeUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["courseUuid","nodeUuid","answer"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Обучение: learning.demo.try","x-human-approval":false}},"/api/v1/learning/courses/{course}/threads":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.community.staff_list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Обращения учащихся","x-scopes":["learning:study"]}},"/api/v1/learning/courses/{course}/transfers/preview":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.transfers.preview","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"appealUuid":{"type":"string"},"bundle":{"additionalProperties":false,"properties":{"authorName":{"type":"string"},"checkers":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"checksum":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"exportedAt":{"format":"date-time","type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"data":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"sha256":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"schemaVersion":{"minimum":0,"type":"integer"},"sourceCourseUuid":{"type":"string"}},"required":[],"type":"object"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"difficulty":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"itemUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"mappings":{"items":{"additionalProperties":false,"properties":{"mode":{"type":"string"},"reason":{"type":"string"},"sourceNodeUuid":{"type":"string"},"targetNodeUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"nodeUuid":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"skills":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"},"targetRunUuid":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"transferUuid":{"type":"string"}},"required":["courseUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Сравнить условия переноса обучения","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/transfers/{transfer}/apply":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.transfers.apply","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"path","name":"transfer","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"appealUuid":{"type":"string"},"bundle":{"additionalProperties":false,"properties":{"authorName":{"type":"string"},"checkers":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"checksum":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"exportedAt":{"format":"date-time","type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"data":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"sha256":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"schemaVersion":{"minimum":0,"type":"integer"},"sourceCourseUuid":{"type":"string"}},"required":[],"type":"object"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"difficulty":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"itemUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"mappings":{"items":{"additionalProperties":false,"properties":{"mode":{"type":"string"},"reason":{"type":"string"},"sourceNodeUuid":{"type":"string"},"targetNodeUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"nodeUuid":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"skills":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"},"targetRunUuid":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"transferUuid":{"type":"string"}},"required":["courseUuid","requestUuid","transferUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Подтвердить перенос обучения","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/courses/{course}/validate":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.validate","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"courseUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["courseUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: проверить программу","x-human-approval":false,"x-scopes":["learning:author"]}},"/api/v1/learning/courses/{course}/versions":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.versions.list","parameters":[{"in":"query","name":"appealUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"bundle","required":false,"schema":{"additionalProperties":false,"properties":{"authorName":{"type":"string"},"checkers":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"checksum":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"exportedAt":{"format":"date-time","type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"data":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"sha256":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"schemaVersion":{"minimum":0,"type":"integer"},"sourceCourseUuid":{"type":"string"}},"required":[],"type":"object"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"path","name":"course","required":true,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"difficulty","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"itemUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"query","name":"mappings","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"mode":{"type":"string"},"reason":{"type":"string"},"sourceNodeUuid":{"type":"string"},"targetNodeUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"parentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"position","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"skills","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"slug","required":false,"schema":{"type":"string"}},{"in":"query","name":"targetRunUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"topic","required":false,"schema":{"type":"string"}},{"in":"query","name":"transferUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Версии программы","x-scopes":["learning:manage"]}},"/api/v1/learning/enrollments":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.list","parameters":[{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"filter","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: мое обучение","x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.get","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: программа учащегося","x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}/accept-invitation":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.accept_invitation","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: принять приглашение","x-human-approval":true,"x-scopes":["learning:enroll"]}},"/api/v1/learning/enrollments/{enrollment}/accept-seat":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.seats.accept","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["enrollmentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Принять место на курсе","x-human-approval":true,"x-scopes":["learning:enroll"]}},"/api/v1/learning/enrollments/{enrollment}/application":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.applications.get","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Обучение: Анкета поступления"}},"/api/v1/learning/enrollments/{enrollment}/calendar":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.calendar.get","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: мои сроки","x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}/completion":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.completion.get","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: итоговая запись","x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}/course-review":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.course_reviews.own","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Мой отзыв об обучении","x-scopes":["learning:study"]},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.course_reviews.save","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Сохранить отзыв об обучении","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/course-review/remove":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.course_reviews.remove","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Удалить свой отзыв с сохранением истории","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/decision":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.decide","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"status":{"type":"string"}},"required":["enrollmentUuid","requestUuid","expectedRevision","status","reason"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: решение по зачислению","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/enrollments/{enrollment}/decline-seat":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.seats.decline","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["enrollmentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Отказаться от резервирования места","x-human-approval":true,"x-scopes":["learning:enroll"]}},"/api/v1/learning/enrollments/{enrollment}/exports":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.exports.enrollment","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"enrollmentUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: экспорт личной истории","x-human-approval":true,"x-scopes":["learning:export"]}},"/api/v1/learning/enrollments/{enrollment}/extensions":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.extensions.list","parameters":[{"in":"query","name":"accessEndsAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"allowShortening","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"decision","required":false,"schema":{"type":"string"}},{"in":"query","name":"dueAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuids","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"extensionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"extraAttempts","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"mediaKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"positionMs","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"previewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"startedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"submissionClosesAt","required":false,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Мои запросы продления","x-scopes":["learning:study"]},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.extensions.create","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["enrollmentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Попросить продление или попытку","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/media-progress":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.media.get","parameters":[{"in":"query","name":"accessEndsAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"allowShortening","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"decision","required":false,"schema":{"type":"string"}},{"in":"query","name":"dueAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuids","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"extensionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"extraAttempts","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"mediaKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"positionMs","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"previewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"startedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"submissionClosesAt","required":false,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Позиция учебного видео","x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}/overrides":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.override","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"dueAt":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"extraAttempts":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"submissionClosesAt":{"type":"string"},"waived":{"type":"boolean"}},"required":["enrollmentUuid","requestUuid","expectedRevision","nodeUuid","reason"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: персональные условия","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/enrollments/{enrollment}/pause":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.pause","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: приостановить","x-human-approval":false,"x-scopes":["learning:enroll"]}},"/api/v1/learning/enrollments/{enrollment}/pause-preview":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.pause_preview","parameters":[{"in":"query","name":"accessEndsAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"allowShortening","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"decision","required":false,"schema":{"type":"string"}},{"in":"query","name":"dueAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuids","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"extensionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"extraAttempts","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"mediaKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"positionMs","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"previewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"startedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"submissionClosesAt","required":false,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Посмотреть условия паузы","x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}/portfolio-drafts":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.portfolio.create","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"fileUuids":{"items":{"type":"string"},"maxItems":10,"type":"array"},"requestUuid":{"type":"string"},"title":{"type":"string"}},"required":["enrollmentUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: черновик учебного кейса","x-human-approval":true,"x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}/restore":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.restore","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: вернуться с сохранением истории","x-human-approval":true,"x-scopes":["learning:enroll"]}},"/api/v1/learning/enrollments/{enrollment}/resume":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.resume","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: продолжить","x-human-approval":false,"x-scopes":["learning:enroll"]}},"/api/v1/learning/enrollments/{enrollment}/start":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.start","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: начать","x-human-approval":false,"x-scopes":["learning:enroll"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.steps.get","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: открыть выбранный шаг","x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/acknowledge":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.steps.acknowledge","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","nodeUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: отметить ознакомление","x-human-approval":false,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/apply-demo":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.demo.apply","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","nodeUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: learning.demo.apply","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/draft":{"put":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.drafts.save","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","nodeUuid","requestUuid","expectedRevision","answer"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: сохранить ответ","x-human-approval":false,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/generated-variants":{"get":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.generated_variants.state","parameters":[{"in":"query","name":"answer","required":false,"schema":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"}},{"in":"query","name":"checkerUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"items","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"query","name":"jobUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}},{"in":"query","name":"planUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"policy","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"regradeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"}},{"in":"query","name":"stdin","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"testKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Состояние варианта","x-scopes":["learning:answer"]},"post":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.generated_variants.create","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"checkerUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"jobUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"nodeUuid":{"type":"string"},"planUuid":{"type":"string"},"policy":{"type":"string"},"reason":{"type":"string"},"regradeUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"stdin":{"type":"string"},"submissionUuid":{"type":"string"},"testKey":{"type":"string"},"title":{"type":"string"}},"required":["enrollmentUuid","nodeUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Подготовить воспроизводимый вариант","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/media-progress":{"put":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.media.save","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["enrollmentUuid","nodeUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Сохранить позицию учебного видео","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/sample-runs":{"post":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.sample_runs.create","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"checkerUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"jobUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"nodeUuid":{"type":"string"},"planUuid":{"type":"string"},"policy":{"type":"string"},"reason":{"type":"string"},"regradeUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"stdin":{"type":"string"},"submissionUuid":{"type":"string"},"testKey":{"type":"string"},"title":{"type":"string"}},"required":["enrollmentUuid","nodeUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Пробный запуск кода","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/submissions":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.submissions.history","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: история попыток шага","x-scopes":["learning:study"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/submit":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.submissions.create","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","nodeUuid","requestUuid","expectedRevision","answer"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: сдать работу","x-human-approval":false,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/steps/{node}/variant":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.variants.issue","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"path","name":"node","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","nodeUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Получить постоянный вариант задания","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/threads":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.community.list","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"threadUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Мои учебные обсуждения","x-scopes":["learning:study"]},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.community.create","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Создать учебное обращение","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/enrollments/{enrollment}/withdraw":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.withdraw","parameters":[{"in":"path","name":"enrollment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"}},"required":["enrollmentUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: выйти","x-human-approval":true,"x-scopes":["learning:enroll"]}},"/api/v1/learning/exports/{export}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.exports.get","parameters":[{"in":"path","name":"export","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: состояние и результат экспорта","x-scopes":["learning:export"]}},"/api/v1/learning/extension-requests/{extension}/decide":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.extensions.decide","parameters":[{"in":"path","name":"extension","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["extensionUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Решить запрос продления","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/generated-variants/{job}":{"get":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.generated_variants.get","parameters":[{"in":"query","name":"answer","required":false,"schema":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"}},{"in":"query","name":"checkerUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"items","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"path","name":"job","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"planUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"policy","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"regradeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"}},{"in":"query","name":"stdin","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"testKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Получить подготовленный вариант","x-scopes":["learning:answer"]}},"/api/v1/learning/groups/{group}/members":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.groups.members","parameters":[{"in":"path","name":"group","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["groupUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Изменить участников учебной группы","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/groups/{group}/staff":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.groups.staff","parameters":[{"in":"path","name":"group","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["groupUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Назначить команду группы","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/groups/{group}/update":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.groups.update","parameters":[{"in":"path","name":"group","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["groupUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Изменить учебную группу","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/import":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.courses.import","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"appealUuid":{"type":"string"},"bundle":{"additionalProperties":false,"properties":{"authorName":{"type":"string"},"checkers":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"checksum":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"exportedAt":{"format":"date-time","type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"data":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"sha256":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"schemaVersion":{"minimum":0,"type":"integer"},"sourceCourseUuid":{"type":"string"}},"required":[],"type":"object"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"difficulty":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"itemUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"mappings":{"items":{"additionalProperties":false,"properties":{"mode":{"type":"string"},"reason":{"type":"string"},"sourceNodeUuid":{"type":"string"},"targetNodeUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"nodeUuid":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"skills":{"items":{"type":"string"},"type":"array"},"slug":{"type":"string"},"targetRunUuid":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"transferUuid":{"type":"string"}},"required":["requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Импортировать приватный курс","x-human-approval":true,"x-scopes":["learning:author"]}},"/api/v1/learning/incidents/{incident}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.incidents.get","parameters":[{"in":"query","name":"accessEndsAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"affectedCursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"applicationsCursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"dueAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"endedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"enrollmentUuids","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"extraAttempts","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"path","name":"incident","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"previewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"reference","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"startedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"submissionClosesAt","required":false,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Влияние учебного инцидента","x-scopes":["learning:manage"]}},"/api/v1/learning/incidents/{incident}/compensation-apply":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.incidents.apply","parameters":[{"in":"path","name":"incident","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"affectedCursor":{"type":"string"},"applicationsCursor":{"type":"string"},"confirm":{"type":"boolean"},"cursor":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"endedAt":{"format":"date-time","type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extraAttempts":{"minimum":0,"type":"integer"},"incidentUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"previewUuid":{"type":"string"},"reason":{"type":"string"},"reference":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["incidentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Применить компенсацию после инцидента","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/incidents/{incident}/compensation-preview":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.incidents.preview","parameters":[{"in":"path","name":"incident","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"affectedCursor":{"type":"string"},"applicationsCursor":{"type":"string"},"confirm":{"type":"boolean"},"cursor":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"endedAt":{"format":"date-time","type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extraAttempts":{"minimum":0,"type":"integer"},"incidentUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"previewUuid":{"type":"string"},"reason":{"type":"string"},"reference":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["incidentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Проверить компенсацию сроков","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/library":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.library.list","parameters":[{"in":"query","name":"appealUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"bundle","required":false,"schema":{"additionalProperties":false,"properties":{"authorName":{"type":"string"},"checkers":{"additionalProperties":{"additionalProperties":true,"type":"object"},"type":"object"},"checksum":{"type":"string"},"draft":{"additionalProperties":false,"properties":{"audience":{"type":"string"},"description":{"type":"string"},"durationHours":{"minimum":0,"type":"integer"},"imageUrl":{"type":"string"},"language":{"type":"string"},"level":{"type":"string"},"nodes":{"items":{"additionalProperties":false,"properties":{"config":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"access":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"properties":{"afterHours":{"minimum":0,"type":"integer"},"all":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"any":{"items":{"additionalProperties":false,"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"at":{"format":"date-time","type":"string"},"courseUuid":{"type":"string"},"groupKey":{"type":"string"},"nodeUuid":{"type":"string"},"requirementUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"type":{"type":"string"}},"required":[],"type":"object"},"aiPolicy":{"type":"string"},"appealPolicy":{"additionalProperties":false,"properties":{"escalationWindowHours":{"minimum":0,"type":"integer"},"windowHours":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"assessmentMode":{"type":"string"},"caseSensitive":{"type":"boolean"},"checkerUuid":{"type":"string"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"closeAfterHours":{"minimum":0,"type":"integer"},"completion":{"type":"string"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"disclosure":{"additionalProperties":false,"properties":{"feedback":{"type":"string"},"revealAt":{"format":"date-time","type":"string"},"score":{"type":"string"},"solution":{"type":"string"},"solutionRevealAt":{"format":"date-time","type":"string"}},"required":[],"type":"object"},"dueAfterHours":{"minimum":0,"type":"integer"},"dueAt":{"format":"date-time","type":"string"},"hybridPolicy":{"additionalProperties":false,"properties":{"allowReviewDuringTechnicalFailure":{"type":"boolean"},"automaticWeightBps":{"minimum":0,"type":"integer"},"mode":{"type":"string"}},"required":[],"type":"object"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxAttempts":{"minimum":0,"type":"integer"},"maxScore":{"minimum":0,"type":"integer"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"partialCredit":{"type":"boolean"},"passScore":{"minimum":0,"type":"integer"},"releaseAt":{"format":"date-time","type":"string"},"reviewSlaHours":{"minimum":0,"type":"integer"},"reworkWindowHours":{"minimum":0,"type":"integer"},"rubric":{"items":{"additionalProperties":false,"properties":{"examples":{"items":{"type":"string"},"type":"array"},"levels":{"items":{"additionalProperties":false,"properties":{"description":{"type":"string"},"score":{"type":"string"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"maxScore":{"minimum":0,"type":"integer"},"required":{"type":"boolean"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"scoring":{"additionalProperties":false,"properties":{"creditedSelection":{"type":"string"},"latePenaltyBps":{"minimum":0,"type":"integer"},"masterySelection":{"type":"string"}},"required":[],"type":"object"},"submissionClosesAt":{"format":"date-time","type":"string"},"textNormalization":{"additionalProperties":false,"properties":{"unicode":{"type":"string"},"whitespace":{"type":"string"}},"required":[],"type":"object"},"variants":{"items":{"additionalProperties":false,"properties":{"acceptedAnswers":{"items":{"type":"string"},"type":"array"},"choices":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"correctChoices":{"items":{"type":"string"},"type":"array"},"correctMatches":{"additionalProperties":{"type":"string"},"type":"object"},"correctOrder":{"items":{"type":"string"},"type":"array"},"matchOptions":{"items":{"additionalProperties":false,"properties":{"text":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"numeric":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"string"},"decimalSeparator":{"type":"string"},"expected":{"type":"string"},"relativeTolerance":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"title":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"content":{"items":{"additionalProperties":false,"properties":{"alt":{"type":"string"},"caption":{"type":"string"},"fileUuid":{"type":"string"},"headers":{"items":{"type":"string"},"type":"array"},"items":{"items":{"type":"string"},"type":"array"},"language":{"type":"string"},"rows":{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},"text":{"type":"string"},"trackFileUuid":{"type":"string"},"trackLanguage":{"type":"string"},"transcript":{"type":"string"},"type":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"demoAvailable":{"type":"boolean"},"difficulty":{"type":"string"},"kind":{"type":"string"},"links":{"items":{"additionalProperties":false,"properties":{"label":{"type":"string"},"url":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"objective":{"type":"string"},"parentUuid":{"type":"string"},"position":{"minimum":0,"type":"integer"},"preview":{"type":"boolean"},"required":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"sourceKey":{"type":"string"},"stepType":{"type":"string"},"title":{"type":"string"},"topic":{"type":"string"},"uuid":{"type":"string"},"workloadMinutes":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"outcome":{"type":"string"},"prerequisites":{"type":"string"},"reenrollmentPolicy":{"type":"string"},"sequential":{"type":"boolean"},"skills":{"items":{"type":"string"},"type":"array"},"source":{"additionalProperties":{},"type":"object"},"summary":{"type":"string"},"support":{"type":"string"},"title":{"type":"string"},"tools":{"items":{"type":"string"},"type":"array"},"topic":{"type":"string"},"workload":{"type":"string"}},"required":[],"type":"object"},"exportedAt":{"format":"date-time","type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"data":{"type":"string"},"mimeType":{"type":"string"},"name":{"type":"string"},"sha256":{"type":"string"},"uuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"schemaVersion":{"minimum":0,"type":"integer"},"sourceCourseUuid":{"type":"string"}},"required":[],"type":"object"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"difficulty","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"itemUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"query","name":"mappings","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"mode":{"type":"string"},"reason":{"type":"string"},"sourceNodeUuid":{"type":"string"},"targetNodeUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"parentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"position","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"skills","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"slug","required":false,"schema":{"type":"string"}},{"in":"query","name":"targetRunUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"topic","required":false,"schema":{"type":"string"}},{"in":"query","name":"transferUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Библиотека заданий","x-scopes":["learning:author"]}},"/api/v1/learning/notification-preferences":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.notification_preferences.get","parameters":[],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Настройки учебных уведомлений","x-scopes":["learning:study"]},"put":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.notification_preferences.update","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"preferences":{"additionalProperties":false,"properties":{"digest":{"type":"boolean"},"email":{"type":"boolean"},"emailEnabledAt":{"format":"date-time","type":"string"},"inApp":{"type":"boolean"},"quietEnd":{"type":"string"},"quietStart":{"type":"string"},"revision":{"minimum":0,"type":"integer"},"timezone":{"type":"string"}},"required":[],"type":"object"},"requestUuid":{"type":"string"}},"required":["requestUuid","expectedRevision","preferences"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Сохранить настройки учебных уведомлений","x-human-approval":true,"x-scopes":["learning:study"]}},"/api/v1/learning/notifications":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.notifications.list","parameters":[{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: напоминания","x-scopes":["learning:study"]}},"/api/v1/learning/notifications/{notification}/read":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.notifications.read","parameters":[{"in":"path","name":"notification","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"notificationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["notificationUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: прочитать напоминание","x-human-approval":true,"x-scopes":["learning:study"]}},"/api/v1/learning/ownership/invitations":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.ownership.invitations","parameters":[{"in":"query","name":"candidateCursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"candidateLimit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"candidateQuery","required":false,"schema":{"type":"string"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"expiresAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"invitationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewerUserUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: передача владения","x-scopes":["learning:manage"]}},"/api/v1/learning/ownership/{invitation}/accept":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.ownership.accept","parameters":[{"in":"path","name":"invitation","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"candidateCursor":{"type":"string"},"candidateLimit":{"minimum":0,"type":"integer"},"candidateQuery":{"type":"string"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"format":"date-time","type":"string"},"invitationUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"requestUuid":{"type":"string"},"reviewerUserUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["invitationUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: принять владение курсом","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/ownership/{invitation}/cancel":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.ownership.cancel","parameters":[{"in":"path","name":"invitation","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"candidateCursor":{"type":"string"},"candidateLimit":{"minimum":0,"type":"integer"},"candidateQuery":{"type":"string"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"format":"date-time","type":"string"},"invitationUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"requestUuid":{"type":"string"},"reviewerUserUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["invitationUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: отменить передачу курса","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/ownership/{invitation}/reject":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.ownership.reject","parameters":[{"in":"path","name":"invitation","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"candidateCursor":{"type":"string"},"candidateLimit":{"minimum":0,"type":"integer"},"candidateQuery":{"type":"string"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"format":"date-time","type":"string"},"invitationUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"requestUuid":{"type":"string"},"reviewerUserUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["invitationUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: отклонить передачу курса","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/runs/{run}":{"patch":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.runs.update","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"},"run":{"additionalProperties":true,"description":"Run: title,mode,admission,timezone,capacity,opens/closes/starts/access end timestamps. Version selected by server.","type":"object"},"runUuid":{"type":"string"}},"required":["runUuid","requestUuid","expectedRevision","run","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: изменить поток","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/runs/{run}/admission-preview":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.admissions.preview","parameters":[{"in":"query","name":"accessEndsAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"allowShortening","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"decision","required":false,"schema":{"type":"string"}},{"in":"query","name":"dueAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuids","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"extensionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"extraAttempts","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"mediaKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"positionMs","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"previewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"path","name":"run","required":true,"schema":{"type":"string"}},{"in":"query","name":"startedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"submissionClosesAt","required":false,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Обучение: сроки и условия поступления"}},"/api/v1/learning/runs/{run}/archive":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.runs.archive","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["requestUuid","runUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Архивировать поток","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/runs/{run}/cancel":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.runs.cancel","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["requestUuid","runUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Отменить поток","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/runs/{run}/enroll":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.enroll","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"application":{"additionalProperties":false,"properties":{"answers":{"additionalProperties":{"type":"string"},"type":"object"},"fileUuids":{"items":{"type":"string"},"type":"array"},"formRevision":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"}},"required":["requestUuid","runUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: записаться","x-human-approval":false,"x-scopes":["learning:enroll"]}},"/api/v1/learning/runs/{run}/finish":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.runs.finish","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["requestUuid","runUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Завершить поток","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/runs/{run}/groups":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.groups.create","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["requestUuid","runUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Создать учебную группу","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/runs/{run}/incidents":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.incidents.list","parameters":[{"in":"query","name":"accessEndsAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"affectedCursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"applicationsCursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"dueAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"endedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"enrollmentUuids","required":false,"schema":{"items":{"type":"string"},"type":"array"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"extraAttempts","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"incidentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"previewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"reference","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"path","name":"run","required":true,"schema":{"type":"string"}},{"in":"query","name":"startedAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"submissionClosesAt","required":false,"schema":{"format":"date-time","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Инциденты учебного потока","x-scopes":["learning:manage"]},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.incidents.create","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"affectedCursor":{"type":"string"},"applicationsCursor":{"type":"string"},"confirm":{"type":"boolean"},"cursor":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"endedAt":{"format":"date-time","type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extraAttempts":{"minimum":0,"type":"integer"},"incidentUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"nodeUuid":{"type":"string"},"previewUuid":{"type":"string"},"reason":{"type":"string"},"reference":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["requestUuid","runUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Зарегистрировать учебный инцидент","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/runs/{run}/invite":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.enrollments.invite","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"userUuid":{"type":"string"}},"required":["runUuid","requestUuid","expectedRevision","userUuid","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: именное приглашение","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/runs/{run}/schedule-preview":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.schedule.preview","parameters":[{"in":"path","name":"run","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["requestUuid","runUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Проверить изменение учебных сроков","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/sample-runs/{job}":{"get":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.sample_runs.get","parameters":[{"in":"query","name":"answer","required":false,"schema":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"}},{"in":"query","name":"checkerUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"items","required":false,"schema":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"}},{"in":"path","name":"job","required":true,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"manifestChecksum","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"planUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"policy","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"regradeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"spec","required":false,"schema":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"}},{"in":"query","name":"stdin","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"testKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Результат пробного запуска","x-scopes":["learning:answer"]}},"/api/v1/learning/schedule-previews/{preview}/apply":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.schedule.apply","parameters":[{"in":"path","name":"preview","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"accessEndsAt":{"format":"date-time","type":"string"},"allowShortening":{"type":"boolean"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"decision":{"type":"string"},"dueAt":{"format":"date-time","type":"string"},"enrollmentUuid":{"type":"string"},"enrollmentUuids":{"items":{"type":"string"},"type":"array"},"expectedRevision":{"minimum":0,"type":"integer"},"extensionUuid":{"type":"string"},"extraAttempts":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"mediaKey":{"type":"string"},"nodeUuid":{"type":"string"},"positionMs":{"minimum":0,"type":"integer"},"previewUuid":{"type":"string"},"q":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"runUuid":{"type":"string"},"startedAt":{"format":"date-time","type":"string"},"submissionClosesAt":{"format":"date-time","type":"string"}},"required":["previewUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Применить подтверждённые учебные сроки","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/staff/email-invitations":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.email_invitations","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: входящие приглашения команды","x-scopes":["learning:study"]}},"/api/v1/learning/staff/email-invitations/{invitation}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.email_get","parameters":[{"in":"path","name":"invitation","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: открыть приглашение команды","x-scopes":["learning:study"]}},"/api/v1/learning/staff/email-invitations/{invitation}/accept":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.email_accept","parameters":[{"in":"path","name":"invitation","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"expectedRevision":{"description":"Current invitation revision. Acceptance requires signing in with the verified recipient email.","minimum":1,"type":"integer"},"invitationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["invitationUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: принять приглашение команды","x-human-approval":true,"x-scopes":["learning:study"]}},"/api/v1/learning/staff/email-invitations/{invitation}/reject":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.email_reject","parameters":[{"in":"path","name":"invitation","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"expectedRevision":{"description":"Current invitation revision. Acceptance requires signing in with the verified recipient email.","minimum":1,"type":"integer"},"invitationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["invitationUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: отклонить приглашение команды","x-human-approval":true,"x-scopes":["learning:study"]}},"/api/v1/learning/staff/email-invitations/{invitation}/revoke":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.email_revoke","parameters":[{"in":"path","name":"invitation","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"confirm":{"const":true,"type":"boolean"},"expectedRevision":{"description":"Current invitation revision. Acceptance requires signing in with the verified recipient email.","minimum":1,"type":"integer"},"invitationUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["invitationUuid","requestUuid","expectedRevision","confirm"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: отозвать приглашение команды","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/staff/invitations":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.invitations","parameters":[],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: мои приглашения","x-scopes":["learning:study"]}},"/api/v1/learning/staff/{assignment}/accept":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.staff.accept","parameters":[{"in":"path","name":"assignment","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"assignmentUuid":{"type":"string"},"requestUuid":{"type":"string"}},"required":["assignmentUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: принять учебную роль","x-human-approval":false,"x-scopes":["learning:study"]}},"/api/v1/learning/submissions/{submission}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.submissions.get","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: результат попытки","x-scopes":["learning:study"]}},"/api/v1/learning/submissions/{submission}/appeals":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.appeals.list_for_submission","parameters":[{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: обращения по решению","x-scopes":["learning:study"]},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.appeals.create","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"criterionUuids":{"items":{"type":"string"},"maxItems":30,"type":"array"},"evaluationUuid":{"type":"string"},"fileUuids":{"items":{"type":"string"},"maxItems":16,"type":"array"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["submissionUuid","requestUuid","reason"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: подать апелляцию","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/submissions/{submission}/automatic-overrides":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.automatic_overrides.list","parameters":[{"in":"query","name":"automaticEvaluationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"overrideUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rawScore","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"path","name":"submission","required":true,"schema":{"type":"string"}},{"in":"query","name":"verdict","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: История ручных исключений автопроверки","x-scopes":["learning:review"]},"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.automatic_overrides.create","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"automaticEvaluationUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"overrideUuid":{"type":"string"},"q":{"type":"string"},"rawScore":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"submissionUuid":{"type":"string"},"verdict":{"type":"string"}},"required":["requestUuid","submissionUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Подтвердить исключение автопроверки","x-human-approval":true,"x-scopes":["learning:grade_override"]}},"/api/v1/learning/submissions/{submission}/automatic-overrides/{override}/revoke":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.automatic_overrides.revoke","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}},{"in":"path","name":"override","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"automaticEvaluationUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"limit":{"minimum":0,"type":"integer"},"overrideUuid":{"type":"string"},"q":{"type":"string"},"rawScore":{"type":"string"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"submissionUuid":{"type":"string"},"verdict":{"type":"string"}},"required":["overrideUuid","requestUuid","submissionUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Отменить исключение автопроверки","x-human-approval":true,"x-scopes":["learning:grade_override"]}},"/api/v1/learning/submissions/{submission}/cancel":{"post":{"description":"Изолированная учебная проверка. Сервер повторно проверяет права и requestUuid; пробный запуск не даёт зачёт. Закрытые ответы и диагностика доступны только уполномоченной команде.","operationId":"learning.submissions.cancel","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"answer":{"additionalProperties":false,"properties":{"choiceUuids":{"items":{"type":"string"},"type":"array"},"code":{"type":"string"},"fileUuids":{"items":{"type":"string"},"type":"array"},"links":{"items":{"type":"string"},"type":"array"},"matches":{"additionalProperties":{"type":"string"},"type":"object"},"number":{"type":"string"},"order":{"items":{"type":"string"},"type":"array"},"text":{"type":"string"},"unit":{"type":"string"}},"required":[],"type":"object"},"checkerUuid":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"items":{"items":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"jobUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"manifestChecksum":{"type":"string"},"nodeUuid":{"type":"string"},"planUuid":{"type":"string"},"policy":{"type":"string"},"reason":{"type":"string"},"regradeUuid":{"type":"string"},"requestUuid":{"type":"string"},"spec":{"additionalProperties":false,"properties":{"checkerCode":{"type":"string"},"criteria":{"items":{"additionalProperties":false,"properties":{"key":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"},"feedback":{"additionalProperties":{"type":"string"},"type":"object"},"functionName":{"type":"string"},"generatorCode":{"type":"string"},"generatorSchema":{"type":"string"},"maxScore":{"minimum":0,"type":"integer"},"mode":{"type":"string"},"outputFiles":{"items":{"type":"string"},"type":"array"},"passScore":{"minimum":0,"type":"integer"},"profile":{"type":"string"},"referenceCode":{"type":"string"},"samples":{"items":{"additionalProperties":false,"properties":{"code":{"type":"string"},"expectedScore":{"minimum":0,"type":"integer"},"expectedScoreDecimal":{"type":"string"},"files":{"items":{"additionalProperties":false,"properties":{"base64":{"type":"string"},"name":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"kind":{"type":"string"},"text":{"type":"string"}},"required":[],"type":"object"},"type":"array"},"tests":{"items":{"additionalProperties":false,"properties":{"absoluteTolerance":{"type":"number"},"comparison":{"type":"string"},"expected":{"type":"string"},"key":{"type":"string"},"reference":{"additionalProperties":true,"type":"object"},"relativeTolerance":{"type":"number"},"stdin":{"type":"string"},"visibility":{"type":"string"},"weight":{"minimum":0,"type":"integer"}},"required":[],"type":"object"},"type":"array"}},"required":[],"type":"object"},"stdin":{"type":"string"},"submissionUuid":{"type":"string"},"testKey":{"type":"string"},"title":{"type":"string"}},"required":["submissionUuid","requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Отменить проверку","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/submissions/{submission}/claim":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.claim","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["submissionUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: взять работу на проверку","x-human-approval":true,"x-scopes":["learning:review"]}},"/api/v1/learning/submissions/{submission}/reassign":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.reassign","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"candidateCursor":{"type":"string"},"candidateLimit":{"minimum":0,"type":"integer"},"candidateQuery":{"type":"string"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"expiresAt":{"format":"date-time","type":"string"},"invitationUuid":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"q":{"type":"string"},"reason":{"type":"string"},"recipientProfileUuid":{"type":"string"},"requestUuid":{"type":"string"},"reviewerUserUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["requestUuid","submissionUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: переназначить проверяющего","x-human-approval":true,"x-scopes":["learning:manage"]}},"/api/v1/learning/submissions/{submission}/release":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.release","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"requestUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["submissionUuid","requestUuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: освободить проверку","x-human-approval":true,"x-scopes":["learning:review"]}},"/api/v1/learning/submissions/{submission}/report-issue":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.report_issue","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":0,"type":"integer"},"reason":{"type":"string"},"requestUuid":{"type":"string"},"submissionUuid":{"type":"string"}},"required":["submissionUuid","requestUuid","expectedRevision","reason"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: ошибка задания куратору","x-human-approval":true,"x-scopes":["learning:review"]}},"/api/v1/learning/submissions/{submission}/review":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.decide","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"criteria":{"additionalProperties":{"minimum":0,"type":"integer"},"type":"object"},"criteriaFeedback":{"additionalProperties":{"type":"string"},"type":"object"},"criteriaScores":{"additionalProperties":{"type":"string"},"type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"feedback":{"type":"string"},"rawScore":{"type":"string"},"requestUuid":{"type":"string"},"score":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"},"verdict":{"enum":["passed","failed","revision_requested"],"type":"string"}},"required":["submissionUuid","requestUuid","expectedRevision","verdict","feedback"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: проверить работу","x-human-approval":true,"x-scopes":["learning:review"]}},"/api/v1/learning/submissions/{submission}/review-assignment":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.assignment","parameters":[{"in":"query","name":"candidateCursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"candidateLimit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"candidateQuery","required":false,"schema":{"type":"string"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"expiresAt","required":false,"schema":{"format":"date-time","type":"string"}},{"in":"query","name":"invitationUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"reason","required":false,"schema":{"type":"string"}},{"in":"query","name":"recipientProfileUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewerUserUuid","required":false,"schema":{"type":"string"}},{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: ответственный за проверку","x-scopes":["learning:manage"]}},"/api/v1/learning/submissions/{submission}/review-draft":{"put":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.draft","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"criteria":{"additionalProperties":{"minimum":0,"type":"integer"},"type":"object"},"criteriaFeedback":{"additionalProperties":{"type":"string"},"type":"object"},"criteriaScores":{"additionalProperties":{"type":"string"},"type":"object"},"expectedRevision":{"minimum":0,"type":"integer"},"feedback":{"type":"string"},"rawScore":{"type":"string"},"requestUuid":{"type":"string"},"reviewDraftRevision":{"minimum":0,"type":"integer"},"score":{"minimum":0,"type":"integer"},"submissionUuid":{"type":"string"},"verdict":{"type":"string"}},"required":["submissionUuid","requestUuid","expectedRevision","reviewDraftRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: сохранить черновую рубрику","x-human-approval":true,"x-scopes":["learning:review"]}},"/api/v1/learning/submissions/{submission}/review-workspace":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.reviews.workspace","parameters":[{"in":"path","name":"submission","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: рабочая область проверки","x-scopes":["learning:review"]}},"/api/v1/learning/teaching/courses":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.teaching.list","parameters":[{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: преподавание","x-scopes":["learning:study"]}},"/api/v1/learning/teaching/courses/{course}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.teaching.get","parameters":[{"in":"path","name":"course","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: рабочая область преподавателя","x-scopes":["learning:study"]}},"/api/v1/learning/threads/{thread}":{"get":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.community.get","parameters":[{"in":"query","name":"body","required":false,"schema":{"type":"string"}},{"in":"query","name":"confirm","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"courseUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"enrollmentUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"expectedRevision","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"groupUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"name","required":false,"schema":{"type":"string"}},{"in":"query","name":"nodeUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"rating","required":false,"schema":{"minimum":0,"type":"integer"}},{"in":"query","name":"remove","required":false,"schema":{"type":"boolean"}},{"in":"query","name":"requestUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"reviewUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"role","required":false,"schema":{"type":"string"}},{"in":"query","name":"ruleKey","required":false,"schema":{"type":"string"}},{"in":"query","name":"runUuid","required":false,"schema":{"type":"string"}},{"in":"query","name":"status","required":false,"schema":{"type":"string"}},{"in":"query","name":"submissionUuid","required":false,"schema":{"type":"string"}},{"in":"path","name":"thread","required":true,"schema":{"type":"string"}},{"in":"query","name":"title","required":false,"schema":{"type":"string"}},{"in":"query","name":"userUuid","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Открыть обсуждение","x-scopes":["learning:study"]}},"/api/v1/learning/threads/{thread}/messages":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.community.reply","parameters":[{"in":"path","name":"thread","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["requestUuid","threadUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Ответить в обсуждении","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/learning/threads/{thread}/resolve":{"post":{"description":"Учебная операция с серверными правами, UUID, revision и requestUuid. Опубликованная версия и принятая работа неизменяемы. Прогресс пользователя отделен от компании. Закрытые ответы, материалы и проверки не выдаются без соответствующего доступа. Контракт: /docs/learning/http-contract.md.","operationId":"learning.community.resolve","parameters":[{"in":"path","name":"thread","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"type":"string"},"confirm":{"type":"boolean"},"courseUuid":{"type":"string"},"cursor":{"type":"string"},"enrollmentUuid":{"type":"string"},"expectedRevision":{"minimum":0,"type":"integer"},"groupUuid":{"type":"string"},"kind":{"type":"string"},"limit":{"minimum":0,"type":"integer"},"name":{"type":"string"},"nodeUuid":{"type":"string"},"q":{"type":"string"},"rating":{"minimum":0,"type":"integer"},"remove":{"type":"boolean"},"requestUuid":{"type":"string"},"reviewUuid":{"type":"string"},"role":{"type":"string"},"ruleKey":{"type":"string"},"runUuid":{"type":"string"},"status":{"type":"string"},"submissionUuid":{"type":"string"},"threadUuid":{"type":"string"},"title":{"type":"string"},"userUuid":{"type":"string"}},"required":["requestUuid","threadUuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Обучение: Завершить обращение","x-human-approval":true,"x-scopes":["learning:answer"]}},"/api/v1/me/capabilities":{"get":{"operationId":"getMyCapabilities","parameters":[],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Мои права и профили","x-scopes":["profiles:read"]}},"/api/v1/profiles":{"get":{"operationId":"listProfiles","parameters":[{"in":"query","name":"category","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"skill","required":false,"schema":{"type":"string"}},{"in":"query","name":"tool","required":false,"schema":{"type":"string"}},{"in":"query","name":"type","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Найти специалистов"}},"/api/v1/profiles/{uuid}":{"get":{"operationId":"getProfile","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Открыть профиль"}},"/api/v1/publications":{"get":{"operationId":"listPublications","parameters":[{"in":"query","name":"category","required":false,"schema":{"type":"string"}},{"in":"query","name":"city","required":false,"schema":{"type":"string"}},{"in":"query","name":"cursor","required":false,"schema":{"type":"string"}},{"in":"query","name":"employment","required":false,"schema":{"type":"string"}},{"in":"query","name":"experience","required":false,"schema":{"type":"string"}},{"in":"query","name":"kind","required":false,"schema":{"type":"string"}},{"in":"query","name":"limit","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"profile","required":false,"schema":{"type":"string"}},{"in":"query","name":"q","required":false,"schema":{"type":"string"}},{"in":"query","name":"skill","required":false,"schema":{"type":"string"}},{"in":"query","name":"tool","required":false,"schema":{"type":"string"}},{"in":"query","name":"workFormat","required":false,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Найти публикации"}},"/api/v1/publications/{uuid}":{"get":{"operationId":"getPublication","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"summary":"Открыть публикацию"}},"/api/v1/publications/{uuid}/comments":{"get":{"description":"Public root comments on a visible approved portfolio or article, newest first. With parent, returns answers to that root oldest first. Both lists have independent UUID cursors. Private identity is omitted; a deleted root with live answers is returned with an empty body and no author identity.","operationId":"listPublicationComments","parameters":[{"in":"query","name":"limit","schema":{"default":20,"maximum":100,"minimum":1,"type":"integer"}},{"in":"query","name":"cursor","schema":{"format":"uuid","type":"string"}},{"description":"A root comment in this publication. Omit to list roots.","in":"query","name":"parent","schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"$ref":"#/components/schemas/PublicationComment"},"type":"array"},"nextCursor":{"format":"uuid","type":"string"}},"required":["items"],"type":"object"}}},"description":"Public conversation page."},"400":{"$ref":"#/components/responses/TaskInvalid"},"404":{"$ref":"#/components/responses/NotFound"}}},"parameters":[{"description":"Publication UUID; public reads also accept the legacy key.","in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"post":{"description":"Every registered browser-session user may comment without a deal or professional role. Authorship is derived from the session. Generic integration credentials are rejected. UUID path, same-origin request, JSON body and stable requestUuid are required. Maximum six comments per minute per user; body is trimmed and limited to 5000 Unicode characters. An identical retry returns the saved result. Optional parentCommentUuid must identify a live root in the same publication; nested answers are not allowed. Timestamps and publication-author status are assigned by the server.","operationId":"createPublicationComment","parameters":[{"$ref":"#/components/parameters/Origin"}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"body":{"maxLength":5000,"minLength":1,"type":"string"},"parentCommentUuid":{"format":"uuid","type":"string"},"requestUuid":{"format":"uuid","type":"string"}},"required":["requestUuid","body"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicationComment"}}},"description":"Persisted comment, including on an identical retry."},"400":{"$ref":"#/components/responses/TaskInvalid"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/AuthOrigin"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"description":"The requestUuid was already used with different contents."},"410":{"description":"The saved comment is no longer available."},"429":{"description":"Comment rate limit exceeded."}},"security":[{"SessionCookie":[]}]}},"/api/v1/publications/{uuid}/comments/{commentUuid}":{"delete":{"description":"The comment author may mark their own comment deleted. Text and original identity are retained. A repeated identical request returns the original receipt. No other participant or publication owner receives deletion authority. A root with living answers remains as a redacted thread; deleting its last answer removes the empty thread from public lists.","operationId":"deleteOwnPublicationComment","parameters":[{"$ref":"#/components/parameters/Origin"}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"requestUuid":{"format":"uuid","type":"string"}},"required":["requestUuid"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"deleted":{"const":true,"type":"boolean"},"retainedAsThread":{"description":"Whether this deleted root still has live answers.","type":"boolean"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","deleted","retainedAsThread"],"type":"object"}}},"description":"Comment tombstone receipt."},"400":{"$ref":"#/components/responses/TaskInvalid"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/AuthOrigin"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"description":"The requestUuid was already used with different contents."}},"security":[{"SessionCookie":[]}]},"get":{"description":"Public root comment with its current reply count. Deleted roots remain only while live answers exist. Replies cannot be read as roots. Useful for restoring a pending answer outside the first page.","operationId":"getPublicationCommentThread","responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/PublicationComment"}}},"description":"Current root comment."},"400":{"$ref":"#/components/responses/TaskInvalid"},"404":{"$ref":"#/components/responses/NotFound"}}},"parameters":[{"in":"path","name":"uuid","required":true,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"commentUuid","required":true,"schema":{"format":"uuid","type":"string"}}]},"/api/v1/reviews/{uuid}/customer":{"get":{"description":"Только действующая cookie-сессия и выбранный профиль специалиста соответствующей сделки. Возвращается только name; профиль, аватар и UUID заказчика не раскрываются. Ответ no-store с Vary по Cookie, Authorization и X-Aishka-Profile. Не предоставляется как MCP tool.","operationId":"getReviewCustomerIdentity","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"name":{"type":"string"}},"required":["name"],"type":"object"}}},"description":"Приватное имя заказчика"},"401":{"description":"Войдите или подтвердите свежую сессию"},"403":{"description":"Нет доступа или требуется подтверждение"},"404":{"description":"Отзыв недоступен или профиль не является специалистом этой сделки"},"409":{"description":"Изменилась редакция или содержимое команды"},"429":{"description":"Превышен лимит запросов"}},"security":[{"SessionCookie":[]}],"summary":"Имя заказчика только специалисту этой завершённой сделки","x-browser-only":true}},"/api/v1/tasks":{"get":{"description":"Up to 100 current personal tasks, newest first. Deleted tasks are excluded. File bodies are omitted from draft.files; attachmentCount preserves their count. Fetch an individual task before editing. Never returns another account's tasks.","operationId":"listOwnTasks","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"items":{"items":{"allOf":[{"$ref":"#/components/schemas/OwnTask"},{"properties":{"attachmentCount":{"maximum":5,"minimum":0,"type":"integer"}},"required":["attachmentCount"],"type":"object"}]},"maxItems":100,"type":"array"},"total":{"maximum":100,"minimum":0,"type":"integer"}},"required":["items","total"],"type":"object"}}},"description":"Saved drafts and moderation submissions belonging to the authenticated personal profile."},"401":{"$ref":"#/components/responses/Unauthenticated"},"503":{"$ref":"#/components/responses/Unavailable"}},"security":[{"SessionCookie":[]}]},"post":{"description":"Atomically saves task, files, immutable revision and idempotency command. A new requestUuid is required for each distinct save intent; a retry reuses the same requestUuid and identical normalized content. For updates send publicationUuid and the last expectedRevision. submit creates pending status, never approved public content. Only personal-profile tasks in editable states are supported; published or closed tasks cannot be overwritten. Maximum 100 active tasks per account, 5 files, 1 MiB/file, 2 MiB total; JSON request maximum 4 MiB. External file URLs, SVG, HTML and executable types are rejected. File bodies must match their declared MIME signature, extension and decoded size.","operationId":"saveOwnTask","parameters":[{"$ref":"#/components/parameters/Origin"}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"data":{"$ref":"#/components/schemas/TaskData"},"expectedRevision":{"minimum":1,"type":"integer"},"publicationUuid":{"format":"uuid","type":"string"},"requestUuid":{"format":"uuid","type":"string"},"submit":{"type":"boolean"}},"required":["requestUuid","data","submit"],"type":"object"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"properties":{"item":{"$ref":"#/components/schemas/OwnTask"}},"required":["item"],"type":"object"}}},"description":"Committed task revision, or the identical original revision on replay. A replay does not overwrite newer edits."},"400":{"$ref":"#/components/responses/TaskInvalid"},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/AuthOrigin"},"404":{"$ref":"#/components/responses/NotFound"},"409":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"revision_conflict, request_conflict, not_editable or task_limit. No data was overwritten."},"410":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/Error"}}},"description":"A replay references a deleted or already purged task. The retained command tombstone prevents recreation."},"413":{"description":"JSON request exceeds 4 MiB."},"503":{"$ref":"#/components/responses/Unavailable"}},"security":[{"SessionCookie":[]}]}},"/api/v1/tasks/{uuid}":{"delete":{"description":"Marks an owned task deleted_at and user_edited_at. Keeps payload, files, revision history and stable identity in PostgreSQL. A repeated delete does not reset the retention date. Monthly maintenance removes eligible unreferenced content after at least 30 days; idempotency tombstones remain.","operationId":"deleteOwnTask","parameters":[{"$ref":"#/components/parameters/Origin"}],"responses":{"204":{"description":"Task marked deleted","including a previously deleted owned task.":null},"401":{"$ref":"#/components/responses/Unauthenticated"},"403":{"$ref":"#/components/responses/AuthOrigin"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/Unavailable"}},"security":[{"SessionCookie":[]}]},"get":{"operationId":"getOwnTask","responses":{"200":{"content":{"application/json":{"schema":{"properties":{"item":{"$ref":"#/components/schemas/OwnTask"}},"required":["item"],"type":"object"}}},"description":"Full editable task including saved file bodies."},"401":{"$ref":"#/components/responses/Unauthenticated"},"404":{"$ref":"#/components/responses/NotFound"},"503":{"$ref":"#/components/responses/Unavailable"}},"security":[{"SessionCookie":[]}]},"parameters":[{"in":"path","name":"uuid","required":true,"schema":{"format":"uuid","type":"string"}}]},"/api/v1/webhook-endpoints":{"get":{"description":"Secrets are never returned by list.","operationId":"webhooks.list","parameters":[],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Получить вебхуки","x-scopes":["webhooks:read"]},"post":{"description":"Creates pending_approval; idempotent by requestUuid and argument hash. Signing secret is revealed only once to a browser session, never to an agent. payloadMode defaults to reference; current adds the current domain record after a fresh ACL check at each attempt, never file bytes or credentials.","operationId":"webhooks.create","parameters":[],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"eventTypes":{"items":{"enum":["complaint.created","complaint.moderated","deal.started","deal.status_changed","favorite.changed","file.ready","job_invitation.received","job_invitation.status_changed","job_invitation.withdrawn","job_response.received","job_response.status_changed","job_response.withdrawn","learning.appeal.opened","learning.checker.failed","learning.community.created","learning.community.replied","learning.community.resolved","learning.course.completed","learning.course.published","learning.deadline.approaching","learning.deadline.changed","learning.enrollment.activated","learning.enrollment.completed","learning.enrollment.invited","learning.enrollment.pause","learning.enrollment.requested","learning.enrollment.restored","learning.enrollment.resume","learning.enrollment.start","learning.enrollment.transferred","learning.enrollment.withdraw","learning.enrollment.withdrawn","learning.module.completed","learning.review.overdue","learning.review.requested","learning.revision.requested","learning.run.cancelled","learning.step.available","learning.submission.accepted","learning.submission.graded","message.received","offer.received","offer.status_changed","offer.withdrawn","profile.updated","publication.deleted","publication.draft_saved","publication.hidden","publication.moderated","publication.restored","publication.submitted","response.received","response.status_changed","response.withdrawn","review.moderated","review.submitted","task.closed"],"type":"string"},"maxItems":128,"minItems":1,"type":"array","uniqueItems":true},"payloadMode":{"default":"reference","enum":["reference","current"],"type":"string"},"requestUuid":{"format":"uuid","type":"string"},"url":{"description":"Public HTTPS destination on port 443; query, fragment and credentials forbidden.","format":"uri","type":"string"}},"required":["requestUuid","url","eventTypes"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Подготовить вебхук","x-human-approval":false,"x-scopes":["webhooks:write"]}},"/api/v1/webhook-endpoints/deliveries/{uuid}/replay":{"post":{"description":"uuid is a delivery UUID, not endpoint UUID. Only failed/cancelled delivery of a currently visible event to an active endpoint can be queued again.","operationId":"webhooks.replay","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"requestUuid":{"format":"uuid","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Повторить доставку","x-human-approval":false,"x-scopes":["webhooks:write"]}},"/api/v1/webhook-endpoints/{uuid}":{"delete":{"description":"Soft deletion cancels outstanding deliveries.","operationId":"webhooks.delete","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"requestUuid":{"format":"uuid","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Удалить вебхук","x-human-approval":false,"x-scopes":["webhooks:write"]},"patch":{"description":"Compare revision before changing. Destination, events or payload mode changes invalidate approval; state can only pause. A successful retry with an old revision returns conflict.","operationId":"webhooks.update","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"eventTypes":{"items":{"enum":["complaint.created","complaint.moderated","deal.started","deal.status_changed","favorite.changed","file.ready","job_invitation.received","job_invitation.status_changed","job_invitation.withdrawn","job_response.received","job_response.status_changed","job_response.withdrawn","learning.appeal.opened","learning.checker.failed","learning.community.created","learning.community.replied","learning.community.resolved","learning.course.completed","learning.course.published","learning.deadline.approaching","learning.deadline.changed","learning.enrollment.activated","learning.enrollment.completed","learning.enrollment.invited","learning.enrollment.pause","learning.enrollment.requested","learning.enrollment.restored","learning.enrollment.resume","learning.enrollment.start","learning.enrollment.transferred","learning.enrollment.withdraw","learning.enrollment.withdrawn","learning.module.completed","learning.review.overdue","learning.review.requested","learning.revision.requested","learning.run.cancelled","learning.step.available","learning.submission.accepted","learning.submission.graded","message.received","offer.received","offer.status_changed","offer.withdrawn","profile.updated","publication.deleted","publication.draft_saved","publication.hidden","publication.moderated","publication.restored","publication.submitted","response.received","response.status_changed","response.withdrawn","review.moderated","review.submitted","task.closed"],"type":"string"},"maxItems":128,"minItems":1,"type":"array","uniqueItems":true},"expectedRevision":{"minimum":1,"type":"integer"},"payloadMode":{"enum":["reference","current"],"type":"string"},"requestUuid":{"format":"uuid","type":"string"},"state":{"enum":["paused"],"type":"string"},"url":{"type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Изменить вебхук","x-human-approval":false,"x-scopes":["webhooks:write"]}},"/api/v1/webhook-endpoints/{uuid}/approve":{"post":{"description":"Human browser approval of exact revision; queues a minimal signed test. Endpoint activates only after successful test delivery.","operationId":"webhooks.approve","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"expectedRevision":{"minimum":1,"type":"integer"},"requestUuid":{"format":"uuid","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid","expectedRevision"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"SessionCookie":[]}],"summary":"Подтвердить адрес вебхука","x-browser-only":true,"x-human-approval":false,"x-scopes":["webhooks:write"]}},"/api/v1/webhook-endpoints/{uuid}/deliveries":{"get":{"description":"Latest 100 deliveries with attempt count and sanitized status/error.","operationId":"webhooks.deliveries","parameters":[{"in":"query","name":"requestUuid","required":false,"schema":{"format":"uuid","type":"string"}},{"in":"path","name":"uuid","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"bearerAuth":[]},{"SessionCookie":[]}],"summary":"Доставки вебхука","x-scopes":["webhooks:read"]}},"/api/v1/webhook-endpoints/{uuid}/rotate":{"post":{"description":"Reveals the new signing secret once; old key remains valid for 24 hours. Do not retry blindly.","operationId":"webhooks.rotate","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"requestUuid":{"format":"uuid","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"SessionCookie":[]}],"summary":"Заменить секрет вебхука","x-browser-only":true,"x-human-approval":false,"x-scopes":["webhooks:write"]}},"/api/v1/webhook-endpoints/{uuid}/test":{"post":{"description":"Queues a new minimal test only for an already approved endpoint. This is not delivery confirmation and retries may create distinct tests.","operationId":"webhooks.test","parameters":[{"in":"path","name":"uuid","required":true,"schema":{"type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"additionalProperties":false,"properties":{"requestUuid":{"format":"uuid","type":"string"},"uuid":{"format":"uuid","type":"string"}},"required":["uuid"],"type":"object"}}},"required":true},"responses":{"200":{"description":"Сохранённый результат или доступные записи"},"401":{"description":"Нужна авторизация"},"403":{"description":"Недостаточно прав"},"409":{"description":"Конфликт редакции или команды"}},"security":[{"SessionCookie":[]}],"summary":"Проверить вебхук","x-browser-only":true,"x-human-approval":false,"x-scopes":["webhooks:write"]}}},"servers":[{"url":"https://eval.su"}]}
