{ "openapi": "3.0.3", "info": { "title": "provisioning_api-administration", "version": "0.0.1", "description": "This application enables a set of APIs that external systems can use to manage accounts, groups and apps.", "license": { "name": "agpl" } }, "components": { "securitySchemes": { "basic_auth": { "type": "http", "scheme": "basic" }, "bearer_auth": { "type": "http", "scheme": "bearer" } }, "schemas": { "AppInfo": { "type": "object", "required": [ "active", "activity", "author", "background-jobs", "bugs", "category", "collaboration", "commands", "default_enable", "dependencies", "description", "discussion", "documentation", "groups", "id", "info", "internal", "level", "licence", "name", "namespace", "navigations", "preview", "previewAsIcon", "public", "remote", "removable", "repair-steps", "repository", "sabre", "screenshot", "settings", "summary", "trash", "two-factor-providers", "types", "version", "versions", "website" ], "properties": { "active": { "type": "boolean", "nullable": true }, "activity": { "type": "object", "nullable": true }, "author": { "type": "object", "nullable": true }, "background-jobs": { "type": "object", "nullable": true }, "bugs": { "type": "object", "nullable": true }, "category": { "type": "object", "nullable": true }, "collaboration": { "type": "object", "nullable": true }, "commands": { "type": "object", "nullable": true }, "default_enable": { "type": "object", "nullable": true }, "dependencies": { "type": "object", "nullable": true }, "description": { "type": "string" }, "discussion": { "type": "object", "nullable": true }, "documentation": { "type": "object", "nullable": true }, "groups": { "type": "object", "nullable": true }, "id": { "type": "string" }, "info": { "type": "object", "nullable": true }, "internal": { "type": "boolean", "nullable": true }, "level": { "type": "integer", "format": "int64", "nullable": true }, "licence": { "type": "object", "nullable": true }, "name": { "type": "string" }, "namespace": { "type": "object", "nullable": true }, "navigations": { "type": "object", "nullable": true }, "preview": { "type": "object", "nullable": true }, "previewAsIcon": { "type": "boolean", "nullable": true }, "public": { "type": "object", "nullable": true }, "remote": { "type": "object", "nullable": true }, "removable": { "type": "boolean", "nullable": true }, "repair-steps": { "type": "object", "nullable": true }, "repository": { "type": "object", "nullable": true }, "sabre": { "type": "object", "nullable": true }, "screenshot": { "type": "object", "nullable": true }, "settings": { "type": "object", "nullable": true }, "summary": { "type": "string" }, "trash": { "type": "object", "nullable": true }, "two-factor-providers": { "type": "object", "nullable": true }, "types": { "type": "object", "nullable": true }, "version": { "type": "string" }, "versions": { "type": "object", "nullable": true }, "website": { "type": "object", "nullable": true } } }, "Capabilities": { "type": "object", "required": [ "provisioning_api" ], "properties": { "provisioning_api": { "type": "object", "required": [ "version", "AccountPropertyScopesVersion", "AccountPropertyScopesFederatedEnabled", "AccountPropertyScopesPublishedEnabled" ], "properties": { "version": { "type": "string" }, "AccountPropertyScopesVersion": { "type": "integer", "format": "int64" }, "AccountPropertyScopesFederatedEnabled": { "type": "boolean" }, "AccountPropertyScopesPublishedEnabled": { "type": "boolean" } } } } }, "OCSMeta": { "type": "object", "required": [ "status", "statuscode" ], "properties": { "status": { "type": "string" }, "statuscode": { "type": "integer" }, "message": { "type": "string" }, "totalitems": { "type": "string" }, "itemsperpage": { "type": "string" } } } } }, "paths": { "/ocs/v2.php/cloud/apps": { "get": { "operationId": "apps-get-apps", "summary": "Get a list of installed apps", "description": "This endpoint requires admin access", "tags": [ "apps" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "filter", "in": "query", "description": "Filter for enabled or disabled apps", "schema": { "type": "string", "nullable": true } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Installed apps returned", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "object", "required": [ "apps" ], "properties": { "apps": { "type": "array", "items": { "type": "string" } } } } } } } } } } } } } }, "/ocs/v2.php/cloud/apps/{app}": { "get": { "operationId": "apps-get-app-info", "summary": "Get the app info for an app", "description": "This endpoint requires admin access", "tags": [ "apps" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "app", "in": "path", "description": "ID of the app", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "App info returned", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "$ref": "#/components/schemas/AppInfo" } } } } } } } } } }, "post": { "operationId": "apps-enable", "summary": "Enable an app", "description": "This endpoint requires admin access", "tags": [ "apps" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "app", "in": "path", "description": "ID of the app", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "App enabled successfully", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } } } }, "delete": { "operationId": "apps-disable", "summary": "Disable an app", "description": "This endpoint requires admin access", "tags": [ "apps" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "app", "in": "path", "description": "ID of the app", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "App disabled successfully", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } } } } }, "/ocs/v2.php/cloud/groups/{groupId}/subadmins": { "get": { "operationId": "groups-get-sub-admins-of-group", "summary": "Get the list of user IDs that are a subadmin of the group", "description": "This endpoint requires admin access", "tags": [ "groups" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "groupId", "in": "path", "description": "ID of the group", "required": true, "schema": { "type": "string", "pattern": "^.+$" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Sub admins returned", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "array", "items": { "type": "string" } } } } } } } } } } } }, "/ocs/v2.php/cloud/groups": { "post": { "operationId": "groups-add-group", "summary": "Create a new group", "description": "This endpoint requires admin access", "tags": [ "groups" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "groupid", "in": "query", "description": "ID of the group", "required": true, "schema": { "type": "string" } }, { "name": "displayname", "in": "query", "description": "Display name of the group", "schema": { "type": "string", "default": "" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Group created successfully", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } } } } }, "/ocs/v2.php/cloud/groups/{groupId}": { "put": { "operationId": "groups-update-group", "summary": "Update a group", "description": "This endpoint requires admin access", "tags": [ "groups" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "key", "in": "query", "description": "Key to update, only 'displayname'", "required": true, "schema": { "type": "string" } }, { "name": "value", "in": "query", "description": "New value for the key", "required": true, "schema": { "type": "string" } }, { "name": "groupId", "in": "path", "description": "ID of the group", "required": true, "schema": { "type": "string", "pattern": "^.+$" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Group updated successfully", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } } } }, "delete": { "operationId": "groups-delete-group", "summary": "Delete a group", "description": "This endpoint requires admin access", "tags": [ "groups" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "groupId", "in": "path", "description": "ID of the group", "required": true, "schema": { "type": "string", "pattern": "^.+$" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Group deleted successfully", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } } } } }, "/ocs/v2.php/cloud/users/{userId}/subadmins": { "get": { "operationId": "users-get-user-sub-admin-groups", "summary": "Get the groups a user is a subadmin of", "description": "This endpoint requires admin access", "tags": [ "users" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "userId", "in": "path", "description": "ID if the user", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "User subadmin groups returned", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "array", "items": { "type": "string" } } } } } } } } } } }, "post": { "operationId": "users-add-sub-admin", "summary": "Make a user a subadmin of a group", "description": "This endpoint requires admin access", "tags": [ "users" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "groupid", "in": "query", "description": "ID of the group", "required": true, "schema": { "type": "string" } }, { "name": "userId", "in": "path", "description": "ID of the user", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "User added as group subadmin successfully", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } } } }, "delete": { "operationId": "users-remove-sub-admin", "summary": "Remove a user from the subadmins of a group", "description": "This endpoint requires admin access", "tags": [ "users" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "groupid", "in": "query", "description": "ID of the group", "required": true, "schema": { "type": "string" } }, { "name": "userId", "in": "path", "description": "ID of the user", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "User removed as group subadmin successfully", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } } } } }, "/ocs/v2.php/apps/provisioning_api/api/v1/config/apps": { "get": { "operationId": "app_config-get-apps", "summary": "Get a list of apps", "description": "This endpoint requires admin access", "tags": [ "app_config" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Apps returned", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "items": { "type": "string" } } } } } } } } } } } } } }, "/ocs/v2.php/apps/provisioning_api/api/v1/config/apps/{app}": { "get": { "operationId": "app_config-get-keys", "summary": "Get the config keys of an app", "description": "This endpoint requires admin access", "tags": [ "app_config" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "app", "in": "path", "description": "ID of the app", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Keys returned", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "array", "items": { "type": "string" } } } } } } } } } } }, "403": { "description": "App is not allowed", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "message" ], "properties": { "message": { "type": "string" } } } } } } } } } } } } } } }, "/ocs/v2.php/apps/provisioning_api/api/v1/config/apps/{app}/{key}": { "get": { "operationId": "app_config-get-value", "summary": "Get a the config value of an app", "description": "This endpoint requires admin access", "tags": [ "app_config" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "defaultValue", "in": "query", "description": "Default returned value if the value is empty", "schema": { "type": "string", "default": "" } }, { "name": "app", "in": "path", "description": "ID of the app", "required": true, "schema": { "type": "string" } }, { "name": "key", "in": "path", "description": "Key", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Value returned", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "string" } } } } } } } } } }, "403": { "description": "App is not allowed", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "message" ], "properties": { "message": { "type": "string" } } } } } } } } } } } } } }, "delete": { "operationId": "app_config-delete-key", "summary": "Delete a config key of an app", "description": "This endpoint requires admin access", "tags": [ "app_config" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "app", "in": "path", "description": "ID of the app", "required": true, "schema": { "type": "string" } }, { "name": "key", "in": "path", "description": "Key to delete", "required": true, "schema": { "type": "string" } }, { "name": "OCS-APIRequest", "in": "header", "description": "Required to be true for the API request to pass", "required": true, "schema": { "type": "boolean", "default": true } } ], "responses": { "200": { "description": "Key deleted successfully", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } }, "403": { "description": "App or key is not allowed", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": { "type": "object", "required": [ "data" ], "properties": { "data": { "type": "object", "required": [ "message" ], "properties": { "message": { "type": "string" } } } } } } } } } } } } } } } }, "tags": [] }