0
0
Fork 0
mirror of https://github.com/nextcloud/server.git synced 2025-01-31 06:43:12 +00:00
nextcloud_server/apps/federatedfilesharing/openapi.json
provokateurin 32de958259
chore(deps): Update openapi-extractor
Signed-off-by: provokateurin <kate@provokateurin.de>
2024-07-02 09:08:04 +02:00

1047 lines
43 KiB
JSON

{
"openapi": "3.0.3",
"info": {
"title": "federatedfilesharing",
"version": "0.0.1",
"description": "Provide federated file sharing across servers",
"license": {
"name": "agpl"
}
},
"components": {
"securitySchemes": {
"basic_auth": {
"type": "http",
"scheme": "basic"
},
"bearer_auth": {
"type": "http",
"scheme": "bearer"
}
},
"schemas": {
"OCSMeta": {
"type": "object",
"required": [
"status",
"statuscode"
],
"properties": {
"status": {
"type": "string"
},
"statuscode": {
"type": "integer"
},
"message": {
"type": "string"
},
"totalitems": {
"type": "string"
},
"itemsperpage": {
"type": "string"
}
}
}
}
},
"paths": {
"/index.php/apps/federatedfilesharing/createFederatedShare": {
"post": {
"operationId": "mount_public_link-create-federated-share",
"summary": "send federated share to a user of a public link",
"tags": [
"mount_public_link"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": true,
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"shareWith",
"token"
],
"properties": {
"shareWith": {
"type": "string",
"description": "Username to share with"
},
"token": {
"type": "string",
"description": "Token of the share"
},
"password": {
"type": "string",
"default": "",
"description": "Password of the share"
}
}
}
}
}
},
"responses": {
"200": {
"description": "Remote URL returned",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"remoteUrl"
],
"properties": {
"remoteUrl": {
"type": "string"
}
}
}
}
}
},
"400": {
"description": "Creating share is not possible",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"message"
],
"properties": {
"message": {
"type": "string"
}
}
}
}
}
}
}
}
},
"/ocs/v2.php/cloud/shares": {
"post": {
"operationId": "request_handler-create-share",
"summary": "create a new share",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"remote": {
"type": "string",
"nullable": true,
"description": "Address of the remote"
},
"token": {
"type": "string",
"nullable": true,
"description": "Shared secret between servers"
},
"name": {
"type": "string",
"nullable": true,
"description": "Name of the shared resource"
},
"owner": {
"type": "string",
"nullable": true,
"description": "Display name of the receiver"
},
"sharedBy": {
"type": "string",
"nullable": true,
"description": "Display name of the sender"
},
"shareWith": {
"type": "string",
"nullable": true,
"description": "ID of the user that receives the share"
},
"remoteId": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "ID of the remote"
},
"sharedByFederatedId": {
"type": "string",
"nullable": true,
"description": "Federated ID of the sender"
},
"ownerFederatedId": {
"type": "string",
"nullable": true,
"description": "Federated ID of the receiver"
}
}
}
}
}
},
"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": "Share 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/shares/{id}/reshare": {
"post": {
"operationId": "request_handler-re-share",
"summary": "create re-share on behalf of another user",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"nullable": true,
"description": "Shared secret between servers"
},
"shareWith": {
"type": "string",
"nullable": true,
"description": "ID of the user that receives the share"
},
"remoteId": {
"type": "integer",
"format": "int64",
"nullable": true,
"default": 0,
"description": "ID of the remote"
}
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the share",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"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": "Remote share 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": [
"token",
"remoteId"
],
"properties": {
"token": {
"type": "string"
},
"remoteId": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"400": {
"description": "Re-sharing is not possible",
"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/shares/{id}/permissions": {
"post": {
"operationId": "request_handler-update-permissions",
"summary": "update share information to keep federated re-shares in sync",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"nullable": true,
"description": "Shared secret between servers"
},
"permissions": {
"type": "integer",
"format": "int64",
"nullable": true,
"description": "New permissions"
}
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the share",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"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": "Permissions updated successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
},
"400": {
"description": "Updating permissions is not possible",
"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/shares/{id}/accept": {
"post": {
"operationId": "request_handler-accept-share",
"summary": "accept server-to-server share",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"nullable": true,
"description": "Shared secret between servers"
}
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the remote share",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"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": "Share accepted successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
},
"500": {
"description": "",
"content": {
"text/plain": {
"schema": {
"type": "string"
}
}
}
}
}
}
},
"/ocs/v2.php/cloud/shares/{id}/decline": {
"post": {
"operationId": "request_handler-decline-share",
"summary": "decline server-to-server share",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"nullable": true,
"description": "Shared secret between servers"
}
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the remote share",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"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": "Share declined 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/shares/{id}/unshare": {
"post": {
"operationId": "request_handler-unshare",
"summary": "remove server-to-server share if it was unshared by the owner",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"nullable": true,
"description": "Shared secret between servers"
}
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the share",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"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": "Share unshared 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/shares/{id}/revoke": {
"post": {
"operationId": "request_handler-revoke",
"summary": "federated share was revoked, either by the owner or the re-sharer",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"nullable": true,
"description": "Shared secret between servers"
}
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the share",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"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": "Share revoked successfully",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
},
"400": {
"description": "Revoking the share is not possible",
"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/shares/{id}/move": {
"post": {
"operationId": "request_handler-move",
"summary": "change the owner of a server-to-server share",
"tags": [
"request_handler"
],
"security": [
{},
{
"bearer_auth": []
},
{
"basic_auth": []
}
],
"requestBody": {
"required": false,
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"token": {
"type": "string",
"nullable": true,
"description": "Shared secret between servers"
},
"remote": {
"type": "string",
"nullable": true,
"description": "Address of the remote"
},
"remote_id": {
"type": "string",
"nullable": true,
"description": "ID of the remote"
}
}
}
}
}
},
"parameters": [
{
"name": "id",
"in": "path",
"description": "ID of the share",
"required": true,
"schema": {
"type": "integer",
"format": "int64"
}
},
{
"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": "Share moved successfully",
"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": [
"remote",
"owner"
],
"properties": {
"remote": {
"type": "string"
},
"owner": {
"type": "string"
}
}
}
}
}
}
}
}
}
},
"400": {
"description": "Moving share is not possible",
"content": {
"application/json": {
"schema": {
"type": "object",
"required": [
"ocs"
],
"properties": {
"ocs": {
"type": "object",
"required": [
"meta",
"data"
],
"properties": {
"meta": {
"$ref": "#/components/schemas/OCSMeta"
},
"data": {}
}
}
}
}
}
}
}
}
}
}
},
"tags": [
{
"name": "mount_public_link",
"description": "Class MountPublicLinkController\nconvert public links to federated shares"
}
]
}