openapi: 3.0.1 info: title: Coscine Web Admin Graph 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: Graph description: Controller for managing storage operations for project resources. paths: /api/v2/projects/{projectId}/resources/{resourceId}/graphs: get: tags: - Graph summary: "Retrieves a paginated subset of nodes that make up the metadata tree\r\nfor a specified resource within a given project." operationId: GetStorageGraphTree parameters: - name: projectId in: path description: "The unique identifier of the project containing the resource.\r\nSupplied as a route parameter." required: true schema: type: string - name: resourceId in: path description: "The unique identifier of the resource whose metadata tree should be retrieved.\r\nSupplied as a route parameter." 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\r\nThe properties `HasChildren`, `HasMetadata`, `HasData` and `Subject` are supported for ordering.\r\nUse \"asc\" or \"desc\" as the direction.\r\nThe Default is `HasChildren desc, subject asc`.\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: Successfully retrieved a paged list of metadata tree nodes for the specified resource. content: application/json: schema: $ref: '#/components/schemas/StorageNodeDtoPagedResponse' text/json: schema: $ref: '#/components/schemas/StorageNodeDtoPagedResponse' '403': description: The user is missing the necessary authorization to access the resource. '404': description: The resource was not found. '400': description: Invalid request parameters were supplied. options: tags: - Graph 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 /api/v2/projects/{projectId}/resources/{resourceId}/graphs/{encodedPath}: head: tags: - Graph summary: Performs a metadata check for a graph node or group at the specified path without returning a response body. operationId: HeadStorageGraph parameters: - name: projectId in: path description: The unique identifier of the project. Supplied as a route parameter. required: true schema: type: string - name: resourceId in: path description: The unique identifier of the resource. Supplied as a route parameter. 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: '200': description: The resource exists. Metadata is available in the headers. '403': description: User is missing authorization requirements. '404': description: The resource was not found. '400': description: Invalid request parameters were supplied. '401': description: The user is not authorized to access the resource. get: tags: - Graph summary: Retrieves metadata for a graph node or group at the specified path. operationId: GetStorageGraph parameters: - name: projectId in: path description: The unique identifier of the project. Supplied as a route parameter. required: true schema: type: string - name: resourceId in: path description: The unique identifier of the resource. Supplied as a route parameter. 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: '200': description: The resource exists. Metadata is available in the body and headers. content: application/json: schema: $ref: '#/components/schemas/StorageNodeDtoResponse' text/json: schema: $ref: '#/components/schemas/StorageNodeDtoResponse' '403': description: User is missing authorization requirements. '404': description: The resource was not found. '400': description: Invalid request parameters were supplied. '401': description: The user is not authorized to access the resource. components: schemas: StorageNodeLinks: type: object properties: metadata: type: object additionalProperties: type: string data: type: object additionalProperties: type: string children: type: object additionalProperties: type: string self: type: object additionalProperties: type: string links: type: object additionalProperties: type: object additionalProperties: type: string additionalProperties: false StorageNodeDto: type: object properties: subject: type: string format: uri nullable: true path: type: string prefix: type: string description: Gets the prefix of the node. name: type: string description: Gets the name of the node. hasMetadata: type: boolean hasData: type: boolean hasChildren: type: boolean links: $ref: '#/components/schemas/StorageNodeLinks' additionalProperties: false StorageNodeDtoResponse: type: object properties: data: $ref: '#/components/schemas/StorageNodeDto' isSuccess: type: boolean readOnly: true statusCode: type: integer format: int32 nullable: true traceId: type: string nullable: true additionalProperties: false StorageNodeDtoPagedResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/StorageNodeDto' 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 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. securitySchemes: Bearer: type: apiKey description: JWT Authorization header using the Bearer scheme. name: Authorization in: header