128 lines
3.7 KiB
YAML
128 lines
3.7 KiB
YAML
openapi: 3.0.3
|
|
info:
|
|
title: TenantPilot - Assignment Operations (Internal)
|
|
version: "1.0"
|
|
description: |
|
|
Internal contract describing the user-triggered operation start surfaces and Monitoring read surfaces
|
|
relevant to assignment fetch/restore observability.
|
|
|
|
servers:
|
|
- url: /
|
|
|
|
paths:
|
|
/admin/t/{tenant}/backup-items/{backupItem}/assignments/fetch:
|
|
post:
|
|
summary: Start assignment fetch/enrichment
|
|
parameters:
|
|
- in: path
|
|
name: tenant
|
|
required: true
|
|
schema: { type: string }
|
|
- in: path
|
|
name: backupItem
|
|
required: true
|
|
schema: { type: integer }
|
|
responses:
|
|
"202":
|
|
description: Accepted; operation run created/reused and job enqueued
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OperationRunStartResponse"
|
|
"403": { description: Forbidden (member missing capability) }
|
|
"404": { description: Not found (non-member / wrong plane) }
|
|
|
|
/admin/t/{tenant}/restore-runs/{restoreRun}/assignments/restore:
|
|
post:
|
|
summary: Start assignment restore
|
|
parameters:
|
|
- in: path
|
|
name: tenant
|
|
required: true
|
|
schema: { type: string }
|
|
- in: path
|
|
name: restoreRun
|
|
required: true
|
|
schema: { type: integer }
|
|
responses:
|
|
"202":
|
|
description: Accepted; operation run created/reused and job enqueued
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OperationRunStartResponse"
|
|
"403": { description: Forbidden (member missing capability) }
|
|
"404": { description: Not found (non-member / wrong plane) }
|
|
|
|
/admin/monitoring/operations:
|
|
get:
|
|
summary: List operation runs (Monitoring)
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/OperationRunSummary"
|
|
|
|
/admin/monitoring/operations/{operationRun}:
|
|
get:
|
|
summary: Get operation run detail (Monitoring)
|
|
parameters:
|
|
- in: path
|
|
name: operationRun
|
|
required: true
|
|
schema: { type: integer }
|
|
responses:
|
|
"200":
|
|
description: OK
|
|
content:
|
|
application/json:
|
|
schema:
|
|
$ref: "#/components/schemas/OperationRunDetail"
|
|
"404": { description: Not found (non-member / no entitlement) }
|
|
|
|
components:
|
|
schemas:
|
|
OperationRunStartResponse:
|
|
type: object
|
|
required: [operationRunId]
|
|
properties:
|
|
operationRunId:
|
|
type: integer
|
|
|
|
OperationRunSummary:
|
|
type: object
|
|
required: [id, type, status, outcome, createdAt]
|
|
properties:
|
|
id: { type: integer }
|
|
type: { type: string }
|
|
status: { type: string }
|
|
outcome: { type: string }
|
|
createdAt: { type: string, format: date-time }
|
|
|
|
OperationRunDetail:
|
|
allOf:
|
|
- $ref: "#/components/schemas/OperationRunSummary"
|
|
- type: object
|
|
properties:
|
|
startedAt: { type: string, format: date-time, nullable: true }
|
|
completedAt: { type: string, format: date-time, nullable: true }
|
|
context:
|
|
type: object
|
|
additionalProperties: true
|
|
failures:
|
|
type: array
|
|
items:
|
|
$ref: "#/components/schemas/FailureItem"
|
|
|
|
FailureItem:
|
|
type: object
|
|
required: [code, reasonCode, message]
|
|
properties:
|
|
code: { type: string }
|
|
reasonCode: { type: string }
|
|
message: { type: string }
|