Emory University group API

group resource

OpenAPI Specification

emory-group-api-openapi.yml Raw ↑
openapi: 3.0.3
info:
  title: Girder REST API (Emory Digital Slide Archive) annotation group 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: group resource
  name: group
paths:
  /group:
    get:
      operationId: group_find_group
      parameters:
      - name: text
        in: query
        required: false
        description: Pass this to perform a full-text search for groups.
        schema:
          type: string
      - name: exact
        in: query
        required: false
        description: If true, only return exact name matches. This is case sensitive.
        schema:
          type: boolean
          default: false
      - 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: name
      - 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.
      summary: Search for groups or list all groups.
      tags:
      - group
    post:
      description: Must be logged in.
      operationId: group_createGroup_post_group
      parameters:
      - name: name
        in: query
        required: true
        description: Unique name for the group.
        schema:
          type: string
      - name: description
        in: query
        required: false
        description: Description of the group.
        schema:
          type: string
          default: ''
      - name: public
        in: query
        required: false
        description: Whether the group should be publicly visible.
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '400':
          description: A parameter was invalid.
        '403':
          description: Write access was denied on the parent
      summary: Create a new group.
      tags:
      - group
  /group/{id}:
    delete:
      operationId: group_deleteGroup_delete_id
      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: Admin access was denied for the group.
      summary: Delete a group by ID.
      tags:
      - group
    get:
      operationId: group_getGroup_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/Group'
        '400':
          description: ID was invalid.
        '403':
          description: Read access was denied for the group.
      summary: Get a group by ID.
      tags:
      - group
    put:
      operationId: group_updateGroup_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: The name to set on the group.
        schema:
          type: string
      - name: description
        in: query
        required: false
        description: Description for the group.
        schema:
          type: string
      - name: public
        in: query
        required: false
        description: Whether the group should be publicly visible
        schema:
          type: boolean
      - name: addAllowed
        in: query
        required: false
        description: Can admins or moderators directly add members to this group?  Only system administrators are allowed to set this field
        schema:
          type: string
          enum:
          - default
          - 'no'
          - yesmod
          - yesadmin
      responses:
        '200':
          description: Success
        '400':
          description: A parameter was invalid.
        '403':
          description: Write access was denied for the group.
      summary: Update a group by ID.
      tags:
      - group
  /group/{id}/access:
    get:
      operationId: group_getGroupAccess_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/Group'
        '400':
          description: ID was invalid.
        '403':
          description: Read access was denied for the group.
      summary: Get the access control list for a group.
      tags:
      - group
  /group/{id}/admin:
    delete:
      operationId: group_demote_delete_id_admin
      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/Group'
        '400':
          description: A parameter was invalid.
        '403':
          description: You don't have permission to demote users.
      summary: Demote a user to a normal group member.
      tags:
      - group
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                userId:
                  type: string
                  description: The ID of the user to demote.
              required:
              - userId
    post:
      operationId: group_promoteToAdmin_post_id_admin
      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/Group'
        '400':
          description: ID was invalid.
        '403':
          description: You don't have permission to promote users.
      summary: Promote a member to be an administrator of the group.
      tags:
      - group
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                userId:
                  type: string
                  description: The ID of the user to promote.
              required:
              - userId
  /group/{id}/invitation:
    get:
      operationId: group_getGroupInvitations_id_invitation
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the document.
        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: lastName
      - 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:
                $ref: '#/components/schemas/Group'
        '400':
          description: A parameter was invalid.
        '403':
          description: Read access was denied for the group.
      summary: Show outstanding invitations for a group.
      tags:
      - group
    post:
      description: The "force" option to this endpoint is only available to administrators and can be used to bypass the invitation process and instead add the user directly to the group.
      operationId: group_inviteToGroup_post_id_invitation
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the document.
        schema:
          type: string
      - name: level
        in: query
        required: false
        description: The access level the user will be given when they accept the invitation.
        schema:
          type: integer
          format: int32
          default: 0
      - name: quiet
        in: query
        required: false
        description: If you do not want this action to send an email to the target user, set this to true.
        schema:
          type: boolean
          default: false
      - name: force
        in: query
        required: false
        description: Add user directly rather than sending an invitation (admin-only option).
        schema:
          type: boolean
          default: false
      responses:
        '200':
          description: Success
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Group'
        '400':
          description: A parameter was invalid.
        '403':
          description: Write access was denied for the group.
      summary: Invite a user to join a group, or accept a user's request to join.
      tags:
      - group
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                userId:
                  type: string
                  description: The ID of the user to invite or accept.
              required:
              - userId
  /group/{id}/member:
    delete:
      description: If the specified user is not yet a member of the group, this will delete any outstanding invitation or membership request for the user. Passing no userId parameter will assume that the current user is removing themself.
      operationId: group_removeFromGroup_delete_id_member
      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/Group'
        '400':
          description: A parameter was invalid.
        '403':
          description: You don't have permission to remove that user.
      summary: Remove a user from a group, or uninvite them.
      tags:
      - group
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                userId:
                  type: string
                  description: The ID of the user to remove. If not passed, will remove yourself from the group.
    get:
      operationId: group_listMembers_id_member
      parameters:
      - name: id
        in: path
        required: true
        description: The ID of the document.
        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: lastName
      - 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: Read access was denied for the group.
      summary: List members of a group.
      tags:
      - group
    post:
      operationId: group_joinGroup_post_id_member
      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/Group'
        '400':
          description: ID was invalid.
        '403':
          description: You were not invited to this group, or do not have read access to it.
      summary: Request to join a group, or accept an invitation to join.
      tags:
      - group
  /group/{id}/moderator:
    delete:
      operationId: group_demote_delete_id_moderator
      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/Group'
        '400':
          description: A parameter was invalid.
        '403':
          description: You don't have permission to demote users.
      summary: Demote a user to a normal group member.
      tags:
      - group
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                userId:
                  type: string
                  description: The ID of the user to demote.
              required:
              - userId
    post:
      operationId: group_promoteToModerator_post_id_moderator
      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/Group'
        '400':
          description: ID was invalid.
        '403':
          description: You don't have permission to promote users.
      summary: Promote a member to be a moderator of the group.
      tags:
      - group
      requestBody:
        content:
          multipart/form-data:
            schema:
              type: object
              properties:
                userId:
                  type: string
                  description: The ID of the user to promote.
              required:
              - userId
components:
  schemas:
    Group:
      type: object
  securitySchemes:
    Girder-Token:
      in: header
      name: Girder-Token
      type: apiKey