{ "openapi": "3.0.3", "info": { "title": "files_retention", "version": "0.0.1", "description": "This application allows for automatic deletion of files after a given time.", "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" } } }, "Rule": { "type": "object", "required": [ "id", "tagid", "timeunit", "timeamount", "timeafter", "hasJob" ], "properties": { "id": { "type": "integer", "format": "int64", "minimum": 1 }, "tagid": { "type": "integer", "format": "int64", "minimum": 1 }, "timeunit": { "type": "integer", "format": "int64", "enum": [ 0, 1, 2, 3 ], "description": "0 days, 1 weeks, 2 months, 3 years" }, "timeamount": { "type": "integer", "format": "int64", "minimum": 1 }, "timeafter": { "type": "integer", "format": "int64", "enum": [ 0, 1 ], "description": "0 creation time, 1 modification time" }, "hasJob": { "type": "boolean" } } } } }, "paths": { "/ocs/v2.php/apps/files_retention/api/v1/retentions": { "get": { "operationId": "api-get-retentions", "summary": "List retention rules", "description": "This endpoint requires admin access", "tags": [ "api" ], "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": "List retention rules", "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": { "$ref": "#/components/schemas/Rule" } } } } } } } } } } }, "post": { "operationId": "api-add-retention", "summary": "Create a retention rule", "description": "This endpoint requires admin access", "tags": [ "api" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "tagid", "timeunit", "timeamount", "timeafter" ], "properties": { "tagid": { "type": "integer", "format": "int64", "description": "Tag the retention is based on" }, "timeunit": { "type": "integer", "format": "int64", "enum": [ 0, 1, 2, 3 ], "description": "Time unit of the retention (days, weeks, months, years)" }, "timeamount": { "type": "integer", "format": "int64", "description": "Amount of time units that have to be passed", "minimum": 1 }, "timeafter": { "type": "integer", "format": "int64", "enum": [ 0, 1 ], "description": "Whether retention time is based creation time (0) or modification time (1)" } } } } } }, "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": { "400": { "description": "At least one of the parameters was invalid", "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": [ "error" ], "properties": { "error": { "type": "string", "enum": [ "tagid", "timeunit", "timeamount", "timeafter" ] } } } } } } } } } }, "201": { "description": "Retention rule created", "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/Rule" } } } } } } } } } } }, "/ocs/v2.php/apps/files_retention/api/v1/retentions/{id}": { "delete": { "operationId": "api-delete-retention", "summary": "Delete a retention rule", "description": "This endpoint requires admin access", "tags": [ "api" ], "security": [ { "bearer_auth": [] }, { "basic_auth": [] } ], "parameters": [ { "name": "id", "in": "path", "description": "Retention rule to delete", "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": { "204": { "description": "Retention rule deleted" }, "404": { "description": "Retention rule not found", "content": { "application/json": { "schema": { "type": "object", "required": [ "ocs" ], "properties": { "ocs": { "type": "object", "required": [ "meta", "data" ], "properties": { "meta": { "$ref": "#/components/schemas/OCSMeta" }, "data": {} } } } } } } } } } } }, "tags": [] }