RWTH Aachen University ApplicationProfile API

Endpoints for the applications profiles.

Documentation

Specifications

Schemas & Data

Other Resources

OpenAPI Specification

rwth-aachen-university-applicationprofile-api-openapi.yml Raw ↑
openapi: 3.0.1
info:
  title: Coscine Web Admin ApplicationProfile API
  description: Coscine (short for <b>CO</b>llaborative <b>SC</b>ientific <b>IN</b>tegration <b>E</b>nvironment) 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: ApplicationProfile
  description: Endpoints for the applications profiles.
paths:
  /api/v2/application-profiles/profiles:
    get:
      tags:
      - ApplicationProfile
      summary: Retrieves all application profiles.
      operationId: GetApplicationProfiles
      parameters:
      - name: SearchTerm
        in: query
        description: Gets or sets the search term used to filter application profiles.
        schema:
          type: string
      - name: Language
        in: query
        description: Gets or sets the language for which the application profiles are requested.
        schema:
          $ref: '#/components/schemas/AcceptedLanguage'
      - name: Modules
        in: query
        description: Gets or sets a value indicating whether to include modules in the application profiles.
        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 application profiles.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationProfileDtoPagedResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApplicationProfileDtoPagedResponse'
  /api/v2/application-profiles/profiles/{profile}:
    get:
      tags:
      - ApplicationProfile
      summary: Retrieves an application profile by its URI.
      operationId: GetApplicationProfile
      parameters:
      - name: profile
        in: path
        description: The URI of the application profile to retrieve.
        required: true
        schema:
          type: string
      - name: format
        in: query
        description: The desired data format for the returned application profile.
        schema:
          $ref: '#/components/schemas/RdfFormat'
      - name: Accept-Language
        in: header
        description: The preferred language for the application profile data.
        schema:
          $ref: '#/components/schemas/AcceptedLanguage'
      responses:
        '200':
          description: Returns the application profile.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationProfileDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApplicationProfileDtoResponse'
        '404':
          description: Application profile does not exist.
  /api/v2/application-profiles/profiles/{profile}/raw:
    get:
      tags:
      - ApplicationProfile
      summary: Retrieves the `raw` application profile definition by its URI.
      operationId: GetRawApplicationProfile
      parameters:
      - name: profile
        in: path
        description: The URI of the application profile.
        required: true
        schema:
          type: string
      responses:
        '200':
          description: Returns the raw application profile.
          content:
            text/turtle:
              schema:
                type: string
            application/ld+json:
              schema:
                type: string
        '404':
          description: Application profile does not exist.
  /api/v2/application-profiles/requests:
    post:
      tags:
      - ApplicationProfile
      summary: Submits a request to create a new application profile.
      operationId: CreateApplicationProfileRequest
      requestBody:
        description: The details required to create a new application profile.
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/ApplicationProfileForCreationDto'
          text/json:
            schema:
              $ref: '#/components/schemas/ApplicationProfileForCreationDto'
          application/*+json:
            schema:
              $ref: '#/components/schemas/ApplicationProfileForCreationDto'
      responses:
        '201':
          description: Application profile request created.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/ApplicationProfileForCreationDtoResponse'
            text/json:
              schema:
                $ref: '#/components/schemas/ApplicationProfileForCreationDtoResponse'
        '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/application-profiles:
    options:
      tags:
      - ApplicationProfile
      summary: Responds with the HTTP methods allowed for the endpoint.
      responses:
        '200':
          description: OK
components:
  schemas:
    ApplicationProfileDtoPagedResponse:
      type: object
      properties:
        data:
          type: array
          items:
            $ref: '#/components/schemas/ApplicationProfileDto'
          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
    AcceptedLanguage:
      enum:
      - de
      - en
      type: string
      description: Accepted languages by the API.
    ApplicationProfileForCreationDtoResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ApplicationProfileForCreationDto'
        isSuccess:
          type: boolean
          readOnly: true
        statusCode:
          type: integer
          format: int32
          nullable: true
        traceId:
          type: string
          nullable: true
      additionalProperties: false
    ApplicationProfileDto:
      required:
      - uri
      type: object
      properties:
        uri:
          type: string
          description: The URI associated with the application profile.
          format: uri
        displayName:
          type: string
          description: The display name for the application profile.
          nullable: true
        description:
          type: string
          description: The description of the application profile.
          nullable: true
        definition:
          $ref: '#/components/schemas/RdfDefinitionDto'
      additionalProperties: false
      description: Represents an application profile data transfer object.
    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.
    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.
    RdfFormat:
      enum:
      - text/turtle
      - application/ld+json
      - application/x-trig
      - application/n-quads
      type: string
      description: Specifies the RDF <i>(Resource Description Framework)</i> format.
    ApplicationProfileForCreationDto:
      required:
      - definition
      - name
      - uri
      type: object
      properties:
        name:
          minLength: 1
          type: string
          description: Gets or initializes the name of the application profile.
        uri:
          type: string
          description: Gets or initializes the URI of the application profile.
          format: uri
        definition:
          $ref: '#/components/schemas/RdfDefinitionForManipulationDto'
      additionalProperties: false
      description: Data transfer object (DTO) representing the creation of an application profile.
    ApplicationProfileDtoResponse:
      type: object
      properties:
        data:
          $ref: '#/components/schemas/ApplicationProfileDto'
        isSuccess:
          type: boolean
          readOnly: true
        statusCode:
          type: integer
          format: int32
          nullable: true
        traceId:
          type: string
          nullable: true
      additionalProperties: false
    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.
  securitySchemes:
    Bearer:
      type: apiKey
      description: JWT Authorization header using the Bearer scheme.
      name: Authorization
      in: header