openapi: 3.0.1
info:
title: Coscine Web Admin Storage API
description: Coscine (short for COllaborative SCientific INtegration Environment) is the research data management platform for your research project.
termsOfService: https://about.coscine.de/en/termsofuse/
contact:
name: Coscine Team
email: servicedesk@rwth-aachen.de
version: '2.0'
servers:
- url: https://coscine.rwth-aachen.de/coscine
security:
- Bearer: []
tags:
- name: Storage
description: "Provides endpoints for managing blob storage operations for project resources,\r\nsuch as checking existence and deleting files or folders."
paths:
/api/v2/projects/{projectId}/resources/{resourceId}/storage/{encodedPath}:
head:
tags:
- Storage
summary: Checks if a file or folder exists at the specified path within the given project and resource.
operationId: HeadFileFromStorage
parameters:
- name: projectId
in: path
description: The unique identifier of the project.
required: true
schema:
type: string
- name: resourceId
in: path
description: The unique identifier of the resource.
required: true
schema:
type: string
format: uuid
- name: encodedPath
in: path
description: The url encoded path of the file.
required: true
schema:
type: string
- name: version
in: query
description: The version to get. Null will default to the latest.
schema:
type: string
responses:
'200':
description: File or folder exists. Metadata is returned via response headers.
'403':
description: User is missing authorization requirements.
'404':
description: File or folder not found at the specified path.
'400':
description: Invalid path or query parameters.
/api/v2/projects/{projectId}/resources/{resourceId}/storage:
delete:
tags:
- Storage
summary: Deletes a file or folder at the specified path within the given project and resource.
operationId: DeleteFileFromStorage
parameters:
- name: projectId
in: path
description: The unique identifier of the project.
required: true
schema:
type: string
- name: resourceId
in: path
description: The unique identifier of the resource.
required: true
schema:
type: string
format: uuid
- name: encodedPath
in: path
description: The url encoded path of the file.
required: true
schema:
type: string
responses:
'204':
description: Blob deleted.
'404':
description: Blob does not exist.
get:
tags:
- Storage
summary: Lists the contents of a directory in the storage tree.
operationId: ListFilesFromStorage
parameters:
- name: projectId
in: path
description: The unique identifier of the project.
required: true
schema:
type: string
- name: resourceId
in: path
description: The unique identifier of the resource.
required: true
schema:
type: string
format: uuid
- name: OrderBy
in: query
description: "Gets or sets the field name used for ordering the results.\r\n\r\n`Sorting is not yet supported for the file tree endpoint, but this property is included for consistency with other query parameter classes and to allow for future extensibility.`.\r\nUse \"asc\" or \"desc\" as the direction.\r\n"
schema:
type: string
- name: Prefix
in: query
description: "Gets or sets the prefix filter.\r\n\r\n\r\nThe prefix to filter the storage objects by.\r\nSlashes are taken into account when filtering by prefix.\r\nThe forwads slash (/) character is treated as the path separator.\r\nThe lookup is only done for one level.\r\nTo look into the next level, include the trailing slash to indicate the next level of the tree.\r\n"
schema:
type: string
- name: PageNumber
in: query
description: Gets or sets the desired page number. Should be greater than or equal to 1. Default is 1.
schema:
type: integer
format: int32
- name: PageSize
in: query
description: Gets or sets the desired page size. Should be between 1 and the maximum allowed page size (50). Default is 10.
schema:
type: integer
format: int32
responses:
'200':
description: Returns a paged list of file tree entries for the specified resource.
content:
application/json:
schema:
$ref: '#/components/schemas/FileTreeDtoPagedResponse'
text/json:
schema:
$ref: '#/components/schemas/FileTreeDtoPagedResponse'
'403':
description: User is missing authorization requirements.
'404':
description: Resource not found.
'400':
description: Invalid query parameters.
options:
tags:
- Storage
summary: Responds with the HTTP methods allowed for the endpoint.
parameters:
- name: projectId
in: path
required: true
schema:
type: string
- name: resourceId
in: path
required: true
schema:
type: string
responses:
'200':
description: OK
components:
schemas:
TreeDataType:
enum:
- Tree
- Leaf
type: string
description: Represents the types of nodes within a hierarchical tree structure.
Pagination:
type: object
properties:
currentPage:
type: integer
description: Gets or sets the current page number.
format: int32
totalPages:
type: integer
description: Gets or sets the total number of pages.
format: int32
pageSize:
type: integer
description: Gets or sets the number of items per page.
format: int32
totalCount:
type: integer
description: Gets or sets the total count of items across all pages.
format: int64
hasPrevious:
type: boolean
description: Gets a value indicating whether there is a previous page.
readOnly: true
hasNext:
type: boolean
description: Gets a value indicating whether there is a next page.
readOnly: true
additionalProperties: false
description: Represents pagination information for a collection of items.
FileTreeDto:
type: object
properties:
path:
type: string
description: Gets the path of the tree item.
type:
$ref: '#/components/schemas/TreeDataType'
directory:
type: string
description: Gets or sets the directory of the file.
name:
type: string
description: Gets or sets the name of the file.
extension:
type: string
description: Gets or sets the extension of the file.
size:
type: integer
description: Gets or sets the size of the file in bytes.
format: int64
creationDate:
type: string
description: Gets or sets the creation date of the file.
format: date-time
nullable: true
changeDate:
type: string
description: Gets or sets the last change date of the file.
format: date-time
nullable: true
actions:
$ref: '#/components/schemas/FileActionsDto'
hidden:
type: boolean
description: Determines if the specific tree entry is hidden.
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for a file within a tree structure, extending the base TreeDto.
FileActionDto:
type: object
properties:
url:
type: string
description: Gets or sets the presigned URL associated with the file action.
format: uri
method:
$ref: '#/components/schemas/FileActionHttpMethod'
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for file actions, including the URL and HTTP method.
FileActionHttpMethod:
enum:
- GET
- POST
- PUT
- DELETE
type: string
description: Represents the possible HTTP methods associated with file actions.
FileTreeDtoPagedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/FileTreeDto'
nullable: true
isSuccess:
type: boolean
readOnly: true
statusCode:
type: integer
format: int32
nullable: true
traceId:
type: string
nullable: true
pagination:
$ref: '#/components/schemas/Pagination'
additionalProperties: false
FileActionsDto:
type: object
properties:
download:
$ref: '#/components/schemas/FileActionDto'
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for a collection of file actions, including download action details.
securitySchemes:
Bearer:
type: apiKey
description: JWT Authorization header using the Bearer scheme.
name: Authorization
in: header