openapi: 3.2.0 info: title: Coscine Web Self API Token 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 API Token description: Endpoints for the api tokens of a user. paths: /api/v2/self/api-tokens/{apiTokenId}: get: tags: - Self API Token summary: Retrieves an API token for the current authenticated user operationId: GetApiToken parameters: - name: apiTokenId in: path description: The ID of the token. required: true schema: type: string format: uuid responses: '200': description: Returns the API token. content: application/json: schema: $ref: '#/components/schemas/ApiTokenDtoResponse' text/json: schema: $ref: '#/components/schemas/ApiTokenDtoResponse' '404': description: API token does not exist. delete: tags: - Self API Token summary: Revokes an API token for the current authenticated user operationId: RevokeToken parameters: - name: apiTokenId in: path description: The ID of the token. required: true schema: type: string format: uuid responses: '204': description: API token revoked/deleted. '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/api-tokens: get: tags: - Self API Token summary: Retrieves all API tokens for the current authenticated user operationId: GetAllApiTokens 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. The order is constructed by an order string. Use the property followed by "asc" or "desc" and separate properties by commas. Default is asc. Can be used like this: "propertyA asc, propertyB desc".' schema: type: string responses: '200': description: Returns the API tokens of the current user. content: application/json: schema: $ref: '#/components/schemas/ApiTokenDtoPagedResponse' text/json: schema: $ref: '#/components/schemas/ApiTokenDtoPagedResponse' post: tags: - Self API Token summary: Creates an API token for the current authenticated user operationId: CreateApiToken requestBody: description: The API token data for creation. content: application/json: schema: $ref: '#/components/schemas/ApiTokenForCreationDto' text/json: schema: $ref: '#/components/schemas/ApiTokenForCreationDto' application/*+json: schema: $ref: '#/components/schemas/ApiTokenForCreationDto' responses: '201': description: API token created. content: application/json: schema: $ref: '#/components/schemas/ApiTokenDtoResponse' text/json: schema: $ref: '#/components/schemas/ApiTokenDtoResponse' '400': description: Provided input has a bad format. '404': description: Provided input refers to entries that do not exist or have been deleted. options: tags: - Self API Token summary: Responds with the HTTP methods allowed for the endpoint responses: '200': description: OK operationId: optionsApiV2SelfApiTokens x-operation-id-source: derived components: schemas: 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. ApiTokenDtoPagedResponse: type: object properties: data: type: - array - 'null' items: $ref: '#/components/schemas/ApiTokenDto' isSuccess: type: boolean readOnly: true statusCode: type: - integer - 'null' format: int32 traceId: type: - string - 'null' pagination: $ref: '#/components/schemas/Pagination' additionalProperties: false ApiTokenDtoResponse: type: object properties: data: $ref: '#/components/schemas/ApiTokenDto' isSuccess: type: boolean readOnly: true statusCode: type: - integer - 'null' format: int32 traceId: type: - string - 'null' additionalProperties: false 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. ApiTokenForCreationDto: required: - expiresInDays - name type: object properties: name: minLength: 1 type: string description: Gets or sets the name of the API token. expiresInDays: maximum: 370 minimum: 1 type: integer description: Gets or sets the expiration duration of the token in days. format: int32 additionalProperties: false description: Data transfer object (DTO) representing the creation of an API token. ApiTokenDto: type: object properties: id: type: string description: The unique identifier of the API token. format: uuid name: type: string description: The name associated with the API token. creationDate: type: string description: The date when the API token was created. format: date-time expiryDate: type: string description: The expiry date of the API token. format: date-time token: type: - string - 'null' description: The actual token used for authentication. owner: $ref: '#/components/schemas/UserMinimalDto' additionalProperties: false description: Represents an API token used for authentication. securitySchemes: Bearer: type: apiKey description: JWT Authorization header using the Bearer scheme. name: Authorization in: header