Emory University resource API

resource resource

OpenAPI Specification

emory-resource-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Girder REST API (Emory Digital Slide Archive) annotation resource 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: resource resource
  name: resource
paths:
  /resource:
    delete:
      operationId: resource_delete_delete_resource
      parameters:
      - name: resources
        in: query
        required: true
        description: 'A JSON-encoded set of resources to delete. Each type is a list of ids.  For example: {"item": [(item id 1), (item id2)], "folder": [(folder id 1)]}.'
        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: 'Unsupported or unknown resource type.


            Invalid resources format.


            No resources specified.


            Resource not found.'
        '403':
          description: Admin access was denied for a resource.
      summary: Delete a set of items, folders, or other resources.
      tags:
      - resource
  /resource/copy:
    post:
      operationId: resource_copyResources_post_copy
      parameters:
      - name: resources
        in: query
        required: true
        description: 'A JSON-encoded set of resources to copy. Each type is a list of ids.  Only folders and items may be specified.  For example: {"item": [(item id 1), (item id2)], "folder": [(folder id 1)]}.'
        schema:
          type: string
      - name: parentType
        in: query
        required: true
        description: Parent type for the new parent of these resources.
        schema:
          type: string
      - name: parentId
        in: query
        required: true
        description: Parent ID for the new parent of these resources.
        schema:
          type: string
      - 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 resources (default true)
        schema:
          type: boolean
      responses:
        '200':
          description: Success
        '400':
          description: 'Unsupported or unknown resource type.


            Invalid resources format.


            Resource type not supported.


            No resources specified.


            Resource not found.


            ID was invalid.'
      summary: Copy a set of items and folders.
      tags:
      - resource
  /resource/download:
    get:
      description: This route is also exposed via the POST method because the request parameters can be quite long, and encoding them in the URL (as is standard when using the GET method) can cause the URL to become too long, which causes errors.
      operationId: resource_download_download
      parameters:
      - name: resources
        in: query
        required: true
        description: 'A JSON-encoded set of resources to download. Each type is a list of ids. For example: {"item": [(item id 1), (item id 2)], "folder": [(folder id 1)]}.'
        schema:
          type: string
      - name: includeMetadata
        in: query
        required: false
        description: Include any metadata in JSON files in the archive.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Success
        '400':
          description: 'Unsupported or unknown resource type.


            Invalid resources format.


            No resources specified.


            Resource not found.'
        '403':
          description: Read access was denied for a resource.
      summary: Download a set of items, folders, collections, and users as a zip archive.
      tags:
      - resource
    post:
      description: This route is also exposed via the POST method because the request parameters can be quite long, and encoding them in the URL (as is standard when using the GET method) can cause the URL to become too long, which causes errors.
      operationId: resource_download_post_download
      parameters:
      - name: resources
        in: query
        required: true
        description: 'A JSON-encoded set of resources to download. Each type is a list of ids. For example: {"item": [(item id 1), (item id 2)], "folder": [(folder id 1)]}.'
        schema:
          type: string
      - name: includeMetadata
        in: query
        required: false
        description: Include any metadata in JSON files in the archive.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Success
        '400':
          description: 'Unsupported or unknown resource type.


            Invalid resources format.


            No resources specified.


            Resource not found.'
        '403':
          description: Read access was denied for a resource.
      summary: Download a set of items, folders, collections, and users as a zip archive.
      tags:
      - resource
  /resource/lookup:
    get:
      operationId: resource_lookup_lookup
      parameters:
      - name: path
        in: query
        required: true
        description: The path of the resource.  The path must be an absolute Unix path starting with either "/user/[user name]", for a user's resources or "/collection/[collection name]", for resources under a collection.
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'Path is invalid.


            Path refers to a resource that does not exist.'
        '403':
          description: Read access was denied for the resource.
      summary: Look up a resource in the data hierarchy by path.
      tags:
      - resource
  /resource/metadata:
    put:
      operationId: resource_putResourceMetadata_put_metadata
      parameters:
      - name: resources
        in: query
        required: true
        description: 'A JSON-encoded set of resources to modify.  Each type is a list of ids. For example: {"item": [(item id 1), (item id 2)], "folder": [(folder id 1)]}.'
        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
        '400':
          description: 'Unsupported or unknown resource type.


            Invalid resources format.


            No resources specified.


            Resource not found.'
        '403':
          description: Write access was denied for a resource.
      summary: Set metadata on multiple resources at once.
      tags:
      - resource
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/string'
        required: true
        description: A JSON object containing the metadata keys to add
  /resource/move:
    put:
      operationId: resource_moveResources_put_move
      parameters:
      - name: resources
        in: query
        required: true
        description: 'A JSON-encoded set of resources to move. Each type is a list of ids.  Only folders and items may be specified.  For example: {"item": [(item id 1), (item id2)], "folder": [(folder id 1)]}.'
        schema:
          type: string
      - name: parentType
        in: query
        required: true
        description: Parent type for the new parent of these resources.
        schema:
          type: string
          enum:
          - user
          - collection
          - folder
      - name: parentId
        in: query
        required: true
        description: Parent ID for the new parent of these resources.
        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: 'Unsupported or unknown resource type.


            Invalid resources format.


            Resource type not supported.


            No resources specified.


            Resource not found.


            ID was invalid.'
      summary: Move a set of items and folders.
      tags:
      - resource
  /resource/path/download/{path}:
    get:
      operationId: resource_pathDownload_path_download_path
      parameters:
      - name: path
        in: path
        required: true
        description: The path of the resource.  The path must be an absolute Unix path starting with either "/user/[user name]", for a user's resources or "/collection/[collection name]", for resources under a collection.
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'Path is invalid.


            Path refers to a resource that does not exist.'
        '403':
          description: Read access was denied for the resource.
      summary: Download a resource based on its path
      tags:
      - resource
  /resource/path/redirect/{path}:
    delete:
      description: This is significantly less efficient that using /(model)/(id)/..., as the route must validated and tested to that the longest sensible path is used.
      operationId: resource_pathRedirect_delete_path_redirect_path
      parameters:
      - name: path
        in: path
        required: true
        description: The path of the resource.  The path must be an absolute Unix path starting with either "/user/[user name]", for a user's resources or "/collection/[collection name]", for resources under a collection.
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'Path is invalid.


            Path refers to a resource that does not exist.'
        '403':
          description: Read access was denied for the resource.
      summary: Redirect to a model endpoint based on a resource path
      tags:
      - resource
    get:
      description: This is significantly less efficient that using /(model)/(id)/..., as the route must validated and tested to that the longest sensible path is used.
      operationId: resource_pathRedirect_path_redirect_path
      parameters:
      - name: path
        in: path
        required: true
        description: The path of the resource.  The path must be an absolute Unix path starting with either "/user/[user name]", for a user's resources or "/collection/[collection name]", for resources under a collection.
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'Path is invalid.


            Path refers to a resource that does not exist.'
        '403':
          description: Read access was denied for the resource.
      summary: Redirect to a model endpoint based on a resource path
      tags:
      - resource
    post:
      description: This is significantly less efficient that using /(model)/(id)/..., as the route must validated and tested to that the longest sensible path is used.
      operationId: resource_pathRedirect_post_path_redirect_path
      parameters:
      - name: path
        in: path
        required: true
        description: The path of the resource.  The path must be an absolute Unix path starting with either "/user/[user name]", for a user's resources or "/collection/[collection name]", for resources under a collection.
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'Path is invalid.


            Path refers to a resource that does not exist.'
        '403':
          description: Read access was denied for the resource.
      summary: Redirect to a model endpoint based on a resource path
      tags:
      - resource
    put:
      description: This is significantly less efficient that using /(model)/(id)/..., as the route must validated and tested to that the longest sensible path is used.
      operationId: resource_pathRedirect_put_path_redirect_path
      parameters:
      - name: path
        in: path
        required: true
        description: The path of the resource.  The path must be an absolute Unix path starting with either "/user/[user name]", for a user's resources or "/collection/[collection name]", for resources under a collection.
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'Path is invalid.


            Path refers to a resource that does not exist.'
        '403':
          description: Read access was denied for the resource.
      summary: Redirect to a model endpoint based on a resource path
      tags:
      - resource
  /resource/paths:
    post:
      operationId: resource_getMultipleResourcePaths_post_paths
      parameters: []
      responses:
        '200':
          description: Success
        '400':
          description: A parameter was invalid.
      summary: Get resource paths for multiple resources at once.
      tags:
      - resource
      requestBody:
        content:
          application/json:
            schema:
              $ref: '#/components/schemas/string'
        required: true
        description: 'A JSON-encoded set of resources to get resource paths.Each type is a list of ids. For example: {"item": [(item id 1), (item id 2)], "folder": [(folder id 1)]}.'
  /resource/search:
    get:
      operationId: resource_search_search
      parameters:
      - name: q
        in: query
        required: true
        description: The search query.
        schema:
          type: string
      - name: mode
        in: query
        required: false
        description: The search mode. Can always use either a text search or a prefix-based search.
        schema:
          type: string
          default: text
      - name: types
        in: query
        required: true
        description: A JSON list of resource types to search for, e.g. ["user", "folder", "item"].
        schema:
          type: string
      - name: level
        in: query
        required: false
        description: Minimum required access level.
        schema:
          type: integer
          format: int32
          default: 0
      - name: limit
        in: query
        required: false
        description: Result set size limit.
        schema:
          type: integer
          format: int32
          default: 10
      - name: offset
        in: query
        required: false
        description: Offset into result set.
        schema:
          type: integer
          format: int32
          default: 0
      responses:
        '200':
          description: Success
        '400':
          description: Invalid type list format.
      summary: Search for resources in the system.
      tags:
      - resource
  /resource/{id}:
    get:
      operationId: resource_getResource_id
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the resource.
        schema:
          type: string
      - name: type
        in: query
        required: true
        description: The type of the resource (item, file, etc.).
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: ID was invalid.
        '403':
          description: Read access was denied for the resource.
      summary: Get any resource by ID.
      tags:
      - resource
  /resource/{id}/items:
    get:
      operationId: resource_getResourceItems_id_items
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the resource.
        schema:
          type: string
      - name: type
        in: query
        required: true
        description: The type of the resource (folder, collection, or user).
        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
        '400':
          description: ID was invalid.
        '403':
          description: Access was denied for the resource.
      summary: Get all of the items that are children of a resource.
      tags:
      - resource
  /resource/{id}/path:
    get:
      operationId: resource_path_id_path
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the resource.
        schema:
          type: string
      - name: type
        in: query
        required: true
        description: The type of the resource (item, file, etc.).
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: 'ID was invalid.


            Invalid resource type.'
        '403':
          description: Read access was denied for the resource.
      summary: Get path of a resource.
      tags:
      - resource
  /resource/{id}/timestamp:
    put:
      operationId: resource_setTimestamp_put_id_timestamp
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the resource.
        schema:
          type: string
      - name: type
        in: query
        required: true
        description: The type of the resource (item, file, etc.).
        schema:
          type: string
      - name: created
        in: query
        required: false
        description: The new created timestamp.
        schema:
          type: string
      - name: updated
        in: query
        required: false
        description: The new updated timestamp.
        schema:
          type: string
      responses:
        '200':
          description: Success
        '400':
          description: ID was invalid.
        '403':
          description: Access was denied for the resource.
      summary: Set the created or updated timestamp for a resource.
      tags:
      - resource
components:
  schemas:
    string:
      type: string
  securitySchemes:
    Girder-Token:
      in: header
      name: Girder-Token
      type: apiKey