openapi: 3.0.2 info: title: umbraco-backoffice-api version: 1.0.0 paths: /install/settings: get: operationId: GetInstallSettings responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/InstallSettingsResponse' default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /install/setup: post: operationId: PostInstallSetup parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/InstallSetupRequest' required: true responses: '201': description: 201 response '400': description: 400 response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /install/validateDatabase: post: operationId: PostInstallValidateDatabase parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/InstallSetupDatabaseConfiguration' required: true responses: '201': description: 201 response '400': description: 400 response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /manifests: get: operationId: Manifests responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/ManifestsResponse' default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /manifests/packages: get: operationId: ManifestsPackages responses: '200': description: 200 response content: application/json: schema: type: object default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /manifests/packages/installed: get: operationId: ManifestsPackagesInstalled responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/ManifestsPackagesInstalledResponse' default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /published-cache/status: get: operationId: PublishedCacheStatus responses: '200': description: 200 response content: application/json: schema: type: string default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /published-cache/reload: post: operationId: PublishedCacheReload parameters: [] responses: '201': description: 201 response '400': description: 400 response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /published-cache/rebuild: post: operationId: PublishedCacheRebuild parameters: [] responses: '201': description: 201 response '400': description: 400 response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /published-cache/collect: get: operationId: PublishedCacheCollect responses: '200': description: 200 response content: application/json: schema: type: string default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /server/status: get: operationId: GetStatus responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/StatusResponse' default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /server/version: get: operationId: GetVersion responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/VersionResponse' default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /upgrade/settings: get: operationId: GetUpgradeSettings responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/UpgradeSettingsResponse' default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /upgrade/authorize: post: operationId: PostUpgradeAuthorize parameters: [] responses: '201': description: 201 response '400': description: 400 response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /user: get: operationId: GetUser responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/UserResponse' '403': description: 403 response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /user/login: post: operationId: PostUserLogin parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/UserLoginRequest' required: true responses: '201': description: 201 response '403': description: 403 response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /user/logout: post: operationId: PostUserLogout responses: '201': description: 201 response default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /user/sections: get: operationId: GetAllowedSections responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/AllowedSectionsResponse' default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /telemetry/ConsentLevel: get: operationId: GetConsentLevel responses: '200': description: 200 response content: application/json: schema: $ref: '#/components/schemas/ConsentLevelSettings' default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' post: operationId: PostConsentLevel parameters: [] requestBody: content: application/json: schema: $ref: '#/components/schemas/ConsentLevelSettings' required: true responses: '201': description: 201 response '400': description: 400 response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' /telemetry/ConsentLevels: get: operationId: ConsentLevels responses: '200': description: 200 response content: application/json: schema: type: array items: type: string default: description: default response content: application/json: schema: $ref: '#/components/schemas/ProblemDetails' components: schemas: ConsentLevel: type: string enum: - Minimal - Basic - Detailed TelemetryModel: type: object properties: level: $ref: '#/components/schemas/ConsentLevel' description: type: string required: - level - description InstallUserModel: type: object properties: minCharLength: type: number format: float minNonAlphaNumericLength: type: number format: float consentLevels: type: array items: $ref: '#/components/schemas/TelemetryModel' required: - minCharLength - minNonAlphaNumericLength - consentLevels InstallDatabaseModel: type: object properties: id: type: string sortOrder: type: number format: float displayName: type: string defaultDatabaseName: type: string providerName: type: string nullable: true isConfigured: type: boolean requiresServer: type: boolean serverPlaceholder: type: string nullable: true requiresCredentials: type: boolean supportsIntegratedAuthentication: type: boolean requiresConnectionTest: type: boolean required: - id - sortOrder - displayName - defaultDatabaseName - providerName - isConfigured - requiresServer - serverPlaceholder - requiresCredentials - supportsIntegratedAuthentication - requiresConnectionTest InstallSettingsResponse: type: object properties: user: $ref: '#/components/schemas/InstallUserModel' databases: type: array items: $ref: '#/components/schemas/InstallDatabaseModel' required: - user - databases ProblemDetails: type: object properties: type: type: string status: type: number format: float title: type: string detail: type: string instance: type: string errors: type: object required: - type - status InstallSetupUserConfiguration: type: object properties: name: type: string email: type: string password: type: string subscribeToNewsletter: type: boolean required: - name - email - password - subscribeToNewsletter InstallSetupDatabaseConfiguration: type: object properties: id: type: string server: type: string nullable: true password: type: string nullable: true username: type: string nullable: true name: type: string nullable: true providerName: type: string nullable: true useIntegratedAuthentication: type: boolean nullable: true connectionString: type: string nullable: true InstallSetupRequest: type: object properties: user: $ref: '#/components/schemas/InstallSetupUserConfiguration' telemetryLevel: $ref: '#/components/schemas/ConsentLevel' database: $ref: '#/components/schemas/InstallSetupDatabaseConfiguration' required: - user - telemetryLevel ManifestsResponse: type: object properties: manifests: type: array items: type: object required: - manifests PackageInstalled: type: object properties: id: type: string name: type: string alias: type: string version: type: string hasMigrations: type: boolean hasPendingMigrations: type: boolean plans: type: array items: type: object required: - id - name - alias - version - hasMigrations - hasPendingMigrations - plans ManifestsPackagesInstalledResponse: type: object properties: packages: type: array items: $ref: '#/components/schemas/PackageInstalled' required: - packages ServerStatus: type: string enum: - running - must-install - must-upgrade StatusResponse: type: object properties: serverStatus: $ref: '#/components/schemas/ServerStatus' required: - serverStatus VersionResponse: type: object properties: version: type: string required: - version UpgradeSettingsResponse: type: object properties: currentState: type: string newState: type: string newVersion: type: string oldVersion: type: string reportUrl: type: string required: - currentState - newState - newVersion - oldVersion - reportUrl UserResponse: type: object properties: username: type: string role: type: string required: - username - role UserLoginRequest: type: object properties: username: type: string password: type: string persist: type: boolean required: - username - password - persist AllowedSectionsResponse: type: object properties: sections: type: array items: type: string required: - sections ConsentLevelSettings: type: object properties: telemetryLevel: $ref: '#/components/schemas/ConsentLevel' required: - telemetryLevel