openapi: 3.0.1
info:
title: Coscine Web Admin Self 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: Self
description: Endpoints for the current authenticated user.
paths:
/api/v2/self:
get:
tags:
- Self
summary: Retrieves the current authenticated user.
operationId: GetCurrentUser
responses:
'200':
description: Returns the current authenticated user.
content:
application/json:
schema:
$ref: '#/components/schemas/UserDtoResponse'
text/json:
schema:
$ref: '#/components/schemas/UserDtoResponse'
put:
tags:
- Self
summary: Updates the current authenticated user.
operationId: UpdateCurrentUser
requestBody:
description: The updated user data.
content:
application/json:
schema:
$ref: '#/components/schemas/UserForUpdateDto'
text/json:
schema:
$ref: '#/components/schemas/UserForUpdateDto'
application/*+json:
schema:
$ref: '#/components/schemas/UserForUpdateDto'
responses:
'204':
description: User updated.
'404':
description: Provided input refers to entries that do not exist or have been deleted.
delete:
tags:
- Self
summary: Deletes the current authenticated user.
operationId: DeleteCurrentUser
responses:
'204':
description: User deleted.
'404':
description: Provided input refers to entries that do not exist or have been deleted.
'409':
description: User has active project roles.
options:
tags:
- Self
summary: Responds with the HTTP methods allowed for the endpoint.
responses:
'200':
description: OK
/api/v2/self/tos:
post:
tags:
- Self
summary: Accepts the current Terms Of Service for the current authenticated user.
operationId: AcceptCurrentTos
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/UserTermsOfServiceAcceptDto'
text/json:
schema:
$ref: '#/components/schemas/UserTermsOfServiceAcceptDto'
application/*+json:
schema:
$ref: '#/components/schemas/UserTermsOfServiceAcceptDto'
responses:
'204':
description: Terms of Service accepted.
'404':
description: Provided input refers to entries that do not exist or have been deleted.
/api/v2/self/emails:
post:
tags:
- Self
summary: Confirms the email of a user.
operationId: ConfirmUserEmail
parameters:
- name: ConfirmationToken
in: query
description: Gets or initializes the confirmation token for user email confirmation.
required: true
schema:
type: string
format: uuid
responses:
'204':
description: Contact email confirmed.
'404':
description: Provided input refers to entries that do not exist or have been deleted.
'400':
description: Provided input has a bad format.
/api/v2/self/emails/resend:
post:
tags:
- Self
summary: Resends the confirmation email for a user.
operationId: ResendUserEmailConfirmation
responses:
'204':
description: No Content
'400':
description: Bad Request
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
text/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
'429':
description: Too Many Requests
content:
application/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
text/json:
schema:
$ref: '#/components/schemas/ProblemDetails'
/api/v2/self/identities:
post:
tags:
- Self
summary: Initiates user merging for the current user.
operationId: InitiateUserMerge
parameters:
- name: IdentityProvider
in: query
description: The identity provider from which user data is to be merged.
required: true
schema:
$ref: '#/components/schemas/IdentityProviders'
responses:
'200':
description: Returns the user merge dto.
content:
application/json:
schema:
$ref: '#/components/schemas/UserMergeDtoResponse'
text/json:
schema:
$ref: '#/components/schemas/UserMergeDtoResponse'
'400':
description: Provided input has a bad format.
/api/v2/self/project-invitations:
post:
tags:
- Self
summary: Resolves a project invitation for the authenticated user.
operationId: ResolveProjectInvitation
requestBody:
description: The project invitation resolve data.
content:
application/json:
schema:
$ref: '#/components/schemas/ProjectInvitationResolveDto'
text/json:
schema:
$ref: '#/components/schemas/ProjectInvitationResolveDto'
application/*+json:
schema:
$ref: '#/components/schemas/ProjectInvitationResolveDto'
responses:
'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.
/api/v2/self/data-proccessing-consent:
post:
tags:
- Self
summary: Gives the consent for data processing for the current authenticated user.
operationId: GiveDataProcessingConsent
responses:
'204':
description: Data processing consent given.
'404':
description: Provided input refers to entries that do not exist or have been deleted.
/api/v2/self/active-project-roles-count:
get:
tags:
- Self
summary: Retrieves the number of active project roles for the currently authenticated user.
operationId: GetActiveProjectRolesCount
responses:
'200':
description: Returns the number of active project roles for the currently authenticated user.
content:
application/json:
schema:
$ref: '#/components/schemas/UserProjectRoleCountDtoResponse'
text/json:
schema:
$ref: '#/components/schemas/UserProjectRoleCountDtoResponse'
components:
schemas:
DisciplineForUserManipulationDto:
required:
- id
type: object
properties:
id:
type: string
description: Gets or initializes the identifier of the discipline.
format: uuid
additionalProperties: false
description: Data transfer object (DTO) representing a discipline for user manipulation.
UserTermsOfServiceAcceptDto:
required:
- version
type: object
properties:
version:
minLength: 1
type: string
description: The version of the terms of service being accepted.
additionalProperties: false
description: Represents the data transfer object (DTO) for accepting the terms of service by a user.
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.
UserProjectRoleCountDto:
type: object
properties:
activeProjectRolesTotal:
type: integer
description: Gets the total number of active project roles associated with the current authenticated user.
format: int32
additionalProperties: false
description: Represents a Data Transfer Object containing the number of active project roles for a user.
TitleForUserManipulationDto:
required:
- id
type: object
properties:
id:
type: string
description: The unique identifier of the title.
format: uuid
additionalProperties: false
description: Represents the data transfer object (DTO) for manipulating a user's title.
UserProjectRoleCountDtoResponse:
type: object
properties:
data:
$ref: '#/components/schemas/UserProjectRoleCountDto'
isSuccess:
type: boolean
readOnly: true
statusCode:
type: integer
format: int32
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
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.
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.
LanguageForUserManipulationDto:
required:
- id
type: object
properties:
id:
type: string
description: Gets or initializes the identifier of the language.
format: uuid
additionalProperties: false
description: Data transfer object (DTO) representing a language for user manipulation.
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.
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.///
ProjectInvitationResolveDto:
required:
- token
type: object
properties:
token:
type: string
description: Gets or initializes the token associated with resolving the project invitation.
format: uuid
additionalProperties: false
description: Data transfer object (DTO) for resolving a project invitation.
ProblemDetails:
type: object
properties:
type:
type: string
nullable: true
title:
type: string
nullable: true
status:
type: integer
format: int32
nullable: true
detail:
type: string
nullable: true
instance:
type: string
nullable: true
additionalProperties: {}
UserDtoResponse:
type: object
properties:
data:
$ref: '#/components/schemas/UserDto'
isSuccess:
type: boolean
readOnly: true
statusCode:
type: integer
format: int32
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
UserForUpdateDto:
required:
- disciplines
- email
- familyName
- givenName
- language
type: object
properties:
givenName:
minLength: 1
type: string
description: The user's given name.
familyName:
minLength: 1
type: string
description: The user's family name.
email:
minLength: 1
type: string
description: The user's email address.
format: email
title:
$ref: '#/components/schemas/TitleForUserManipulationDto'
language:
$ref: '#/components/schemas/LanguageForUserManipulationDto'
organization:
type: string
description: The user's organization.
nullable: true
disciplines:
type: array
items:
$ref: '#/components/schemas/DisciplineForUserManipulationDto'
description: The disciplines associated with the user for manipulation.
additionalProperties: false
description: Represents the data transfer object (DTO) for updating user details.
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.
UserMergeDto:
required:
- token
type: object
properties:
token:
type: string
description: The token required for merging user accounts.
additionalProperties: false
description: Represents a Data Transfer Object (DTO) for merging user accounts.
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.
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.
UserMergeDtoResponse:
type: object
properties:
data:
$ref: '#/components/schemas/UserMergeDto'
isSuccess:
type: boolean
readOnly: true
statusCode:
type: integer
format: int32
nullable: true
traceId:
type: string
nullable: true
additionalProperties: false
IdentityProviders:
enum:
- Shibboleth
- ORCiD
type: string
description: Specifies the supported external authentication services.
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