openapi: 3.0.1
info:
title: Coscine Web Admin 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: Admin
description: Endpoints for admin functionality.
paths:
/api/v2/admin/activity-logs:
get:
tags:
- Admin
summary: Retrieves all activity logs.
description:
Required JWT roles for access: administrator.
operationId: GetAllActivityLogs
parameters:
- name: ActivityTimestampBefore
in: query
description: The activity timestamp date before which activity logs should be retrieved.
schema:
type: string
format: date-time
- name: ActivityTimestampAfter
in: query
description: The activity timestamp date after which activity logs should be retrieved.
schema:
type: string
format: date-time
- name: Guid
in: query
description: The GUID for which activity logs should be retrieved. Can be a project, resource or other ID.
schema:
type: string
format: uuid
- name: UserId
in: query
description: The user ID for which activity logs should be retrieved.
schema:
type: string
format: uuid
- name: RegularExpression
in: query
description: The regular expression to filter activity logs' API path by. The regex must be a valid, already escaped string.
schema:
type: string
- name: HttpMethod
in: query
description: The http method to filter activity logs by.
schema:
$ref: '#/components/schemas/CoscineHttpMethod'
- 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 activity logs.
content:
application/json:
schema:
$ref: '#/components/schemas/ActivityLogDtoPagedResponse'
text/json:
schema:
$ref: '#/components/schemas/ActivityLogDtoPagedResponse'
/api/v2/admin/projects:
get:
tags:
- Admin
summary: Retrieves all projects.
description: Required JWT roles for access: administrator.
operationId: GetAllProjects
parameters:
- name: TopLevel
in: query
description: Gets or sets a value indicating whether to filter top-level projects.
schema:
type: boolean
- name: IncludeDeleted
in: query
description: Gets or sets a value indicating whether to include deleted projects in the results.
schema:
type: boolean
- name: IncludeQuotas
in: query
description: Gets or sets a value indicating whether to include quotas in the results.
schema:
type: boolean
- name: IncludePublicationRequests
in: query
description: Gets or sets a value indicating whether to include project publication requests in the results.
schema:
type: boolean
- name: PageSize
in: query
description: Number of items per page. The maximum number of items per page is `250`.
schema:
type: integer
format: int32
- 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: 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 projects.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectAdminDtoPagedResponse'
text/json:
schema:
$ref: '#/components/schemas/ProjectAdminDtoPagedResponse'
'403':
description: User is missing authorization requirements. This endpoint is only available to Coscine Admin users.
/api/v2/admin/resources:
get:
tags:
- Admin
summary: Retrieves all resources.
description: Required JWT roles for access: administrator.
operationId: GetAllResources
parameters:
- name: IncludeDeleted
in: query
description: Value indicating whether to include deleted resources.
schema:
type: boolean
- name: IncludeQuotas
in: query
description: Value indicating whether to include individual resource quotas.
schema:
type: boolean
- name: PageSize
in: query
description: Number of items per page. The maximum number of items per page is `250`.
schema:
type: integer
format: int32
- 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: 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 resources.
content:
application/json:
schema:
$ref: '#/components/schemas/ResourceAdminDtoPagedResponse'
text/json:
schema:
$ref: '#/components/schemas/ResourceAdminDtoPagedResponse'
'403':
description: User is missing authorization requirements. This endpoint is only available to Coscine Admin users.
/api/v2/admin/users:
get:
tags:
- Admin
summary: Retrieves all users.
description: Required JWT roles for access: administrator.
operationId: GetAllUsers
parameters:
- name: TosAccepted
in: query
description: Gets or sets a value indicating whether the terms of service have been accepted by the user.
schema:
type: boolean
- name: PageSize
in: query
description: Number of items per page. The maximum number of items per page is `250`.
schema:
type: integer
format: int32
- name: DataProcessingConsentGranted
in: query
description: Gets or sets a value indicating whether the personal data processing consent have been granted by the user.
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: 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 users.
content:
application/json:
schema:
$ref: '#/components/schemas/UserDtoPagedResponse'
text/json:
schema:
$ref: '#/components/schemas/UserDtoPagedResponse'
'403':
description: User is missing authorization requirements. This endpoint is only available to Coscine Admin users.
/api/v2/admin/metadata/{graph}:
get:
tags:
- Admin
summary: Gets a metadata graph.
description: Required JWT roles for access: administrator.
operationId: GetMetadataGraph
parameters:
- name: graph
in: path
description: The absolute URI of the graph to get.
required: true
schema:
type: string
- name: Format
in: query
description: Gets or sets the RDF format.
schema:
$ref: '#/components/schemas/RdfFormat'
responses:
'200':
description: Returns the metadata.
content:
application/json:
schema:
$ref: '#/components/schemas/RdfDefinitionDtoResponse'
text/json:
schema:
$ref: '#/components/schemas/RdfDefinitionDtoResponse'
'403':
description: User is missing authorization requirements. This endpoint is only available to Coscine Admin users.
put:
tags:
- Admin
summary: Updates a metadata graph.
description: Required JWT roles for access: administrator.
operationId: UpdateMetadataGraph
parameters:
- name: graph
in: path
description: The absolute URI of the graph to update.
required: true
schema:
type: string
requestBody:
description: The metadata update admin parameters.
content:
application/json:
schema:
$ref: '#/components/schemas/MetadataUpdateAdminParameters'
text/json:
schema:
$ref: '#/components/schemas/MetadataUpdateAdminParameters'
application/*+json:
schema:
$ref: '#/components/schemas/MetadataUpdateAdminParameters'
responses:
'204':
description: Metadata graph updated
'403':
description: User is missing authorization requirements. This endpoint is only available to Coscine Admin users.
patch:
tags:
- Admin
summary: Patches a metadata graph.
description: Required JWT roles for access: administrator.
operationId: PatchMetadata
parameters:
- name: graph
in: path
description: The absolute URI of the graph to patch.
required: true
schema:
type: string
requestBody:
description: The well-formed RDF patch document containing the changes as operations to be applied to the graph.
content:
application/json:
schema:
$ref: '#/components/schemas/RdfPatchDocumentDto'
text/json:
schema:
$ref: '#/components/schemas/RdfPatchDocumentDto'
application/*+json:
schema:
$ref: '#/components/schemas/RdfPatchDocumentDto'
responses:
'204':
description: Metadata graph patched
'403':
description: User is missing authorization requirements. This endpoint is only available to Coscine Admin users.
/api/v2/admin/graphs:
get:
tags:
- Admin
summary: Gets all deployed graphs.
description: Required JWT roles for access: administrator.
operationId: GetDeployedGraphs
parameters:
- 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.
content:
application/json:
schema:
$ref: '#/components/schemas/DeployedGraphDtoPagedResponse'
text/json:
schema:
$ref: '#/components/schemas/DeployedGraphDtoPagedResponse'
'403':
description: User is missing authorization requirements. This endpoint is only available to Coscine Admin users.
/api/v2/admin/resource/{resourceId}/type/{typeId}:
post:
tags:
- Admin
summary: Creates a new datasource for a specified resource and type.
description: Required JWT roles for access: administrator.
operationId: CreateDatasource
parameters:
- name: resourceId
in: path
description: The unique identifier of the resource.
required: true
schema:
type: string
format: uuid
- name: typeId
in: path
description: The unique identifier of the datasource type.
required: true
schema:
type: string
format: uuid
- name: quota
in: query
description: The allocated quota for the datasource.
schema:
type: integer
format: int64
- name: dsNrwReplicationGroup
in: query
description: The optional replication grouo for the datasource.
schema:
$ref: '#/components/schemas/DsNrwReplicationGroup'
responses:
'200':
description: Datasource successfully created.
content:
application/json:
schema:
$ref: '#/components/schemas/CreateDatasourceDtoResponse'
text/json:
schema:
$ref: '#/components/schemas/CreateDatasourceDtoResponse'
'403':
description: User lacks authorization. Only accessible to Coscine Admin users.
put:
tags:
- Admin
summary: Updates the type and option ID of a specified resource.
description: Required JWT roles for access: administrator.
operationId: UpdateResourceType
parameters:
- name: resourceId
in: path
description: The unique identifier of the resource to be updated.
required: true
schema:
type: string
format: uuid
- name: typeId
in: path
description: The unique identifier of the new resource type.
required: true
schema:
type: string
format: uuid
- name: optionId
in: query
description: The unique identifier of the new resource type option.
schema:
type: string
format: uuid
responses:
'204':
description: Resource successfully updated.
'403':
description: User lacks authorization. Only accessible to Coscine Admin users.
/api/v2/admin/users/{userId}:
delete:
tags:
- Admin
summary: Deletes the given user.
description: Required JWT roles for access: administrator.
parameters:
- name: userId
in: path
description: The id of the user.
required: true
schema:
type: string
format: uuid
responses:
'204':
description: No Content
/api/v2/admin:
options:
tags:
- Admin
summary: Responds with the HTTP methods allowed for the endpoint.
responses:
'200':
description: OK
components:
schemas:
ProjectResourceMinimalDto:
type: object
properties:
resourceId:
type: string
description: Identifier of the resource.
format: uuid
projectId:
type: string
description: Identifier of the project associated with the resource.
format: uuid
additionalProperties: false
description: Represents a minimal data transfer object (DTO) for a project resource.
ResourceAdminDto:
required:
- applicationProfile
- deleted
- description
- disciplines
- displayName
- fixedValues
- name
- pid
- projectResources
- type
- visibility
type: object
properties:
id:
type: string
description: Unique identifier for the resource.
format: uuid
pid:
type: string
description: Persistent identifier for the resource.
type:
$ref: '#/components/schemas/ResourceTypeDto'
name:
type: string
description: Name of the resource.
displayName:
type: string
description: Display name of the resource.
description:
type: string
description: Description of the resource.
keywords:
type: array
items:
type: string
description: Keywords associated with the resource.
nullable: true
license:
$ref: '#/components/schemas/LicenseDto'
usageRights:
type: string
description: Usage rights associated with the resource.
nullable: true
metadataLocalCopy:
type: boolean
description: Indicates whether a local copy of the metadata is available for the resource.
metadataExtraction:
type: boolean
description: Indicates whether metadata extraction is enabled for the resource.
applicationProfile:
$ref: '#/components/schemas/ApplicationProfileMinimalDto'
fixedValues:
type: object
additionalProperties:
type: object
additionalProperties:
type: array
items:
$ref: '#/components/schemas/FixedValueForResourceManipulationDto'
description: "Fixed values associated with resource manipulation.\r\nThis dictionary may contain multiple levels and is structured as follows:\r\nDictionary (Key: string) -> Dictionary (Key: string) -> List of FixedValueForResourceManipulationDto."
disciplines:
type: array
items:
$ref: '#/components/schemas/DisciplineDto'
description: Disciplines associated with the resource.
visibility:
$ref: '#/components/schemas/VisibilityDto'
dateCreated:
type: string
description: Date when the resource was created.
format: date-time
nullable: true
creator:
$ref: '#/components/schemas/UserMinimalDto'
archived:
type: boolean
description: Indicates whether the resource is archived.
maintenanceMode:
type: boolean
description: Indicates whether the resource is in maintenance mode.
projects:
type: array
items:
$ref: '#/components/schemas/ProjectMinimalDto'
description: The projects associated with the resource.
nullable: true
deleted:
type: boolean
description: Indicates whether the resource is deleted.
projectResources:
type: array
items:
$ref: '#/components/schemas/ProjectResourceMinimalDto'
description: Collection of minimal project resource details associated with this resource.
resourceQuota:
$ref: '#/components/schemas/ResourceQuotaDto'
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for administrative purposes with additional resource details.
VisibilityDto:
type: object
properties:
id:
type: string
description: The identifier for the visibility setting.
format: uuid
displayName:
type: string
description: The display name for the visibility setting.
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for visibility settings.
LicenseDto:
type: object
properties:
id:
type: string
description: Gets or sets the unique identifier for the license.
format: uuid
displayName:
type: string
description: Gets or sets the display name of the license.
url:
type: string
description: Gets or sets the Uri of the license.
format: uri
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for license details.
ResourceTypeMinimalDto:
required:
- id
- specificType
type: object
properties:
id:
type: string
description: The unique identifier of the resource type.
format: uuid
specificType:
type: string
description: The specific type of the resource.
additionalProperties: false
description: Represents a minimal Data Transfer Object (DTO) for a resource type.
QuotaUnit:
enum:
- https://qudt.org/vocab/unit/BYTE
- https://qudt.org/vocab/unit/KibiBYTE
- https://qudt.org/vocab/unit/MebiBYTE
- https://qudt.org/vocab/unit/GibiBYTE
- https://qudt.org/vocab/unit/TebiBYTE
- https://qudt.org/vocab/unit/PebiBYTE
type: string
description: Specifies the unit of quota.
ProjectDto:
required:
- description
- disciplines
- endDate
- id
- name
- organizations
- pid
- slug
- startDate
- visibility
type: object
properties:
id:
type: string
description: Unique identifier for the project.
format: uuid
pid:
type: string
description: Persistent identifier for the project.
name:
type: string
description: Name of the project.
description:
type: string
description: Description of the project.
startDate:
type: string
description: Start date of the project.
format: date-time
endDate:
type: string
description: End date of the project.
format: date-time
keywords:
type: array
items:
type: string
description: Collection of keywords associated with the project.
nullable: true
displayName:
type: string
description: Display name of the project.
nullable: true
principleInvestigators:
type: string
description: Principal investigators involved in the project.
nullable: true
grantId:
type: string
description: Grant ID associated with the project.
nullable: true
visibility:
$ref: '#/components/schemas/VisibilityDto'
disciplines:
type: array
items:
$ref: '#/components/schemas/DisciplineDto'
description: Disciplines related to the project.
organizations:
type: array
items:
$ref: '#/components/schemas/ProjectOrganizationDto'
description: Organizations associated with the project.
slug:
type: string
description: Slug for the project.
creator:
$ref: '#/components/schemas/UserMinimalDto'
creationDate:
type: string
description: Date of creation of the project.
format: date-time
nullable: true
subProjects:
type: array
items:
$ref: '#/components/schemas/ProjectDto'
description: Collection of sub-projects associated with this project.
nullable: true
deprecated: true
parent:
$ref: '#/components/schemas/ProjectMinimalDto'
additionalProperties: false
description: Represents a data transfer object (DTO) for project information.
ResourceAdminDtoPagedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ResourceAdminDto'
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
ResourceTypeDto:
required:
- generalType
- specificType
type: object
properties:
id:
type: string
description: The unique identifier of the resource type.
format: uuid
generalType:
type: string
description: The general type of the resource.
specificType:
type: string
description: The specific type of the resource.
options:
$ref: '#/components/schemas/ResourceTypeOptionsDto'
additionalProperties: false
description: Represents a resource type.
RdsOptionsDto:
required:
- bucketName
type: object
properties:
bucketName:
type: string
description: The name of the bucket associated with RDS.
size:
$ref: '#/components/schemas/QuotaDto'
additionalProperties: false
description: Represents the data transfer object (DTO) for RDS options.
RdfDefinitionDtoResponse:
type: object
properties:
data:
$ref: '#/components/schemas/RdfDefinitionDto'
isSuccess:
type: boolean
readOnly: true
statusCode:
type: integer
format: int32
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
IdentityProviderDto:
required:
- displayName
- id
type: object
properties:
id:
type: string
description: Gets or sets the unique identifier for the identity provider.
format: uuid
displayName:
type: string
description: Gets or sets the display name of the identity provider.
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for an identity provider.
ResourceQuotaDto:
required:
- resource
type: object
properties:
resource:
$ref: '#/components/schemas/ResourceMinimalDto'
usedPercentage:
type: number
description: The percentage of quota used by the resource.
format: float
nullable: true
used:
$ref: '#/components/schemas/QuotaDto'
versions:
$ref: '#/components/schemas/QuotaDto'
reserved:
$ref: '#/components/schemas/QuotaDto'
additionalProperties: false
description: Represents a Data Transfer Object (DTO) containing quota information for a resource.
DataStorageNrwS3WormOptionsDto:
required:
- accessKeyRead
- accessKeyWrite
- bucketName
- endpoint
- secretKeyRead
- secretKeyWrite
type: object
properties:
bucketName:
type: string
description: The name of the bucket associated with DataStorage.nrw S3 WORM.
accessKeyRead:
type: string
description: The access key for reading from the DataStorage.nrw S3 WORM bucket.
secretKeyRead:
type: string
description: The secret key for reading from the DataStorage.nrw S3 WORM bucket.
accessKeyWrite:
type: string
description: The access key for writing to the DataStorage.nrw S3 WORM bucket.
secretKeyWrite:
type: string
description: The secret key for writing to the DataStorage.nrw S3 WORM bucket.
endpoint:
type: string
description: The endpoint for the RDS DataStorage.nrw WORM bucket.
size:
$ref: '#/components/schemas/QuotaDto'
additionalProperties: false
description: Represents the data transfer object (DTO) for DataStorage.nrw S3 WORM options.
FileSystemStorageOptionsDto:
required:
- directory
type: object
properties:
directory:
type: string
description: The directory where the files are stored.
additionalProperties: false
description: Represents the data transfer object (DTO) for FileSystemStorage options.
RdsS3WormOptionsDto:
required:
- accessKeyRead
- accessKeyWrite
- bucketName
- endpoint
- secretKeyRead
- secretKeyWrite
type: object
properties:
bucketName:
type: string
description: The name of the bucket associated with RDS S3 WORM.
accessKeyRead:
type: string
description: The access key for reading from the RDS S3 WORM bucket.
secretKeyRead:
type: string
description: The secret key for reading from the RDS S3 WORM bucket.
accessKeyWrite:
type: string
description: The access key for writing to the RDS S3 WORM bucket.
secretKeyWrite:
type: string
description: The secret key for writing to the RDS S3 WORM bucket.
endpoint:
type: string
description: The endpoint for the RDS S3 WORM bucket.
size:
$ref: '#/components/schemas/QuotaDto'
additionalProperties: false
description: Represents the data transfer object (DTO) for RDS S3 WORM options.
ProjectRoleMinimalDto:
type: object
properties:
projectId:
type: string
description: Identifier of the project associated with the role.
format: uuid
userId:
type: string
description: Identifier of the user associated with the role.
format: uuid
roleId:
type: string
description: Identifier of the role.
format: uuid
additionalProperties: false
description: Represents a minimal data transfer object (DTO) for a project role.
ProjectPublicationRequestDto:
type: object
properties:
id:
type: string
description: Unique identifier for the project publication request.
format: uuid
project:
$ref: '#/components/schemas/ProjectMinimalDto'
publicationServiceRorId:
type: string
description: Identifier for the publication service used for this request.
format: uri
creator:
$ref: '#/components/schemas/UserMinimalDto'
dateCreated:
type: string
description: The date and time when the request was created.
format: date-time
message:
type: string
description: Optional message associated with the publication request.
nullable: true
resources:
type: array
items:
$ref: '#/components/schemas/ResourceMinimalDto'
description: Collection of the resources involved in the publication request.
additionalProperties: false
description: Represents a data transfer object (DTO) for a project publication request.
ApplicationProfileMinimalDto:
required:
- uri
type: object
properties:
uri:
type: string
description: The URI associated with the application profile.
format: uri
additionalProperties: false
description: Represents a minimalistic application profile data transfer object.
LinkedDataOptionsDto:
type: object
additionalProperties: false
description: Represents the data transfer object (DTO) for Linked Data options.
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.
UserMinimalDto:
required:
- id
type: object
properties:
id:
type: string
description: The unique identifier for the user.
format: uuid
additionalProperties: false
description: Represents a minimal Data Transfer Object (DTO) for user information.
MetadataUpdateAdminParameters:
required:
- definition
type: object
properties:
definition:
$ref: '#/components/schemas/RdfDefinitionForManipulationDto'
additionalProperties: false
description: Represents parameters for updating metadata in an administrative context.
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.
ResourceMinimalDto:
required:
- id
type: object
properties:
id:
type: string
description: Unique identifier for the resource.
format: uuid
additionalProperties: false
description: Represents a minimal Data Transfer Object (DTO) for a resource, containing essential identifiers.
ActivityLogDto:
type: object
properties:
id:
type: string
format: uuid
apiPath:
type: string
httpAction:
type: string
controllerName:
type: string
nullable: true
actionName:
type: string
nullable: true
userId:
type: string
format: uuid
activityTimestamp:
type: string
format: date-time
additionalProperties: false
description: Represents a data transfer object (DTO) for an activity log.
RdfPatchDocumentDto:
type: object
properties:
operations:
type: array
items:
$ref: '#/components/schemas/RdfPatchOperationDto'
description: The list of operations in the RDF Patch document.
additionalProperties: false
description: Represents an RDF Patch document containing a series of operations.
RdfPatchOperationType:
enum:
- A
- D
type: string
description: Represents the types of operations that can be performed in an RDF Patch document.
PublicationAdvisoryServiceDto:
required:
- displayName
- email
type: object
properties:
displayName:
minLength: 1
type: string
description: Gets the data publication service's display name.
email:
minLength: 1
type: string
description: Gets the data publication service's email address.
description:
type: string
description: Gets the data publication service's description.
nullable: true
organizationRor:
type: string
description: Gets the ROR of the organization that provides this publication service.
nullable: true
additionalProperties: false
description: Data transfer object (DTO) representing the publication advisory service of an organization.
ResourceTypeOptionsDto:
type: object
properties:
linkedData:
$ref: '#/components/schemas/LinkedDataOptionsDto'
gitLab:
$ref: '#/components/schemas/GitLabOptionsDto'
rds:
$ref: '#/components/schemas/RdsOptionsDto'
rdsS3:
$ref: '#/components/schemas/RdsS3OptionsDto'
rdsS3Worm:
$ref: '#/components/schemas/RdsS3WormOptionsDto'
fileSystemStorage:
$ref: '#/components/schemas/FileSystemStorageOptionsDto'
dataStorageNrwWeb:
$ref: '#/components/schemas/DataStorageNrwWebOptionsDto'
dataStorageNrwS3:
$ref: '#/components/schemas/DataStorageNrwS3OptionsDto'
dataStorageNrwS3Worm:
$ref: '#/components/schemas/DataStorageNrwS3WormOptionsDto'
additionalProperties: false
description: Represents the options available for different resource types.
DefaultOrganizationQuotaDto:
type: object
properties:
resourceTypeId:
type: string
description: Gets or sets the resource type id of the default quota.
format: uuid
defaultQuota:
type: integer
description: Gets or sets the default quota value.
format: int32
defaultMaxQuota:
type: integer
description: Gets or sets the default max quota value.
format: int32
additionalProperties: false
description: Represents the default quota of an organization.
ProjectQuotaDto:
type: object
properties:
projectId:
type: string
description: Identifier of the project.
format: uuid
totalUsed:
$ref: '#/components/schemas/QuotaDto'
totalReserved:
$ref: '#/components/schemas/QuotaDto'
allocated:
$ref: '#/components/schemas/QuotaDto'
maximum:
$ref: '#/components/schemas/QuotaDto'
resourceType:
$ref: '#/components/schemas/ResourceTypeMinimalDto'
resourceQuotas:
type: array
items:
$ref: '#/components/schemas/ResourceQuotaDto'
description: Quota information for individual resources of the selected project's resource type.
nullable: true
additionalProperties: false
description: Represents a data transfer object (DTO) containing quota information for a project.
DataStorageNrwWebOptionsDto:
required:
- bucketName
type: object
properties:
bucketName:
type: string
description: The name of the bucket associated with DataStorage.nrw Web.
size:
$ref: '#/components/schemas/QuotaDto'
additionalProperties: false
description: Represents the data transfer object (DTO) for DataStorage.nrw Web options.
ActivityLogDtoPagedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ActivityLogDto'
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
QuotaDto:
required:
- unit
- value
type: object
properties:
value:
type: number
description: The value of the quota.
format: float
unit:
$ref: '#/components/schemas/QuotaUnit'
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for quota values.
CoscineHttpMethod:
enum:
- GET
- HEAD
- POST
- PUT
- DELETE
type: string
description: An enumeration representing the supported HTTP verbs.
UserEmailDto:
type: object
properties:
email:
type: string
description: The email address of the user.
nullable: true
isConfirmed:
type: boolean
description: Indicates whether the email address is confirmed.
isPrimary:
type: boolean
description: Indicates whether the email address is the primary one for the user.
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for user email information.
TitleDto:
required:
- displayName
- id
type: object
properties:
id:
type: string
description: The identifier for the title.
format: uuid
displayName:
type: string
description: The displayed name of the title.
additionalProperties: false
description: Represents the Data Transfer Object (DTO) for title information.
ProjectAdminDtoPagedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/ProjectAdminDto'
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
GitLabOptionsDto:
type: object
properties:
projectId:
type: integer
description: The project ID associated with GitLab.
format: int32
repoUrl:
type: string
description: The repository URL for GitLab.
nullable: true
accessToken:
type: string
description: The access token for GitLab.
nullable: true
branch:
type: string
description: The branch for GitLab.
nullable: true
additionalProperties: false
description: Represents the data transfer object (DTO) for GitLab options.
DeployedGraphDtoPagedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/DeployedGraphDto'
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
DataStorageNrwS3OptionsDto:
required:
- accessKeyRead
- accessKeyWrite
- bucketName
- endpoint
- secretKeyRead
- secretKeyWrite
type: object
properties:
bucketName:
type: string
description: The name of the bucket associated with DataStorage.nrw S3.
accessKeyRead:
type: string
description: The access key for reading from the DataStorage.nrw S3 bucket.
secretKeyRead:
type: string
description: The secret key for reading from the DataStorage.nrw S3 bucket.
accessKeyWrite:
type: string
description: The access key for writing to the DataStorage.nrw S3 bucket.
secretKeyWrite:
type: string
description: The secret key for writing to the DataStorage.nrw S3 bucket.
endpoint:
type: string
description: The endpoint for the DataStorage.nrw S3 bucket.
size:
$ref: '#/components/schemas/QuotaDto'
additionalProperties: false
description: Represents the data transfer object (DTO) for DataStorage.nrw S3 options.
CoscineRoleDto:
required:
- name
type: object
properties:
name:
type: string
description: Gets or sets the name of the role (e.g. "User", "QuotaAdmin").
additionalProperties: false
description: Data Transfer Object (DTO) that represents a user role within Coscine.///
ProjectAdminDto:
required:
- description
- disciplines
- endDate
- id
- name
- organizations
- pid
- slug
- startDate
- visibility
type: object
properties:
id:
type: string
description: Unique identifier for the project.
format: uuid
pid:
type: string
description: Persistent identifier for the project.
name:
type: string
description: Name of the project.
description:
type: string
description: Description of the project.
startDate:
type: string
description: Start date of the project.
format: date-time
endDate:
type: string
description: End date of the project.
format: date-time
keywords:
type: array
items:
type: string
description: Collection of keywords associated with the project.
nullable: true
displayName:
type: string
description: Display name of the project.
nullable: true
principleInvestigators:
type: string
description: Principal investigators involved in the project.
nullable: true
grantId:
type: string
description: Grant ID associated with the project.
nullable: true
visibility:
$ref: '#/components/schemas/VisibilityDto'
disciplines:
type: array
items:
$ref: '#/components/schemas/DisciplineDto'
description: Disciplines related to the project.
organizations:
type: array
items:
$ref: '#/components/schemas/ProjectOrganizationDto'
description: Organizations associated with the project.
slug:
type: string
description: Slug for the project.
creator:
$ref: '#/components/schemas/UserMinimalDto'
creationDate:
type: string
description: Date of creation of the project.
format: date-time
nullable: true
subProjects:
type: array
items:
$ref: '#/components/schemas/ProjectDto'
description: Collection of sub-projects associated with this project.
nullable: true
deprecated: true
parent:
$ref: '#/components/schemas/ProjectMinimalDto'
deleted:
type: boolean
description: Indicates whether the project is marked as deleted.
projectResources:
type: array
items:
$ref: '#/components/schemas/ProjectResourceMinimalDto'
description: Collection of minimal project resource details associated with the project.
projectRoles:
type: array
items:
$ref: '#/components/schemas/ProjectRoleMinimalDto'
description: Collection of minimal project role details associated with the project.
projectQuota:
type: array
items:
$ref: '#/components/schemas/ProjectQuotaDto'
description: Collection of project quotas associated with the project.
publicationRequests:
type: array
items:
$ref: '#/components/schemas/ProjectPublicationRequestDto'
description: Collection of project publication requests associated with the project.
additionalProperties: false
description: "Represents a data transfer object (DTO) for an administrative view of a project.\r\nExtends the base information in Coscine.Api.Core.Shared.DataTransferObjects.ReturnObjects.ProjectDto."
UserDtoPagedResponse:
type: object
properties:
data:
type: array
items:
$ref: '#/components/schemas/UserDto'
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
CreateDatasourceDtoResponse:
type: object
properties:
data:
$ref: '#/components/schemas/CreateDatasourceDto'
isSuccess:
type: boolean
readOnly: true
statusCode:
type: integer
format: int32
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
CreateDatasourceDto:
type: object
properties:
resourceTypeOptionId:
type: string
description: Gets or initializes the unique identifier of the resource type option.
format: uuid
nullable: true
additionalProperties: false
description: Represents the data transfer object for creating a datasource.
UserDto:
required:
- areToSAccepted
- disciplines
- displayName
- emails
- id
- identities
- organizations
type: object
properties:
id:
type: string
description: The unique identifier of the user.
format: uuid
displayName:
type: string
description: The display name of the user.
givenName:
type: string
description: The given name of the user.
nullable: true
familyName:
type: string
description: The family name of the user.
nullable: true
emails:
type: array
items:
$ref: '#/components/schemas/UserEmailDto'
description: The email addresses associated with the user.
title:
$ref: '#/components/schemas/TitleDto'
language:
$ref: '#/components/schemas/LanguageDto'
areToSAccepted:
type: boolean
description: Indicates if the terms of service are accepted by the user.
latestActivity:
type: string
description: The date and time of the latest activity of the user.
format: date-time
nullable: true
disciplines:
type: array
items:
$ref: '#/components/schemas/DisciplineDto'
description: The disciplines associated with the user.
organizations:
type: array
items:
$ref: '#/components/schemas/UserOrganizationDto'
description: The organizations associated with the user.
identities:
type: array
items:
$ref: '#/components/schemas/IdentityProviderDto'
description: The identity providers associated with the user.
roles:
type: array
items:
$ref: '#/components/schemas/CoscineRoleDto'
description: The coscine roles associated with the user.
dataProcessingConsentAt:
type: string
description: The date and time when the user give consent to the proccessing of data.
format: date-time
nullable: true
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for user-related information.
RdsS3OptionsDto:
required:
- accessKeyRead
- accessKeyWrite
- bucketName
- endpoint
- secretKeyRead
- secretKeyWrite
type: object
properties:
bucketName:
type: string
description: The name of the bucket associated with RDS S3.
accessKeyRead:
type: string
description: The access key for reading from the RDS S3 bucket.
secretKeyRead:
type: string
description: The secret key for reading from the RDS S3 bucket.
accessKeyWrite:
type: string
description: The access key for writing to the RDS S3 bucket.
secretKeyWrite:
type: string
description: The secret key for writing to the RDS S3 bucket.
endpoint:
type: string
description: The endpoint for the RDS S3 bucket.
size:
$ref: '#/components/schemas/QuotaDto'
additionalProperties: false
description: Represents the data transfer object (DTO) for RDS S3 options.
FixedValueForResourceManipulationDto:
type: object
properties:
value:
type: string
description: Gets or initializes the value of the fixed resource value.
nullable: true
type:
type: string
description: Gets or initializes the type of the fixed resource value.
nullable: true
datatype:
type: string
description: Gets or initializes the data type URI of the fixed resource value.
format: uri
nullable: true
targetClass:
type: string
description: Gets the target class of the provided value (e.g., "https://purl.org/coscine/ap/base/").
nullable: true
additionalProperties: false
description: Data transfer object (DTO) representing the manipulation of a fixed value associated with a resource.
DeployedGraphDto:
type: object
properties:
uri:
type: string
description: Graph URI and identifier.
format: uri
fileHashes:
type: array
items:
type: string
description: Collection of file hashes associated with the graph.
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for deployed graph details.
UserOrganizationDto:
required:
- displayName
- readOnly
type: object
properties:
uri:
type: string
description: Gets the ROR (Research Organization Registry) ID of the organization.
format: uri
nullable: true
displayName:
type: string
description: Gets the display name of the organization.
email:
type: string
description: Gets or sets the email address of the organization.
nullable: true
defaultQuota:
type: array
items:
$ref: '#/components/schemas/DefaultOrganizationQuotaDto'
description: Gets or sets the default quota of the organization.
nullable: true
readOnly:
type: boolean
description: Gets a value indicating whether the organization's details can be modified.
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for user-related organization information, inheriting from OrganizationDto.
DsNrwReplicationGroup:
enum:
- RWTH-UDE
- UZK-UPB
type: string
DisciplineDto:
type: object
properties:
id:
type: string
description: The unique identifier for the discipline.
format: uuid
uri:
type: string
description: The URI associated with the discipline.
displayNameDe:
type: string
description: The display name of the discipline in German.
displayNameEn:
type: string
description: The display name of the discipline in English.
additionalProperties: false
description: Represents the data transfer object for a discipline.
RdfFormat:
enum:
- text/turtle
- application/ld+json
- application/x-trig
- application/n-quads
type: string
description: Specifies the RDF (Resource Description Framework) format.
ProjectMinimalDto:
required:
- id
type: object
properties:
id:
type: string
description: Unique identifier for the project.
format: uuid
additionalProperties: false
description: Represents a minimal data transfer object (DTO) for a project.
ProjectOrganizationDto:
required:
- displayName
- responsible
- uri
type: object
properties:
uri:
type: string
description: The ROR (Research Organization Registry) ID of the organization.
format: uri
displayName:
type: string
description: The display name of the organization.
email:
type: string
description: The email address of the organization.
nullable: true
publicationAdvisoryService:
$ref: '#/components/schemas/PublicationAdvisoryServiceDto'
responsible:
type: boolean
description: Determines if the organization is Responsible for a given project.
additionalProperties: false
description: Represents a data transfer object (DTO) for an organization in the context of a project.
RdfPatchOperationDto:
type: object
properties:
operationType:
$ref: '#/components/schemas/RdfPatchOperationType'
changes:
$ref: '#/components/schemas/RdfDefinitionForManipulationDto'
additionalProperties: false
description: Represents a single operation in an RDF Patch document.
LanguageDto:
required:
- abbreviation
- displayName
- id
type: object
properties:
id:
type: string
description: Gets or sets the unique identifier for the language.
format: uuid
displayName:
type: string
description: Gets or sets the display name of the language.
abbreviation:
type: string
description: Gets or sets the abbreviation for the language.
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for language details.
securitySchemes:
Bearer:
type: apiKey
description: JWT Authorization header using the Bearer scheme.
name: Authorization
in: header