openapi: 3.0.1 info: title: Coscine Web Admin Tree 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: Tree description: Endpoints for the file and metadata trees. paths: /api/v2/projects/{projectId}/resources/{resourceId}/trees/files: get: tags: - Tree summary: Retrieves the file tree associated with a resource. description: The `OrderBy` query is currently not supported. operationId: GetFileTree parameters: - name: projectId in: path description: The unique identifier or slug 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: Path in: query description: Gets or sets the path of the file tree. 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 - name: OrderBy in: query description: "Gets or sets the field name used for ordering the results.\r\nThe order is constructed by an order string.\r\nUse the property followed by \"asc\" or \"desc\" and separate properties by commas. Default is asc.\r\nCan be used like this: \"propertyA asc, propertyB desc\"." schema: type: string responses: '200': description: Returns the file tree of a resource. content: application/json: schema: $ref: '#/components/schemas/FileTreeDtoPagedResponse' text/json: schema: $ref: '#/components/schemas/FileTreeDtoPagedResponse' '403': description: User is missing authorization requirements. '400': description: Provided input has a bad format. '404': description: Project does not exist or has been deleted. deprecated: true /api/v2/projects/{projectId}/resources/{resourceId}/trees/metadata: get: tags: - Tree summary: Retrieves the metadata tree associated with a resource. operationId: GetMetadataTree parameters: - name: projectId in: path description: The unique identifier or slug 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: Path in: query description: Gets or sets the path of the metadata tree. schema: type: string - name: Format in: query description: Gets or sets the format of the RDF data. schema: $ref: '#/components/schemas/RdfFormat' - name: IncludeExtractedMetadata in: query description: Gets or sets if extracted metadata should be included. schema: type: boolean - name: IncludeProvenance in: query description: Gets or sets if provenance metadata should be included. schema: type: boolean - 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 - name: OrderBy in: query description: "Gets or sets the field name used for ordering the results.\r\nThe order is constructed by an order string.\r\nUse the property followed by \"asc\" or \"desc\" and separate properties by commas. Default is asc.\r\nCan be used like this: \"propertyA asc, propertyB desc\"." schema: type: string responses: '200': description: Returns the metadata tree of a resource. content: application/json: schema: $ref: '#/components/schemas/MetadataTreeDtoPagedResponse' text/json: schema: $ref: '#/components/schemas/MetadataTreeDtoPagedResponse' '403': description: User is missing authorization requirements. '400': description: Provided input has a bad format. '404': description: Project does not exist or has been deleted. deprecated: true post: tags: - Tree summary: Creates a new metadata tree for a resource. operationId: CreateMetadataTree parameters: - name: projectId in: path description: The unique identifier or slug 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 requestBody: description: The metadata tree data for creation. content: application/json: schema: $ref: '#/components/schemas/MetadataTreeForCreationDto' text/json: schema: $ref: '#/components/schemas/MetadataTreeForCreationDto' application/*+json: schema: $ref: '#/components/schemas/MetadataTreeForCreationDto' responses: '201': description: Metadata tree created. content: application/json: schema: $ref: '#/components/schemas/MetadataTreeDtoResponse' text/json: schema: $ref: '#/components/schemas/MetadataTreeDtoResponse' '403': description: User is missing authorization requirements. '400': description: Provided input has a bad format. '404': description: Provided input refers to entries that do not exist or have been deleted. deprecated: true put: tags: - Tree summary: Updates an existing metadata tree of a resource. operationId: UpdateMetadataTree parameters: - name: projectId in: path description: The unique identifier or slug 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 requestBody: description: The updated metadata tree data. content: application/json: schema: $ref: '#/components/schemas/MetadataTreeForUpdateDto' text/json: schema: $ref: '#/components/schemas/MetadataTreeForUpdateDto' application/*+json: schema: $ref: '#/components/schemas/MetadataTreeForUpdateDto' responses: '204': description: Metadata tree updated. '403': description: User is missing authorization requirements. '400': description: Provided input has a bad format or the resource is write-protected due to its archived status. '404': description: Provided input refers to entries that do not exist or have been deleted. deprecated: true delete: tags: - Tree summary: Deletes (invalidates) a metadata tree associated with a resource. description:

Required JWT roles for access: administrator.

operationId: DeleteMetadataTree parameters: - name: projectId in: path description: The unique identifier or slug 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 requestBody: description: The dto for the deletion. content: application/json: schema: $ref: '#/components/schemas/MetadataTreeForDeletionDto' text/json: schema: $ref: '#/components/schemas/MetadataTreeForDeletionDto' application/*+json: schema: $ref: '#/components/schemas/MetadataTreeForDeletionDto' responses: '204': description: Metadata tree deleted. '403': description: User is missing authorization requirements. '400': description: Provided input has a bad format or the resource is write-protected due to its archived status. '404': description: Provided input refers to entries that do not exist or have been deleted. deprecated: true /api/v2/projects/{projectId}/resources/{resourceId}/trees/metadata/specific: get: tags: - Tree summary: Retrieves the specific metadata tree associated with a resource. operationId: GetSpecificMetadataTree parameters: - name: projectId in: path description: The unique identifier or slug 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: Path in: query description: Gets or sets the path of the metadata tree. required: true schema: type: string - name: Format in: query description: Gets or sets the format of the RDF data. schema: $ref: '#/components/schemas/RdfFormat' - name: IncludeExtractedMetadata in: query description: Gets or sets if extracted metadata should be included. schema: type: boolean - name: IncludeProvenance in: query description: Gets or sets if provenance should be included. schema: type: boolean - name: Version in: query description: "Gets or sets the desired version.\r\nIf the version is null, the newest will be returned." schema: type: integer format: int32 responses: '200': description: Returns the specific metadata tree of a resource. content: application/json: schema: $ref: '#/components/schemas/MetadataTreeDtoResponse' text/json: schema: $ref: '#/components/schemas/MetadataTreeDtoResponse' '403': description: User is missing authorization requirements. '400': description: Provided input has a bad format. '404': description: Project does not exist or has been deleted. deprecated: true /api/v2/projects/{projectId}/resources/{resourceId}/trees/metadata/extracted: post: tags: - Tree summary: Creates a new extracted metadata tree for a resource. description:

Required JWT roles for access: administrator.

operationId: CreateExtractedMetadataTree parameters: - name: projectId in: path description: The unique identifier or slug 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 requestBody: description: The metadata tree data for creation. content: application/json: schema: $ref: '#/components/schemas/ExtractedMetadataTreeForCreationDto' text/json: schema: $ref: '#/components/schemas/ExtractedMetadataTreeForCreationDto' application/*+json: schema: $ref: '#/components/schemas/ExtractedMetadataTreeForCreationDto' responses: '201': description: Extracted Metadata tree created. content: application/json: schema: $ref: '#/components/schemas/MetadataTreeDtoResponse' text/json: schema: $ref: '#/components/schemas/MetadataTreeDtoResponse' '403': description: User is missing authorization requirements. '400': description: Provided input has a bad format. '404': description: Provided input refers to entries that do not exist or have been deleted. deprecated: true put: tags: - Tree summary: Updates an existing metadata tree of a resource. description:

Required JWT roles for access: administrator.

operationId: UpdateExtractedMetadataTree parameters: - name: projectId in: path description: The unique identifier or slug 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 requestBody: description: The updated metadata tree data. content: application/json: schema: $ref: '#/components/schemas/ExtractedMetadataTreeForUpdateDto' text/json: schema: $ref: '#/components/schemas/ExtractedMetadataTreeForUpdateDto' application/*+json: schema: $ref: '#/components/schemas/ExtractedMetadataTreeForUpdateDto' responses: '204': description: Metadata tree updated. '403': description: User is missing authorization requirements. '400': description: Provided input has a bad format or the resource is write-protected due to its archived status. '404': description: Provided input refers to entries that do not exist or have been deleted. deprecated: true /api/v2/projects/{projectId}/resources/{resourceId}/trees: options: tags: - Tree 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: MetadataTreeForCreationDto: required: - definition - path type: object properties: path: minLength: 1 type: string description: Gets or initializes the path of the metadata tree. definition: $ref: '#/components/schemas/RdfDefinitionForManipulationDto' additionalProperties: false description: "Data transfer object (DTO) representing the creation of a metadata tree.\r\nExtends the base class Coscine.Api.Core.Shared.DataTransferObjects.ParameterObjects.MetadataTreeForManipulationDto." MetadataTreeForUpdateDto: required: - definition - path type: object properties: path: minLength: 1 type: string description: Gets or initializes the path of the metadata tree. definition: $ref: '#/components/schemas/RdfDefinitionForManipulationDto' additionalProperties: false description: "Data transfer object (DTO) representing the update of a metadata tree.\r\nInherits from the base class Coscine.Api.Core.Shared.DataTransferObjects.ParameterObjects.MetadataTreeForManipulationDto." ProvenanceParametersDto: type: object properties: wasRevisionOf: type: array items: type: string format: uri description: Gets or sets the adapted versions from the specific metadata tree. variants: type: array items: $ref: '#/components/schemas/VariantDto' description: Gets or sets the variants of the specific metadata tree. wasInvalidatedBy: type: string description: Information if the specific metadata tree was invalidated by something. format: uri nullable: true similarityToLastVersion: type: number description: The similarity to the last version. format: double nullable: true metadataExtractorVersion: type: string description: Gets or initializes the version of the metadata extractor. nullable: true hashParameters: $ref: '#/components/schemas/HashParametersDto' additionalProperties: false description: Data transfer object (DTO) representing Provenance Parameters in a request. VariantDto: type: object properties: graphName: type: string description: Name of the graph. format: uri similarity: type: number description: Similarity value 0-1 format: double additionalProperties: false description: Represents the variants of this specific metadata tree. 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 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. ExtractedMetadataTreeForCreationDto: required: - definition - id - path - provenance type: object properties: path: minLength: 1 type: string description: Gets or initializes the path of the metadata tree. id: type: string description: Gets or sets the id of the new metadata tree. format: uri definition: $ref: '#/components/schemas/RdfDefinitionForManipulationDto' provenance: $ref: '#/components/schemas/ProvenanceParametersDto' additionalProperties: false description: "Data transfer object (DTO) representing the creation of a metadata tree.\r\nExtends the base class Coscine.Api.Core.Shared.DataTransferObjects.ParameterObjects.MetadataTreeForManipulationDto." RdfDefinitionForManipulationDto: required: - content - type type: object properties: content: minLength: 1 type: string description: The content of the RDF definition. type: $ref: '#/components/schemas/RdfFormat' additionalProperties: false description: Represents the data transfer object (DTO) used for manipulating RDF definitions. RdfDefinitionDto: type: object properties: content: type: string description: The content of the RDF definition. nullable: true type: type: string description: The type of the RDF definition. nullable: true additionalProperties: false description: Represents a Data Transfer Object (DTO) for RDF (Resource Description Framework) definition details. MetadataTreeExtractedDto: type: object properties: path: type: string description: Gets the path of the tree item. type: $ref: '#/components/schemas/TreeDataType' metadataId: type: string description: Gets the identifier of the metadata extraction graph. format: uri rawDataId: type: string description: Gets the identifier of the raw data extraction graph. format: uri nullable: true definition: $ref: '#/components/schemas/RdfDefinitionDto' additionalProperties: false description: Represents a data transfer object (DTO) for extracted metadata within a tree structure, extending the base TreeDto. 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. MetadataTreeDtoPagedResponse: type: object properties: data: type: array items: $ref: '#/components/schemas/MetadataTreeDto' 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 MetadataTreeDtoResponse: type: object properties: data: $ref: '#/components/schemas/MetadataTreeDto' isSuccess: type: boolean readOnly: true statusCode: type: integer format: int32 nullable: true traceId: type: string nullable: true additionalProperties: false FileActionHttpMethod: enum: - GET - POST - PUT - DELETE type: string description: Represents the possible HTTP methods associated with file actions. 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. MetadataTreeForDeletionDto: required: - invalidatedBy - path - version type: object properties: path: minLength: 1 type: string description: Gets or initializes the path of the metadata tree. version: type: integer description: Gets or initializes the version of the metadata tree to be deleted. format: int64 invalidatedBy: type: string description: Gets or initializes the invalidation entity. format: uri additionalProperties: false description: Data transfer object (DTO) for deleting a specific version of metadata. ProvenanceDto: required: - id - variants - wasRevisionOf type: object properties: id: type: string description: Gets or sets the id of the current metadata graph. format: uri generatedAt: type: string description: Gets or sets the date and time when the metadata was generated. format: date-time nullable: true wasRevisionOf: type: array items: type: string format: uri description: Gets or sets the adapted versions from the specific metadata tree. variants: type: array items: $ref: '#/components/schemas/VariantDto' description: Gets or sets the variants of the specific metadata tree. similarityToLastVersion: type: number description: The similarity to the last version. format: double nullable: true wasInvalidatedBy: type: string description: Information if the specific metadata tree was invalidated by something. format: uri nullable: true hashParameters: $ref: '#/components/schemas/HashParametersDto' additionalProperties: false description: Represents a data transfer object (DTO) for provenance information. ExtractedMetadataTreeForUpdateDto: required: - definition - id - path - provenance type: object properties: path: minLength: 1 type: string description: Gets or initializes the path of the metadata tree. id: type: string description: Gets or sets the id of the to update metadata tree. format: uri definition: $ref: '#/components/schemas/RdfDefinitionForManipulationDto' provenance: $ref: '#/components/schemas/ProvenanceParametersDto' forceNewMetadataVersion: type: boolean description: Gets or initializes a flag for creating a new metadata version. additionalProperties: false description: "Data transfer object (DTO) representing the update of a metadata tree.\r\nInherits from the base class Coscine.Api.Core.Shared.DataTransferObjects.ParameterObjects.MetadataTreeForManipulationDto." RdfFormat: enum: - text/turtle - application/ld+json - application/x-trig - application/n-quads type: string description: Specifies the RDF (Resource Description Framework) format. 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. MetadataTreeDto: type: object properties: path: type: string description: Gets the path of the tree item. type: $ref: '#/components/schemas/TreeDataType' id: type: string description: Gets or sets the id of the specific metadata tree. format: uri version: type: string description: Gets or sets the version associated with the metadata. availableVersions: type: array items: type: string description: Gets or sets the collection of available versions related to the metadata. definition: $ref: '#/components/schemas/RdfDefinitionDto' extracted: $ref: '#/components/schemas/MetadataTreeExtractedDto' provenance: $ref: '#/components/schemas/ProvenanceDto' additionalProperties: false description: Represents a data transfer object (DTO) for metadata within a tree structure, extending the base TreeDto. HashParametersDto: required: - algorithmName - value type: object properties: algorithmName: minLength: 1 type: string description: Gets or initializes the hash algorithm name. value: minLength: 1 type: string description: Gets or initializes the hash value. additionalProperties: false description: Data transfer object (DTO) representing Hash Parameters in a request. securitySchemes: Bearer: type: apiKey description: JWT Authorization header using the Bearer scheme. name: Authorization in: header