openapi: 3.0.3 info: title: Girder REST API (Emory Digital Slide Archive) annotation folder API version: 3.2.14 description: OpenAPI 3.0 conversion of the Girder REST API powering the Emory Digital Slide Archive (computablebrain). Converted faithfully from the live Swagger 2.0 document at https://computablebrain.emory.edu/api/v1/describe. license: name: Apache-2.0 url: https://www.apache.org/licenses/LICENSE-2.0.txt servers: - url: https://computablebrain.emory.edu/api/v1 tags: - description: folder resource name: folder paths: /folder: get: description: 'You must pass either a "folderId" or "text" field to specify how you are searching for folders. If you omit one of these parameters the request will fail and respond : "Invalid search mode."' operationId: folder_find_folder parameters: - name: parentType in: query required: false description: Type of the folder's parent schema: type: string enum: - folder - user - collection - name: parentId in: query required: false description: The ID of the folder's parent. schema: type: string - name: text in: query required: false description: Pass to perform a text search. schema: type: string - name: name in: query required: false description: Pass to lookup a folder by exact name match. Must pass parentType and parentId as well when using this. schema: type: string - name: limit in: query required: false description: Result set size limit. schema: type: integer format: int32 default: 50 - name: offset in: query required: false description: Offset into result set. schema: type: integer format: int32 default: 0 - name: sort in: query required: false description: Field to sort the result set by. schema: type: string default: lowerName - name: sortdir in: query required: false description: 'Sort order: 1 for ascending, -1 for descending.' schema: type: integer format: int32 enum: - 1 - -1 default: 1 responses: '200': description: Success content: application/json: schema: items: $ref: '#/components/schemas/Folder' type: array '400': description: A parameter was invalid. '403': description: Read access was denied on the parent resource. summary: Search for folders by certain properties. tags: - folder post: operationId: folder_createFolder_post_folder parameters: - name: parentType in: query required: false description: Type of the folder's parent schema: type: string enum: - folder - user - collection default: folder - name: parentId in: query required: true description: The ID of the folder's parent. schema: type: string - name: name in: query required: true description: Name of the folder. schema: type: string - name: description in: query required: false description: Description for the folder. schema: type: string default: '' - name: reuseExisting in: query required: false description: Return existing folder if it exists rather than creating a new one. schema: type: boolean default: false - name: public in: query required: false description: Whether the folder should be publicly visible. By default, inherits the value from parent folder, or in the case of user or collection parentType, defaults to False. schema: type: boolean - name: isVirtual in: query required: false description: Whether this is a virtual folder. schema: type: boolean - name: virtualItemsQuery in: query required: false description: Query to use to do virtual item lookup, as JSON. schema: type: string - name: virtualItemsSort in: query required: false description: Sort to use during virtual item lookup, as JSON. schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Folder' '400': description: A parameter was invalid. '403': description: Write access was denied on the parent summary: Create a new folder. tags: - folder requestBody: content: multipart/form-data: schema: type: object properties: metadata: type: string description: A JSON object containing the metadata keys to add /folder/query: get: operationId: folder_getFoldersByQuery_query parameters: - name: query in: query required: true description: Find folders that match this Mongo query. schema: type: string - name: limit in: query required: false description: Result set size limit. schema: type: integer format: int32 default: 50 - name: offset in: query required: false description: Offset into result set. schema: type: integer format: int32 default: 0 - name: sort in: query required: false description: Field to sort the result set by. schema: type: string default: _id - name: sortdir in: query required: false description: 'Sort order: 1 for ascending, -1 for descending.' schema: type: integer format: int32 enum: - 1 - -1 default: 1 responses: '200': description: Success content: application/json: schema: items: $ref: '#/components/schemas/Folder' type: array '400': description: A parameter was invalid. summary: List folders that match a query. tags: - folder /folder/{id}: delete: operationId: folder_deleteFolder_delete_id parameters: - name: id in: path required: true description: The ID of the document. schema: type: string - name: progress in: query required: false description: Whether to record progress on this task. schema: type: boolean default: false responses: '200': description: Success '400': description: ID was invalid. '403': description: Admin access was denied for the folder. summary: Delete a folder by ID. tags: - folder get: operationId: folder_getFolder_id parameters: - name: id in: path required: true description: The ID of the document. schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Folder' '400': description: ID was invalid. '403': description: Read access was denied for the folder. summary: Get a folder by ID. tags: - folder put: operationId: folder_updateFolder_put_id parameters: - name: id in: path required: true description: The ID of the document. schema: type: string - name: name in: query required: false description: Name of the folder. schema: type: string - name: description in: query required: false description: Description for the folder. schema: type: string - name: parentType in: query required: false description: Type of the folder's parent schema: type: string enum: - folder - user - collection - name: parentId in: query required: false description: Parent ID for the new parent of this folder. schema: type: string - name: isVirtual in: query required: false description: Whether this is a virtual folder. schema: type: boolean - name: virtualItemsQuery in: query required: false description: Query to use to do virtual item lookup, as JSON. schema: type: string - name: virtualItemsSort in: query required: false description: Sort to use during virtual item lookup, as JSON. schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Folder' '400': description: ID was invalid. '403': description: Write access was denied for the folder or its new parent object. summary: Update a folder or move it into a new parent. tags: - folder requestBody: content: multipart/form-data: schema: type: object properties: metadata: type: string description: A JSON object containing the metadata keys to add /folder/{id}/access: get: operationId: folder_getFolderAccess_id_access parameters: - name: id in: path required: true description: The ID of the document. schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Folder' '400': description: ID was invalid. '403': description: Admin access was denied for the folder. summary: Get the access control list for a folder. tags: - folder put: operationId: folder_updateFolderAccess_put_id_access parameters: - name: id in: path required: true description: The ID of the document. schema: type: string - name: access in: query required: true description: The JSON-encoded access control list. schema: type: string - name: publicFlags in: query required: false description: JSON list of public access flags. schema: type: string - name: public in: query required: false description: Whether the folder should be publicly visible. schema: type: boolean - name: recurse in: query required: false description: Whether the policies should be applied to all subfolders under this folder as well. schema: type: boolean default: false - name: progress in: query required: false description: If recurse is set to True, this controls whether progress notifications will be sent. schema: type: boolean default: false responses: '200': description: Success '400': description: ID was invalid. '403': description: Admin access was denied for the folder. summary: Update the access control list for a folder. tags: - folder /folder/{id}/contents: delete: description: Cleans out all the items and subfolders from under a folder, but does not remove the folder itself. operationId: folder_deleteContents_delete_id_contents parameters: - name: id in: path required: true description: The ID of the folder to clean. schema: type: string - name: progress in: query required: false description: Whether to record progress on this task. schema: type: boolean default: false responses: '200': description: Success '400': description: ID was invalid. '403': description: Write access was denied on the folder. summary: Remove all contents from a folder. tags: - folder /folder/{id}/copy: post: operationId: folder_copyFolder_post_id_copy parameters: - name: id in: path required: true description: The ID of the original folder. schema: type: string - name: parentType in: query required: false description: Type of the new folder's parent schema: type: string enum: - folder - user - collection - name: parentId in: query required: false description: The ID of the parent document. schema: type: string - name: name in: query required: false description: Name for the new folder. schema: type: string - name: description in: query required: false description: Description for the new folder. schema: type: string - name: public in: query required: false description: Whether the folder should be publicly visible. By default, inherits the value from parent folder, or in the case of user or collection parentType, defaults to False. If 'original', use the value of the original folder. schema: type: string enum: - 'true' - 'false' - original - name: progress in: query required: false description: Whether to record progress on this task. schema: type: boolean default: false - name: copyAnnotations in: query required: false description: Copy annotations when copying folder (default true) schema: type: boolean responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Folder' '400': description: 'A parameter was invalid. ID was invalid.' '403': description: 'Read access was denied on the original folder. Write access was denied on the parent.' summary: Copy a folder. tags: - folder /folder/{id}/details: get: operationId: folder_getFolderDetails_id_details parameters: - name: id in: path required: true description: The ID of the document. schema: type: string responses: '200': description: Success '400': description: A parameter was invalid. '403': description: Read access was denied on the folder. summary: Get detailed information about a folder. tags: - folder /folder/{id}/download: get: operationId: folder_downloadFolder_id_download parameters: - name: id in: path required: true description: The ID of the document. schema: type: string - name: mimeFilter in: query required: false description: JSON list of MIME types to include. schema: type: string responses: '200': description: Success '400': description: ID was invalid. '403': description: Read access was denied for the folder. summary: Download an entire folder as a zip archive. tags: - folder /folder/{id}/metadata: delete: operationId: folder_deleteMetadata_delete_id_metadata parameters: - name: id in: path required: true description: The ID of the document. schema: type: string responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Folder' '400': description: 'ID was invalid. Invalid JSON passed in request body. Metadata key name was invalid.' '403': description: Write access was denied for the folder. summary: Delete metadata fields on a folder. tags: - folder requestBody: content: application/json: schema: $ref: '#/components/schemas/string' required: true description: A JSON list containing the metadata fields to delete put: description: Set metadata fields to null in order to delete them. operationId: folder_setMetadata_put_id_metadata parameters: - name: id in: path required: true description: The ID of the document. schema: type: string - name: allowNull in: query required: false description: Whether "null" is allowed as a metadata value. schema: type: boolean default: false responses: '200': description: Success content: application/json: schema: $ref: '#/components/schemas/Folder' '400': description: 'ID was invalid. Invalid JSON passed in request body. Metadata key name was invalid.' '403': description: Write access was denied for the folder. summary: Set metadata fields on an folder. tags: - folder requestBody: content: application/json: schema: $ref: '#/components/schemas/string' required: true description: A JSON object containing the metadata keys to add /folder/{id}/move: put: operationId: folder_moveFolder_put_id_move parameters: - name: id in: path required: true description: Source folder ID schema: type: string - name: ignoreImported in: query required: true description: Ignore files that have been directly imported schema: type: boolean default: true - name: progress in: query required: false description: Whether to record progress on the move. schema: type: boolean default: false responses: '200': description: Success '400': description: A parameter was invalid. summary: Move folder contents to an assetstore. tags: - folder requestBody: content: multipart/form-data: schema: type: object properties: assetstoreId: type: string description: Destination assetstore ID required: - assetstoreId /folder/{id}/position: get: description: 'You must pass either a "folderId" or "text" field to specify how you are searching for folders. If you omit one of these parameters the request will fail and respond : "Invalid search mode."' operationId: folder_findPosition_id_position parameters: - name: id in: path required: true description: The ID of the document. schema: type: string - name: parentType in: query required: false description: Type of the folder's parent schema: type: string enum: - folder - user - collection - name: parentId in: query required: false description: The ID of the folder's parent. schema: type: string - name: text in: query required: false description: Pass to perform a text search. schema: type: string - name: name in: query required: false description: Pass to lookup a folder by exact name match. Must pass parentType and parentId as well when using this. schema: type: string - name: sort in: query required: false description: Field to sort the result set by. schema: type: string default: lowerName - name: sortdir in: query required: false description: 'Sort order: 1 for ascending, -1 for descending.' schema: type: integer format: int32 enum: - 1 - -1 default: 1 responses: '200': description: Success '400': description: A parameter was invalid. '403': description: Read access was denied on the parent resource. summary: Report the offset of a folder in a list or search. tags: - folder /folder/{id}/rootpath: get: operationId: folder_rootpath_id_rootpath parameters: - name: id in: path required: true description: The ID of the document. schema: type: string responses: '200': description: Success '400': description: ID was invalid. '403': description: Read access was denied for the folder. summary: Get the path to the root of the folder's hierarchy. tags: - folder /folder/{id}/yaml_config/{name}: get: description: 'This walks up the chain of parent folders until the file is found. If not found, the .config folder in the parent collection or user is checked. Any yaml file can be returned. If the top-level is a dictionary and contains keys "access" or "groups" where those are dictionaries, the returned value will be modified based on the current user. The "groups" dictionary contains keys that are group names and values that update the main dictionary. All groups that the user is a member of are merged in alphabetical order. If a key and value of "\__all\__": True exists, the replacement is total; otherwise it is a merge. If the "access" dictionary exists, the "user" and "admin" subdictionaries are merged if a calling user is present and if the user is an admin, respectively (both get merged for admins).' operationId: folder_getYAMLConfigFile_id_yaml_config_name parameters: - name: id in: path required: true description: The ID of the document. schema: type: string - name: name in: path required: true description: The name of the file. schema: type: string responses: '200': description: Success '400': description: A parameter was invalid. summary: Get a config file. tags: - folder put: description: This replaces or creates an item in the specified folder with the specified name containing a single file also of the specified name. The file is added to the default assetstore, and any existing file may be permanently deleted. operationId: folder_putYAMLConfigFile_put_id_yaml_config_name parameters: - name: id in: path required: true description: The ID of the document. schema: type: string - name: name in: path required: true description: The name of the file. schema: type: string - name: user_context in: query required: true description: Whether these settings should only apply to the current user. schema: type: boolean default: false responses: '200': description: Success '400': description: A parameter was invalid. summary: Get a config file. tags: - folder requestBody: content: application/json: schema: $ref: '#/components/schemas/string' required: true description: The contents of yaml config file to validate. components: schemas: Folder: type: object string: type: string securitySchemes: Girder-Token: in: header name: Girder-Token type: apiKey