You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nextcloud/apps/provisioning_api/openapi-administration.json

1570 lines
63 KiB
JSON

{
"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 users, 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": []
}