openapi: 3.0.0 info: description: Yoda core ruleset containing iRODS and Python rules and policies useful for all Yoda environments. contact: email: l.r.westerhof@uu.nl version: 2.1.0 title: Yoda core API servers: - url: https://portal.yoda.test/api description: Local Yoda development server security: - cookieAuth: [] - basicAuth: [] components: schemas: result_error: type: object properties: status: type: string description: Holds an error ID status_info: type: string description: Holds a human-readable error description data: description: empty nullable: true type: object securitySchemes: cookieAuth: in: cookie type: apiKey name: yoda_session basicAuth: type: http scheme: basic responses: status_400: description: Bad request content: application/json: schema: $ref: '#/components/schemas/result_error' status_500: description: Internal error content: application/json: schema: $ref: '#/components/schemas/result_error' paths: /schema_get_schemas: post: tags: - schema summary: 'Retrieve selectable schemas and default schema. ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /folder_lock: post: tags: - folder summary: 'Lock a folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Folder to lock default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /folder_unlock: post: tags: - folder summary: 'Unlock a folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Folder to unlock default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /folder_submit: post: tags: - folder summary: 'Submit a folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Folder to submit default: null nullable: false delete_research_copy: type: boolean description: Whether to delete copy in research space default: 'False' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /folder_unsubmit: post: tags: - folder summary: 'Unsubmit a folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Folder to unsubmit default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /folder_accept: post: tags: - folder summary: 'Accept a folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Folder to accept default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /folder_reject: post: tags: - folder summary: 'Reject a folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Folder to reject default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /folder_get_locks: post: tags: - folder summary: Return a list of locks on a collection. requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: (undocumented) default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_deaccession_status: post: tags: - vault_deaccession summary: 'Request deaccession status of vault data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Vault data package to request deaccession status from default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_request_deaccession: post: tags: - vault_deaccession summary: 'Request to deaccession a vault data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll - reason properties: coll: type: string description: Vault data package to deaccession default: null nullable: false reason: type: string description: Reason for reaccession of vault data package default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_cancel_deaccession: post: tags: - vault_deaccession summary: 'Cancel a request to deaccession a vault data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Vault data package to cancel deaccession from default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_approve_deaccession: post: tags: - vault_deaccession summary: 'Approve request to deaccession a vault data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Vault data package to approve deaccession on default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /notifications_load: post: tags: - notifications summary: 'Load user notifications. ' requestBody: required: true content: application/json: schema: type: object properties: sort_order: type: string description: Sort order of notifications on timestamp ("asc" or "desc", default "desc") default: '''desc''' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /notifications_dismiss: post: tags: - notifications summary: 'Dismiss user notification. :param identifier: Identifier of notification message' requestBody: required: true content: application/json: schema: type: object required: - identifier properties: identifier: type: string description: Identifier of notification message default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /notifications_dismiss_all: post: tags: - notifications summary: 'Dismiss all user notifications. ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_archive: post: tags: - vault_archive summary: 'Request to archive vault data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of vault data package to archive default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_archival_status: post: tags: - vault_archive summary: 'Request archival status of vault data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of vault data package to request archive status from default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_extract: post: tags: - vault_archive summary: 'Request to unarchive an archived vault data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of vault data package to unarchive default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /transform_metadata: post: tags: - schema_transformation summary: Transform a yoda-metadata file in the given collection to the active schema. requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: (undocumented) default: null nullable: false keep_metadata_backup: type: boolean description: (undocumented) default: 'True' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_get_user_role: post: tags: - groups summary: 'Get role of user in group. ' requestBody: required: true content: application/json: schema: type: object required: - username - group_name properties: username: type: string description: User to return type of default: null nullable: false group_name: type: string description: Group name of user default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_data: post: tags: - groups summary: 'Retrieve group data as hierarchy for user. ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_process_csv: post: tags: - groups summary: 'Process contents of CSV file containing group definitions. ' requestBody: required: true content: application/json: schema: type: object required: - csv_header_and_data - allow_update - delete_users properties: csv_header_and_data: type: string description: CSV data holding a head conform description and the actual row data default: null nullable: false allow_update: type: boolean description: Allow updates in groups default: null nullable: false delete_users: type: boolean description: Allow for deleting of users from groups default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_categories: post: tags: - groups summary: Retrieve category list. requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_subcategories: post: tags: - groups summary: 'Retrieve subcategory list. ' requestBody: required: true content: application/json: schema: type: object required: - category properties: category: type: string description: Category to retrieve subcategories of default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_search_users: post: tags: - groups summary: '' requestBody: required: true content: application/json: schema: type: object required: - pattern properties: pattern: type: string description: (undocumented) default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_exists: post: tags: - groups summary: 'Check if group exists. ' requestBody: required: true content: application/json: schema: type: object required: - group_name properties: group_name: type: string description: Name of the group to check for existence default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_create: post: tags: - groups summary: 'Create a new group. ' requestBody: required: true content: application/json: schema: type: object required: - group_name - category - subcategory - schema_id - expiration_date - description - data_classification - sram_co properties: group_name: type: string description: Name of the group to create default: null nullable: false category: type: string description: Category of the group to create default: null nullable: false subcategory: type: string description: Subcategory of the group to create default: null nullable: false schema_id: type: string description: Schema-id for the group to be created default: null nullable: false expiration_date: type: string description: Retention period for the group default: null nullable: false description: type: string description: Description of the group to create default: null nullable: false data_classification: type: string description: Data classification of the group to create default: null nullable: false sram_co: type: boolean description: If True, create a SRAM CO default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_update: post: tags: - groups summary: 'Update group property. ' requestBody: required: true content: application/json: schema: type: object required: - group_name - property_name - property_value properties: group_name: type: string description: Name of the group to update property of default: null nullable: false property_name: type: string description: Name of the property to update default: null nullable: false property_value: type: string description: Value of the property to update default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_delete: post: tags: - groups summary: 'Delete a group. ' requestBody: required: true content: application/json: schema: type: object required: - group_name properties: group_name: type: string description: Name of the group to delete default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_get_description: post: tags: - groups summary: 'Retrieve description of a group. ' requestBody: required: true content: application/json: schema: type: object required: - group_name properties: group_name: type: string description: Name of the group default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_user_is_member: post: tags: - groups summary: 'Check if user is member of a group. ' requestBody: required: true content: application/json: schema: type: object required: - username - group_name properties: username: type: string description: Name of the user default: null nullable: false group_name: type: string description: Name of the group default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_user_add: post: tags: - groups summary: 'Add a user to a group. ' requestBody: required: true content: application/json: schema: type: object required: - username - group_name properties: username: type: string description: Name of the user default: null nullable: false group_name: type: string description: Name of the group default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_user_update_role: post: tags: - groups summary: 'Update role of a user in a group. ' requestBody: required: true content: application/json: schema: type: object required: - username - group_name - new_role properties: username: type: string description: Name of the user default: null nullable: false group_name: type: string description: Name of the group default: null nullable: false new_role: type: string description: New role of the user default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /group_remove_user_from_group: post: tags: - groups summary: 'Remove a user from a group. ' requestBody: required: true content: application/json: schema: type: object required: - username - group_name properties: username: type: string description: Name of the user default: null nullable: false group_name: type: string description: Name of the group default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /provenance_log: post: tags: - provenance summary: 'Return formatted provenance log of a collection. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Path of a collection in research or vault space. default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /resource_browse_group_data: post: tags: - stats summary: 'Get paginated group data groupname / size ' requestBody: required: true content: application/json: schema: type: object properties: sort_on: type: string description: Column to sort on ('name', 'modified' or size) default: '''name''' nullable: false sort_order: type: string description: Column sort order ('asc' or 'desc') default: '''asc''' nullable: false offset: type: integer description: Offset to start browsing from default: '0' nullable: false limit: type: integer description: Limit number of results default: '10' nullable: false search_groups: type: string description: Search specific groups default: '''''' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /resource_full_year_differentiated_group_storage: post: tags: - stats summary: 'Return the full range of registered storage data differentiated into vault/research/revision/total. ' requestBody: required: true content: application/json: schema: type: object required: - group_name properties: group_name: type: string description: Group that is searched for storage data default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /resource_category_stats: post: tags: - stats summary: 'Collect storage stats of last month for categories. Storage is summed up for each category. ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /resource_monthly_category_stats: post: tags: - stats summary: 'Collect storage stats for all twelve months based upon categories a user is datamanager of. ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_folder_add: post: tags: - research summary: 'Add a new folder to a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll - new_folder_name properties: coll: type: string description: Collection to create new folder in default: null nullable: false new_folder_name: type: string description: Name of the new folder default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_folder_copy: post: tags: - research summary: 'Copy a folder in a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - folder_path - new_folder_path properties: folder_path: type: string description: Path to the folder to copy default: null nullable: false new_folder_path: type: string description: Path to the new copy of the folder default: null nullable: false overwrite: type: boolean description: Overwrite folder if it already exists default: 'False' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_folder_move: post: tags: - research summary: 'Move a folder in a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - folder_path - new_folder_path properties: folder_path: type: string description: Path to the folder to move default: null nullable: false new_folder_path: type: string description: Path to the new folder default: null nullable: false overwrite: type: boolean description: Overwrite folder if it already exists default: 'False' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_folder_rename: post: tags: - research summary: 'Rename an existing research folder. ' requestBody: required: true content: application/json: schema: type: object required: - new_folder_name - coll - org_folder_name properties: new_folder_name: type: string description: New folder name default: null nullable: false coll: type: string description: Parent collection of folder default: null nullable: false org_folder_name: type: string description: Current name of the folder default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_folder_delete: post: tags: - research summary: 'Delete a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll - folder_name properties: coll: type: string description: Parent collection of folder to delete default: null nullable: false folder_name: type: string description: Name of folder to delete default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_list_temporary_files: post: tags: - research summary: 'Get list of temporary files to be cleaned up. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Parent collection of folder to delete default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_file_copy: post: tags: - research summary: 'Copy a file in a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - filepath - new_filepath properties: filepath: type: string description: Path to the file to copy default: null nullable: false new_filepath: type: string description: Path to the new copy of the file default: null nullable: false overwrite: type: boolean description: Overwrite file if it already exists default: 'False' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_file_rename: post: tags: - research summary: 'Rename a file in a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - new_file_name - coll - org_file_name properties: new_file_name: type: string description: New file name default: null nullable: false coll: type: string description: Parent collection of file default: null nullable: false org_file_name: type: string description: Current name of the file default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_file_move: post: tags: - research summary: 'Move a file in a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - filepath - new_filepath properties: filepath: type: string description: Path to the file to move default: null nullable: false new_filepath: type: string description: Path to the new location of the file default: null nullable: false overwrite: type: boolean description: Overwrite file if it already exists default: 'False' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_file_delete: post: tags: - research summary: 'Delete a file in a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - coll - file_name properties: coll: type: string description: Parent collection of file to delete default: null nullable: false file_name: type: string description: Name of file to delete default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_system_metadata: post: tags: - research summary: 'Return collection statistics as JSON. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Research collection default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_collection_details: post: tags: - research summary: 'Return details of a research collection. ' requestBody: required: true content: application/json: schema: type: object required: - path properties: path: type: string description: Path to research collection default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /research_manifest: post: tags: - research summary: 'Produce a manifest of data objects in a collection. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Parent collection of data objects to include default: null nullable: false empty_colls: type: boolean description: Include empty collections in manifest default: 'False' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /batch_troubleshoot_published_data_packages: post: tags: - publication_troubleshoot summary: 'Wrapper for the batch script for troubleshooting published data packages. Runs a subset of the tests since "technicaladmin" is usually more restricted than "rods". ' requestBody: required: true content: application/json: schema: type: object required: - requested_package - log_file - offline properties: requested_package: type: string description: A string representing a specific data package path or all packages with failed publications. default: null nullable: false log_file: type: boolean description: A boolean representing to write results in log. default: null nullable: false offline: type: boolean description: A boolean representing whether to perform all checks without connecting to external servers. default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /browse_folder: post: tags: - browse summary: 'Get paginated collection contents, including size/modify date information. ' requestBody: required: true content: application/json: schema: type: object properties: coll: type: string description: Collection to get paginated contents of default: '''/''' nullable: false sort_on: type: string description: Column to sort on ('name', 'modified' or size) default: '''name''' nullable: false sort_order: type: string description: Column sort order ('asc' or 'desc') default: '''asc''' nullable: false offset: type: integer description: Offset to start browsing from default: '0' nullable: false limit: type: integer description: Limit number of results default: '10' nullable: false space: type: string description: Space the collection is in default: pathutil.Space.OTHER.value nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /browse_collections: post: tags: - browse summary: 'Get paginated collection contents, including size/modify date information. ' requestBody: required: true content: application/json: schema: type: object properties: coll: type: string description: Collection to get paginated contents of default: '''/''' nullable: false sort_on: type: string description: Column to sort on ('name', 'modified' or size) default: '''name''' nullable: false sort_order: type: string description: Column sort order ('asc' or 'desc') default: '''asc''' nullable: false offset: type: integer description: Offset to start browsing from default: '0' nullable: false limit: type: integer description: Limit number of results default: '10' nullable: false space: type: string description: Space the collection is in default: pathutil.Space.OTHER.value nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /search: post: tags: - browse summary: 'Get paginated search results, including size/modify date/location information. ' requestBody: required: true content: application/json: schema: type: object required: - search_string properties: search_string: type: string description: String used to search default: null nullable: false search_type: type: string description: Search type ('filename', 'folder', 'metadata', 'status') default: '''filename''' nullable: false sort_on: type: string description: Column to sort on ('name', 'modified' or size) default: '''name''' nullable: false sort_order: type: string description: Column sort order ('asc' or 'desc') default: '''asc''' nullable: false offset: type: integer description: Offset to start browsing from default: '0' nullable: false limit: type: integer description: Limit number of results default: '10' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /load_text_obj: post: tags: - browse summary: 'Retrieve a text file (as a string) in either the research, deposit, or vault space. ' requestBody: required: true content: application/json: schema: type: object properties: file_path: type: string description: Full file path of file to load default: '''/''' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /token_generate: post: tags: - data_access_token summary: 'Generates a token for user authentication. ' requestBody: required: true content: application/json: schema: type: object properties: label: type: string description: Optional label of the token default: '''''' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /token_load: post: tags: - data_access_token summary: 'Loads valid tokens of user. ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /token_delete: post: tags: - data_access_token summary: 'Deletes a token of the user. ' requestBody: required: true content: application/json: schema: type: object required: - label properties: label: type: string description: Label of the token default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /token_delete_expired: post: tags: - data_access_token summary: 'Deletes expired tokens of current user ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_submit: post: tags: - vault summary: 'Submit data package for publication. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of data package to submit default: null nullable: false previous_version: type: string description: Path to previous version of data package in the vault default: None nullable: true responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_approve: post: tags: - vault summary: 'Approve data package for publication. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of data package to approve default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_cancel: post: tags: - vault summary: 'Cancel submit of data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of data package to cancel submit default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_depublish: post: tags: - vault summary: 'Depublish data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of data package to depublish default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_republish: post: tags: - vault summary: 'Republish data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of data package to republish default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_copy_to_research: post: tags: - vault summary: 'Copy data package from vault to research space. ' requestBody: required: true content: application/json: schema: type: object required: - coll_origin - coll_target properties: coll_origin: type: string description: Collection of data package to copy default: null nullable: false coll_target: type: string description: Collection to copy data package to default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_preservable_formats_lists: post: tags: - vault summary: 'Retrieve lists of preservable file formats on the system. ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_unpreservable_files: post: tags: - vault summary: 'Retrieve list of unpreservable file formats in a collection. ' requestBody: required: true content: application/json: schema: type: object required: - coll - list_name properties: coll: type: string description: Collection of folder to check default: null nullable: false list_name: type: string description: Name of preservable file format list default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_system_metadata: post: tags: - vault summary: 'Return system metadata of a vault collection. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Path to data package default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_collection_details: post: tags: - vault summary: 'Return details of a vault collection. ' requestBody: required: true content: application/json: schema: type: object required: - path properties: path: type: string description: Path to data package default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_get_package_by_reference: post: tags: - vault summary: 'Return path to data package with provided reference (UUID4). ' requestBody: required: true content: application/json: schema: type: object required: - reference properties: reference: type: string description: Data Package Reference (UUID4) default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_get_landingpage_data: post: tags: - vault summary: 'Retrieve landingpage data of data package. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection to retrieve landingpage data from default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_get_publication_terms: post: tags: - vault summary: Retrieve the publication terms. requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /grant_read_access_research_group: post: tags: - vault summary: 'Grant read rights of research group for datapackage in vault. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of data package to remove read rights from default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /revoke_read_access_research_group: post: tags: - vault summary: 'Revoke read rights of research group for datapackage in vault. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection of data package to remove read rights from default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /vault_get_published_packages: post: tags: - vault summary: 'Get the path and DOI of latest versions of published data package in a vault. ' requestBody: required: true content: application/json: schema: type: object required: - path properties: path: type: string description: Path of vault with data packages default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /admin_has_access: post: tags: - admin summary: 'Checks if the user is admin (i.e., has admin access based on user rights or membership in admin-priv group). ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /revisions_search_on_filename: post: tags: - revisions summary: 'Search revisions of a file in a research folder and return list of corresponding revisions. ' requestBody: required: true content: application/json: schema: type: object required: - searchString properties: searchString: type: string description: String to search for as part of a file name default: null nullable: false offset: type: integer description: Starting point in total resultset to start fetching default: '0' nullable: false limit: type: integer description: Max size of the resultset to be returned default: '10' nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /revisions_list: post: tags: - revisions summary: 'Get list revisions of a file in a research folder. ' requestBody: required: true content: application/json: schema: type: object required: - path properties: path: type: string description: Path to data object to find revisions for default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /revisions_restore: post: tags: - revisions summary: 'Copy selected revision to target collection with given name. ' requestBody: required: true content: application/json: schema: type: object required: - revision_id - overwrite - coll_target - new_filename properties: revision_id: type: string description: Data id of the revision to be restored default: null nullable: false overwrite: type: string description: Overwrite indication from front end {restore_no_overwrite, restore_overwrite, restore_next_to} default: null nullable: false coll_target: type: string description: Target collection to place the file default: null nullable: false new_filename: type: string description: New file name as entered by user (in case of duplicate) default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /meta_form_load: post: tags: - meta_form summary: 'Retrieve all information required to load a metadata form in either the research or vault space. ' requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: Collection to retrieve all information required to load a metadata form from default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /meta_form_save: post: tags: - meta_form summary: 'Validate and store JSON metadata for a given collection. ' requestBody: required: true content: application/json: schema: type: object required: - coll - metadata properties: coll: type: string description: Collection to save metadata on default: null nullable: false metadata: type: object description: Metadata to save default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /meta_remove: post: tags: - meta summary: Remove a collection's metadata JSON, if it exists. requestBody: required: true content: application/json: schema: type: object required: - coll properties: coll: type: string description: (undocumented) default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /meta_clone_file: post: tags: - meta summary: 'Clone a metadata file from a parent collection to a subcollection. ' requestBody: required: true content: application/json: schema: type: object required: - target_coll properties: target_coll: type: string description: Target collection (where the metadata is copied to) default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /settings_load: post: tags: - settings summary: 'Load user settings. ' requestBody: required: true content: application/json: schema: type: object properties: {} responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500' /settings_save: post: tags: - settings summary: 'Save user settings. ' requestBody: required: true content: application/json: schema: type: object required: - settings properties: settings: type: object description: Dict with settings to be saved default: null nullable: false responses: '200': description: Success content: application/json: schema: type: object properties: status: type: string status_info: type: string nullable: true data: nullable: true '400': $ref: '#/components/responses/status_400' '500': $ref: '#/components/responses/status_500'