Files
yucca/packages/yucca-sdk/orchestration-api/openapi-specs.json
T

2421 lines
53 KiB
JSON

{
"openapi": "3.0.0",
"paths": {
"/api/yucca/auth/oidc/device": {
"get": {
"operationId": "connectDeviceFlow",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeviceFlowEventDto"
}
}
}
}
},
"tags": [
"Auth"
]
}
},
"/api/yucca/auth/session/device": {
"get": {
"operationId": "sessionDeviceFlow",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/DeviceFlowEventDto"
}
}
}
}
},
"tags": [
"Auth"
]
}
},
"/api/yucca/auth/session": {
"post": {
"operationId": "createSession",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateSessionRequestDto"
}
}
}
},
"responses": {
"201": {
"description": ""
}
},
"tags": [
"Auth"
]
}
},
"/api/yucca/auth/ticket": {
"post": {
"operationId": "createTicket",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TicketCreateRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/TicketCreateResponseDto"
}
}
}
}
},
"tags": [
"Auth"
]
}
},
"/api/yucca/backend": {
"get": {
"operationId": "getBackends",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BackendsResponseDto"
}
}
}
}
},
"tags": [
"Backend"
]
}
},
"/api/yucca/backend/local": {
"post": {
"operationId": "createLocalBackend",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CreateLocalBackendRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/BackendResponseDto"
}
}
}
}
},
"tags": [
"Backend"
]
}
},
"/api/yucca/debug/reset": {
"post": {
"operationId": "resetOrchestrator",
"parameters": [],
"responses": {
"201": {
"description": ""
}
},
"tags": [
"Development"
]
}
},
"/api/yucca/fs": {
"get": {
"operationId": "getFileListing",
"parameters": [
{
"name": "path",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FilesystemListingResponseDto"
}
}
}
}
},
"tags": [
"Filesystem"
]
}
},
"/api/yucca/integrations": {
"get": {
"operationId": "getIntegrations",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/IntegrationsResponseDto"
}
}
}
}
},
"tags": [
"Integrations"
]
}
},
"/api/yucca/integrations/immich": {
"post": {
"operationId": "configureImmichIntegration",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ConfigureImmichIntegrationRequestDto"
}
}
}
},
"responses": {
"201": {
"description": ""
}
},
"tags": [
"Integrations"
]
}
},
"/api/yucca/integrations/immich/rollback": {
"post": {
"operationId": "startImmichRollback",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImmichRollbackRequestDto"
}
}
}
},
"responses": {
"201": {
"description": ""
}
},
"tags": [
"Integrations"
]
}
},
"/api/yucca/onboarding": {
"get": {
"operationId": "onboardingStatus",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/OnboardingStatusResponseDto"
}
}
}
}
},
"tags": [
"Onboarding"
]
}
},
"/api/yucca/onboarding/recovery-key": {
"get": {
"operationId": "currentRecoveryKey",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/CurrentRecoveryKeyResponse"
}
}
}
}
},
"tags": [
"Onboarding"
]
},
"put": {
"operationId": "importRecoveryKey",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ImportRecoveryKeyRequest"
}
}
}
},
"responses": {
"200": {
"description": ""
}
},
"tags": [
"Onboarding"
]
},
"post": {
"operationId": "confirmRecoveryKey",
"parameters": [],
"responses": {
"201": {
"description": ""
}
},
"tags": [
"Onboarding"
]
}
},
"/api/yucca/onboarding/skip": {
"post": {
"operationId": "skipOnboardingExtraConfig",
"parameters": [],
"responses": {
"201": {
"description": ""
}
},
"tags": [
"Onboarding"
]
}
},
"/api/yucca/onboarding/telemetry": {
"post": {
"operationId": "enableTelemetry",
"parameters": [],
"responses": {
"201": {
"description": ""
}
},
"tags": [
"Onboarding"
]
}
},
"/api/yucca/onboarding/report-error": {
"post": {
"operationId": "reportError",
"parameters": [],
"responses": {
"201": {
"description": ""
}
},
"tags": [
"Onboarding"
]
}
},
"/api/yucca/repository": {
"post": {
"operationId": "createRepository",
"parameters": [
{
"name": "backend",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryCreateRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryCreateResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
},
"get": {
"operationId": "getRepositories",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryListResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/inspect": {
"get": {
"operationId": "inspectRepositories",
"parameters": [
{
"name": "backend",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryInspectResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}": {
"patch": {
"operationId": "updateRepository",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "backend",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryUpdateRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryUpdateResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
},
"delete": {
"operationId": "deleteRepository",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"tags": [
"Repository"
]
},
"post": {
"operationId": "createBackup",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}/import": {
"get": {
"operationId": "checkImportRepository",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "backend",
"required": true,
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryCheckImportResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
},
"post": {
"operationId": "importRepository",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "backend",
"required": true,
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryCreateResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}/backend": {
"put": {
"operationId": "reconfigureRepositoryPrimaryBackend",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryPrimaryBackendReconfigureRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositoryCreateResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}/runs": {
"get": {
"operationId": "getRunHistory",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RunHistoryResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}/snapshots": {
"get": {
"operationId": "getSnapshots",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListSnapshotsResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}/snapshots/prune": {
"post": {
"operationId": "pruneRepository",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}/snapshots/{snapshot}": {
"post": {
"operationId": "restoreSnapshot",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "snapshot",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositorySnapshotRestoreRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
},
"delete": {
"operationId": "forgetSnapshot",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "snapshot",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ListSnapshotsResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}/snapshots/{snapshot}/restore-from-point": {
"post": {
"operationId": "restoreFromPoint",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "snapshot",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "backend",
"required": true,
"in": "query",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RepositorySnapshotRestoreFromPointRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/LogResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/repository/{id}/snapshots/{snapshot}/listing": {
"get": {
"operationId": "getSnapshotListing",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "snapshot",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
},
{
"name": "path",
"required": false,
"in": "query",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/FilesystemListingResponseDto"
}
}
}
}
},
"tags": [
"Repository"
]
}
},
"/api/yucca/logs/{id}": {
"get": {
"operationId": "getRun",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RunResponseDto"
}
}
}
}
},
"tags": [
"RunHistory"
]
}
},
"/api/yucca/logs/{id}/stream": {
"get": {
"operationId": "logStreamSse",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"tags": [
"RunHistory"
]
}
},
"/api/yucca/tasks": {
"get": {
"operationId": "getRunningTasks",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/RunningTaskListResponse"
}
}
}
}
},
"tags": [
"RunningTasks"
]
}
},
"/api/yucca/tasks/{parentId}/cancel": {
"post": {
"operationId": "cancelTask",
"parameters": [
{
"name": "parentId",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"201": {
"description": ""
}
},
"tags": [
"RunningTasks"
]
}
},
"/api/yucca/schedule": {
"post": {
"operationId": "createSchedule",
"parameters": [],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleCreateRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleCreateResponseDto"
}
}
}
}
},
"tags": [
"Schedule"
]
},
"get": {
"operationId": "getSchedules",
"parameters": [],
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleListResponseDto"
}
}
}
}
},
"tags": [
"Schedule"
]
}
},
"/api/yucca/schedule/{id}": {
"patch": {
"operationId": "updateSchedule",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleUpdateRequestDto"
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"$ref": "#/components/schemas/ScheduleUpdateResponseDto"
}
}
}
}
},
"tags": [
"Schedule"
]
},
"delete": {
"operationId": "removeSchedule",
"parameters": [
{
"name": "id",
"required": true,
"in": "path",
"schema": {
"type": "string"
}
}
],
"responses": {
"200": {
"description": ""
}
},
"tags": [
"Schedule"
]
}
}
},
"info": {
"title": "yucca",
"description": "yucca SDK",
"version": "1.0.0",
"contact": {}
},
"tags": [],
"servers": [
{
"url": "http://localhost:22676"
}
],
"components": {
"schemas": {
"DeviceFlowEventType": {
"type": "string",
"enum": [
"START",
"SUCCESS",
"FAILURE"
]
},
"DeviceFlowFailureReason": {
"type": "string",
"enum": [
"NOT_CONNECTED",
"DEVICE_FLOW_FAILED",
"WRONG_ACCOUNT",
"UNKNOWN"
]
},
"DeviceFlowEventDto": {
"type": "object",
"properties": {
"type": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceFlowEventType"
}
]
},
"userCode": {
"type": "string"
},
"verificationUri": {
"type": "string"
},
"token": {
"type": "string"
},
"backendId": {
"type": "string"
},
"reason": {
"allOf": [
{
"$ref": "#/components/schemas/DeviceFlowFailureReason"
}
]
}
},
"required": [
"type"
]
},
"CreateSessionRequestDto": {
"type": "object",
"properties": {
"token": {
"type": "string"
}
},
"required": [
"token"
]
},
"TicketAction": {
"type": "string",
"enum": [
"repository.delete",
"repository.disable-worm"
]
},
"TicketCreateRequestDto": {
"type": "object",
"properties": {
"action": {
"allOf": [
{
"$ref": "#/components/schemas/TicketAction"
}
]
},
"repositoryId": {
"type": "string",
"description": "Repository the ticket is bound to"
}
},
"required": [
"action",
"repositoryId"
]
},
"TicketCreateResponseDto": {
"type": "object",
"properties": {
"redirectTo": {
"type": "string",
"description": "Identity provider URL the browser must be sent to"
}
},
"required": [
"redirectTo"
]
},
"BackendType": {
"type": "string",
"enum": [
"yucca",
"local",
"s3"
]
},
"BackendDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/BackendType"
}
]
},
"description": {
"type": "string"
},
"isOnline": {
"type": "boolean"
},
"error": {
"type": "string"
}
},
"required": [
"id",
"type",
"description",
"isOnline"
]
},
"BackendsResponseDto": {
"type": "object",
"properties": {
"backends": {
"type": "array",
"items": {
"$ref": "#/components/schemas/BackendDto"
}
}
},
"required": [
"backends"
]
},
"CreateLocalBackendRequestDto": {
"type": "object",
"properties": {
"path": {
"type": "string"
}
},
"required": [
"path"
]
},
"BackendResponseDto": {
"type": "object",
"properties": {
"backend": {
"$ref": "#/components/schemas/BackendDto"
}
},
"required": [
"backend"
]
},
"FilesystemListingItemDto": {
"type": "object",
"properties": {
"path": {
"type": "string"
},
"isDirectory": {
"type": "boolean"
}
},
"required": [
"path",
"isDirectory"
]
},
"FilesystemListingResponseDto": {
"type": "object",
"properties": {
"parent": {
"type": "string"
},
"path": {
"type": "string"
},
"items": {
"type": "array",
"items": {
"$ref": "#/components/schemas/FilesystemListingItemDto"
}
}
},
"required": [
"parent",
"path",
"items"
]
},
"ImmichLibraryDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"importPaths": {
"type": "array",
"items": {
"type": "string"
}
},
"exclusionPatterns": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"id",
"name",
"importPaths",
"exclusionPatterns"
]
},
"ImmichStateDto": {
"type": "object",
"properties": {
"dataPath": {
"type": "string"
},
"dataFolders": {
"type": "array",
"items": {
"type": "string"
}
},
"libraries": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ImmichLibraryDto"
}
}
},
"required": [
"dataPath",
"dataFolders",
"libraries"
]
},
"ImmichIntegrationConfigurationDto": {
"type": "object",
"properties": {
"dataFolders": {
"type": "array",
"items": {
"type": "string"
}
},
"backupConfiguration": {
"type": "boolean"
},
"libraries": {
"oneOf": [
{
"type": "string",
"enum": [
"all"
]
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
}
},
"required": [
"dataFolders",
"backupConfiguration",
"libraries"
]
},
"ImmichIntegrationDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"scheduleId": {
"type": "string"
},
"configuration": {
"$ref": "#/components/schemas/ImmichIntegrationConfigurationDto"
}
},
"required": [
"id",
"scheduleId",
"configuration"
]
},
"IntegrationsResponseDto": {
"type": "object",
"properties": {
"immichState": {
"$ref": "#/components/schemas/ImmichStateDto"
},
"immichIntegration": {
"$ref": "#/components/schemas/ImmichIntegrationDto"
}
}
},
"RetentionPolicyDto": {
"type": "object",
"properties": {
"keepLast": {
"type": "number"
},
"keepWithin": {
"type": "string"
},
"keepWithinHourly": {
"type": "string"
},
"keepWithinDaily": {
"type": "string"
},
"keepWithinWeekly": {
"type": "string"
},
"keepWithinMonthly": {
"type": "string"
},
"keepWithinYearly": {
"type": "string"
}
}
},
"ConfigureImmichIntegrationRequestDto": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"worm": {
"type": "boolean"
},
"cron": {
"type": "string"
},
"dataFolders": {
"type": "array",
"items": {
"type": "string"
}
},
"backupConfiguration": {
"type": "boolean"
},
"libraries": {
"oneOf": [
{
"type": "string",
"enum": [
"all"
]
},
{
"type": "array",
"items": {
"type": "string"
}
}
]
},
"retentionPolicy": {
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/RetentionPolicyDto"
}
]
},
"paused": {
"type": "boolean"
}
},
"required": [
"name",
"worm",
"cron",
"dataFolders",
"backupConfiguration",
"libraries"
]
},
"ImmichRollbackRequestDto": {
"type": "object",
"properties": {
"repositoryId": {
"type": "string"
},
"snapshotId": {
"type": "string"
},
"backupFileName": {
"type": "string"
}
},
"required": [
"repositoryId",
"snapshotId"
]
},
"BootstrapStatus": {
"type": "string",
"enum": [
"not-ready",
"ready",
"error"
]
},
"TelemetryLevel": {
"type": "string",
"enum": [
"full",
"none"
]
},
"OnboardingStatusResponseDto": {
"type": "object",
"properties": {
"status": {
"allOf": [
{
"$ref": "#/components/schemas/BootstrapStatus"
}
]
},
"error": {
"type": "string"
},
"hasTelemetry": {
"allOf": [
{
"$ref": "#/components/schemas/TelemetryLevel"
}
]
},
"requiresAuthentication": {
"type": "boolean"
},
"isAuthenticated": {
"type": "boolean"
},
"hasOnboardedKey": {
"type": "boolean"
},
"hasBackend": {
"type": "boolean"
},
"hasBackup": {
"type": "boolean"
},
"hasSchedule": {
"type": "boolean"
},
"hasSkippedExtraConfig": {
"type": "boolean"
}
},
"required": [
"status",
"hasTelemetry",
"requiresAuthentication",
"isAuthenticated",
"hasOnboardedKey",
"hasBackend",
"hasBackup",
"hasSchedule",
"hasSkippedExtraConfig"
]
},
"CurrentRecoveryKeyResponse": {
"type": "object",
"properties": {
"recoveryKey": {
"type": "string"
}
},
"required": [
"recoveryKey"
]
},
"ImportRecoveryKeyRequest": {
"type": "object",
"properties": {
"recoveryKey": {
"type": "string"
}
},
"required": [
"recoveryKey"
]
},
"RepositoryCreateRequestDto": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"worm": {
"type": "boolean"
},
"site": {
"type": "string",
"description": "Internal site code from environment metadata"
},
"paths": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"worm"
]
},
"TaskStatus": {
"type": "string",
"enum": [
"incomplete",
"complete",
"warn",
"failed"
]
},
"RepositoryMetricsDto": {
"type": "object",
"properties": {
"lastBackup": {
"type": "string"
},
"lastBackupStatus": {
"allOf": [
{
"$ref": "#/components/schemas/TaskStatus"
}
]
},
"lastBackupDuration": {
"type": "number"
},
"sizeBytes": {
"type": "number"
}
},
"required": [
"sizeBytes"
]
},
"RepositoryMeterDto": {
"type": "object",
"properties": {
"sizeBytes": {
"type": "number"
},
"objectCount": {
"type": "number"
},
"lastUpdated": {
"type": "string"
}
},
"required": [
"sizeBytes",
"objectCount"
]
},
"RepositoryBackendDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/BackendType"
}
]
},
"online": {
"type": "boolean"
}
},
"required": [
"id",
"type",
"online"
]
},
"RepositoryBackendsDto": {
"type": "object",
"properties": {
"primary": {
"$ref": "#/components/schemas/RepositoryBackendDto"
},
"secondary": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RepositoryBackendDto"
}
}
},
"required": [
"primary",
"secondary"
]
},
"RepositoryConfigurationDto": {
"type": "object",
"properties": {
"paths": {
"type": "array",
"items": {
"type": "string"
}
},
"retentionPolicy": {
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/RetentionPolicyDto"
}
]
}
},
"required": [
"paths"
]
},
"LocalRepositoryDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"worm": {
"type": "boolean"
},
"name": {
"type": "string"
},
"siteCode": {
"type": "string",
"nullable": true
},
"storageClusterCode": {
"type": "string",
"nullable": true
},
"metrics": {
"$ref": "#/components/schemas/RepositoryMetricsDto"
},
"meter": {
"$ref": "#/components/schemas/RepositoryMeterDto"
},
"backends": {
"$ref": "#/components/schemas/RepositoryBackendsDto"
},
"configuration": {
"$ref": "#/components/schemas/RepositoryConfigurationDto"
}
},
"required": [
"id",
"worm",
"name",
"siteCode",
"storageClusterCode",
"metrics"
]
},
"RepositoryCreateResponseDto": {
"type": "object",
"properties": {
"repository": {
"$ref": "#/components/schemas/LocalRepositoryDto"
}
},
"required": [
"repository"
]
},
"RepositoryListResponseDto": {
"type": "object",
"properties": {
"repositories": {
"type": "array",
"items": {
"$ref": "#/components/schemas/LocalRepositoryDto"
}
}
},
"required": [
"repositories"
]
},
"SnapshotSummaryDto": {
"type": "object",
"properties": {
"filesNew": {
"type": "number"
},
"filesChanged": {
"type": "number"
},
"filesUnmodified": {
"type": "number"
},
"totalFiles": {
"type": "number"
},
"totalBytes": {
"type": "number"
},
"dataAdded": {
"type": "number"
}
},
"required": [
"filesNew",
"filesChanged",
"filesUnmodified",
"totalFiles",
"totalBytes",
"dataAdded"
]
},
"SnapshotDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"time": {
"type": "string"
},
"paths": {
"type": "array",
"items": {
"type": "string"
}
},
"tags": {
"type": "array",
"items": {
"type": "string"
}
},
"summary": {
"$ref": "#/components/schemas/SnapshotSummaryDto"
}
},
"required": [
"id",
"time",
"paths"
]
},
"InspectedLocalRepositoryDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"worm": {
"type": "boolean"
},
"name": {
"type": "string"
},
"siteCode": {
"type": "string",
"nullable": true
},
"storageClusterCode": {
"type": "string",
"nullable": true
},
"metrics": {
"$ref": "#/components/schemas/RepositoryMetricsDto"
},
"meter": {
"$ref": "#/components/schemas/RepositoryMeterDto"
},
"backends": {
"$ref": "#/components/schemas/RepositoryBackendsDto"
},
"configuration": {
"$ref": "#/components/schemas/RepositoryConfigurationDto"
},
"snapshots": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SnapshotDto"
}
}
},
"required": [
"id",
"worm",
"name",
"siteCode",
"storageClusterCode",
"metrics",
"snapshots"
]
},
"RepositoryInspectResponseDto": {
"type": "object",
"properties": {
"repositories": {
"type": "array",
"items": {
"$ref": "#/components/schemas/InspectedLocalRepositoryDto"
}
}
},
"required": [
"repositories"
]
},
"RepositoryUpdateRequestDto": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"worm": {
"type": "boolean"
},
"paths": {
"type": "array",
"items": {
"type": "string"
}
},
"retentionPolicy": {
"nullable": true,
"allOf": [
{
"$ref": "#/components/schemas/RetentionPolicyDto"
}
]
}
}
},
"RepositoryUpdateResponseDto": {
"type": "object",
"properties": {
"repository": {
"$ref": "#/components/schemas/LocalRepositoryDto"
}
},
"required": [
"repository"
]
},
"LogResponseDto": {
"type": "object",
"properties": {
"logId": {
"type": "string"
}
},
"required": [
"logId"
]
},
"RepositoryCheckImportResponseDto": {
"type": "object",
"properties": {
"readable": {
"type": "boolean"
}
},
"required": [
"readable"
]
},
"RepositoryPrimaryBackendReconfigureRequestDto": {
"type": "object",
"properties": {
"backendId": {
"type": "string"
}
},
"required": [
"backendId"
]
},
"RunStatus": {
"type": "string",
"enum": [
"incomplete",
"complete",
"warn",
"failed"
]
},
"RunType": {
"type": "string",
"enum": [
"schedule",
"restore",
"backup",
"forget"
]
},
"RunDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"repositoryId": {
"type": "string"
},
"start": {
"type": "string"
},
"end": {
"type": "string"
},
"logFilePath": {
"type": "string"
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/RunStatus"
}
]
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/RunType"
}
]
}
},
"required": [
"id",
"repositoryId",
"start",
"end",
"logFilePath",
"status",
"type"
]
},
"RunHistoryResponseDto": {
"type": "object",
"properties": {
"runs": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RunDto"
}
}
},
"required": [
"runs"
]
},
"ListSnapshotsResponseDto": {
"type": "object",
"properties": {
"snapshots": {
"type": "array",
"items": {
"$ref": "#/components/schemas/SnapshotDto"
}
}
},
"required": [
"snapshots"
]
},
"RepositorySnapshotRestoreRequestDto": {
"type": "object",
"properties": {
"target": {
"type": "string"
},
"include": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"RepositorySnapshotRestoreFromPointRequestDto": {
"type": "object",
"properties": {
"yuccaConfig": {
"type": "string"
},
"include": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"RunResponseDto": {
"type": "object",
"properties": {
"run": {
"$ref": "#/components/schemas/RunDto"
}
},
"required": [
"run"
]
},
"TaskType": {
"type": "string",
"enum": [
"schedule",
"restore",
"backup",
"forget"
]
},
"ActiveScheduleItemDto": {
"type": "object",
"properties": {
"repositoryId": {
"type": "string"
},
"status": {
"allOf": [
{
"$ref": "#/components/schemas/TaskStatus"
}
]
}
},
"required": [
"repositoryId",
"status"
]
},
"RunningTaskDto": {
"type": "object",
"properties": {
"parentId": {
"type": "string"
},
"type": {
"allOf": [
{
"$ref": "#/components/schemas/TaskType"
}
]
},
"logId": {
"type": "string"
},
"scheduleStatus": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ActiveScheduleItemDto"
}
}
},
"required": [
"parentId",
"type"
]
},
"RunningTaskListResponse": {
"type": "object",
"properties": {
"tasks": {
"type": "array",
"items": {
"$ref": "#/components/schemas/RunningTaskDto"
}
}
},
"required": [
"tasks"
]
},
"ScheduleCreateRequestDto": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"cron": {
"type": "string"
},
"repositories": {
"type": "array",
"items": {
"type": "string"
}
}
},
"required": [
"name",
"cron",
"repositories"
]
},
"ScheduleDto": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"name": {
"type": "string"
},
"paused": {
"type": "boolean"
},
"cron": {
"type": "string"
},
"repositories": {
"type": "array",
"items": {
"type": "string"
}
},
"lastRun": {
"type": "string"
},
"lastFinished": {
"type": "string"
}
},
"required": [
"id",
"name",
"paused",
"cron",
"repositories"
]
},
"ScheduleCreateResponseDto": {
"type": "object",
"properties": {
"schedule": {
"$ref": "#/components/schemas/ScheduleDto"
}
},
"required": [
"schedule"
]
},
"ScheduleListResponseDto": {
"type": "object",
"properties": {
"schedules": {
"type": "array",
"items": {
"$ref": "#/components/schemas/ScheduleDto"
}
}
},
"required": [
"schedules"
]
},
"ScheduleUpdateRequestDto": {
"type": "object",
"properties": {
"name": {
"type": "string"
},
"paused": {
"type": "boolean"
},
"cron": {
"type": "string"
},
"repositories": {
"type": "array",
"items": {
"type": "string"
}
}
}
},
"ScheduleUpdateResponseDto": {
"type": "object",
"properties": {
"schedule": {
"$ref": "#/components/schemas/ScheduleDto"
}
},
"required": [
"schedule"
]
}
}
}
}