RedactManager API Specs for BASF - designed all required endpoints

This commit is contained in:
Kresnadi Budisantoso 2024-04-29 17:20:04 +02:00
parent 224def920e
commit a2daa60e79

View File

@ -1,14 +1,18 @@
openapi: 3.0.2
info:
title: RedactManager API
version: "4.0.0"
title: RedactManager API - DRAFT
version: "4.1.0"
description: |
The RedactManager API provides a comprehensive solution for managing resources such as dossiers and their associated files.
Users can also retrieve the results package for files that have been processed by the system and reviewed by the users.
The results package can contain the optimized PDF file, the preview PDF, the redacted PDF and correlating redaction reports in different formats.
The results package can contain the optimized PDF file, the preview PDF, the redacted PDF and correlating redaction reports
in different formats.
All endpoints are secured using OAuth2, with the "authorizationCode" being the supported authorization flow.
All endpoints are secured using OAuth2, with the "authorizationCode" being the general supported authorization flow.
Obtain a JWT token for authentication and send it in the 'Authorization' header with the format `Bearer {JWT_TOKEN}`.
Please also note that the `authorizationUrl` and `tokenUrl` in this specification contain `{workspaceId}` placeholders that
must be replaced by your respective RedactManager workspace identifier.
Example Headers:
```properties
@ -27,7 +31,7 @@ servers:
- url: https://app.redactmanager.com
description: RedactManager Cloud Service
security:
- FF-OAUTH: [ ]
- FF-OAUTH: []
tags:
- name: 1. Dossier Templates
description: Operations related to dossier templates.
@ -37,7 +41,9 @@ tags:
description: Operations for managing files within a dossier.
- name: 4. Downloads
description: Operations related to download packages.
- name: 5. License
- name: 5. Users
description: Operations related to users.
- name: 6. License
description: Operations related to license information and usage metrics.
paths:
/api/dossier-templates:
@ -106,7 +112,7 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/dossier-templates/{dossierTemplateId}/dossier-attribute-definitions:
get: # TODO: review endpoint to get dossier attribute definitions
get: # TODO: implement endpoint to get dossier attribute definitions
summary: Returns the list of all existing dossier attribute definitions
tags:
- 1. Dossier Templates
@ -138,7 +144,7 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/dossier-templates/{dossierTemplateId}/file-attribute-definitions:
get: # TODO: review endpoint to get file attribute definitions
get:
summary: Returns the list of all existing file attribute definitions
tags:
- 1. Dossier Templates
@ -328,7 +334,7 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/dossier-templates/{dossierTemplateId}/dossiers/{dossierId}/attributes:
post: # TODO: review endpoint to set or update dossier attribute values
post: # TODO: implement endpoint to set or update dossier attribute values
operationId: setDossierAttributes
tags:
- 2. Dossiers
@ -348,9 +354,9 @@ paths:
$ref: '#/components/schemas/DossierAttributes'
required: true
responses:
"200":
"204":
description: |
File attributes successfully updated.
Dossier attributes successfully updated.
"400":
$ref: '#/components/responses/400'
"401":
@ -364,17 +370,17 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/dossier-templates/{dossierTemplateId}/dossiers/{dossierId}/create-download:
post: # TODO: review endpoint to prepare a download for all files of a dossier
post: # TODO: implement endpoint to prepare a download for all files of a dossier
operationId: prepareDossierDownload
tags:
- 3. Dossiers
- 2. Dossiers
summary: (DRAFT) Trigger the creation of a download package for all files of a dossier.
description: |
To download the results of a redaction, a download package needs to be prepared. This endpoint
facilitates to define the content of the download package and to start the creation of it for all
files of the dossier. The response of this endpoint contains an identifier for the download that
is needed to query the status until the download package is prepared for download, and
finally to actually download the file once it is available.
is needed to query the status until the download package is prepared, and finally to actually
download the file once it is available.
Note: The redacted file will be created for `APPROVED` files only.
parameters:
@ -571,7 +577,7 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/dossier-templates/{dossierTemplateId}/dossiers/{dossierId}/files/{fileId}/create-download:
post: # TODO: review endpoint to prepare a download of a single file
post: # TODO: implement endpoint to prepare a download of a single file
operationId: prepareFileDownload
tags:
- 3. Files
@ -587,11 +593,12 @@ paths:
parameters:
- $ref: '#/components/parameters/dossierTemplateId'
- $ref: '#/components/parameters/dossierId'
- $ref: '#/components/parameters/fileId'
requestBody:
content:
application/json:
schema:
$ref: '#/components/schemas/FileDownloadRequest'
$ref: '#/components/schemas/DownloadRequest'
required: true
responses:
"200":
@ -654,7 +661,7 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/dossier-templates/{dossierTemplateId}/dossiers/{dossierId}/files/bulk/create-download:
post: # TODO: review endpoint to prepare a bulk download of multiple files
post: # TODO: implement endpoint to prepare a bulk download of multiple files, check if fileIds match the dossierId
operationId: prepareBulkDownload
tags:
- 3. Files
@ -674,7 +681,7 @@ paths:
content:
application/json:
schema:
$ref: '#/components/schemas/BulkFileDownloadRequest'
$ref: '#/components/schemas/BulkDownloadRequest'
required: true
responses:
"200":
@ -718,7 +725,7 @@ paths:
$ref: '#/components/schemas/FileAttributes'
required: true
responses:
"200":
"204":
description: |
File attributes successfully updated.
"400":
@ -734,13 +741,15 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/download:
get: # TODO: review endpoint to get the status of all downloads of the current user
get: # TODO: implement endpoint to get the status of all downloads of the current user
operationId: getDownloadStatusList
tags:
- 4. Downloads
summary: TODO
summary: Get the list of downloads for the current user
description: |
# TODO: add description for endpoint to get the status of all downloads of the current user
This endpoint facilitates to retrieve the list of downloads for the current user. The response contains
status objects that represent each download and provide information on whether the download is still
in preparation, is already available or whether an error occurred when the download package was created.
responses:
"200":
content:
@ -759,17 +768,19 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/downloads/{downloadId}:
get: # TODO: review endpoint to get a single download status by id
get: # TODO: implement endpoint to get a single download status by id
operationId: getDownloadStatus
tags:
- 4. Downloads
summary: TODO
summary: Get the status for a specific download of the current user
description: |
# TODO: add description for endpoint to get a single download status by id
This endpoint facilitates to retrieve the status for a specific download. In addition to other
information, the status indicates whether the download is still being prepared, is already
available, or whether an error occurred when the download package was created.
parameters:
- $ref: '#/components/parameters/downloadId'
responses:
"200": # TODO: complete response
"200":
content:
application/json:
schema:
@ -787,7 +798,7 @@ paths:
$ref: '#/components/responses/429'
"500":
$ref: '#/components/responses/500'
delete: # TODO: review endpoint to delete a single download by id
delete: # TODO: implement endpoint to delete a single download by id
operationId: deleteDownload
tags:
- 4. Downloads
@ -797,7 +808,7 @@ paths:
parameters:
- $ref: '#/components/parameters/downloadId'
responses:
"204": # TODO: complete response
"204":
description: |
Download deletion successful. This confirms the absence of the specified download, irrespective of its previous existence.
"400":
@ -813,18 +824,30 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/downloads/{downloadId}/download:
get: # TODO: review endpoint to actually do the download
get: # TODO: implement endpoint to actually do the download
operationId: download
tags:
- 4. Downloads
summary: TODO
- persistence-service
summary: Download the download package.
description: |
# TODO: add description for endpoint to actually do the download
This endpoint facilitates to actually download the created download package. The request will
only be successful if the status of the download is `READY`.
parameters:
- $ref: '#/components/parameters/downloadId'
responses:
"200": # TODO: complete response
description: Successfully downloading the file. (TODO rephrase?)
"200":
headers:
Content-Disposition:
schema:
type: string
example: attachment; filename*=utf-8''example.zip
content:
application/octet-stream:
schema:
type: string
format: binary
description: Successfully downloaded the requested file.
"400":
$ref: '#/components/responses/400'
"401":
@ -837,14 +860,20 @@ paths:
$ref: '#/components/responses/429'
"500":
$ref: '#/components/responses/500'
/api/users:
get: # TODO: review endpoint to get a user list
/api/users: # /api/users?username=kresnadi@budisantoso.de
get: # TODO: implement endpoint to get a user list
operationId: getUsers
tags:
- 5. Users
- tenant-user-management
summary: TODO
description: |
# TODO: add filter parameters to find a user by login or email (optional)
This endpoint facilitates to retrieve a list of known users.
With the `username` parameter you can filter for a specific user name. If the parameter is
used, the returned list either contains a single matching entry or is empty.
parameters:
- $ref: '#/components/parameters/username'
responses:
200:
content:
@ -863,13 +892,13 @@ paths:
"500":
$ref: '#/components/responses/500'
/api/users/{userId}:
get: # TODO: review endpoint to get a single user by id
get: # TODO: implement endpoint to get a single user by id
operationId: getUserById
tags:
- 5. Users
summary: TODO
summary: Retrieve a specific user by its identifier.
description: |
# TODO: add description for endpoint to get a single user by id
This endpoint facilitates to retrieve a specific user.
responses:
200:
content:
@ -981,6 +1010,20 @@ components:
Some endpoints support a `includeSoftDeleted` parameter: If this is set to `true`, this response is returned
only if the file is deleted permanently.
"404-download":
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorMessage'
description: |
Download not found. This happens if the requested download does not exist for the current user.
"404-user":
content:
'*/*':
schema:
$ref: '#/components/schemas/ErrorMessage'
description: |
User not found. This happens if the requested user does not exist.
"409-dossier-conflict":
content:
'*/*':
@ -988,13 +1031,6 @@ components:
$ref: '#/components/schemas/ErrorMessage'
description: |
Name conflict: The provided name is already in use by another dossier. It needs to be unique in the scope of your workspace.
422-rules:
content:
'*/*':
schema:
$ref: '#/components/schemas/RuleValidation'
description: |
Invalid rules file: There were validation errors, the rules file is unprocessable.
"429":
content:
'*/*':
@ -1238,6 +1274,26 @@ components:
- `true`: The component object's field `componentDetails` stores detailed information about the *source* of its
respective value(s).
- `false` (default): The component object does not contain a field `componentDetails`.
downloadId:
name: downloadId
in: path
required: true
schema:
type: string
style: simple
explode: false
description: The identifier for the file to download.
username:
name: username
in: query
required: false
schema:
type: string
style: form
explode: true
description: |
If the `username` parameter is set, the user list is filtered for that specific user name. This means the list
either has one matching entry or is empty.
schemas:
EntityReference:
type: object
@ -1345,198 +1401,6 @@ components:
entityRuleId: DEF.13.37
type: another_entity_type
page: 456
FileComponents:
type: object
description: Represents file details along with its associated components and values.
properties:
dossierTemplateId:
format: uuid
type: string
description: Identifier for the template associated with the dossier.
dossierId:
format: uuid
type: string
description: Identifier for the dossier.
fileId:
type: string
description: Identifier for the file.
filename:
type: string
description: Name of the file.
components:
type: object
description: A map of component names to their list of values.
additionalProperties:
items:
type: string
type: array
componentDetails:
type: object
description: A map of component names to their detailed representations.
additionalProperties:
$ref: '#/components/schemas/Component'
example:
dossierTemplateId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
dossierId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
fileId: 1fdbd888b39059c8cf171df26f62f8a5
filename: MyFile.pdf
components:
"my component":
- my overwritten component value
- yet another component value
"yet another component":
- only one value
componentDetails:
- name: my component
componentValues:
- value: my overwritten component value
originalValue: the original value
componentRuleId: COM.0.0
valueDescription: My value description
entityReferences:
- id: bcd22239-cedf-442f-a5a1-1664cba94dc6
entityRuleId: ABC.0.0
type: entity_type
page: 123
- id: b748b89a-5679-4254-9286-1dd652d9970b
entityRuleId: DEF.13.37
type: another_entity_type
page: 456
- value: yet another component value
originalValue: yet another component value
componentRuleId: COM.0.1
valueDescription: Another value description
entityReferences:
- id: 70496456-a016-4679-81b1-6c8856dded6e
entityRuleId: XYZ.0.0
type: yet_another_entity_type
page: 123
- name: yet another component
componentValues:
- value: only one value
originalValue: only one value
componentRuleId: COM.0.0
valueDescription: My value description
entityReferences:
- id: bcd22239-cedf-442f-a5a1-1664cba94dc6
entityRuleId: ABC.0.0
type: entity_type
page: 123
- id: b748b89a-5679-4254-9286-1dd652d9970b
entityRuleId: DEF.13.37
type: another_entity_type
page: 456
FileComponentsList:
type: object
description: A list of files and their associated components.
properties:
files:
type: array
description: List of files with their component details.
items:
$ref: '#/components/schemas/FileComponents'
example:
files:
- dossierTemplateId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
dossierId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
fileId: 1fdbd888b39059c8cf171df26f62f8a5
filename: MyFile.pdf
components:
"my component":
- my overwritten component value
- yet another component value
"yet another component":
- only one value
componentDetails:
- name: my component
componentValues:
- value: my overwritten component value
originalValue: the original value
componentRuleId: COM.0.0
valueDescription: My value description
entityReferences:
- id: bcd22239-cedf-442f-a5a1-1664cba94dc6
entityRuleId: ABC.0.0
type: entity_type
page: 123
- id: b748b89a-5679-4254-9286-1dd652d9970b
entityRuleId: DEF.13.37
type: another_entity_type
page: 456
- value: yet another component value
originalValue: yet another component value
componentRuleId: COM.0.1
valueDescription: Another value description
entityReferences:
- id: 70496456-a016-4679-81b1-6c8856dded6e
entityRuleId: XYZ.0.0
type: yet_another_entity_type
page: 123
- name: yet another component
componentValues:
- value: only one value
originalValue: only one value
componentRuleId: COM.0.0
valueDescription: My value description
entityReferences:
- id: bcd22239-cedf-442f-a5a1-1664cba94dc6
entityRuleId: ABC.0.0
type: entity_type
page: 123
- id: b748b89a-5679-4254-9286-1dd652d9970b
entityRuleId: DEF.13.37
type: another_entity_type
page: 456
- dossierTemplateId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
dossierId: 046b6c7f-0b8a-43b9-b35d-6489e6daee91
fileId: 4d2334def5fced0003888e47cbc270f7
filename: Copy of MyFile.pdf
components:
"my component":
- my overwritten component value
- yet another component value
"yet another component":
- only one value
componentDetails:
- name: my component
componentValues:
- value: my overwritten component value
originalValue: the original value
componentRuleId: COM.0.0
valueDescription: My value description
entityReferences:
- id: dadb54d4-587b-4e69-8c07-be9446a33537
entityRuleId: ABC.0.0
type: entity_type
page: 123
- id: 30339f5a-4c19-447f-b0a0-0f14c094037e
entityRuleId: DEF.13.37
type: another_entity_type
page: 456
- value: yet another component value
originalValue: yet another component value
componentRuleId: COM.0.1
valueDescription: Another value description
entityReferences:
- id: 086cd500-97da-44f8-8628-3324d11b4e8d
entityRuleId: XYZ.0.0
type: yet_another_entity_type
page: 123
- name: yet another component
componentValues:
- value: only one value
originalValue: only one value
componentRuleId: COM.0.0
valueDescription: My value description
entityReferences:
- id: dadb54d4-587b-4e69-8c07-be9446a33537
entityRuleId: ABC.0.0
type: entity_type
page: 123
- id: 30339f5a-4c19-447f-b0a0-0f14c094037e
entityRuleId: DEF.13.37
type: another_entity_type
page: 456
DossierAttributeDefinition:
type: object
description: |
@ -1755,6 +1619,18 @@ components:
filenameMappingCsvColumnHeader: "Filename"
delimiter: ","
encoding: "UTF-8"
ReportTemplateIdList:
type: array
items:
type: string
format: uuid
uniqueItems: true
description: |
List of template identifiers indicating which templates are used for generating reports or other outputs.
The reports are generated when requesting a download package.
example:
- b79cb3ba-745e-5d9a-8903-4a02327a7e09
- fb3463a0-7d6e-54a3-bcd8-1b93388c648d
DossierAttributes:
type: object
description: (DRAFT) Additional dossier attributes that can be set
@ -1764,10 +1640,11 @@ components:
type: string
type: object
example:
myDossierAttribute: This is a file attribute value
yetAnotherDossierAttribute: This is yet another file attribute value
numericValuesNeedToBeStrings: "1234"
myDossierDate: "1. January 1337"
attributeIdToValue:
"1049a73c-8013-45d6-8217-0845a4ff1c61": This is a dossier attribute value
"79d5a138-d30a-4014-ad7f-43ffba1f4d04": This is yet another dossier attribute value
"1d30d9e8-4a6c-4ef0-96a0-7bef62e138db": "1234"
"b337b65a-0481-48d9-92e6-79e34760ef01": "1. January 1337"
Dossier:
type: object
description: |
@ -1859,14 +1736,7 @@ components:
downloadFileTypes:
$ref: '#/components/schemas/DownloadFileTypes'
reportTemplateIds:
type: array
items:
type: string
format: uuid
uniqueItems: true
description: |
List of template identifiers indicating which templates are to be used for generating reports or outputs
for this dossier. The reports are generated when requesting a download package.
$ref: '#/components/schemas/ReportTemplateIdList'
archivedTime:
type: string
format: date-time
@ -2018,14 +1888,7 @@ components:
description: A unique identifier for a member with access to the dossier.
uniqueItems: true
reportTemplateIds:
type: array
description: |
An array of identifiers representing templates used for generating reports
or exports from this dossier.
items:
description: An identifier for a report template.
type: string
uniqueItems: true
$ref: "#/components/schemas/ReportTemplateIdList"
dossierStatusId:
type: string
description: |
@ -2180,6 +2043,9 @@ components:
- DELTA_PREVIEW
- REDACTED
type: string
example:
- PREVIEW
- REDACTED
DossierTemplateList:
description: Represents a list of dossier templates, each encapsulating a set of rules and settings.
example:
@ -2253,10 +2119,11 @@ components:
type: string
type: object
example:
myFileAttribute: This is a file attribute value
yetAnotherFileAttribute: This is yet another file attribute value
numericValuesNeedToBeStrings: "1234"
myFileDate: "1. January 1337"
attributeIdToValue:
"9049a73c-8013-45d6-8217-0845a4ff1c61": This is a file attribute value
"59d5a138-d30a-4014-ad7f-43ffba1f4d04": This is yet another file attribute value
"9d30d9e8-4a6c-4ef0-96a0-7bef62e138db": "1234"
"a337b65a-0481-48d9-92e6-79e34760ef01": "1. January 1337"
FileDeleteRequest:
type: object
description: Request payload to initiate the deletion of specific files.
@ -2600,7 +2467,7 @@ components:
hasSuggestions: true
FileStatusList:
type: object
description: Represents a list detailing the status of a bunch of files.
description: Represents a list detailing the status of multiple files.
properties:
files:
type: array
@ -2769,43 +2636,173 @@ components:
type: string
type: array
type: object
RuleValidationMessage:
description: Object containing information about an uploaded rules file.
example:
line: 123
column: 45
message: "Unable to Analyse Expression ..."
DownloadStatus:
type: object
description: Detailed information about a specific download.
properties:
line:
description: The line number where the error or warning occurs.
format: int32
type: integer
column:
description: The column number where the error or warning occurs.
format: int32
type: integer
message:
description: The error or warning message that describes the details.
id:
type: string
type: object
RuleValidation:
description: |
Information about the uploaded rules file. The `error` field is empty if there were no validation errors in the uploaded rules file.
example:
errors:
- line: 123
column: 45
message: "Unable to Analyse Expression ..."
- line: 234
column: 5
message: "Invalid rule syntax ..."
properties:
errors:
description: List of errors found in the uploaded rules file.
items:
$ref: '#/components/schemas/RuleValidationMessage'
format: uuid
description: The unique identifier of the download.
example: b5e2cf01-8bb6-4fcd-ad88-0efb611195da
userId:
type: string
format: uuid
description: The unique identifier of the user who initiated the download.
example: caa8b54a-eb5e-4134-8ae2-a3946a428ec7
filename:
type: string
description: The name of the download file.
example: my-redacted-dossier.zip
mimeType:
type: string
description: The mime type of the download file.
example: application/octet-stream
errorCause:
type: string
description: |
If the status is `FAILED`, this field contains information about the error that happened
while preparing the download package. This information is intended to be included in a
bug report if the error occurs repeatedly and indicates a general problem with RedactManager.
example: ""
status:
type: string
enum:
- QUEUED
- GENERATING
- COMPRESSING
- READY
- FAILED
description: |
The status of the download file. In particular:
- `QUEUED` - The download job has been created and is waiting to be processed by the system.
- `GENERATING` - The system currently creates the files for the download package.
- `COMPRESSING` - The system creates a ZIP archive that will contain all files of the download package.
- `READY` - The download package is ready for download. Please note that the download will be kept only
for a certain period. This period can be configured in the settings of your RedactManager workspace.
- `FAILED` - An error occurred while preparing the download. The `errorCause` field might contain
additional details on the error.
example: READY
creationDate:
type: string
format: date-time
description: The date and time when the user initiated the download.
example: 2023-03-29T11:41:08.886Z
lastDownload:
type: string
format: date-time
description: The date and time when the user last downloaded the file.
example: 2023-03-29T13:11:05.123Z
fileSize:
type: integer
format: int64
description: The size of the download file in bytes.
example: 1654231
dossierId:
type: string
format: uuid
description: The identifier of the dossier to which the content of the download package belongs.
example: 20354d7a-e4fe-47af-8ff6-187bca92f3f9
fileIds:
type: array
items:
type: string
description: The list of file identifiers to which the content of the download package belongs.
example:
- 51d3f70ac322c98dc4db70a2ac44115a
- 1fdbd888b39059c8cf171df26f62f8a5
downloadFileTypes:
$ref: '#/components/schemas/DownloadFileTypes'
reportTemplateIds:
$ref: '#/components/schemas/ReportTemplateIdList'
DownloadStatusList:
type: object
description: Represents a list detailing the status of multiple downloads.
properties:
downloadStatus:
type: array
items:
$ref: '#/components/schemas/DownloadStatus'
description: Each item contains the status details of a download.
DownloadRequest:
type: object
description: Request payload to initiate the preparation of the download.
properties:
downloadFileTypes:
$ref: '#/components/schemas/DownloadFileTypes'
reportTemplateIds:
$ref: '#/components/schemas/ReportTemplateIdList'
redactionPreviewColor:
type: string
example: "#9398a0"
BulkDownloadRequest:
allOf:
- $ref: '#/components/schemas/DownloadRequest'
- type: object
description: Request payload to initiate the preparation of the download of multiple files.
properties:
fileIds:
type: array
description: A list with unique identifiers of the files for which the download is to be prepared.
items:
type: string
description: The unique identifier of a file.
User:
type: object
description: Basic information about a user.
properties:
id:
type: string
format: uuid
description: The unique identifier of the user.
example: efe7eedd-89c5-56f5-984c-0712ee41a2eb
username:
type: string
description: The user name that is used for logging in.
example: myusername
email:
type: string
description: The email address of the user.
example: myusername@example.com
firstName:
type: string
description: The first name of the user.
example: John
lastName:
type: string
description: The last name of the user.
example: Doe
roles:
uniqueItems: true
type: array
description: |
The roles of the user. In particular:
- `USER` - default user permission to work with RedactManager
- `MANAGER` - additional privileges to create and manage dossiers
- `USER_ADMIN` - administration privileges limited to manage users only
- `ADMIN` - general administration privileges
items:
type: string
enum:
- USER
- MANAGER
- USER_ADMIN
- ADMIN
example:
- MANAGER
- ADMIN
active:
type: boolean
description: Indicator if the user is active or not. Only active users can log in.
UserList:
type: object
description: A list of multiple users.
properties:
downloadStatus:
type: array
items:
$ref: '#/components/schemas/User'
description: Each item contains the details of a user.
LicenseReport:
type: object
description: A comprehensive report of licensing metrics and usage statistics.
@ -2984,9 +2981,12 @@ components:
- file
securitySchemes:
FF-OAUTH:
type: oauth2
flows:
authorizationCode:
authorizationUrl: /auth/realms/redaction/protocol/openid-connect/auth
scopes: { }
tokenUrl: /auth/realms/redaction/protocol/openid-connect/token
type: oauth2
authorizationUrl: /auth/realms/{workspaceId}/protocol/openid-connect/auth
tokenUrl: /auth/realms/{workspaceId}/protocol/openid-connect/token
scopes: {}
clientCredentials:
tokenUrl: /auth/realms/{workspaceId}/protocol/openid-connect/token
scopes: {}