openapi: 3.0.1
info:
title: Coscine Web Admin Pid 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: Pid
description: Endpoints for the pids.
paths:
/api/v2/pids/{prefix}/{suffix}:
get:
tags:
- Pid
summary: Retrieves the Persistent Identifier (PID) for a given prefix and suffix.
operationId: GetPid
parameters:
- name: prefix
in: path
description: The PID prefix. Limited to the values provided by the API.
required: true
schema:
type: string
- name: suffix
in: path
description: The PID suffix of a project or a resource, represented as a GUID.
required: true
schema:
type: string
format: uuid
responses:
'200':
description: Successful response with the PID
content:
application/json:
schema:
$ref: '#/components/schemas/PidDtoResponse'
text/json:
schema:
$ref: '#/components/schemas/PidDtoResponse'
'404':
description: The specified PID does not exist
'410':
description: The PID is no longer valid (e.g., resource deleted)
/api/v2/pids/{prefix}/{suffix}/requests:
post:
tags:
- Pid
summary: Sends an inquiry to the owner of the given PID.
operationId: SendRequestToOwner
parameters:
- name: prefix
in: path
description: The PID prefix of a project or a resource to validate
required: true
schema:
type: string
- name: suffix
in: path
description: The PID body of a project or a resource to validate
required: true
schema:
type: string
format: uuid
requestBody:
description: The data transfer object containing the inquiry details.
content:
application/json:
schema:
$ref: '#/components/schemas/PidRequestDto'
text/json:
schema:
$ref: '#/components/schemas/PidRequestDto'
application/*+json:
schema:
$ref: '#/components/schemas/PidRequestDto'
responses:
'204':
description: Email sent successfully
'400':
description: PID has a bad format
'404':
description: PID does not exist or is invalid
/api/v2/pids:
get:
tags:
- Pid
summary: Retrieves all PIDs.
description:
Required JWT roles for access: administrator.
operationId: GetPids
parameters:
- name: IncludeProjects
in: query
description: Gets or sets a value indicating whether to include projects when retrieving pid information.
schema:
type: boolean
- name: IncludeResources
in: query
description: Gets or sets a value indicating whether to include resources when retrieving pid information.
schema:
type: boolean
- name: IncludeDeleted
in: query
description: Gets or sets a value indicating whether to include deleted pid information.
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 PIDs.
content:
application/json:
schema:
$ref: '#/components/schemas/PidDtoPagedResponse'
text/json:
schema:
$ref: '#/components/schemas/PidDtoPagedResponse'
'403':
description: User is missing authorization requirements.
options:
tags:
- Pid
summary: Responds with the HTTP methods allowed for the endpoint.
responses:
'200':
description: OK
components:
schemas:
PidType:
enum:
- project
- resource
type: string
description: Specifies the type of PID.
PidDto:
required:
- prefix
- suffix
type: object
properties:
prefix:
type: string
description: Gets or sets the prefix of the PID.
suffix:
type: string
description: Gets or sets the suffix of the PID.
identifier:
type: string
description: Gets the constructed PID by combining the prefix and suffix ("{Prefix}/{Suffix}").
readOnly: true
type:
$ref: '#/components/schemas/PidType'
isEntityValid:
type: boolean
description: Gets or sets a value indicating whether the linked entity is considered valid.
additionalProperties: false
description: Represents a data transfer object (DTO) for a PID (Persistent Identifier).
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.
PidRequestDto:
required:
- email
- message
- name
type: object
properties:
name:
minLength: 1
type: string
description: Gets or initializes the name associated with the PID request.
email:
minLength: 1
type: string
description: Gets or initializes the email associated with the PID request.
format: email
message:
maxLength: 5000
minLength: 1
type: string
description: Gets or initializes the message for the PID request.
sendConfirmationEmail:
type: boolean
description: Gets or initializes whether to send a confirmation email for the PID request.
additionalProperties: false
description: Data transfer object (DTO) representing a PID request.
PidDtoPagedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/PidDto'
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
PidDtoResponse:
type: object
properties:
data:
$ref: '#/components/schemas/PidDto'
isSuccess:
type: boolean
readOnly: true
statusCode:
type: integer
format: int32
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
securitySchemes:
Bearer:
type: apiKey
description: JWT Authorization header using the Bearer scheme.
name: Authorization
in: header