{
  "openapi": "3.0.0",
  "sections": [
    {
      "title": "account",
      "endpoints": [
        {
          "description": "Fetches the details for the account associated with the user agent.",
          "method": "get",
          "parameters": [],
          "path": "/account",
          "title": "Get an account",
          "errors": [
            {
              "status": "401",
              "description": "Requires Authorization"
            }
          ],
          "response": {
            "example": {
              "administrator_role": null,
              "groups": [],
              "handle": "bob",
              "id": "test",
              "last_password_change": "2015-10-06T20:00:00Z",
              "permissions": {
                "cancel_job": false,
                "create_ref": false,
                "create_sample": false,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": false,
                "upload_file": false
              },
              "primary_group": {
                "id": 5,
                "name": "Technician"
              },
              "settings": {
                "quick_analyze_workflow": "pathoscope_bowtie",
                "show_ids": true,
                "show_versions": true,
                "skip_quick_analyze_dialog": true
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Updates the account associated with the user agent.\n\nProvide a ``password`` to update the account password. The ``old_password`` must\nalso be provided in the request.\n\nThe ``email`` address is not currently used, but will be in future releases.",
          "example": {
            "email": "[email protected]",
            "old_password": "hello_world",
            "password": "foo_bar_1"
          },
          "method": "patch",
          "parameters": [
            {
              "description": "an email address",
              "title": "Email",
              "type": "string",
              "name": "email",
              "required": false
            },
            {
              "description": "the old password for verification",
              "title": "Old Password",
              "type": "string",
              "name": "old_password",
              "required": false
            },
            {
              "description": "the new password",
              "title": "Password",
              "type": "string",
              "name": "password",
              "required": false
            }
          ],
          "path": "/account",
          "title": "Update an account",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "401",
              "description": "Requires Authorization"
            }
          ],
          "response": {
            "example": {
              "administrator_role": null,
              "email": "[email protected]",
              "groups": [],
              "handle": "bob",
              "id": "test",
              "last_password_change": "2015-10-06T20:00:00Z",
              "permissions": {
                "cancel_job": false,
                "create_ref": false,
                "create_sample": false,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": false,
                "upload_file": false
              },
              "primary_group": {
                "id": 6,
                "name": "Technicians"
              },
              "settings": {
                "quick_analyze_workflow": "pathoscope_bowtie",
                "show_ids": true,
                "show_versions": true,
                "skip_quick_analyze_dialog": true
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Deletes all API keys registered for the account associated with the user agent.",
          "method": "delete",
          "parameters": [],
          "path": "/account/keys",
          "title": "Purge API keys",
          "errors": []
        },
        {
          "description": "Lists all API keys registered on the account associated with the user agent.",
          "method": "get",
          "parameters": [],
          "path": "/account/keys",
          "title": "List API keys",
          "errors": [
            {
              "status": "401",
              "description": "Requires authorization"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new API key on the account associated with the user agent.\n\nThe new key value is returned in the response. **This is the only response\nfrom the server that will ever include the key**.",
          "example": {
            "name": "Foobar",
            "permissions": {
              "create_sample": true
            }
          },
          "method": "post",
          "parameters": [
            {
              "description": "a non-unique name for the API key",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            },
            {
              "allOf": [
                {
                  "$ref": "#/components/schemas/PermissionsUpdate"
                }
              ],
              "default": {
                "cancel_job": null,
                "create_ref": null,
                "create_sample": null,
                "modify_hmm": null,
                "modify_subtraction": null,
                "remove_file": null,
                "remove_job": null,
                "upload_file": null
              },
              "description": "an object describing the permissions the new key will have. Any unset permissions will default to false",
              "title": "Permissions",
              "name": "permissions",
              "required": false
            }
          ],
          "path": "/account/keys",
          "title": "Create an API key",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "401",
              "description": "Requires authorization"
            }
          ],
          "response": {
            "example": {
              "created_at": "2015-10-06T20:00:00Z",
              "groups": [],
              "id": "foobar_0",
              "key": "raw_key",
              "name": "Foobar",
              "permissions": {
                "cancel_job": false,
                "create_ref": false,
                "create_sample": true,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": false,
                "upload_file": false
              }
            },
            "status": "201"
          }
        },
        {
          "description": "Removes an API key by its 'key id'.",
          "method": "delete",
          "parameters": [],
          "path": "/account/keys/{key_id}",
          "title": "Delete an API key",
          "errors": []
        },
        {
          "description": "Fetches the details for an API key registered on the account associated with\nthe user agent.",
          "method": "get",
          "parameters": [],
          "path": "/account/keys/{key_id}",
          "title": "Get an API key",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2015-10-06T20:00:00Z",
              "groups": [],
              "id": "foobar_0",
              "name": "Foobar",
              "permissions": {
                "cancel_job": false,
                "create_ref": false,
                "create_sample": true,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": false,
                "upload_file": false
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Updates the permissions an existing API key registered on the account\nassociated with the user agent.",
          "example": {
            "permissions": {
              "modify_subtraction": true
            }
          },
          "method": "patch",
          "parameters": [
            {
              "allOf": [
                {
                  "$ref": "#/components/schemas/PermissionsUpdate"
                }
              ],
              "description": "a permission update comprising an object keyed by permissions with boolean values",
              "title": "Permissions",
              "name": "permissions",
              "required": false
            }
          ],
          "path": "/account/keys/{key_id}",
          "title": "Update an API key",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "401",
              "description": "Requires Authorization"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2015-10-06T20:00:00Z",
              "groups": [],
              "id": "foobar_0",
              "name": "Foobar",
              "permissions": {
                "cancel_job": false,
                "create_ref": false,
                "create_sample": true,
                "modify_hmm": false,
                "modify_subtraction": true,
                "remove_file": false,
                "remove_job": false,
                "upload_file": false
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Logs in using the passed credentials.\n\nThis creates a new session for the user with `username`. The session ID and\ntoken are returned in cookies.",
          "example": {
            "password": "p@ssword123",
            "remember": false,
            "username": "foobar"
          },
          "method": "post",
          "parameters": [
            {
              "description": "account password",
              "minLength": 1,
              "title": "Password",
              "type": "string",
              "name": "password",
              "required": true
            },
            {
              "default": false,
              "description": "value determining whether the session will last for 1 month or 1 hour",
              "title": "Remember",
              "type": "boolean",
              "name": "remember",
              "required": false
            },
            {
              "description": "account username",
              "minLength": 1,
              "title": "Username",
              "type": "string",
              "name": "username",
              "required": true
            }
          ],
          "path": "/account/login",
          "title": "Login",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            }
          ],
          "response": {
            "example": {
              "reset": false
            },
            "status": "201"
          }
        },
        {
          "description": "Logs out the user by invalidating the session associated with the user agent. A\nnew unauthenticated session ID is returned in cookies.",
          "method": "get",
          "parameters": [],
          "path": "/account/logout",
          "title": "Logout",
          "errors": [],
          "response": {
            "status": "204"
          }
        },
        {
          "description": "Resets the password for the account associated with the requesting session.",
          "example": {
            "password": "p@ssword123",
            "reset_code": "4bcda8b3bcaf5f84cc6e26a3d23a6179f29d356e43c9ced1b6de0d8f4946555e"
          },
          "method": "post",
          "parameters": [
            {
              "title": "Password",
              "type": "string",
              "name": "password",
              "required": true
            },
            {
              "title": "Reset Code",
              "type": "string",
              "name": "reset_code",
              "required": true
            }
          ],
          "path": "/account/reset",
          "title": "Reset password",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            }
          ],
          "response": {
            "example": {
              "login": false,
              "reset": false
            },
            "status": "200"
          }
        },
        {
          "description": "Fetches the settings for the account associated with the user agent.",
          "method": "get",
          "parameters": [],
          "path": "/account/settings",
          "title": "Get account settings",
          "errors": [
            {
              "status": "401",
              "description": "Requires authorization"
            }
          ],
          "response": {
            "example": {
              "quick_analyze_workflow": "pathoscope_bowtie",
              "show_ids": true,
              "show_versions": true,
              "skip_quick_analyze_dialog": true
            },
            "status": "200"
          }
        },
        {
          "description": "Updates the settings of the account associated with the user agent.",
          "example": {
            "show_ids": false
          },
          "method": "patch",
          "parameters": [
            {
              "allOf": [
                {
                  "$ref": "#/components/schemas/AnalysisWorkflow"
                }
              ],
              "description": "workflow to use for quick analysis",
              "name": "quick_analyze_workflow",
              "required": false
            },
            {
              "description": "show document ids in client where possible",
              "title": "Show Ids",
              "type": "boolean",
              "name": "show_ids",
              "required": false
            },
            {
              "description": "show document versions in client where possible",
              "title": "Show Versions",
              "type": "boolean",
              "name": "show_versions",
              "required": false
            },
            {
              "description": "don’t show the quick analysis dialog",
              "title": "Skip Quick Analyze Dialog",
              "type": "boolean",
              "name": "skip_quick_analyze_dialog",
              "required": false
            }
          ],
          "path": "/account/settings",
          "title": "Update account settings",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "401",
              "description": "Requires Authorization"
            }
          ],
          "response": {
            "example": {
              "quick_analyze_workflow": "pathoscope_bowtie",
              "show_ids": false,
              "show_versions": true,
              "skip_quick_analyze_dialog": true
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "admin",
      "endpoints": [
        {
          "description": "Starts an action with the given name.",
          "example": {
            "name": "relist_jobs"
          },
          "method": "put",
          "parameters": [
            {
              "description": "the action to run",
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            }
          ],
          "path": "/admin/actions",
          "title": "Initiate an action",
          "errors": []
        },
        {
          "description": "",
          "method": "get",
          "parameters": [],
          "path": "/admin/roles",
          "title": "List administrator roles",
          "errors": [],
          "response": {
            "example": [
              {
                "description": "Manage who is an administrator and what they can do.",
                "id": "full",
                "name": "Full"
              },
              {
                "description": "Manage instance settings and administrative messages.",
                "id": "settings",
                "name": "Settings"
              },
              {
                "description": "Manage users in any space. Delete any space.",
                "id": "spaces",
                "name": "Spaces"
              },
              {
                "description": "Create user accounts. Control activation of user accounts.",
                "id": "users",
                "name": "Users"
              },
              {
                "description": "Provides ability to:\n     - Create new spaces even if the `Free Spaces` setting is not enabled.\n     - Manage HMMs and common references.\n     - View all running jobs.\n     - Cancel any job.\n    ",
                "id": "base",
                "name": "Base"
              }
            ],
            "status": "200"
          }
        },
        {
          "description": "Returns a paginated list of users.",
          "method": "get",
          "parameters": [],
          "path": "/admin/users",
          "title": "Find users",
          "errors": [],
          "response": {
            "example": {
              "items": [
                {
                  "active": true,
                  "administrator_role": "base",
                  "b2c": null,
                  "b2c_display_name": null,
                  "b2c_family_name": null,
                  "b2c_given_name": null,
                  "b2c_oid": null,
                  "force_reset": false,
                  "groups": [],
                  "handle": "leeashley",
                  "id": "TxWalSSn",
                  "last_password_change": "2023-03-20T22:46:26.151000Z",
                  "permissions": {
                    "cancel_job": false,
                    "create_ref": false,
                    "create_sample": false,
                    "modify_hmm": false,
                    "modify_subtraction": false,
                    "remove_file": false,
                    "remove_job": false,
                    "upload_file": false
                  },
                  "primary_group": null
                },
                {
                  "active": true,
                  "administrator_role": "full",
                  "b2c": null,
                  "b2c_display_name": null,
                  "b2c_family_name": null,
                  "b2c_given_name": null,
                  "b2c_oid": null,
                  "force_reset": false,
                  "groups": [],
                  "handle": "zclark",
                  "id": "fb085f7f",
                  "last_password_change": "2023-03-20T22:46:26.151000Z",
                  "permissions": {
                    "cancel_job": false,
                    "create_ref": false,
                    "create_sample": false,
                    "modify_hmm": false,
                    "modify_subtraction": false,
                    "remove_file": false,
                    "remove_job": false,
                    "upload_file": false
                  },
                  "primary_group": null
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Creates a new user.",
          "method": "post",
          "parameters": [
            {
              "default": true,
              "description": "forces a password reset next time the user logs in",
              "title": "Force Reset",
              "type": "boolean",
              "name": "force_reset",
              "required": false
            },
            {
              "description": "the unique handle for the user",
              "minLength": 1,
              "title": "Handle",
              "type": "string",
              "name": "handle",
              "required": true
            },
            {
              "description": "the password for the user",
              "minLength": 1,
              "title": "Password",
              "type": "string",
              "name": "password",
              "required": true
            }
          ],
          "path": "/admin/users",
          "title": "Create a user",
          "errors": [
            {
              "status": "400",
              "description": "Password does not meet length requirement"
            },
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Fetches the details of a user.",
          "method": "get",
          "parameters": [],
          "path": "/admin/users/{user_id}",
          "title": "Get a user",
          "errors": [
            {
              "status": "404",
              "description": "User not found"
            }
          ],
          "response": {
            "example": {
              "active": true,
              "administrator_role": "base",
              "b2c": null,
              "b2c_display_name": null,
              "b2c_family_name": null,
              "b2c_given_name": null,
              "b2c_oid": null,
              "force_reset": false,
              "groups": [],
              "handle": "user_handle",
              "id": "TxWalSSn",
              "last_password_change": "2023-03-20T22:46:26.151000Z",
              "permissions": {
                "cancel_job": false,
                "create_ref": false,
                "create_sample": false,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": false,
                "upload_file": false
              },
              "primary_group": null
            },
            "status": "200"
          }
        },
        {
          "description": "",
          "method": "patch",
          "parameters": [
            {
              "description": "deactivate a user",
              "title": "Active",
              "type": "boolean",
              "name": "active",
              "required": false
            },
            {
              "description": "Forces a password reset next time the user logs in",
              "title": "Force Reset",
              "type": "boolean",
              "name": "force_reset",
              "required": false
            },
            {
              "description": "Sets the IDs of groups the user belongs to",
              "items": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "title": "Groups",
              "type": "array",
              "name": "groups",
              "required": false
            },
            {
              "description": "the new password",
              "title": "Password",
              "type": "string",
              "name": "password",
              "required": false
            },
            {
              "description": "Sets the ID of the user's primary group",
              "title": "Primary Group",
              "type": "integer",
              "name": "primary_group",
              "required": false
            }
          ],
          "path": "/admin/users/{user_id}",
          "title": "Update a user",
          "errors": [
            {
              "status": "404",
              "description": "User not found"
            }
          ],
          "response": {
            "example": {
              "active": true,
              "administrator_role": "base",
              "b2c": null,
              "b2c_display_name": null,
              "b2c_family_name": null,
              "b2c_given_name": null,
              "b2c_oid": null,
              "force_reset": false,
              "groups": [],
              "handle": "user_handle",
              "id": "TxWalSSn",
              "last_password_change": "2023-03-20T22:46:26.151000Z",
              "permissions": {
                "cancel_job": false,
                "create_ref": false,
                "create_sample": false,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": false,
                "upload_file": false
              },
              "primary_group": null
            },
            "status": "200"
          }
        },
        {
          "description": "Updates the user's administrator role.",
          "example": {
            "role": "users",
            "user_id": "foo"
          },
          "method": "put",
          "parameters": [
            {
              "allOf": [
                {
                  "$ref": "#/components/schemas/AdministratorRole"
                }
              ],
              "description": "the administrator role for the user",
              "name": "role",
              "required": false
            }
          ],
          "path": "/admin/users/{user_id}/role",
          "title": "Set administrator role",
          "errors": [
            {
              "status": "404",
              "description": "User not found"
            }
          ],
          "response": {
            "example": {
              "active": true,
              "administrator_role": "base",
              "b2c": null,
              "b2c_display_name": null,
              "b2c_family_name": null,
              "b2c_given_name": null,
              "b2c_oid": null,
              "force_reset": false,
              "groups": [],
              "handle": "user_handle",
              "id": "TxWalSSn",
              "last_password_change": "2023-03-20T22:46:26.151000Z",
              "permissions": {
                "cancel_job": false,
                "create_ref": false,
                "create_sample": false,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": false,
                "upload_file": false
              },
              "primary_group": null
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "analyses",
      "endpoints": [
        {
          "description": "Lists analyses based on a search `term`.\n\nThe response will only list analyses on which the user agent has read rights.",
          "method": "get",
          "parameters": [],
          "path": "/analyses",
          "title": "Find analyses",
          "errors": [],
          "response": {
            "example": {
              "documents": [
                {
                  "created_at": "2022-08-15T17:42:35.979000Z",
                  "id": "ofv7rp4v",
                  "index": {
                    "id": "u3lm1rk8",
                    "version": 14
                  },
                  "job": {
                    "id": "us3toy8j"
                  },
                  "ready": true,
                  "reference": {
                    "id": "d19exr83",
                    "name": "New Plant Viruses"
                  },
                  "sample": {
                    "id": "7tu8c5m5"
                  },
                  "subtractions": [
                    {
                      "id": "1sk885at",
                      "name": "Vitis vinifera"
                    }
                  ],
                  "updated_at": "2022-08-15T17:42:35.979000Z",
                  "user": {
                    "administrator": true,
                    "handle": "mrott",
                    "id": "ihvze2u9"
                  },
                  "workflow": "pathoscope_bowtie"
                }
              ],
              "found_count": 2621,
              "page": 1,
              "page_count": 105,
              "per_page": 25,
              "total_count": 2621
            },
            "status": "200"
          }
        },
        {
          "description": "Downloads analysis data in CSV or XSLX format. The returned format depends on\nthe extension included in the request path.",
          "method": "get",
          "parameters": [],
          "path": "/analyses/documents/{analysis_id}.{extension}",
          "title": "Download an analysis",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Permanently deletes an analysis.",
          "method": "delete",
          "parameters": [],
          "path": "/analyses/{analysis_id}",
          "title": "Delete an analysis",
          "errors": []
        },
        {
          "description": "Fetches the details of an analysis.",
          "method": "get",
          "parameters": [],
          "path": "/analyses/{analysis_id}",
          "title": "Get an analysis",
          "errors": [
            {
              "status": "400",
              "description": "Parent sample does not exist"
            },
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2022-08-15T17:42:35.979000Z",
              "files": [
                {
                  "analysis": "ofv7rp4v",
                  "description": null,
                  "format": "tsv",
                  "id": 3145,
                  "name": "report.tsv",
                  "name_on_disk": "3145-report.tsv",
                  "size": 4120,
                  "uploaded_at": "2022-08-15T17:48:02.467000Z"
                }
              ],
              "id": "ofv7rp4v",
              "index": {
                "id": "u3lm1rk8",
                "version": 14
              },
              "job": {
                "id": "us3toy8j"
              },
              "ready": true,
              "reference": {
                "id": "d19exr83",
                "name": "New Plant Viruses"
              },
              "results": {
                "hits": [
                  {
                    "abbreviation": "GLRaV3",
                    "id": "6tli5mz3",
                    "isolates": [
                      {
                        "default": false,
                        "id": "qauxg1g9",
                        "sequences": [],
                        "source_name": "WA-MR",
                        "source_type": "isolate"
                      }
                    ],
                    "length": 18671,
                    "name": "Grapevine leafroll-associated virus 3",
                    "version": 30
                  }
                ],
                "read_count": 584,
                "subtracted_count": 0
              },
              "sample": {
                "id": "7tu8c5m5"
              },
              "subtractions": [
                {
                  "id": "1sk885at",
                  "name": "Vitis vinifera"
                }
              ],
              "updated_at": "2022-08-15T17:42:35.979000Z",
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflow": "pathoscope_bowtie"
            },
            "status": "200"
          }
        },
        {
          "description": "Downloads a file associated with an analysis. Some workflows retain key files\nafter the complete.",
          "method": "get",
          "parameters": [],
          "path": "/analyses/{analysis_id}/files/{upload_id}",
          "title": "Download an analysis file",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "BLASTs a sequence that is part of a NuVs result record. The resulting BLAST data\nwill be attached to that sequence.",
          "method": "put",
          "parameters": [],
          "path": "/analyses/{analysis_id}/{sequence_index}/blast",
          "title": "BLAST a NuVs contig",
          "errors": [
            {
              "status": "400",
              "description": "Parent sample does not exist"
            },
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Sequence not found"
            },
            {
              "status": "409",
              "description": "Analysis is still running"
            }
          ],
          "response": {
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "groups",
      "endpoints": [
        {
          "description": "Lists all user groups. The group IDs and names are included in the response.",
          "method": "get",
          "parameters": [],
          "path": "/groups",
          "title": "List groups",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new group with the given name.\n\nThe ``group_id`` parameter is deprecated and will no longer be accepted in a\nfuture major release. For now, ``group_id`` will be used as ``name`` if it is\nprovided.",
          "example": {
            "name": "Research"
          },
          "method": "post",
          "parameters": [
            {
              "description": "a name for the group",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            }
          ],
          "path": "/groups",
          "title": "Create a group",
          "errors": [
            {
              "status": "400",
              "description": "Group already exists"
            }
          ],
          "response": {
            "example": {
              "id": "research",
              "name": "Research",
              "permissions": {
                "cancel_job": true,
                "create_ref": false,
                "create_sample": true,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": true,
                "upload_file": true
              },
              "users": []
            },
            "status": "201"
          }
        },
        {
          "description": "Deletes a group by its 'group id'.",
          "method": "delete",
          "parameters": [],
          "path": "/groups/{group_id}",
          "title": "Delete a group",
          "errors": []
        },
        {
          "description": "Fetches the complete representation of a single user group including its\npermissions.",
          "method": "get",
          "parameters": [],
          "path": "/groups/{group_id}",
          "title": "Get a group",
          "errors": [
            {
              "status": "404",
              "description": "Group not found"
            }
          ],
          "response": {
            "example": {
              "id": "technicians",
              "name": "technicians",
              "permissions": {
                "cancel_job": true,
                "create_ref": false,
                "create_sample": true,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": true,
                "upload_file": true
              },
              "users": [
                {
                  "administrator": false,
                  "b2c": null,
                  "b2c_display_name": null,
                  "b2c_family_name": null,
                  "b2c_given_name": null,
                  "b2c_oid": null,
                  "handle": "leeashley",
                  "id": "7CtBo2yG"
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Updates a group's name or permissions.\n\nPermissions that are not included in the ``permissions`` object will retain\ntheir previous setting.",
          "example": {
            "name": "Managers",
            "permissions": {
              "create_ref": true
            }
          },
          "method": "patch",
          "parameters": [
            {
              "description": "a name for the group",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "allOf": [
                {
                  "$ref": "#/components/schemas/PermissionsUpdate"
                }
              ],
              "description": "a permission update comprising an object keyed by permissions with boolean values",
              "title": "Permissions",
              "name": "permissions",
              "required": false
            }
          ],
          "path": "/groups/{group_id}",
          "title": "Update a group",
          "errors": [
            {
              "status": "404",
              "description": "Group not found"
            }
          ],
          "response": {
            "example": {
              "id": "technicians",
              "name": "Managers",
              "permissions": {
                "cancel_job": true,
                "create_ref": true,
                "create_sample": true,
                "modify_hmm": false,
                "modify_subtraction": false,
                "remove_file": false,
                "remove_job": true,
                "upload_file": true
              },
              "users": [
                {
                  "administrator": false,
                  "b2c": null,
                  "b2c_display_name": null,
                  "b2c_family_name": null,
                  "b2c_given_name": null,
                  "b2c_oid": null,
                  "handle": "leeashley",
                  "id": "7CtBo2yG"
                }
              ]
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "history",
      "endpoints": [
        {
          "description": "Returns a list of change documents.",
          "method": "get",
          "parameters": [],
          "path": "/history",
          "title": "List history",
          "errors": [
            {
              "status": "422",
              "description": "Invalid query"
            }
          ],
          "response": {
            "example": [
              {
                "created_at": "2022-01-28T23:28:53.881000Z",
                "description": "Removed Betaflexivirus from Camelia #1 (BFV_CAM1)",
                "id": "1wfc5x6e.removed",
                "index": {
                  "id": "s7frhn8n",
                  "version": 1
                },
                "method_name": "remove",
                "otu": {
                  "id": "1wfc5x6e",
                  "name": "Betaflexivirus from Camelia #1",
                  "version": 4
                },
                "reference": {
                  "id": "pat6xdn3"
                },
                "user": {
                  "administrator": true,
                  "handle": "igboyes",
                  "id": "igboyes"
                }
              }
            ],
            "status": "200"
          }
        },
        {
          "description": "Removes the change document with the given ``change_id`` and\nany subsequent changes.",
          "method": "delete",
          "parameters": [],
          "path": "/history/{change_id}",
          "title": "Delete a change document",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient Rights"
            },
            {
              "status": "404",
              "description": "Not found"
            },
            {
              "status": "409",
              "description": "Not unbuilt"
            }
          ],
          "response": {
            "status": "204"
          }
        },
        {
          "description": "Fetches a specific change document by its ``change_id``.",
          "method": "get",
          "parameters": [],
          "path": "/history/{change_id}",
          "title": "Get a change document",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2022-01-28T23:28:53.881000Z",
              "description": "Removed Betaflexivirus from Camelia #1 (BFV_CAM1)",
              "diff": {
                "_id": "1wfc5x6e",
                "abbreviation": "BFV_CAM1",
                "created_at": "2021-12-09T01:32:35.390000Z",
                "imported": true,
                "isolates": [
                  {
                    "default": false,
                    "id": "714d1ea9",
                    "sequences": [
                      {
                        "_id": "eukvplhn",
                        "accession": "16SP043_BFV_CAM1",
                        "definition": "Betaflexivirus, complete genome",
                        "host": "Camelia",
                        "isolate_id": "714d1ea9",
                        "otu_id": "1wfc5x6e",
                        "reference": {
                          "id": "pat6xdn3"
                        },
                        "remote": {
                          "id": "g84vd2rm"
                        },
                        "segment": "",
                        "sequence": "TTCAGAAATCAACTCAACCTGTTGTGAGTACCCATCACATCAAAGCAATGGCTTCAGTGATGATAAGAACTCCTATGGAAAAGTTTTTTTCAGCAAATGACAAGAATGATCAAAAAATAATTCTTACGTCTGGAGTGAATTATGTTAAAAAATTTTGTGATGAGCAGGGTTTACACTTTGCATACTCAGTGGATGAGAGGAAAAAGGCTGCACTGACCAATCTTGGCATTAATTTGCATCCAGTGCCCTTTTTACCTCATTCACACCCTTTTTGCAAAATTCTTGAAAATAACCAGCTCATCAACATCCTACCAGGGATATTAGGTAGTGGTAGATGGACATTTATGTCAATTAAAGAAGGAAAAGTAGAAAGTATTATAAAAAAAAGTGGAGGTGTAAATAATAATATTAGTTTAATTAATAGATGTATATGTGCAAAAGATTTTTCAAGGTATGATTTCACCCCTGAAGAAGTTGATTTGAGAACAAATGTTCTCTCTGAGGATCATTTATTTCCAGAGAATCTGATGAGAAGCCTCAAAGGGAAAAAGATTTTTATACATGATGAGGTTCATCACTGGAATTCAAAAATCATGATCAACTTTCTGGAGAAAGTCAAACCTAAGATAATCTTTTGTTCAGTCGTTTATCCGCCAGAATTATTGGCTGGAATATTGGAACCTCAAAATAAAAGTTTTTATGATTTTAAGGTTGATGGTGATAAATTATTTTTTTTTCCAGATGGCAATAGGAGTGAATTTTATGAGCAGCCAAAGGATCTTGGTTGGCTAATGCTTGCAAAGAAATTCAAGCTCAATGACTGCAATTACACTGTTAAATTAATCAGCAGCACTTACTGCCATCACTTATTTCAAATATCTAGAGGTGAGAAGATAACTGAATCAAAGAGATTCTTCTCAGACTTTGATACCATTGACCTCAAAGTTATACACAATGAGAGGTTCAGATACTACGATCACATCCCCATAAGAAGGGCACATCTTGAGAAAGTGTACACATACTTGATGTGTCTTAAAAAACCGGATGTTGAATCAGCCATTGCAAAACTACGCCAACTTATGGAGGATGAGCAGGACACCAGAGTTGTGGCTTTTTTCTGCAAATTTGCAAGGGATGTGATTGAGAAATTCAAGGGAAAGATACATCTGTATGAAACGGGGTGGTTGAGTCAAATTGGAGACAATTTCATACAGATGCTTCCAAATTTCTGGGGGAGGATATTGTCAAGGTGGCATGGATTGAATCTTTTTGACTTCTTGTTCAAGCTTGATAACTTGAGAATTGAGGTTGAGTTGATTGACGTGGATGCTGAGTACTCATCGAGAAGTGAGGTCCTTAAACGCTTGTTTAAGAAGGATCAATTTAGTGAAAATTTTGATGGGCTTAATGTTGAGTACCTCAGAACTATTGGTCTTGAGGTCGAGATGGATGACGCATGGAGCAAGGGTTTCTCATCAAAAAAAAATAACTCAATTCATGCCTGCATCTCAAAATTTGGTGTTGAGAGAGTATCCAGCAAGGCCTTTGAAAGTAAACTCATCTCAAGATTTCATCTCAAAGTTGGCATTCTTGCCTTACTGCACAGGAGAAATGGAAATGGGAAGTCCTTGTTGAAAGGAGCACCTGTGAACCCAGATTCTAAGCAGGAAAAGAAAGGTATTTTAATGATCAAGCTCAGGTCAGATGACAAGGTTGAATCATATCCAGAGCCTTTTTTCTTAAATTTGAGAAATTTTTCATCAAAAGAATGTCCATTTGAAGATTTACGATGGATGAGAGTTCATAACAAGATTTGGGGTGGAACTTTCGGCACCCCATTAATACCAAGTGACTCACCATTGGAAGGAGATGAGGATGTTGACGTTTGTGTCATGGTGGACGAATTAGGATATGATAATGATGTCCAAGATGAGCAATGTGTCAAAAATTTGGAAATTCTTGAGATGGATGAAATTTTGAATGATTCCAACCCCAATATGAATGTGACTTCAACTGAAGTCAAACAAGATGATAAAAGGGAAGATTGCCAGCTCAATTTGATTGAATCCAGCGAAGTGGAAACTTCCAAATTCATGTCAGAGCTTGAGGACTCTGTATATCTCAGTTTCCATGATGATGAAACATTTAATTACTCAAATGTGCCAATAATAGGAGATGGCAATTGTTTTTTTAGAGCCATTTGCATGTCAGTGCATGGAAATGACTTTGGTCATCTTGAAACTAGGAAAAAATTTTCTGAACATGCAAGAAAAATTGGATTCAAATTTAATGCTGAAATTGAGGAGGCAATCACCAAGGATGGCACTTTCTCTGACACATGGATGGTCAATCTCTTTGCAAATGTTATGAATGTTAGACTCTTCATTCATGAAACAGAGGATGGTCCTTACTATGAGATTCACCCAACAATCATCAAGTATGATGACCCCCCAGTGTTCACAGTTAGATTACTATTTAGGGACGCACACTTTACTCTTTTGAAAGAGGAAAAGAGTGAGACTTGTGAAACGCTTAAGAAAGAGTTTTTGATTGATTGGGGGGAGAATGAATTCAGAGCTCTTAATGAATTTGTTGACTTGATAGTGGCTGAGCAGCAAAGGTTCAAGGCCAATAACTTCAAATCAAGGAAGGCCTTCTTTTTCTCTGAGCACGAGGGCATTGACTATGGGCATGATAAAGTTAAGTACCATCGGAATCAGATTGATTCAATTGACAGTCTTCTGCCCAGAGGAATGAATTGTGGTTTCAATTCAATGCTTGTGCAGATCTACGCTGATGGTGCTGAATTGCCAATGCACAGAGATGATGAGAAGGTTTATGACAATGACAACATCCTTTCCATCAATCTCAGGGGAGACTGCAAATTCATAATTAATGAGTCAAAAAAAGGGGCTAGCAATGTCAGGTCAATTGAGATGAAGCAAGGGGCTTATATAGTAATGTTAAGTGGCTTTCAAAAAAAATTCAAACATGGGGTTTCTGAATGTAGAAATGGGCGTGTGAATGTCACATTCAGAAGGCATGTGAGAAGTATGAGGGGTCATGACTTGATTGATTTTGATCTTTCCAAAATTAAAAATGGGTGTTTAATAAGGTCAATTGCAAATGCTGAATGCAGAGGACTGAATCAAGTTGTCCAGGCCTTGATCAGAAAGGATAGAGCCTTTTGGAGTGATTGGATTCATTCAGGGCAGGGGGGGACGATAGATGATCTAGTCAAAGCTGCCACTGAACTTCATTTCTCATTTGATCTAATTACTGAAAAGGGGTGTGACTCTTTTAAAAATTCCGGGCCCAAATTCACATTCCAACTTAAAAATGGTCATTTTGAAAGTATTAATGAAAGACCTTCATGTGTGGAAATGACCTTCCTGAATATGAGATCAAAAGGAAAAAAAAGTGGGAAAGGCATTGAAAAGCTCAAGTTCGAGCACATGAATGAAACAAATTTTGAGATTGTCGGAGAATTTGCCGCAATCCTTAAAAGATCATTCATGGAGCGAACAACAGGTCTAATTCTCTCCGAATGTTATGGCTCTGCATGCAAGAATCTTGAAGATTTGCAAATAGATCCAAGCAGTCAATTTGAGAAGAGAATTGACTTTATCTGTGGCTTTGCGGGGTCAGGAAAGAGCTTTTCAATTCAGTGCAAACTTGCATCGGAGCCTAAAGCTGATTTCTTGGTTATATGTCCCAGGAATGAACTCAAAAAAGATTGGCTTGAAAAAATCAATTGCAGTGAGAAAAAAGTTAGGACATTTGAAGTAGCCTTAACGCTCAACCTTTCAAAGATTGAATTGATTGTGATAGATGAACTGGGCTTGTTTCCAAATGGGTATCTCGATTTGCTGTGTCTAATGCTAACAAACCAGGGCAATTACAATTGCCAAGTGGTATGTTTGTTCGACCCTTTACAAGCGAGGTACCACAGTGATCTTGATGATTCTCTTTTAGATTTTCAGCATGACTGTGATAGGCTGATTGCTGATTGTGAATATCTGTACCTTGCAGAAAGTAGGAGGTTATCAAGCAAGTTCTTTGGAGCTTTCTTTCCAGACATCCACCTGCACAATGAAGGGAAAGAAGATCTAAGCATAACAATATTTGATAGTGTTGTTGTGGCGATAAATGAAATGAAAAAGAAAGAAACTCCAATCGACTTGGTGCTGGTTGCCTCAAGAGATGAAAAAAAGGCGCTGGCAACATCTGTTCGAACATTAACATTTGGGGAAGCTCAAGGCCTCACAGTCAATTATGCTTGTATTGTACTCTCTGAGTACTCAGAAAAGCAAGACGACCTACGGTGGATGGTAGCACTGACAAGGGCAAGGATCAAAATAGTCTTTGTATGTATGTACAGGGGAGGTCCAAGTTGCTTTTTACAAAACAATACATCCAGGTTAATAGGTCTGTTTCTGAGACAATCACCCATGACTATAAACAGGATGAAATTGATGGTCAAGGGTGATTTGATACCTTTTAGAAAGACAATAGGTTGTTCAGATGAAATGGATAGAGAGGAGAGATTGGAAGGAGACCCTTTTCTTAAACCACTGATTTTTCTTGGTAGTAGGATCAATTCAGAACAGGTTGAAGTTCTGGAGCCAGAAGTTGTTGAACCAATTGAGATGACTCACATCCCATTACCCCCAAGCCATTTTGATCAAAGCATTAATTTTGACAGAATTAGAGCACGTGAGCATAGGGAGTTCAGGATGTATTCAATGTGTACAAAGCAGTTTTGTGAGGATTTTGAACATTCAAGAGCCTCGGGGAAGCAGATGACACCAGGTCCTATGAGATTCGAAGCAATCTACCCAAGACATAAAGCAGATGATGACCTGACCTTTTGGATGGCTGTCAAGAAGAGGTTGCGCTTTTCCGAGGAGTTTGTTGAAAGAGCAAAACTTAAAGAAGCAATGGGAGTTGGGGGTTTGTTGTATTCAAACTTCAAGGAGACATTGGGTTTGAAGTTCAATTGGGATCAGAAGCTCCTTGACGAGTGCGTCAATGACTTTGAAGAGAAGAAACTTAGCAAAAGCAAGGCAACTCTACAAGCTCATAGCTCAAGATCTGACTCAGACTGGAAATTGGATCATATCTTTCTGTTCATGAAATCCCAATTGTGCACAAAATTTGAAAAGCAGTATGTTGACGCAAAAGCCGGGCAAACATTGGCTTGTTTTGCACACTGCATTTTAGTCAAGTTTGCGCCTTATTGCAGATACATGGAAAAACAATTGAGAAATCAATTTCCAGATAACATATACATTCACTCAGGAAAGAACTTCAATGATCTTAATCAGTGGGTTAAAGAGAACATGAAGGGGAAGGAATGTATAGAGTCAGACTATGAAGCATTCGATGCGAGTCAAGATGAATACATACTGGCCTTTGAAATATGCCTCATGGAGGATATGGGGATGCCAACTTGGTTCATCAATGATTATATAGATCTTAAATGCACACTTGGGTGCAAATTGGGCCACTTTGCCATTATGAGATTCACTGGTGAGTTTAGCACCTTTCTATTCAACACATTGGCAAACATGGCCTTCACATATGCCAGATATGATTGTGATGCATCAACTCCAATTGCCTTTGCTGGAGATGACATGTGCATGCTTGACAATTGTGCCGAGACTGACAAATTCGAAGGAATTTTTGAGAAAATATCACTGAAGGCGAAGGTTTTGAGGTCATGTACACCTATGTTTTGTGGGTGGAATTTGTGCAAGTATGGAATCTTCAAGGAACCGGCTCTAGTTTATAATAGATTTATGGTTGCTCAGGAAAGGGGTAATGTAGAGGAGTGCCTTGAGAATTATGCAATAGAGGTTTCCTATGCTTACATGTTAGGTGAGAAGCTCTATGAATTTTTGAAAGAAGAAGAGAGAATTAACTATCATCAAAGCGTAGTGAGATTCATAATTAAAAGAGCATATAAACTCAAGACCAAAGTGCGGCTTCTGTACACCAGTGATGGCGAAAGCAATTAGAGTTAAGAGCCTCACCAATCGGCTAGAGGTTGACAAATCTCTGCTCAATTCAAATGAAGTCTCAGCTCTGTATGGTGGTGCCTTTGCACCACTAGTTTTTAAGGATGAGGTTAAAATGGTAATTCCTGGCAACCTACTGGGCGGGCCAATTCGTCTACAGGCAAACATACTCACAAAGTCAAGACTCGAAAAAATTCGCAGCCAAAAATTTAAAGGAAACTCATGTGCTTATCTGCATCTTGGGGTGGTCACCATTGTTATACAATCACTGCTGGTGTCTGGCAATGAAAATGTCAGAGGCAGGTGCTCATTGGTTGATCTTTCAAGGGGCTCTGAAATGACTGGGCTCATTGACAAATTCAAGTTCAGCTTTACTAAAAACGAACCTTTCGCTGCAAAAATGTTGACAATAAATGCAGCAATTGATATTGACTGCGAGGTGTCTGCTGGAAGTATTCAGGCTCTCCTTGAAGTTGAAGGCATTGATGTCAGATCTGAGAGGAGTGTTCTAGCCATCACCACTGGGATAACCTGTGTTCCAACTAACTCCATGGTAATGTTGCCAGGTCTGAAAAGAGAAACCCCGAAGTTTGCAATTGCGAATGTTTACAATGTTCCTGATGAAGATCCAACTGAATGCGAGGCGTTTAACAGATTATTTGGAGCCGCTAATCCAAAGTTGATTGATTTGGGTAGTGAGACTGTGTTGGAAGAAGGGAAGAGATTTGGCCTATGGGGACCTGTCGTTAAACCAGTACACAGAAGGAAGCTCGTGACAAAAGGCATTATCAAGGATCACATGAGCCAATTTATGTCAGGCCCTTCCAAAGATTTGAAAATAGAAGAAGGTTTGGAAAGGTCAAGCTCATTACGTGTTGAAAATGTCTGCGAAACTGGCAAAGAAGAGGCTGATACACGACGAAGTGTCGGAATGGATTTTCAGGAGTTTCGTGGACCAGATAATTCAATGGGGGTTGTTGCTGGTAAATGCTGGGAATCAGAGAGTTCAGCTGAATTTAAACCAACAGGAGCAGAAATCAAGAGTTCAGAACAGCAGACTCCGGACGATTTTTGGCAATATAGCAGATCACTCAGCAGGGCCAGCAACAGTGTACCCGTCAATCAGTGTAAGTTATCAGGTGATGAACATTCAGGGAATCGAAGGTGTTGCACAGATGGATGGAAATTTCAATCTGAGAACATTGGTGGAAAATCTGAAGACCTTCCTTCTGACCAGCCAGGATCCTCAGCTCAACACTGCAACATTAAGGGAGGTCTGCCGGAGCTTTGCAAACTACGCCCTTGAGTACTACATGGAAGACCCCGACAGGATGTCCAATCTAGCTGACAAAATGCCACAACTAGCTCTGCAGGCGAGGGAGGTCATGTTTGACTTTTCTGATGGAATAAGTCAGCAATATTTGAGGGGTTTTCCAATGAGGGCTAAGGTTATACAGGAATTGAATAGTAGGCTTCTGCAGTCCACTGGCACCAAGGCTGTGTTTGAAGCAAGGGGCACAGTTGAGTCCTCAGTTAATTTGATTGTTTAAGGAAACAATACAGGCTTTGTCATTTGAGTGCTGTGAGTTCAAATGATACCTTATAAGTCAGATTCATCTGCACAGGTAAGTTTCAACCTCTTTGTATTTAAAGAGTGGCCGAGTGAGTGTACGCTCATGTTCGGAGATTAGCTTCCCAGCTTTATCAAATATTATGACTTAAGTATTAATAGGGATGTCTTTTATGAAT"
                      }
                    ],
                    "source_name": "16SP043",
                    "source_type": "internal"
                  },
                  {
                    "default": true,
                    "id": "950197de",
                    "sequences": [
                      {
                        "_id": "5oydqvv1",
                        "accession": "16SP042_BFV_CAM1_B",
                        "definition": "Betaflexivirus, complete genome",
                        "host": "Camelia",
                        "isolate_id": "950197de",
                        "otu_id": "1wfc5x6e",
                        "reference": {
                          "id": "pat6xdn3"
                        },
                        "remote": {
                          "id": "nkun91us"
                        },
                        "segment": "",
                        "sequence": "GTTGAAAATAATATTAGTGTAGTAAATACGAAAACAAACACACATAACTAACACTTGAACTTGAATTCATCTCCCAACGGTACCCATCAGTGTAAGTCCAATGGCATCAGTGATGATAAGAACCCCTCTGGAGAAATTCTTTTCTGCCAATGATAAGGCTGACCAAAAGGTCATCCTTACATCTGGAGTTAGTTATGTAAAAAAATATTGTGATGATAAAGGTCTGCATTTTGCCTATTACCTTGATGAAAGGAAGAAAAAGGCAATCACAGATCTTGGAATTAATTTGCATCCCGTACCCTTTCTGGCACATTCACACCCATTCTGTAAAGTTCTTGAAAACAATCAGCTTGTCAACATTTTGCCAGGTCTGCTTGGCTCAGGCAAATGGGTATTTATGTCCATTAAAGAAGGAAAGGTGGAGCAAATTATTAAAAAAAGTGGAGGAGTTGAAAATAATATTAGTGTAGTAAATAGATGTATATGTGCTAAGGATTTCTCTAGATACGACTTCACACCTAATGAGGTCGATATTCGGCGAAACTCCATTAAAGGTGACCACCTTTTTCCAGAAAATTTAATGCGGAGCCTTAAAGGAAAGAAAATCTTCATTCATGATGAAGTTCATCATTGGAATTCCAAGCAGATGATTGATTTTTTGGAAAGGGTTTCACCTACAATATTATATTGTTCAGTAGTTTACCCACCTGAGCTTTTGGGTGGGATCACCACCCCTCAAAATAAGACCTTTTATGATTTTAAAGTTGAAGGGGACAAACTTTATTTTTTTCCTGACGGTAATCGGAGTGAATTCTATGAACAACCTGCTGATCTCAAATGGTTGCTCATGGCTAAAAGGTTCATTTTGAAGGACTCTGAGTACACTGTCAAAATGCTCAGTAGCACTTATTGTCATCACCTTATCCAAATTTCAAAAGGGGCCAAAATCACGGAATCAAAACGGTTTTTCTCAAACTTTGATACCATTGATTTGAAGGTCATACACAAAGAAAGGTTTAGGTATTATGATGACATTCCAATTCGGAAACTGCACCTTGAGAAGGTTTACACTTATTTGATGTGTCTTAAAAAACCAGATGTTGAATCAGCCATTGCTAAGCTGAGGCAGCTTATGGAGGATGAACAAGACACAAGGGTTGTTGCCTTTTTTTGCAAATTTGCAAAGGATATAATTGACAGATTCAAAGGCAAAATACATCTTTATGAAACTGGATGGTTTGAGCACATTAAAGACTCATTTGTAAAGATGTTGCCCAACTTTTGGGGTAGATTGCTCTCAAGGTGGCACGGCGTTAATCTTTTCGAGTTTCTATTTAAGCTGGAATGCTTATGCATAGAGGTTGAATTGATTGACGTTGATTCTAGTTTCTCAGTCAAGGAATCCCTCAAGGATAGAGTTTTGGGCAGATCTGAGGGATGCAGTGCCGAGCTACAAAATTTGTATATGCAGGAGTTTGGTCCTTCAGCCATGCTAGAAGTAGGCTGGCATGGCAATCTTAAAAAGGTCATGAAGGATGTTGAAGAGAAAAACTTGATTAAAAATGGCAGATTATCCATCCGTGAAAAAGCATATTCTTCAAAGTTACTAAGCAGGTTCCATTTGAGAGTTGGAATTCTTAAGTATATTGGTGTTCAAAATAGAATAGGGGAAAGGAATGAGTTAAAACTTAGAACACCAATGATCAAGATGCACAATTCTGATGGCATTTACTCCTATCCAGAACCTGAATTCATCAGAGATGAGGGGTTCACCTCATTTGAATGTGAGTACAGCAACCTTAGGTGGCTGAATGTTCATAGAAACCTTTGGTTCAACAATTTGGAATTAGGGGTTGACGTTTGTGATGTTCATGAGCCACAAGTCACCAATTCTGAGGACTTGTCTTCCGCTGAAAACCTTTTAGAGGTCATTGAAGTGGATGATGAGTTCTTTCCCTCAAACATGAAAGAGACTGTTGAGGTGGCTAAAGAAACTGGTACTCTCAGAGAGAAAAGTGACCCTATGAGGCAAAGTTCATCTGAAGTTTTGGATGATGAGCTGATTCGTGAACTTGATGGATCTGTGACCATAATTCACAATTTTACAGAGGAGTTGTTGGTTAAAAAAGATGTGCTTGGAGATGGTAACTGCTTTTACAGAGCACTGAGGCTCAAATTAACTGGGAGTCAGGAGGGCCATGAGGAGGTCAGATTGAAATTTGCAAATCATGCTAGTCATATTGGCTTTAATTTGTCTACAAACATGAGAAATATGATCATCACGCCAGGTGTTTTTACTGAGACGTGGATGGTGAATCTTTTTGTGAATGTTATGAATATAGACATCATGATTCATGAGGACATGAGTGGCAATTACTACTCAATCAAACCCAACCTGATTCATTATGATGAAACCCCAAAAATCCAAATAAGATTGCTTTTTGAAAATTCTCACTTTGCATTGCTGGAGTCAGCAGACAAGTATGAAGAGAAAATGGATTTGGACTCCAAATCTTTTGAGGCAAAGTATCTCATTAAAAGTGGGTTTGGAGATTTTGAAGCTATTAGAACTTTAGTTGAAGATCTTGTCAGCAGGGTGAAAGAATACAAATTCAATGAGTTTAAAGGAAGGAGGGCTTATTTCTTCTCTGAAAATGAAAGCATTGATTATGCACATGGGAAGACCAAATATTTGAGAAATCAATTTGACTCTGTCAACGAATTACTTCCCATTGAATTGAAAGGGAAATTCAATGCCTTTCTGCTCCAAATTTTTGAAGAGGATGGAGAGATAGGGTTCCATAGAGACAATGAAGGTGTGTATGACAATGACAACATTCTTTCAATCAATCTCAATGGTTGTGCATCCTTCATGATTGAAGACTGTGGCAGCAAGGAAATCTATGAAATCAAAATGACTGATGGTTTATTCATTTCAATGCTTCCTGGATTTCAAAAGAAGTTCCGTCACGGTGTCACCAATTGTTCGTCAAAAAGAGTTAATATCACTTTCCGAAACCATGTTAGATCGGTCAATGGCAGGCCTGTAATTGAAATTGACCTTTCTGAAATAAGAAATGGTTGCATGCTTAGAGCAATAGCTGATGCTGAAAAGCGCAGCTTAGGGCAGGTTGTGCATGCATTATTTAAAAAAGATCGTGACTTTTGGAAGATGTGGATTTCAGAAGCAAAGGGTGGCACAATTGAAGATATGATGAAAGCAGCCATTGACCTCAAATTTTCATTCGAACTTTTGAGTGATGGCAAGTGTGAAATCTTTGGAACTTCAGGTCCAAAACTCAATTTCGAGTTAAAGGGGGGACACTTTTCAGTCATGGATTCAAGACCTTCATGTGTAGAGAGGACCTTCTTAAATTCAAACACCTCAAGGAGAGGGTCATCTAAACATTTGGGTGAGATGGACCTTGAATATTTGAATAATACCAACTTTGAAGCAAAGGGAATTTTTGCGAACCAACTCCAGATATCCTTTCTGGAACGTACTACTGGTCTAATTTTGTCAGAGGTTTACGGTTCAGCTGGGAAAAATTTGGAATTGGTTAAGATCAACAGGGAGAACATGATTGAAAAGGAAATTAATTTTATGTGTGGATTTGCAGGATCTGGGAAGAGTTATTCCTTACAACAGAGGGTTAAACAGAGCCTGGATGCTGAATTCCTCATAATATGCCCAAGAAATGAGCTCAAGAAGGATTGGTTGAGTAAGTTGAATTGCAATGAGAAAAAAGTGAGAACATTTGAAGTTGCATTAACTCTCAATTTATCCAAATTGGACTTGATAATTATTGATGAGCTTGGCCTTTTCCCAAATGGTTATCTAGATTTAATTTGCTATATGCTTGCGGATCAAGGTAATCATGACTGTAAGATCATGTGTCTGTTCGACCCTTTGCAATCTAGATACCATAGCGACCTAGACAACCATCTTTTGGATTTTGACCATGAATGCGACAGATTGATAGATGGTCTTGATTTTAACTATTTGATGGAGAGTAGGAGAATGTCCAAATCATTCTTTGGAGCCTTCTTTAGAGATGTAACTTTATACAACGAGGGTGATCAAAACTTCAAATTGGAGGTGTATGATTCAGTCATCGTTGCCATAAATGAAGGAAAGAAAAAGGGCATTGAGGTCGATCTGATACTAGTTGCATCCAGAGATGAGAAAAGAGCATTATCTTGTTCTGTCAATACATTGACATTTGGAGAAGCACAAGGTTTGACGGTGAACCATGCATGCATTGTGCTTTCAGAATATGCAGAGAAACAAGATGATTTCAGATGGATGGTCGCATTAACTAGGTCCAGAATAAAGGTCAGCTTTGCGGTCATGTACAGAGGTGGATTAGTGAGTTTTGTTCAAAATAACTCAGCAAGATTGATTGGCCTGTTTATGGCTCAATCACCACTAACCATCAATCGAATGCAATTAATGCTCAAAGGAAACATTAATCCATGCATCAGAAGTCTAGGATGCTCTGATGAGATGGACAGGGAAGAAAGGCTTGAGGGTGATCCCTTTCTAAAACCGCATATATACCTTGGCCAGAGGATCAATGCTGAAGAGTTTGAGGTTTTTGAGCCAGAAGTTGTTGAGCCAATTTGTAGAACGCATATTGAACTACCTCCTGAAAACTTTGATCAAAGCATCAACTTTGATTTAATTAGAGCGAGGGAGTTTCGGGAAATGCGGATTGGAGGTGAGACAACTAAACAATTTTGCGAAGACTTTGAGCATTCTAGAGCAAATGGAAAAAGAATGACTTCAGGTCCAATGAGGTATGAAGCAATATACCCTAGGCACAAAGCCGATGATGATGTGACCTTTTGGATGGCAGTCAAGAAAAGATTGAGATTTTCCGAGGAGCATGTTGAGAGGGCCAAATTGAAAGATGCATTTGGGGTCGGAGGCTTGTTATACGAAAATTTCAAAAGTAAAATGGGACTCAAATTCAACTGGGATCAACAACTTTTGGATGAATGTGTTAACGACTTTGAAGTCAAAAAACTGAGTAAAAGTAAAGCCACTTTGCAAGCTCACAGCTCCAGGTCTGATTCTGACTGGAAGATTGACAACATATTTCTCTTCATGAAATCACAATTGTGCACAAAGTATGAAAAGCAATATGTAGATGCGAAGGCTGGCCAAACGTTGGCGTGCTTTGCTCACATGGTGTTGGTCAAATTTGCGCCATATTGTAGGTATATGGAGAAGCAGTTAAGAAATCAATTTCCAGAGAACATTTATATACATTCAGGGAAGAACTTCAATGACCTTAATGACTGGGTTAAAAGGCATATGTCAGACAATGAATGCATTGAATCGGATTATGAAGCATTTGATGCATGTCAAGATGAGTATATATTGGCATTTGAGGTACTTCTCATGGAAGATATGGGTATGCCAAATTGGTTCATTAATGACTACATTGATCTTAAATGTACTTTGGGTTGCAAATTGGGCCACTTTGCGATCATGAGATTTACTGGTGAGTTTAGCACCTTTTTGTTCAACACCTTGGCAAACATGGCATTTACTTTTGCCAAATATGATTGTGATGGGAAAACACCAATTGCTTTTGCTGGAGATGATATGTGCATGCTTTCAAAATGTGATGAAATCTCAAAATTTGAGAGCGTCTTTGAGAAGATATCACTAAAAGCAAAGGTGGTAATCTCAAAAAATCCAATGTTTTGTGGGTGGAATCTGTGTAAGTATGGAATTTTCAAAGAACCTGCATTGGTGTACAACAGGTTCATGGTTGCAGAGGAAAGGGGAAATGTCAATGAATGCTTAGAAAATTATGCAATTGAAGTTTCCTATGCTTACATGTTAGGTGAGAAGCTCTATGAATTTTTGAAAGAAGAGGATAGGGTCAATTATCATCAAATTGTGGTCAGATACATTGTTAAACACATCGACAAACTCAAAACGAAGGTAAAGGTTCTGTTCTCAGGGAAAGATGTCTAAGGCTGTCAAAGTTAAAAGCCTTGTACAGAGATTGGAAGTTGACAGGTCGTTATTGAACTCAAATGAGATATCCGCTCTGTATGGGGGTGCATTTGCGCCATTGGTCTTTAAAGATGAGGTCAAGATGGTCATCCCTGGTAATCTATTGGGTGGTCCGATTTGTTTGCAAACAAACATTCTAACCAAGTCAAGGCTTGAAAAAATAAGAAGTCAGAAATTCAAAGGGAAGAGCTGTGCTTATTTGCATTTAGGCGTTGTGACAGTCGCTATTCAATCCTTATTAGTTTCCGGCAATGAGAAAATTAAGGGTAGATGCTCGCTTGTTGATTTATCCAGAGGGTCAGAGGAGACTGGCTTAATAGACAGATTCAAGTTTTGCTTCACAAAATCTGAACCTTTTGCTGCAAAAATGTTGACCATCAATGCTGCAATCGATATCGACTGTGATGTATCTGCAGGGAGCTTGCAAGCTCTGCTCGAAGTTGAGGGAATAGATATTCGAACTGAAAGGAGTGTGCTTGCAGTTACTACAGGTATAACGTGTGTGCCAACCAATTCCATGGTGATGCTCCCTGGTTTGAAGAGAGAGACTCCCAAATTCGCAATTGCAAATGTTTATAATGTTTCTGATGAGGACCCGGAAGAACATGCTGCTTTCAATTCATTATTCAGTGCAGCAAATCCAAAGCTGATCGATTTGGGCCAAGAATGCATTTTGGAGGAAGGAAAAAGATTTGGCTTTTGGGGTCCAATGGTTAAGCCAGTTCATAGAAGGAAATTAACAACTCGCGGCTTGATCAGAACTCATATGGATCAAATTATGTCTGGTCCTGGAAAAGATTTGAAAGAAGAAGGAAATTCAAAGTTGTCCAGATCATACTTATCAAGAAATGTCTGCGAAATTGGCAAAGAAGAGGCTCATCCACGACGAAGTGTCGGAATGGCTATGGAGGAGCTTTGTGGACCCAGAAAATTCGATGGGAGTTTGGTTGGTGAATGCAGCAAATCAGCGGGTTCAGTTAAATCTGAATCAGCAGGAGCAAAAATCAAGGGTGCAAGTGAGTCGCCTAAGATCTATTTTTGGGAACATAGCAGATCACTCGGCAGGTCCAGCAACCGTGTACCCGTCAATCAATGTAAGCTTTCAAACTCTGAACATTCAGGGAATAGAAGGAGTTGCACAGATGGATGGGAATTTCAATCTGAGAACACTTGTCGAAAATCTGAAGATGTTTCTGATAACGAGTCAGGATCAGCAGCTGAGCACTGCAACATTGAGGGAGGTTTGCCGGAGCTTTGCAAATTACGCCCTTGAGTATTACTTGGAAGACCCCGACAGAATGTCAAATCTCGCTGACAAAATGCCTCAATTGGCACTGCAGGCTAGAGAAGTTATGTTTGACTTTTCTGATGGCATTAGTCAGCAATTCATAAGGGGTTTTCCAATGAGGGCAAAGGTAATCCAGGAGTTGAATAGCAGGTTGTTACAGTCATCTGGGACAAAAGCTGTGTTTGAAGCAAGGGGCACAGTTGAGTCTTCAGTTAATTTGATTGTTTAAGGAAACAATACAGGCTTTGTCATTTGAGTGCTGTGAGTTCAAATGATACCTTATAAGTCGCTTGCGCACAGGTAAGTTTCTATACCTCTTTGTATTTAAAGAGGAGTCACTTCCTTTGGTAGAATTGCTTTAATTAGCAGTGGGCCGCCAAACAGTGCATTAAGTACTCCCCAACTAAGTAAAATATTATGATATAACTATTAATAGGGATGCCTTTTCAATATTTAGG"
                      }
                    ],
                    "source_name": "16SP042_B",
                    "source_type": "internal"
                  },
                  {
                    "default": false,
                    "id": "eb4c1673",
                    "sequences": [
                      {
                        "_id": "yymkrcpy",
                        "accession": "16SP042_BFV_CAM1_A",
                        "definition": "Betaflexivirus, complete genome",
                        "host": "Camelia",
                        "isolate_id": "eb4c1673",
                        "otu_id": "1wfc5x6e",
                        "reference": {
                          "id": "pat6xdn3"
                        },
                        "remote": {
                          "id": "u7ni2w4n"
                        },
                        "segment": "",
                        "sequence": "ATCACAAAATACAACAACATAATTCAGAAACTAACTTAACCTGTCGTGAGTACCCATCACATCAAAGCAATGGCTTCAGTGATGATAAGAACTCCTATGGAAAAGTTTTTTTCAGCAAATGACAAGAATGATCAAAAGATCATTCTCACGTCTGGGGTGAATTATGTTAAAAGATTTTGTGATGAGCAGGGTTTACATTTTGCATACTCGGTGGATGAGAGGAAAAAGGCTGCACTGACCAATCTTGGTATTAATTTGCATCCAGTCCCCTTTCTACCTCATTCGCACCCTTTTTGCAAGATCCTTGAAAATAACCAGCTCATTAACATTTTACCAGGGATACTAGGTAGTGGTAGGTGGACGTTTATGTCAATTAAAGAAGGAAAAGTAGAAAGTATAATTAAAAAAAGCGGAGGTGTAAATAATAATATTAGTTTAATCAATAGATGTATATGCGCAAAGGATTTTTCAAGATATGACTTTACTCCCGAAGAGGTTGATTTGAGGACAAATGTCCTCTCTGAAGATCATTTATTTCCTGAAAATCTGATGAGGAGCCTCAAAGGAAAGAAAATATTCATACACGATGAGGTTCATCACTGGGATTCGAAAATTATGATCAACTTTTTAGAGAAAGTTAAACCGAAAATAATCTTTTGCTCAGTTGTTTATCCGCCAGAATTATTAGCTGGCATATTAGAACCTCAGAACAAGAGTTTTTATGACTTTAAGGTGGATGGTAATAAGTTATTCTTTTTCCCTGATGGTAATAGGAGTGAGTTTTATGAACAGCCAAAGGATCTCAGTTGGCTAATGCTCGCAAAAAGATTCAAACTTGATGATTGCAATTACACCGTCAAGTTGATCAGCAGCACCTATTGCCATCATCTGTTTCAAATATCCAGAGGGGAAAAAATAACGGAGTCAAAGAGATTCTTCTCAGACTTTGACACCATTGACCTCAAAGTTATACACAATGAGAGGTTTAGATACTACGATCACATTCCAATAAGAAGAGCACACCTTGAGAAAGTGTACACATATTTGATGTGCTTAAAGAAGCCTGATGTTGAATCGGCTATTGCAAAATTGCGCCAACTTATGGAGGATGAGCAGGACACCAGAGTTGTGGCCTTTTTCTGCAAATTTGCAAGGGATGTGATTGAGAAATTCAAGGGAAAGATACATCTGTATGAAACTGGATGGCTAAGTCAAATTGGAGACAATTTCATACAGATGCTTCCAAATTTTTGGGGGAGAATATTGTCAAGGTGGCATGGGCTTAATCTCTTTGATTTCCTATTTAAGCTTGACAATTTGAGAATTGAAGTTGAGCTGATTGACGTTGATGCAGAGTACTCATCAAGGAATGAGGTACTCAAACGTCTGTTCAAAAAAGACCAATTTGGTGAGAACCTCGATGGGCTAAACACTGAATACCTTAGGACCATTGGTCTTGAGGCTGAAATGGATAATGCATGGGGAAAAGGTTTCTCATCAAAGAAAGATAGCTCAATTCGTGCATGTGTCTCAAAATTTGGCATTGAGAGGGTCTCAAGTAAGGCTTTTCAGAGCAAGCTCGTCTCAAGATTCCATCTCAAAGTTGGAATTCTTGCCCTGCTACATGAGAGAAACAGGAATGAGAAGTTCTTACAAAAAGGGATGTCTGTTGATTTCAATTCCAAATCCCAAGAGAGAAGGGTTTTAATGATCAAGTTCAAGTCGGAGGATAGGGTTGACTCATATCCCGAACCCTTTTTCTTGAATTTGAGAAATTTTTCATCAAAAGAGTGTCCATTCGAGGATCTTAGATGGATGAAAGTGCATAATAAAATTTGGGGTGAAACTTTTTGCACTCCATTGATTCCAAATGAATTTCCATCAGAAAAAGATGAAGATATTGACGTCTGCAGCATTGTGGATGAGTCAGAATGTGATGACAGCAATCACGATGGGCAGTGTCTTGAAAACTCAGGGTCTTTTGGAATTAACAAGACCTCAGATGACCCAAACATTAATGTGGAAATAACTTCAATTGAGACCAGGCAGGGTGATGAAATCGATTGCCGGCTTAATTCAACTGAACCTAGTGAGGTGGAAACATCTGAATTCATGTCTGAGCTAGAGAATTCTGTGTATCTCAGCTTTCATGATGATGAAGTTTTCAATTATTCAAAGGTGCCAATAATAGGGGATGGCAATTGTTTCTTCAGAGCCATTTGTATGGCAGTGCATGGGAATGATCATGGTCACCTTGAAACTAGGAGGAAATTCTCTGAACATGCAAAGAGGATTGGATTCAAATTTAACGCTGAGATTGAGAAGGCAATTGTCGAGAGTGGAACTTTCTCTGACACATGGATGGTCAATCTCTTTGCAAATGTTATGAATGTTAGACTCTTCATTCATGAAACAGAGGATGGTCCTTACTATGAGATTCACCCAACAATCATCAAGTATGATGATCCCCCATTATTTTCAATTAGACTATTATTTGGGGATGCACACTTCACACTTTTGAGGGAAGTGGAAGGTGAATCATGTGAAAAACTTAAAGAAGAGTACATGATTGATTGGGGAGAGAACGAATTCAAGGTCCTCAATGAGTTTGTTGACTCAATAATGGACGAGCAGCATAGGTTCAAGGCTAACAATCTCAGGTCAAGAAAGGCTTTCTTCTTTTCTGAGCACGAGGGTATTGACTACGGGCATGATAAAGTTAAGTACCATCGGAATCAGATTGATTCAATTGACAGTCTTCTGCCCAGAGGAATGAATTGTGGTTTCAATTCAATGCTTGTGCAGGTGTACACTGATGGTGCTGAGCTACCAATGCATAAAGATGATGAGAAGGTCTACGACAATGACAACATTCTCTCTATCAATCTAAGGGGAAGCTGCAACTTCATAATTAATGAGTCAAAAAGAGGAGCTGACAATGCCAGATCAATTGAAATGAAGCCAGGGGCTTACATAGTGATGTTGAGTGGCTTCCAGAAAAAGTTCAAACATGGGGTTTCTGAATGTAGAAATGGGCGTGTGAATGTCACATTCAGAAGGCATGTGAGAAGTATGAGGGGTCATGACTTAATTGATTTTGATCTTTCCAAAATTAAAAATGGGTGTTTAATTAGGTCAATTGCAAATGCTGAATGCAGAGGACTGAATCAAGTTGTCCAGGCCTTGATTAGAAAGGACAGAACCTTCTGGAGTGATTGGATTCACTCAGGGCAGGGGGGAACAATAGATGATCTGGTTAAGGCCGCCACTGAGCTTCACTTCTCATTTGACTTAATCACTGAAAAAGGGTGTGAATCCTTCAAAAATTCTGGGCCAAAGTTCACATTCCAACTCAAAGATGGACATTTCGAAAGCATCAATGAAAGACCATCATGTGTGGAAATGACCTTCCTGAACATGAAATCAAAAGGAAGCAGCAAAGATAGGAGGAGCATTGGAAAGTTGAGGTTTGAACACATGAATGAAACCACTTTTGAGATCGTTGGAGAGTTTGCTGCAATCCTCAAAAGATCATTCATGGAGAGAACAACAGGTCTAATCCTCTCTGAATGTTATGGCTCAGCATGCAAGAACCTTGAAGACTTACAAATAGATCCAAACAGTCAATTTGAAAAAGAAATTGACTTCATATGTGGTTTTGCAGGATCCGGGAAAAGCTTTTCAATTCAATGCAAACTTGCATCGGAACCTAAAGCTGATTTCTTGGTTATATGTCCCAGGAATGAACTTAAAAAAGATTGGCTTGAAAAGGTCAATTGTAATGAGAAGAAAGTGAGGACATTTGAAGTGGCTCTGACACTAAATCTTTCAAAAATTGAACTGATCGTGATAGACGAGCTGGGCTTGTTTCCTAATGGATACCTCGATCTGCTGTGTCTAATGTTGATCAATCAAGGGAATTACTCCTGTCAGGTGATATGTTTGTTCGACCCCTTACAGGCAAGGTACCATAGCGATCTTGATGACTCCCTTCTGGATTTTCAACATGACTGTGATAGGTTGGTCACTGACTGTGAGTATCTGTACCTCGCAGAAAGCAGAAGATTGTCAAGCAAATTCTTTGGGGCCTTTTTCCCAGACATTCACCTACATAACGAGGGGAGGGAGGATTTTGGCATGACAATATATGACAGTGTTGTCGTGGCAGTGAATGAAATGAAGAAGAAGGAAACCCCGCTTGACTTGGTGCTGGTCGCTTCAAGGGATGAAAAAAAAGCATTGGCAACATCCGTTCGAACCTTGACATTTGGAGAAGCACAGGGGCTTACAGTGAACTACGCCTGCATTGTGCTCTCTGAATATTCAGAAAAGCAAGATGACTTACGATGGATGGTGGCGCTAACAAGGGCAAGGATCAAAATAATTTTTGTGTGCATGTATAGAGGTGGTTCAAGCTGCTTTCTACAAAACAATTCATCTAGGTTAATAGGTCTGTTCATGAGACAATCACCCATGACAATAAACAGGATGAAGCTGATGGTCAAGGGCGATTTGATACCTTTCAGAAAGACGATAGGTTGTTCGGACGAGGTGGATAGAGAAGAAAGGCTAGAAGGGGACCCCTTTCTCAAACCACTTATTTTCCTTGGAAGCAGGATCAACTCAGAGCAAGTTGAAGTGCTGGAGCCAGAAGTTGTTGAACCAATTGAAATGACGCATATTCCACTACCTCCAAGTCACTTTGATCAAAGCATCAATTTTGACAGAATCAGAGCTCGTGAGCACAGAGAATTCAAAATGAATTCAATGTGTACAAAACAGTTCTGTGAAGATTTTGAGCATTCAAAGGCCTCAGGAAAACAGATGACGTCAGGCCCTATGCGCTTCGAGGCAATTTACCCAAGACATAAAGCAGATGACGATCTCACCTTCTGGATGGCTGTTAAGAAGAGACTGCGTTTTTCTGAAGAGTTTGTTGAAAGGGCAAAACTCAAAGAGGCAATGGGGGTTGGAGGTCTGTTGTATTCCAATCTTAAAGAGACATTAAATTTGAAATTCAATTGGGATCAGAGCCTCCTTGACGAATGTGTCAATGACTTTGAAGAGAAGAAGCTTAGCAAAAGCAAGGCAACTCTACAAGCTCATAGCTCAAGATCTGACTCAGACTGGAAATTGGACCACATCTTTCTATTTATGAAATCTCAATTGTGTACAAAATATGAGAAGCAGTACGTAGACGCAAAAGCTGGACAGACATTGGCATGTTTTGCGCACTGCATTCTGGTTAAATTTGCACCCTACTGCAGATATATGGAAAAGCAATTGAGGAGTCAATTTCCGGATAACATATACATTCACTCAGGAAAGAACTTCAATGATCTTAATCAGTGGGTTAAAGAGAACATGAAGGGGAAGGAATGTATAGAGTCAGACTATGAAGCGTTCGATGCGAGTCAAGATGAATACATACTGGCCTTTGAGATATGCCTCATGGAGGATATGGGGATGCCAACTTGGTTCATCAATGATTATATAGACCTTAAATGCACACTCGGGTGCAAATTGGGCCATTTTGCCATTATGAGGTTCACTGGGGAGTTTAGCACCTTTCTATTCAACACACTGGCAAACATGGCCTTCACGTATGCCAGATATGATTGTGATGCATCAACTCCAATTGCCTTTGCTGGGGATGACATGTGCATGCTTGATAACTGTGCTGAAACTGACAAATTCGAAGGAATTTTTGAGAAAATATCACTGAAGGCGAAGGTTTTGAGGTCATGTACACCCATGTTTTGTGGGTGGAATTTATGTAAGCATGGGATCTTTAAGGAACCAGCTCTAGTTTACAACAGATTCATGGTGGCTCAGGAAAGAGGTAACGTGGAAGAATGCCTTGAGAACTACGCAATAGAGGTATCCTATGCTTACATGTTAGGTGAGAAGCTCTATGACTTTTTGAAAGAAGAAGAGAGGATTAACTACCATCAAAGTGTTGTGAGGTTCATAATCAAAAGAGCAGATAGACTTAAAACAAAGGTGCGACTTCTGTATACCAGTGATGGCAAAGGCAATTAGGGTCAAAAGTCTCACCAATCGATTGGAGGTTGACAAGTCTTTGCTCAACTCCAATGAGGTCTCAGCTTTGTACGGCGGCGCTTTCGCACCACTAGTATTCAAAGATGAAGTCAAAATGGTGATTCCTGGCAATCTATTAGGTGGGCCAATTCGTTTGCAAGCAAATATACTCACCAAATCGAGACTTGAGAAAATTCGCAGTCAGAAGTTCAAAGGGAATTCCTGTGCCTACCTGCATCTTGGGGTGGTTACTATTGTCATACAATCACTATTGGTGTCCGGAAATGAAAATGTCAAAGGCAGATGCTCACTGGTTGACCTCTCAAGAGGCTCCGAGATAACTGGGCTTATTGACAAATTCAAGTTTAGTTTTACCAAGAGTGAACCATTCGCAGCAAAGATGTTAACAATAAATGCAGCAATTGATATTGATTGCGAGGTATCTGCTGGGAGTATTCAAGCCCTTCTTGAGGTCGAGGGCATTGATGTAAGATCTGAAAGAAGTGTCTTAGCCATCACCACCGGCATAACCTGTATTCCAACCAACTCCATGGTGATGCTACCAGGCTTAAAGAGGGAAACCCCAAAATTTGCAATCGCAAATGTTTACAATGTTCCTGATGAAGACCCGATTGAATGCGAGGCATTCAATAGGCTGTTCGGAGCTGCCAATCCAAAATTGATCGACCTAGGTAGTGAAACTGTATTGGAAGAAGGGAAAAGGTTTGGTCTATGGGGCCCTGTTGTGAAACCAGTGCACAGGAGGAAGCTTGTAACAAAAGGCATCATTAAGGATCATATGAGCCAGATTATGTCAGGCCCTTCCAAAGTTTTGAAAATAGAAGAAGGCTTGAAGAGATCAAACTCATTACGTGTTGAAGATGTCTGCAAAACTAGCGAAGAAGAGGCTGATACACGACGAAGTTTCGGAATGGATTTTCAGGAGCTTCGTGGATCCGGAGAATTCAATGGGGGTTTGGTTGGTGAATGCTGGGAACCAAAGAGTTCAGCTGAATTTAAACCAACAGGAGCAAAAATCAAGAGTTCAAAACAGTCGACTCCGGACGATTTTTGGCAACATAGCAGATCACTCAGCAGGGCCAGCAACAGTGTACCCGTCAATCAGTGTAAGTTATCAAGTGATGAACATTCAGGGAATCGAGGGTGTTGCACAGATGGATGGAAATTTCAATCTGAGAACATTGGTGGAAAATCTGAAGACCTTCCTTCTGACCAGCCAGGATCCTCAGCTCAACACTGCAACATTAAGGGAGGTTTGCCGGAGCTTTGCAAACTACGCCCTTGAGTACTACATGGAAGACCCCGATAGAATGTCGAATCTAGCTGACAAAATGCCACAACTAGCTCTGCAGGCGAGGGAGGTTATGTTTGACTTTTCTGATGGAATAAGTCAGCAATATTTGAGGGGTTTTCCAATGAGGGCTAAGGTGATACAGGAATTGAATAGCAGGCTTCTGCAGTCCACTGGCACCAAGGCTGTGTTTGAAGCAAAGGGGACTATTGAGTCCTCAGTTAATTTGATAGTTTAGAAACTATCTAGGCTTTGTATGTTGAGTGCTAAAAGTTCAACATATACCTCATAAGTCAGATTTATCTGCTCAGGTAAGTTTCAACCTCTTTGTATTTAAAGAGTGGCCGAATGAGTGCATGCTCATGTTCGGAGACCAGCTTCCCAGCTTTATCAAATATTATGACTTAAGTATTAATAGGGATGTCTTTTATGAATATTTATG"
                      }
                    ],
                    "source_name": "16SP042_A",
                    "source_type": "internal"
                  }
                ],
                "issues": null,
                "last_indexed_version": 0,
                "lower_name": "betaflexivirus from camelia #1",
                "name": "Betaflexivirus from Camelia #1",
                "reference": {
                  "id": "pat6xdn3"
                },
                "remote": {
                  "id": "5ce8b98a"
                },
                "schema": [],
                "user": {
                  "id": "igboyes"
                },
                "verified": true,
                "version": 0
              },
              "id": "1wfc5x6e.removed",
              "index": {
                "id": "s7frhn8n",
                "version": 1
              },
              "method_name": "remove",
              "otu": {
                "id": "1wfc5x6e",
                "name": "Betaflexivirus from Camelia #1",
                "version": "removed"
              },
              "reference": {
                "id": "pat6xdn3"
              },
              "user": {
                "administrator": true,
                "handle": "igboyes",
                "id": "igboyes"
              }
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "hmms",
      "endpoints": [
        {
          "description": "Lists profile hidden Markov model (HMM) annotations that are used in Virtool for\nnovel virus prediction.\n\nProviding a search term will return HMMs with full or partial matches in the\n`names` attribute.\n\nEach HMM annotation is generated from numerous public viral protein sequences.\nThe top three most common names in the protein records are combined into the\n`names` attribute.",
          "method": "get",
          "parameters": [],
          "path": "/hmms",
          "title": "Find HMMs",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Lists the installation status of the HMM data. Contains the following\nfields:\n\n| Field      | Type          | Description                                               |\n| :--------- | :------------ | :-------------------------------------------------------- |\n| `errors`   | array[string] | An array of any errors in the HMM data                    |\n| `installed`| object        | A description of the currently installed HMM release      |\n| `task.id`  | integer       | The `id` the task responsible for installing the HMM data |\n| `release`  | object        | A description of the latest available release             |\n\n**Installed HMM data cannot currently be updated**.",
          "method": "get",
          "parameters": [],
          "path": "/hmms/status",
          "title": "Get HMM status",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Fetches the latest release for the HMM data.",
          "method": "get",
          "parameters": [],
          "path": "/hmms/status/release",
          "title": "Get the latest HMM release",
          "errors": [
            {
              "status": "502",
              "description": "Cannot reach GitHub"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Lists all updates applied to the HMM collection.",
          "method": "get",
          "parameters": [],
          "path": "/hmms/status/updates",
          "title": "List updates",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Installs the latest official HMM database from GitHub.",
          "method": "post",
          "parameters": [],
          "path": "/hmms/status/updates",
          "title": "Install HMMs",
          "errors": [
            {
              "status": "400",
              "description": "Target release does not exist"
            },
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Fetches the details for an HMM annotation.",
          "method": "get",
          "parameters": [],
          "path": "/hmms/{hmm_id}",
          "title": "Get an HMM",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "indexes",
      "endpoints": [
        {
          "description": "Lists all existing indexes.",
          "method": "get",
          "parameters": [],
          "path": "/indexes",
          "title": "Find indexes",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Fetches the details for an index.",
          "method": "get",
          "parameters": [],
          "path": "/indexes/{index_id}",
          "title": "Get an index",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "change_count": 2,
              "contributors": [
                {
                  "count": 1,
                  "id": "fred"
                },
                {
                  "count": 3,
                  "id": "igboyes"
                }
              ],
              "created_at": "2015-10-06T20:00:00Z",
              "files": [],
              "has_files": true,
              "id": "foo",
              "job": {
                "id": "foo"
              },
              "manifest": [],
              "modified_otu_count": 2,
              "otus": [
                {
                  "change_count": 1,
                  "id": "kjs8sa99",
                  "name": "Foo"
                },
                {
                  "change_count": 3,
                  "id": "zxbbvngc",
                  "name": "Test"
                }
              ],
              "ready": false,
              "reference": {
                "id": "foo"
              },
              "user": {
                "administrator": false,
                "handle": "leeashley",
                "id": "bf1b993c"
              },
              "version": 0
            },
            "status": "200"
          }
        },
        {
          "description": "Downloads files relating to a given index.",
          "method": "get",
          "parameters": [],
          "path": "/indexes/{index_id}/files/{filename}",
          "title": "Download index files",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Lists history changes for a specific index.",
          "method": "get",
          "parameters": [],
          "path": "/indexes/{index_id}/history",
          "title": "List history",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": [
              {
                "created_at": "2022-01-28T23:28:53.881000Z",
                "description": "Removed Betaflexivirus from Camelia #1 (BFV_CAM1)",
                "id": "1wfc5x6e.removed",
                "index": {
                  "id": "s7frhn8n",
                  "version": 1
                },
                "method_name": "remove",
                "otu": {
                  "id": "1wfc5x6e",
                  "name": "Betaflexivirus from Camelia #1",
                  "version": 4
                },
                "reference": {
                  "id": "pat6xdn3"
                },
                "user": {
                  "administrator": true,
                  "handle": "igboyes",
                  "id": "igboyes"
                }
              }
            ],
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "instance_message",
      "endpoints": [
        {
          "description": "Fetches the active administrative instance message.",
          "method": "get",
          "parameters": [],
          "path": "/instance_message",
          "title": "Get the administrative instance message",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Updates the existing active administrative instance message.",
          "method": "patch",
          "parameters": [
            {
              "title": "Active",
              "type": "boolean",
              "name": "active",
              "required": false
            },
            {
              "$ref": "#/components/schemas/MessageColor",
              "name": "color",
              "required": false
            },
            {
              "title": "Message",
              "type": "string",
              "name": "message",
              "required": false
            }
          ],
          "path": "/instance_message",
          "title": "Update the administrative instance message",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            },
            {
              "status": "409",
              "description": "No active message set"
            }
          ],
          "response": {
            "example": {
              "active": true,
              "color": "red",
              "created_at": "2022-11-24T19:40:03.320000Z",
              "id": 3,
              "message": "Changed the third instance message",
              "updated_at": "2022-11-24T19:40:03.320000Z",
              "user": {
                "administrator": true,
                "handle": "ianboyes",
                "id": "ian"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Creates a new administrative instance message.",
          "method": "put",
          "parameters": [
            {
              "$ref": "#/components/schemas/MessageColor",
              "name": "color",
              "required": true
            },
            {
              "title": "Message",
              "type": "string",
              "name": "message",
              "required": true
            }
          ],
          "path": "/instance_message",
          "title": "Create an administrative instance message",
          "errors": [],
          "response": {
            "example": {
              "active": true,
              "color": "yellow",
              "created_at": "2022-11-24T19:40:03.320000Z",
              "id": 3,
              "message": "Third instance message",
              "updated_at": "2022-11-24T19:40:03.320000Z",
              "user": {
                "administrator": true,
                "handle": "ianboyes",
                "id": "ian"
              }
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "jobs",
      "endpoints": [
        {
          "description": "Lists jobs on the instance.\n\nJobs can be filtered by their current ``state`` by providing desired states as\nquery parameters.\n\n**Archived jobs are not currently returned from the API**.",
          "method": "get",
          "parameters": [],
          "path": "/jobs",
          "title": "Find jobs",
          "errors": [
            {
              "status": "400",
              "description": "Invalid query"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Sets the archived field on job documents.",
          "method": "patch",
          "parameters": [
            {
              "$ref": "#/components/schemas/ArchiveJobSchema",
              "name": "update",
              "required": true
            }
          ],
          "path": "/jobs",
          "title": "Update archived field",
          "errors": [
            {
              "status": "400",
              "description": "Invalid archived field"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Fetches the details for a job.",
          "method": "get",
          "parameters": [],
          "path": "/jobs/{job_id}",
          "title": "Get a job",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "acquired": true,
              "archived": false,
              "args": {
                "analysis_id": "rr8iryfy",
                "index_id": "u3lm1rk8",
                "ref_id": "d19exr83",
                "sample_id": "4eynwmic",
                "sample_name": "21BP088",
                "subtractions": [
                  "0nhpi36p"
                ]
              },
              "created_at": "2022-07-08T18:37:44.936000Z",
              "id": "splu0pq3",
              "progress": 100,
              "rights": {
                "analyses": {
                  "modify": [
                    "rr8iryfy"
                  ],
                  "read": [
                    "rr8iryfy"
                  ],
                  "remove": [
                    "rr8iryfy"
                  ]
                },
                "indexes": {
                  "read": [
                    "u3lm1rk8"
                  ]
                },
                "references": {
                  "read": [
                    "d19exr83"
                  ]
                },
                "samples": {
                  "read": [
                    "4eynwmic"
                  ]
                },
                "subtractions": {
                  "read": [
                    "0nhpi36p"
                  ]
                }
              },
              "stage": "",
              "state": "complete",
              "status": [
                {
                  "error": null,
                  "progress": 0,
                  "stage": null,
                  "state": "waiting",
                  "step_description": null,
                  "step_name": null,
                  "timestamp": "2022-07-08T18:37:44.936000Z"
                },
                {
                  "error": null,
                  "progress": 3,
                  "stage": null,
                  "state": "preparing",
                  "step_description": null,
                  "step_name": null,
                  "timestamp": "2022-07-08T18:41:20.647000Z"
                },
                {
                  "error": null,
                  "progress": 16,
                  "stage": "eliminate_otus",
                  "state": "running",
                  "step_description": "Map sample reads to reference OTUs and discard.",
                  "step_name": "Eliminate Otus",
                  "timestamp": "2022-07-08T18:48:11.287000Z"
                },
                {
                  "error": null,
                  "progress": 33,
                  "stage": "eliminate_subtraction",
                  "state": "running",
                  "step_description": "Map remaining reads to the subtraction and discard.",
                  "step_name": "Eliminate Subtraction",
                  "timestamp": "2022-07-08T19:00:24.291000Z"
                },
                {
                  "error": null,
                  "progress": 50,
                  "stage": "reunite_pairs",
                  "state": "running",
                  "step_description": "Reunite paired reads after elimination.",
                  "step_name": "Reunite Pairs",
                  "timestamp": "2022-07-08T19:02:53.618000Z"
                },
                {
                  "error": null,
                  "progress": 66,
                  "stage": "assemble",
                  "state": "running",
                  "step_description": "Assemble reads using SPAdes.",
                  "step_name": "Assemble",
                  "timestamp": "2022-07-08T19:02:53.644000Z"
                },
                {
                  "error": null,
                  "progress": 83,
                  "stage": "process_fasta",
                  "state": "running",
                  "step_description": "Find ORFs in the assembled contigs.",
                  "step_name": "Process Fasta",
                  "timestamp": "2022-07-08T19:07:22.352000Z"
                },
                {
                  "error": null,
                  "progress": 100,
                  "stage": "vfam",
                  "state": "running",
                  "step_description": "Search for viral motifs in ORF translations.",
                  "step_name": "Vfam",
                  "timestamp": "2022-07-08T19:07:44.531000Z"
                },
                {
                  "error": null,
                  "progress": 100,
                  "stage": "",
                  "state": "complete",
                  "step_description": null,
                  "step_name": null,
                  "timestamp": "2022-07-08T19:13:04.293000Z"
                }
              ],
              "user": {
                "administrator": false,
                "handle": "jonathan",
                "id": "88yksx67"
              },
              "workflow": "nuvs"
            },
            "status": "200"
          }
        },
        {
          "description": "Cancels a job using its 'job id'.",
          "method": "put",
          "parameters": [],
          "path": "/jobs/{job_id}/cancel",
          "title": "Cancel a job",
          "errors": [
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            },
            {
              "status": "409",
              "description": "Not cancellable"
            }
          ],
          "response": {
            "example": {
              "acquired": true,
              "archived": false,
              "args": {
                "analysis_id": "rr8iryfy",
                "index_id": "u3lm1rk8",
                "ref_id": "d19exr83",
                "sample_id": "4eynwmic",
                "sample_name": "21BP088",
                "subtractions": [
                  "0nhpi36p"
                ]
              },
              "created_at": "2022-07-08T18:37:44.936000Z",
              "id": "splu0pq3",
              "progress": 100,
              "rights": {
                "analyses": {
                  "modify": [
                    "rr8iryfy"
                  ],
                  "read": [
                    "rr8iryfy"
                  ],
                  "remove": [
                    "rr8iryfy"
                  ]
                },
                "indexes": {
                  "read": [
                    "u3lm1rk8"
                  ]
                },
                "references": {
                  "read": [
                    "d19exr83"
                  ]
                },
                "samples": {
                  "read": [
                    "4eynwmic"
                  ]
                },
                "subtractions": {
                  "read": [
                    "0nhpi36p"
                  ]
                }
              },
              "stage": "",
              "state": "complete",
              "status": [
                {
                  "error": null,
                  "progress": 0,
                  "stage": null,
                  "state": "waiting",
                  "step_description": null,
                  "step_name": null,
                  "timestamp": "2022-07-08T18:37:44.936000Z"
                },
                {
                  "error": null,
                  "progress": 3,
                  "stage": null,
                  "state": "preparing",
                  "step_description": null,
                  "step_name": null,
                  "timestamp": "2022-07-08T18:41:20.647000Z"
                },
                {
                  "error": null,
                  "progress": 16,
                  "stage": "eliminate_otus",
                  "state": "running",
                  "step_description": "Map sample reads to reference OTUs and discard.",
                  "step_name": "Eliminate Otus",
                  "timestamp": "2022-07-08T18:48:11.287000Z"
                },
                {
                  "error": null,
                  "progress": 33,
                  "stage": "eliminate_subtraction",
                  "state": "running",
                  "step_description": "Map remaining reads to the subtraction and discard.",
                  "step_name": "Eliminate Subtraction",
                  "timestamp": "2022-07-08T19:00:24.291000Z"
                },
                {
                  "error": null,
                  "progress": 50,
                  "stage": "reunite_pairs",
                  "state": "running",
                  "step_description": "Reunite paired reads after elimination.",
                  "step_name": "Reunite Pairs",
                  "timestamp": "2022-07-08T19:02:53.618000Z"
                },
                {
                  "error": null,
                  "progress": 66,
                  "stage": "assemble",
                  "state": "running",
                  "step_description": "Assemble reads using SPAdes.",
                  "step_name": "Assemble",
                  "timestamp": "2022-07-08T19:02:53.644000Z"
                },
                {
                  "error": null,
                  "progress": 83,
                  "stage": "process_fasta",
                  "state": "running",
                  "step_description": "Find ORFs in the assembled contigs.",
                  "step_name": "Process Fasta",
                  "timestamp": "2022-07-08T19:07:22.352000Z"
                },
                {
                  "error": null,
                  "progress": 100,
                  "stage": "vfam",
                  "state": "running",
                  "step_description": "Search for viral motifs in ORF translations.",
                  "step_name": "Vfam",
                  "timestamp": "2022-07-08T19:07:44.531000Z"
                },
                {
                  "error": null,
                  "progress": 100,
                  "stage": "",
                  "state": "complete",
                  "step_description": null,
                  "step_name": null,
                  "timestamp": "2022-07-08T19:13:04.293000Z"
                }
              ],
              "user": {
                "administrator": false,
                "handle": "jonathan",
                "id": "88yksx67"
              },
              "workflow": "nuvs"
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "labels",
      "endpoints": [
        {
          "description": "Lists all sample labels on the instance. Pagination is not supported; all labels\nare included in the response.",
          "method": "get",
          "parameters": [],
          "path": "/labels",
          "title": "List labels",
          "errors": [
            {
              "status": "400",
              "description": "Invalid query"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new sample label.\n\nThe color must be a valid hexadecimal code.",
          "example": {
            "color": "#374151",
            "description": "dsRNA/binding protein",
            "name": "Binding protein"
          },
          "method": "post",
          "parameters": [
            {
              "default": "#A0AEC0",
              "description": "color of the label",
              "title": "Color",
              "type": "string",
              "name": "color",
              "required": false
            },
            {
              "default": "",
              "description": "description of the document",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "unique name for the label document",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            }
          ],
          "path": "/labels",
          "title": "Create a label",
          "errors": [
            {
              "status": "400",
              "description": "Invalid Input"
            }
          ],
          "response": {
            "example": {
              "color": "#374151",
              "count": 0,
              "description": "dsRNA/binding protein",
              "id": 23,
              "name": "Binding protein"
            },
            "status": "201"
          }
        },
        {
          "description": "Deletes an existing sample label.",
          "method": "delete",
          "parameters": [],
          "path": "/labels/{label_id}",
          "title": "Delete a label",
          "errors": []
        },
        {
          "description": "Fetches the details for a sample label.",
          "method": "get",
          "parameters": [],
          "path": "/labels/{label_id}",
          "title": "Get a label",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "color": "#6B7280",
              "count": 0,
              "description": "dsRNA/Ab",
              "id": 22,
              "name": "Ab"
            },
            "status": "200"
          }
        },
        {
          "description": "Updates an existing sample label.",
          "example": {
            "color": "#93C5FD",
            "description": "Field samples from 2022 harvest",
            "name": "Blueberry 2022"
          },
          "method": "patch",
          "parameters": [
            {
              "description": "A hexadecimal color for the label",
              "title": "Color",
              "type": "string",
              "name": "color",
              "required": false
            },
            {
              "description": "A longer description for the label",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "A short display name",
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            }
          ],
          "path": "/labels/{label_id}",
          "title": "Update a label",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "color": "#93C5FD",
              "count": 0,
              "description": "Field samples from 2022 harvest",
              "id": 22,
              "name": "Blueberry 2022"
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "ml",
      "endpoints": [
        {
          "description": "Lists all available machine learning models.\n\nThe `last_checked_at` field is the time at which the list of models was last\nrefreshed from www.virtool.ca.",
          "method": "get",
          "parameters": [],
          "path": "/ml",
          "title": "List models",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Fetches the details of a machine learning model, including all of its releases.\n\nThe `releases` field comprises a list of all releases of the model that can be\ndownloaded.",
          "method": "get",
          "parameters": [],
          "path": "/ml/{model_id}",
          "title": "Get a model",
          "errors": [
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Fetches the details of a machine learning model release.",
          "method": "get",
          "parameters": [],
          "path": "/ml/{model_id}/releases/{release_id}",
          "title": "Get a model release",
          "errors": [
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Downloads the archived model release.",
          "method": "get",
          "parameters": [],
          "path": "/ml/{model_id}/releases/{release_id}/model.tar.gz",
          "title": "Download a model release",
          "errors": [
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "otus",
      "endpoints": [
        {
          "description": "Deletes and OTU and its associated isolates and sequences.",
          "method": "delete",
          "parameters": [],
          "path": "/otus/{otu_id}",
          "title": "Delete an OTU",
          "errors": [
            {
              "status": "401",
              "description": ""
            },
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "204"
          }
        },
        {
          "description": "Fetches the details of an OTU.\n\nA FASTA file containing all sequences in the OTU can be downloaded by appending\n`.fa` to the path.",
          "method": "get",
          "parameters": [],
          "path": "/otus/{otu_id}",
          "title": "Get an OTU",
          "errors": [
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Checks to make sure the supplied OTU name and abbreviation don't already exist\nin the parent reference.",
          "method": "patch",
          "parameters": [
            {
              "title": "Abbreviation",
              "type": "string",
              "name": "abbreviation",
              "required": false
            },
            {
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "items": {
                "$ref": "#/components/schemas/OTUSegment"
              },
              "title": "Schema",
              "type": "array",
              "name": "schema",
              "required": false
            }
          ],
          "path": "/otus/{otu_id}",
          "title": "Update an OTU",
          "errors": [
            {
              "status": "400",
              "description": ""
            },
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Lists all the isolates and sequences for an OTU.",
          "method": "get",
          "parameters": [],
          "path": "/otus/{otu_id}/isolates",
          "title": "List isolates",
          "errors": []
        },
        {
          "description": "Creates an isolate on the OTU specified by `otu_id`.",
          "method": "post",
          "parameters": [
            {
              "default": false,
              "title": "Default",
              "type": "boolean",
              "name": "default",
              "required": false
            },
            {
              "default": "",
              "title": "Source Name",
              "type": "string",
              "name": "source_name",
              "required": false
            },
            {
              "default": "",
              "title": "Source Type",
              "type": "string",
              "name": "source_type",
              "required": false
            }
          ],
          "path": "/otus/{otu_id}/isolates",
          "title": "Create an isolate",
          "errors": [
            {
              "status": "401",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Deletes an isolate using its 'otu id' and 'isolate id'.",
          "method": "delete",
          "parameters": [],
          "path": "/otus/{otu_id}/isolates/{isolate_id}",
          "title": "Delete an isolate",
          "errors": []
        },
        {
          "description": "Fetches the details of an isolate.\n\nA FASTA file containing all sequences in the isolate can be downloaded by\nappending `.fa` to the path.",
          "method": "get",
          "parameters": [],
          "path": "/otus/{otu_id}/isolates/{isolate_id}",
          "title": "Get an isolate",
          "errors": [
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Updates an isolate using 'otu_id' and 'isolate_id'.",
          "method": "patch",
          "parameters": [
            {
              "title": "Source Name",
              "type": "string",
              "name": "source_name",
              "required": false
            },
            {
              "title": "Source Type",
              "type": "string",
              "name": "source_type",
              "required": false
            }
          ],
          "path": "/otus/{otu_id}/isolates/{isolate_id}",
          "title": "Update an isolate",
          "errors": [
            {
              "status": "401",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Lists the sequences for an isolate.",
          "method": "get",
          "parameters": [],
          "path": "/otus/{otu_id}/isolates/{isolate_id}/sequences",
          "title": "List sequences",
          "errors": [
            {
              "status": "401",
              "description": ""
            },
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new sequence for an isolate identified by `otu_id` and `isolate_id`.",
          "method": "post",
          "parameters": [
            {
              "minLength": 1,
              "title": "Accession",
              "type": "string",
              "name": "accession",
              "required": true
            },
            {
              "minLength": 1,
              "title": "Definition",
              "type": "string",
              "name": "definition",
              "required": true
            },
            {
              "default": "",
              "title": "Host",
              "type": "string",
              "name": "host",
              "required": false
            },
            {
              "title": "Segment",
              "type": "string",
              "name": "segment",
              "required": false
            },
            {
              "minLength": 1,
              "pattern": "^[ATCGNRYKM]+$",
              "title": "Sequence",
              "type": "string",
              "name": "sequence",
              "required": true
            },
            {
              "title": "Target",
              "type": "string",
              "name": "target",
              "required": false
            }
          ],
          "path": "/otus/{otu_id}/isolates/{isolate_id}/sequences",
          "title": "Create a sequence",
          "errors": [
            {
              "status": "400",
              "description": ""
            },
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Deletes the specified sequence.",
          "method": "delete",
          "parameters": [],
          "path": "/otus/{otu_id}/isolates/{isolate_id}/sequences/{sequence_id}",
          "title": "Delete a sequence",
          "errors": []
        },
        {
          "description": "Fetches the details for a sequence.\n\nA FASTA file containing the nucelotide sequence can be downloaded by appending\n`.fa` to the path.",
          "method": "get",
          "parameters": [],
          "path": "/otus/{otu_id}/isolates/{isolate_id}/sequences/{sequence_id}",
          "title": "Get a sequence",
          "errors": []
        },
        {
          "description": "Updates a sequence using its 'otu id', 'isolate id' and 'sequence id'.",
          "method": "patch",
          "parameters": [
            {
              "minLength": 1,
              "title": "Accession",
              "type": "string",
              "name": "accession",
              "required": false
            },
            {
              "minLength": 1,
              "title": "Definition",
              "type": "string",
              "name": "definition",
              "required": false
            },
            {
              "title": "Host",
              "type": "string",
              "name": "host",
              "required": false
            },
            {
              "title": "Segment",
              "type": "string",
              "name": "segment",
              "required": false
            },
            {
              "minLength": 1,
              "pattern": "^[ATCGNRYKM]+$",
              "title": "Sequence",
              "type": "string",
              "name": "sequence",
              "required": false
            },
            {
              "title": "Target",
              "type": "string",
              "name": "target",
              "required": false
            }
          ],
          "path": "/otus/{otu_id}/isolates/{isolate_id}/sequences/{sequence_id}",
          "title": "Update a sequence",
          "errors": [
            {
              "status": "400",
              "description": ""
            },
            {
              "status": "401",
              "description": ""
            },
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "refs",
      "endpoints": [
        {
          "description": "Lists references that match the find term.",
          "method": "get",
          "parameters": [],
          "path": "/refs",
          "title": "Find references",
          "errors": [],
          "response": {
            "example": {
              "documents": [
                {
                  "cloned_from": {
                    "id": "pat6xdn3",
                    "name": "Plant Viruses"
                  },
                  "created_at": "2022-01-28T23:42:48.321000Z",
                  "data_type": "genome",
                  "groups": [
                    {
                      "build": false,
                      "created_at": "2022-06-10T20:00:34.129000Z",
                      "id": "sidney",
                      "modify": false,
                      "modify_otu": false,
                      "remove": false
                    }
                  ],
                  "id": "d19exr83",
                  "internal_control": null,
                  "latest_build": {
                    "created_at": "2022-07-05T17:41:51.857000Z",
                    "has_json": false,
                    "id": "u3lm1rk8",
                    "user": {
                      "administrator": true,
                      "handle": "mrott",
                      "id": "ihvze2u9"
                    },
                    "version": 14
                  },
                  "name": "New Plant Viruses",
                  "organism": "virus",
                  "otu_count": 2102,
                  "task": {
                    "id": 331
                  },
                  "unbuilt_change_count": 4,
                  "user": {
                    "id": "igboyes"
                  },
                  "users": [
                    {
                      "build": true,
                      "id": "igboyes",
                      "modify": true,
                      "modify_otu": true,
                      "remove": true
                    }
                  ]
                }
              ],
              "found_count": 2,
              "official_installed": true,
              "page": 1,
              "page_count": 1,
              "per_page": 25,
              "total_count": 2
            },
            "status": "200"
          }
        },
        {
          "description": "Creates an empty reference.",
          "example": {
            "data_type": "genome",
            "name": "Plant Viruses",
            "organism": "viruses"
          },
          "method": "post",
          "parameters": [
            {
              "description": "a valid ref_id that the new reference should be cloned from",
              "title": "Clone From",
              "type": "string",
              "name": "clone_from",
              "required": false
            },
            {
              "default": "genome",
              "description": "the sequence data type",
              "title": "Data Type",
              "type": "string",
              "name": "data_type",
              "required": false
            },
            {
              "default": "",
              "description": "a longer description for the reference",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "a valid file_id that the new reference should be imported from",
              "title": "Import From",
              "type": "string",
              "name": "import_from",
              "required": false
            },
            {
              "default": "",
              "description": "the virus name",
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "default": "",
              "description": "the organism",
              "title": "Organism",
              "type": "string",
              "name": "organism",
              "required": false
            },
            {
              "default": 11447367,
              "description": "the id of the GitHub release to install",
              "title": "Release Id",
              "type": "string",
              "name": "release_id",
              "required": false
            },
            {
              "description": "a valid GitHub slug to download and update the new reference from",
              "title": "Remote From",
              "type": "string",
              "name": "remote_from",
              "required": false
            }
          ],
          "path": "/refs",
          "title": "Create a reference",
          "errors": [
            {
              "status": "400",
              "description": "Source reference does not exist"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "502",
              "description": "Could not reach GitHub"
            }
          ],
          "response": {
            "example": {
              "cloned_from": {
                "id": "pat6xdn3",
                "name": "Plant Viruses"
              },
              "contributors": [
                {
                  "administrator": true,
                  "count": 6,
                  "handle": "reece",
                  "id": "hjol9wdt"
                },
                {
                  "administrator": true,
                  "count": 7906,
                  "handle": "mrott",
                  "id": "ihvze2u9"
                },
                {
                  "administrator": true,
                  "count": 1563,
                  "handle": "igboyes",
                  "id": "igboyes"
                },
                {
                  "administrator": true,
                  "count": 2483,
                  "handle": "jasper",
                  "id": "1kg24j7t"
                }
              ],
              "created_at": "2022-01-28T23:42:48.321000Z",
              "data_type": "genome",
              "description": "",
              "groups": [
                {
                  "build": false,
                  "created_at": "2022-06-10T20:00:34.129000Z",
                  "id": "sidney",
                  "modify": false,
                  "modify_otu": false,
                  "remove": false
                }
              ],
              "id": "d19exr83",
              "internal_control": null,
              "latest_build": {
                "created_at": "2022-07-05T17:41:51.857000Z",
                "has_json": false,
                "id": "u3lm1rk8",
                "user": {
                  "administrator": true,
                  "handle": "mrott",
                  "id": "ihvze2u9"
                },
                "version": 14
              },
              "name": "Plant Viruses",
              "organism": "viruses",
              "otu_count": 2102,
              "restrict_source_types": false,
              "source_types": [
                "isolate",
                "strain"
              ],
              "task": {
                "id": 331
              },
              "unbuilt_change_count": 4,
              "user": {
                "administrator": true,
                "handle": "igboyes",
                "id": "igboyes"
              },
              "users": [
                {
                  "administrator": true,
                  "build": true,
                  "handle": "igboyes",
                  "id": "igboyes",
                  "modify": true,
                  "modify_otu": true,
                  "remove": true
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Deletes a reference and its associated OTUs, history, and indexes. Deleting a\nreference does not break dependent analyses and other resources.",
          "method": "delete",
          "parameters": [],
          "path": "/refs/{ref_id}",
          "title": "Delete a reference",
          "errors": []
        },
        {
          "description": "Fetches the details of a reference.",
          "method": "get",
          "parameters": [],
          "path": "/refs/{ref_id}",
          "title": "Get a reference",
          "errors": [
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "cloned_from": {
                "id": "pat6xdn3",
                "name": "Plant Viruses"
              },
              "created_at": "2022-01-28T23:42:48.321000Z",
              "data_type": "genome",
              "groups": [
                {
                  "build": false,
                  "created_at": "2022-06-10T20:00:34.129000Z",
                  "id": "sidney",
                  "modify": false,
                  "modify_otu": false,
                  "remove": false
                }
              ],
              "id": "d19exr83",
              "internal_control": null,
              "latest_build": {
                "created_at": "2022-07-05T17:41:51.857000Z",
                "has_json": false,
                "id": "u3lm1rk8",
                "user": {
                  "administrator": true,
                  "handle": "mrott",
                  "id": "ihvze2u9"
                },
                "version": 14
              },
              "name": "New Plant Viruses",
              "organism": "virus",
              "otu_count": 2102,
              "task": {
                "id": 331
              },
              "unbuilt_change_count": 4,
              "user": {
                "id": "igboyes"
              },
              "users": [
                {
                  "build": true,
                  "id": "igboyes",
                  "modify": true,
                  "modify_otu": true,
                  "remove": true
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Updates an existing reference.",
          "example": {
            "internal_control": "ah4m5jqz",
            "name": "Regulated Pests",
            "organism": "phytoplasma"
          },
          "method": "patch",
          "parameters": [
            {
              "description": "a longer description for the reference",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "set the OTU identified by the passed id as the internal control for the reference",
              "title": "Internal Control",
              "type": "string",
              "name": "internal_control",
              "required": false
            },
            {
              "description": "the virus name",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "description": "the organism",
              "title": "Organism",
              "type": "string",
              "name": "organism",
              "required": false
            },
            {
              "description": "option to restrict source types",
              "title": "Restrict Source Types",
              "type": "boolean",
              "name": "restrict_source_types",
              "required": false
            },
            {
              "description": "source types",
              "items": {
                "minLength": 1,
                "type": "string"
              },
              "title": "Source Types",
              "type": "array",
              "name": "source_types",
              "required": false
            },
            {
              "description": "list of target sequences",
              "items": {
                "$ref": "#/components/schemas/ReferenceTargetRequest"
              },
              "title": "Targets",
              "type": "array",
              "name": "targets",
              "required": false
            }
          ],
          "path": "/refs/{ref_id}",
          "title": "Update a reference",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "cloned_from": {
                "id": "pat6xdn3",
                "name": "Plant Viruses"
              },
              "created_at": "2022-01-28T23:42:48.321000Z",
              "data_type": "genome",
              "groups": [
                {
                  "build": false,
                  "created_at": "2022-06-10T20:00:34.129000Z",
                  "id": "sidney",
                  "modify": false,
                  "modify_otu": false,
                  "remove": false
                }
              ],
              "id": "d19exr83",
              "internal_control": "ah4m5jqz",
              "latest_build": {
                "created_at": "2022-07-05T17:41:51.857000Z",
                "has_json": false,
                "id": "u3lm1rk8",
                "user": {
                  "administrator": true,
                  "handle": "mrott",
                  "id": "ihvze2u9"
                },
                "version": 14
              },
              "name": "Regulated Pests",
              "organism": "phytoplasma",
              "otu_count": 2102,
              "task": {
                "id": 331
              },
              "unbuilt_change_count": 4,
              "user": {
                "id": "igboyes"
              },
              "users": [
                {
                  "build": true,
                  "id": "igboyes",
                  "modify": true,
                  "modify_otu": true,
                  "remove": true
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Lists all groups that have access to the reference.",
          "method": "get",
          "parameters": [],
          "path": "/refs/{ref_id}/groups",
          "title": "List groups",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": [
              {
                "build": false,
                "created_at": "2022-06-10T20:00:34.129000Z",
                "id": 5,
                "modify": false,
                "modify_otu": false,
                "remove": false
              }
            ],
            "status": "200"
          }
        },
        {
          "description": "Adds a group to the reference. Groups can view, use, and modify the reference.",
          "example": {
            "group_id": 2,
            "modify_otu": true
          },
          "method": "post",
          "parameters": [
            {
              "description": "allow members to build new indexes for the reference",
              "title": "Build",
              "type": "boolean",
              "name": "build",
              "required": false
            },
            {
              "description": "the id of the group to add",
              "title": "Group Id",
              "type": "integer",
              "name": "group_id",
              "required": true
            },
            {
              "description": "allow members to modify the reference metadata and settings",
              "title": "Modify",
              "type": "boolean",
              "name": "modify",
              "required": false
            },
            {
              "description": "allow members to modify the reference’s member OTUs",
              "title": "Modify Otu",
              "type": "boolean",
              "name": "modify_otu",
              "required": false
            },
            {
              "description": "allow members to remove the reference",
              "title": "Remove",
              "type": "boolean",
              "name": "remove",
              "required": false
            }
          ],
          "path": "/refs/{ref_id}/groups",
          "title": "Add a group",
          "errors": [
            {
              "status": "400",
              "description": "Bad request"
            },
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": [
              {
                "build": false,
                "created_at": "2022-06-10T20:00:34.129000Z",
                "id": 5,
                "modify": false,
                "modify_otu": true,
                "remove": false
              }
            ],
            "status": "201"
          }
        },
        {
          "description": "Deletes a group from the reference.",
          "method": "delete",
          "parameters": [],
          "path": "/refs/{ref_id}/groups/{group_id}",
          "title": "Delete a group",
          "errors": []
        },
        {
          "description": "Fetches the details of a group that has access to the reference.",
          "method": "get",
          "parameters": [],
          "path": "/refs/{ref_id}/groups/{group_id}",
          "title": "Get a group",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "build": false,
              "created_at": "2022-06-10T20:00:34.129000Z",
              "id": 4,
              "modify": false,
              "modify_otu": false,
              "remove": false
            },
            "status": "200"
          }
        },
        {
          "description": "Updates the access rights a group has on the reference.",
          "example": {
            "build": true,
            "modify": true
          },
          "method": "patch",
          "parameters": [
            {
              "description": "allow members to build new indexes for the reference",
              "title": "Build",
              "type": "boolean",
              "name": "build",
              "required": false
            },
            {
              "description": "allow members to modify the reference metadata and settings",
              "title": "Modify",
              "type": "boolean",
              "name": "modify",
              "required": false
            },
            {
              "description": "allow members to modify the reference’s member OTUs",
              "title": "Modify Otu",
              "type": "boolean",
              "name": "modify_otu",
              "required": false
            },
            {
              "description": "allow members to remove the reference",
              "title": "Remove",
              "type": "boolean",
              "name": "remove",
              "required": false
            }
          ],
          "path": "/refs/{ref_id}/groups/{group_id}",
          "title": "Update a group",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "build": true,
              "created_at": "2022-06-10T20:00:34.129000Z",
              "id": 4,
              "modify": true,
              "modify_otu": false,
              "remove": false
            },
            "status": "200"
          }
        },
        {
          "description": "Lists changes made to OTUs in the reference.",
          "method": "get",
          "parameters": [],
          "path": "/refs/{ref_id}/history",
          "title": "List history",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "documents": [
                {
                  "created_at": "2022-01-28T23:28:53.881000Z",
                  "description": "Removed Betaflexivirus from Camelia #1 (BFV_CAM1)",
                  "id": "1wfc5x6e.removed",
                  "index": {
                    "id": "s7frhn8n",
                    "version": 1
                  },
                  "method_name": "remove",
                  "otu": {
                    "id": "1wfc5x6e",
                    "name": "Betaflexivirus from Camelia #1",
                    "version": "removed"
                  },
                  "reference": {
                    "id": "pat6xdn3"
                  },
                  "user": {
                    "administrator": true,
                    "handle": "igboyes",
                    "id": "igboyes"
                  }
                }
              ],
              "found_count": 1419,
              "page": 1,
              "page_count": 710,
              "per_page": 1,
              "total_count": 1419
            },
            "status": "200"
          }
        },
        {
          "description": "Lists indexes that have been created for the reference.",
          "method": "get",
          "parameters": [],
          "path": "/refs/{ref_id}/indexes",
          "title": "List indexes",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "change_count": 12,
              "documents": [
                {
                  "change_count": 4,
                  "created_at": "2015-10-06T20:00:00Z",
                  "has_files": true,
                  "id": "bar",
                  "job": {
                    "id": "bar"
                  },
                  "modified_otu_count": 3,
                  "ready": false,
                  "reference": {
                    "id": "bar"
                  },
                  "user": {
                    "administrator": false,
                    "handle": "leeashley",
                    "id": "bf1b993c"
                  },
                  "version": 1
                },
                {
                  "change_count": 2,
                  "created_at": "2015-10-06T20:00:00Z",
                  "has_files": true,
                  "id": "foo",
                  "job": {
                    "id": "foo"
                  },
                  "modified_otu_count": 2,
                  "ready": false,
                  "reference": {
                    "id": "foo"
                  },
                  "user": {
                    "administrator": false,
                    "handle": "leeashley",
                    "id": "bf1b993c"
                  },
                  "version": 0
                }
              ],
              "found_count": 2,
              "modified_otu_count": 3,
              "page": 1,
              "page_count": 1,
              "per_page": 25,
              "total_count": 2,
              "total_otu_count": 123
            },
            "status": "200"
          }
        },
        {
          "description": "Starts a job to rebuild the otus Bowtie2 index on disk.\n\nDoes a check to make sure there are no unverified OTUs in the collection\nand updates otu history to show the version and id of the new index.",
          "method": "post",
          "parameters": [],
          "path": "/refs/{ref_id}/indexes",
          "title": "Create an index",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "change_count": 0,
              "created_at": "2015-10-06T20:00:00Z",
              "has_files": true,
              "id": "fb085f7f",
              "job": {
                "id": "bf1b993c"
              },
              "modified_otu_count": 0,
              "ready": false,
              "reference": {
                "id": "foo"
              },
              "user": {
                "administrator": false,
                "handle": "bob",
                "id": "test"
              },
              "version": 9
            },
            "status": "201"
          }
        },
        {
          "description": "Lists OTUs by name or abbreviation. Results are paginated.",
          "method": "get",
          "parameters": [],
          "path": "/refs/{ref_id}/otus",
          "title": "Find OTUs",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "documents": [
                {
                  "abbreviation": "ABTV",
                  "id": "k77wgf8x",
                  "name": "Abaca bunchy top virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 18
                },
                {
                  "abbreviation": "AbBV",
                  "id": "7hpwj4yh",
                  "name": "Abutilon Brazil virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 4
                },
                {
                  "abbreviation": "",
                  "id": "p9ohme8k",
                  "name": "Abutilon golden mosaic Yucatan virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "AbMBoV",
                  "id": "qrspg5w3",
                  "name": "Abutilon mosaic Bolivia virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 6
                },
                {
                  "abbreviation": "AbMoBrV",
                  "id": "yb7kpm43",
                  "name": "Abutilon mosaic Brazil virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 4
                },
                {
                  "abbreviation": "AbMV",
                  "id": "8540rw7b",
                  "name": "Abutilon mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 9
                },
                {
                  "abbreviation": "",
                  "id": "3zwrpu3y",
                  "name": "Abutilon yellow mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "AcLV",
                  "id": "30n6qo2x",
                  "name": "Aconitum latent virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "",
                  "id": "x5qw901r",
                  "name": "Actinidia chlorotic ringspot associated virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 5
                },
                {
                  "abbreviation": "",
                  "id": "ss6bios9",
                  "name": "Actinidia emaravirus 2",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 13
                },
                {
                  "abbreviation": "",
                  "id": "nn5gt7db",
                  "name": "Actinidia seed borne latent virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "",
                  "id": "xo3khtnd",
                  "name": "Actinidia virus 1",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 2
                },
                {
                  "abbreviation": "AVA",
                  "id": "qg8optks",
                  "name": "Actinidia virus A",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "AVB",
                  "id": "fnhtwiux",
                  "name": "Actinidia virus B",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "AVX",
                  "id": "5uh1jzzk",
                  "name": "Actinidia virus X",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "AYV1",
                  "id": "7ag9wwrr",
                  "name": "Actinidia yellowing virus 1",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "AYV2",
                  "id": "f87f3cs7",
                  "name": "Actinidia yellowing virus 2",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "",
                  "id": "e2xpkmgy",
                  "name": "Adonis mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "",
                  "id": "3ly2pqbk",
                  "name": "Aeonium ringspot virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 0
                },
                {
                  "abbreviation": "",
                  "id": "3xa1dbt0",
                  "name": "African cassava mosaic Burkina Faso virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 5
                },
                {
                  "abbreviation": "ACMV",
                  "id": "0ommwgyh",
                  "name": "African cassava mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 9
                },
                {
                  "abbreviation": "",
                  "id": "iyw0y3ta",
                  "name": "African eggplant mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "",
                  "id": "set9w2zc",
                  "name": "African eggplant yellowing virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "AOPRV",
                  "id": "taecz4c9",
                  "name": "African oil palm ringspot virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 2
                },
                {
                  "abbreviation": "",
                  "id": "zgsytbul",
                  "name": "Agave tequilana leaf virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 2
                }
              ],
              "found_count": 2102,
              "modified_count": 1,
              "page": 1,
              "page_count": 85,
              "per_page": 25,
              "total_count": 2102
            },
            "status": "200"
          }
        },
        {
          "description": "Creates an OTU.",
          "method": "post",
          "parameters": [
            {
              "default": "",
              "title": "Abbreviation",
              "type": "string",
              "name": "abbreviation",
              "required": false
            },
            {
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            },
            {
              "items": {
                "$ref": "#/components/schemas/OTUSegment"
              },
              "title": "Schema",
              "type": "array",
              "name": "schema",
              "required": false
            }
          ],
          "path": "/refs/{ref_id}/otus",
          "title": "Create OTU",
          "errors": [
            {
              "status": "400",
              "description": ""
            },
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Fetches the latest remote reference update from GitHub.\n\nAlso updates the reference document. This is the only way of doing so without\nwaiting for an automatic refresh every 10 minutes.",
          "method": "get",
          "parameters": [],
          "path": "/refs/{ref_id}/release",
          "title": "Get latest update",
          "errors": [],
          "response": {
            "example": {
              "body": "#### Changed\r\n- add new isolates to Cucurbit chlorotic yellows virus",
              "content_type": "application/gzip",
              "download_url": "https://github.com/virtool/ref-plant-viruses/releases/download/v0.1.2/reference.json.gz",
              "etag": "W/\"b7e8a7fb0fbe0cade0d6a86c9e0d4549\"",
              "filename": "reference.json.gz",
              "html_url": "https://github.com/virtool/ref-plant-viruses/releases/tag/v0.1.2",
              "id": 11449913,
              "name": "v0.1.2",
              "newer": true,
              "published_at": "2018-06-12T21:52:33Z",
              "retrieved_at": "2018-06-14T19:52:17.465000Z",
              "size": 3699729
            },
            "status": "200"
          }
        },
        {
          "description": "Lists all updates made to the reference.",
          "method": "get",
          "parameters": [],
          "path": "/refs/{ref_id}/updates",
          "title": "List updates",
          "errors": [],
          "response": {
            "example": [
              {
                "body": "#### Fixed\r\n- fixed uploading to GitHub releases in `.travis.yml`",
                "created_at": "2018-06-14T18:37:54.242000Z",
                "filename": "reference.json.gz",
                "html_url": "https://github.com/virtool/ref-plant-viruses/releases/tag/v0.1.1",
                "id": 11447367,
                "name": "v0.1.1",
                "published_at": "2018-06-12T19:20:57Z",
                "ready": true,
                "size": 3695872,
                "user": {
                  "id": "igboyes"
                }
              }
            ],
            "status": "200"
          }
        },
        {
          "description": "Updates the reference to the last version of the linked remote reference.",
          "method": "post",
          "parameters": [],
          "path": "/refs/{ref_id}/updates",
          "title": "Update a reference",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "body": "The release consists of a gzipped JSON file containing:\r\n\r\n- a `data_type` field with value _genome_\r\n- an `organism` field with value _virus_\r\n- the `version` name (eg. *v0.2.0*)\r\n- a timestamp with the key `created_at`\r\n- virus data compatible for import into Virtool v2.0.0+\r\n\r\nScripts have been updated to follow upcoming convention changes in Virtool v3.0.0.",
              "content_type": "application/gzip",
              "download_url": "https://github.com/virtool/virtool-database/releases/download/v0.3.0/reference.json.gz",
              "etag": "W/\"ef123d746a33f88ee44203d3ca6bc2f7\"",
              "filename": "reference.json.gz",
              "html_url": "https://api.github.com/repos/virtool/virtool-database/releases/10742520",
              "id": 10742520,
              "name": "v0.3.0",
              "newer": true,
              "published_at": "2018-04-26T19:35:33Z",
              "retrieved_at": "2018-04-14T19:52:17.465000Z",
              "size": 3709091
            },
            "status": "201"
          }
        },
        {
          "description": "Adds a user to the reference. Users can view, use, and modify the reference.",
          "example": {
            "modify_otu": true,
            "user_id": "sidney"
          },
          "method": "post",
          "parameters": [
            {
              "description": "allow members to build new indexes for the reference",
              "title": "Build",
              "type": "boolean",
              "name": "build",
              "required": false
            },
            {
              "description": "allow members to modify the reference metadata and settings",
              "title": "Modify",
              "type": "boolean",
              "name": "modify",
              "required": false
            },
            {
              "description": "allow members to modify the reference’s member OTUs",
              "title": "Modify Otu",
              "type": "boolean",
              "name": "modify_otu",
              "required": false
            },
            {
              "description": "allow members to remove the reference",
              "title": "Remove",
              "type": "boolean",
              "name": "remove",
              "required": false
            },
            {
              "description": "the id of the user to add",
              "title": "User Id",
              "type": "string",
              "name": "user_id",
              "required": true
            }
          ],
          "path": "/refs/{ref_id}/users",
          "title": "Add a user",
          "errors": [
            {
              "status": "400",
              "description": "Bad request"
            },
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Removes a user from the reference.",
          "method": "delete",
          "parameters": [],
          "path": "/refs/{ref_id}/users/{user_id}",
          "title": "Remove a user",
          "errors": []
        },
        {
          "description": "Updates the access rights a user has on the reference.",
          "example": {
            "build": true,
            "modify": true
          },
          "method": "patch",
          "parameters": [
            {
              "description": "allow members to build new indexes for the reference",
              "title": "Build",
              "type": "boolean",
              "name": "build",
              "required": false
            },
            {
              "description": "allow members to modify the reference metadata and settings",
              "title": "Modify",
              "type": "boolean",
              "name": "modify",
              "required": false
            },
            {
              "description": "allow members to modify the reference’s member OTUs",
              "title": "Modify Otu",
              "type": "boolean",
              "name": "modify_otu",
              "required": false
            },
            {
              "description": "allow members to remove the reference",
              "title": "Remove",
              "type": "boolean",
              "name": "remove",
              "required": false
            }
          ],
          "path": "/refs/{ref_id}/users/{user_id}",
          "title": "Update a user",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "build": true,
              "created_at": "2022-06-10T20:00:34.129000Z",
              "id": 4,
              "modify": true,
              "modify_otu": false,
              "remove": false
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "samples",
      "endpoints": [
        {
          "description": "Lists samples, filtering by data passed as URL parameters.",
          "method": "get",
          "parameters": [],
          "path": "/samples",
          "title": "Find samples",
          "errors": [
            {
              "status": "400",
              "description": "Invalid query"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new sample with the given name, labels and subtractions.",
          "method": "post",
          "parameters": [
            {
              "items": {},
              "maxItems": 2,
              "minItems": 1,
              "title": "Files",
              "type": "array",
              "name": "files",
              "required": true
            },
            {
              "title": "Group",
              "type": "integer",
              "name": "group",
              "required": false
            },
            {
              "default": "",
              "title": "Host",
              "type": "string",
              "name": "host",
              "required": false
            },
            {
              "default": "",
              "title": "Isolate",
              "type": "string",
              "name": "isolate",
              "required": false
            },
            {
              "items": {},
              "title": "Labels",
              "type": "array",
              "name": "labels",
              "required": false
            },
            {
              "allOf": [
                {
                  "$ref": "#/components/schemas/LibraryType"
                }
              ],
              "default": "normal",
              "name": "library_type",
              "required": false
            },
            {
              "default": "",
              "title": "Locale",
              "type": "string",
              "name": "locale",
              "required": false
            },
            {
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            },
            {
              "default": "",
              "title": "Notes",
              "type": "string",
              "name": "notes",
              "required": false
            },
            {
              "items": {},
              "title": "Subtractions",
              "type": "array",
              "name": "subtractions",
              "required": false
            }
          ],
          "path": "/samples",
          "title": "Create a sample",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "example": {
              "all_read": false,
              "all_write": false,
              "artifacts": [],
              "created_at": "2022-05-20T23:48:00.901000Z",
              "format": "fastq",
              "group": {
                "id": 4,
                "name": "Sidney"
              },
              "group_read": true,
              "group_write": true,
              "hold": true,
              "host": "Malus domestica",
              "id": "9zn468u9",
              "is_legacy": false,
              "isolate": "",
              "labels": [],
              "library_type": "normal",
              "locale": "",
              "name": "HX8",
              "notes": "",
              "nuvs": false,
              "paired": true,
              "pathoscope": true,
              "quality": {
                "bases": [
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ],
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ]
                ],
                "composition": [
                  [
                    29,
                    18,
                    15,
                    36.5
                  ],
                  [
                    25.5,
                    19,
                    31.5,
                    22
                  ]
                ],
                "count": 94601674,
                "encoding": "Sanger / Illumina 1.9\n",
                "gc": 43,
                "length": [
                  150,
                  150
                ],
                "sequences": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  18,
                  298
                ]
              },
              "reads": [
                {
                  "download_url": "/samples/9zn468u9/reads/reads_1.fq.gz",
                  "id": 713,
                  "name": "reads_1.fq.gz",
                  "name_on_disk": "reads_1.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3540467819,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:10:27.418000Z"
                },
                {
                  "download_url": "/samples/9zn468u9/reads/reads_2.fq.gz",
                  "id": 714,
                  "name": "reads_2.fq.gz",
                  "name_on_disk": "reads_2.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3321721014,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:11:10.743000Z"
                }
              ],
              "ready": true,
              "subtractions": [
                {
                  "id": "0nhpi36p",
                  "name": "Malus domestica"
                }
              ],
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflows": {
                "aodp": "incompatible",
                "nuvs": "none",
                "pathoscope": "none"
              }
            },
            "status": "201"
          }
        },
        {
          "description": "Removes a sample document and all associated analyses.",
          "method": "delete",
          "parameters": [],
          "path": "/samples/{sample_id}",
          "title": "Delete a sample",
          "errors": []
        },
        {
          "description": "Fetches the details for a sample.",
          "method": "get",
          "parameters": [],
          "path": "/samples/{sample_id}",
          "title": "Get a sample",
          "errors": [
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "example": {
              "all_read": false,
              "all_write": false,
              "artifacts": [],
              "created_at": "2022-05-20T23:48:00.901000Z",
              "format": "fastq",
              "group": {
                "id": 4,
                "name": "Sidney"
              },
              "group_read": true,
              "group_write": true,
              "hold": true,
              "host": "Malus domestica",
              "id": "9zn468u9",
              "is_legacy": false,
              "isolate": "",
              "labels": [],
              "library_type": "normal",
              "locale": "",
              "name": "HX8",
              "notes": "",
              "nuvs": false,
              "paired": true,
              "pathoscope": true,
              "quality": {
                "bases": [
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ],
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ]
                ],
                "composition": [
                  [
                    29,
                    18,
                    15,
                    36.5
                  ],
                  [
                    25.5,
                    19,
                    31.5,
                    22
                  ]
                ],
                "count": 94601674,
                "encoding": "Sanger / Illumina 1.9\n",
                "gc": 43,
                "length": [
                  150,
                  150
                ],
                "sequences": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  18,
                  298
                ]
              },
              "reads": [
                {
                  "download_url": "/samples/9zn468u9/reads/reads_1.fq.gz",
                  "id": 713,
                  "name": "reads_1.fq.gz",
                  "name_on_disk": "reads_1.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3540467819,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:10:27.418000Z"
                },
                {
                  "download_url": "/samples/9zn468u9/reads/reads_2.fq.gz",
                  "id": 714,
                  "name": "reads_2.fq.gz",
                  "name_on_disk": "reads_2.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3321721014,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:11:10.743000Z"
                }
              ],
              "ready": true,
              "subtractions": [
                {
                  "id": "0nhpi36p",
                  "name": "Malus domestica"
                }
              ],
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflows": {
                "aodp": "incompatible",
                "nuvs": "none",
                "pathoscope": "none"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Updates a sample using its 'sample id'.",
          "example": {
            "host": "Tobacco",
            "labels": [
              1,
              5,
              6
            ],
            "name": "Tobacco mosaic viru"
          },
          "method": "patch",
          "parameters": [
            {
              "title": "Host",
              "type": "string",
              "name": "host",
              "required": false
            },
            {
              "title": "Isolate",
              "type": "string",
              "name": "isolate",
              "required": false
            },
            {
              "items": {},
              "title": "Labels",
              "type": "array",
              "name": "labels",
              "required": false
            },
            {
              "title": "Locale",
              "type": "string",
              "name": "locale",
              "required": false
            },
            {
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "title": "Notes",
              "type": "string",
              "name": "notes",
              "required": false
            },
            {
              "items": {},
              "title": "Subtractions",
              "type": "array",
              "name": "subtractions",
              "required": false
            }
          ],
          "path": "/samples/{sample_id}",
          "title": "Update a sample",
          "errors": [
            {
              "status": "400",
              "description": "Sample name is already in use"
            },
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "all_read": false,
              "all_write": false,
              "artifacts": [],
              "created_at": "2022-05-20T23:48:00.901000Z",
              "format": "fastq",
              "group": {
                "id": 4,
                "name": "Sidney"
              },
              "group_read": true,
              "group_write": true,
              "hold": true,
              "host": "Tobacco",
              "id": "9zn468u9",
              "is_legacy": false,
              "isolate": "",
              "labels": [
                1,
                5,
                6
              ],
              "library_type": "normal",
              "locale": "",
              "name": "Tobacco mosaic viru",
              "notes": "",
              "nuvs": false,
              "paired": true,
              "pathoscope": true,
              "quality": {
                "bases": [
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ],
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ]
                ],
                "composition": [
                  [
                    29,
                    18,
                    15,
                    36.5
                  ],
                  [
                    25.5,
                    19,
                    31.5,
                    22
                  ]
                ],
                "count": 94601674,
                "encoding": "Sanger / Illumina 1.9\n",
                "gc": 43,
                "length": [
                  150,
                  150
                ],
                "sequences": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  18,
                  298
                ]
              },
              "reads": [
                {
                  "download_url": "/samples/9zn468u9/reads/reads_1.fq.gz",
                  "id": 713,
                  "name": "reads_1.fq.gz",
                  "name_on_disk": "reads_1.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3540467819,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:10:27.418000Z"
                },
                {
                  "download_url": "/samples/9zn468u9/reads/reads_2.fq.gz",
                  "id": 714,
                  "name": "reads_2.fq.gz",
                  "name_on_disk": "reads_2.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3321721014,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:11:10.743000Z"
                }
              ],
              "ready": true,
              "subtractions": [
                {
                  "id": "0nhpi36p",
                  "name": "Malus domestica"
                }
              ],
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflows": {
                "aodp": "incompatible",
                "nuvs": "none",
                "pathoscope": "none"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Lists the analyses associated with the given `sample_id`.",
          "method": "get",
          "parameters": [],
          "path": "/samples/{sample_id}/analyses",
          "title": "Get analyses",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Starts an analysis job for a given sample.",
          "method": "post",
          "parameters": [
            {
              "title": "Ml",
              "type": "integer",
              "name": "ml",
              "required": false
            },
            {
              "title": "Ref Id",
              "type": "string",
              "name": "ref_id",
              "required": true
            },
            {
              "items": {
                "type": "string"
              },
              "title": "Subtractions",
              "type": "array",
              "name": "subtractions",
              "required": false
            },
            {
              "$ref": "#/components/schemas/AnalysisWorkflow",
              "name": "workflow",
              "required": true
            }
          ],
          "path": "/samples/{sample_id}/analyses",
          "title": "Start analysis job",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2022-05-21T01:28:55.441000Z",
              "id": "m9ktiz0i",
              "index": {
                "id": "9c5u6wsq",
                "version": 13
              },
              "job": {
                "id": "bt8nwg9z"
              },
              "ready": true,
              "reference": {
                "id": "d19exr83",
                "name": "New Plant Viruses"
              },
              "sample": {
                "id": "9zn468u9"
              },
              "subtractions": [
                {
                  "id": "0nhpi36p",
                  "name": "Malus domestica"
                }
              ],
              "updated_at": "2022-05-21T01:28:55.441000Z",
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflow": "pathoscope_bowtie"
            },
            "status": "201"
          }
        },
        {
          "description": "Updates the rights settings for the specified sample document.",
          "example": {
            "group": "administrator",
            "group_read": true,
            "group_write": true
          },
          "method": "patch",
          "parameters": [
            {
              "title": "All Read",
              "type": "boolean",
              "name": "all_read",
              "required": false
            },
            {
              "title": "All Write",
              "type": "boolean",
              "name": "all_write",
              "required": false
            },
            {
              "anyOf": [
                {
                  "type": "integer"
                },
                {
                  "type": "string"
                }
              ],
              "title": "Group",
              "name": "group",
              "required": false
            },
            {
              "title": "Group Read",
              "type": "boolean",
              "name": "group_read",
              "required": false
            },
            {
              "title": "Group Write",
              "type": "boolean",
              "name": "group_write",
              "required": false
            }
          ],
          "path": "/samples/{sample_id}/rights",
          "title": "Update rights settings",
          "errors": [
            {
              "status": "400",
              "description": "Group does not exist"
            },
            {
              "status": "403",
              "description": "Must be administrator or sample owner"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "all_read": false,
              "all_write": false,
              "artifacts": [],
              "created_at": "2022-05-20T23:48:00.901000Z",
              "format": "fastq",
              "group": "administrator",
              "group_read": true,
              "group_write": true,
              "hold": true,
              "host": "virus",
              "id": "9zn468u9",
              "is_legacy": false,
              "isolate": "",
              "labels": [
                1,
                5,
                6
              ],
              "library_type": "normal",
              "locale": "",
              "name": "foo",
              "notes": "",
              "nuvs": false,
              "paired": true,
              "pathoscope": true,
              "quality": {
                "bases": [
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ],
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ]
                ],
                "composition": [
                  [
                    29,
                    18,
                    15,
                    36.5
                  ],
                  [
                    25.5,
                    19,
                    31.5,
                    22
                  ]
                ],
                "count": 94601674,
                "encoding": "Sanger / Illumina 1.9\n",
                "gc": 43,
                "length": [
                  150,
                  150
                ],
                "sequences": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  18,
                  298
                ]
              },
              "reads": [
                {
                  "download_url": "/samples/9zn468u9/reads/reads_1.fq.gz",
                  "id": 713,
                  "name": "reads_1.fq.gz",
                  "name_on_disk": "reads_1.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3540467819,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:10:27.418000Z"
                },
                {
                  "download_url": "/samples/9zn468u9/reads/reads_2.fq.gz",
                  "id": 714,
                  "name": "reads_2.fq.gz",
                  "name_on_disk": "reads_2.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3321721014,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:11:10.743000Z"
                }
              ],
              "ready": true,
              "subtractions": [
                {
                  "id": "0nhpi36p",
                  "name": "Malus domestica"
                }
              ],
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflows": {
                "aodp": "incompatible",
                "nuvs": "none",
                "pathoscope": "none"
              }
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "settings",
      "endpoints": [
        {
          "description": "Fetches the complete application settings.",
          "method": "get",
          "parameters": [],
          "path": "/settings",
          "title": "Get settings",
          "errors": [],
          "response": {
            "example": {
              "default_source_types": [
                "isolate",
                "strain"
              ],
              "enable_api": true,
              "enable_sentry": true,
              "hmm_slug": "virtool/virtool-hmm",
              "minimum_passsword_length": 8,
              "sample_all_read": false,
              "sample_all_write": true,
              "sample_group": "force_choice",
              "sample_group_read": true,
              "sample_group_write": true,
              "sample_unique_names": true
            },
            "status": "200"
          }
        },
        {
          "description": "Updates the application settings.",
          "method": "patch",
          "parameters": [
            {
              "items": {},
              "title": "Default Source Types",
              "type": "array",
              "name": "default_source_types",
              "required": false
            },
            {
              "default": false,
              "title": "Enable Api",
              "type": "boolean",
              "name": "enable_api",
              "required": false
            },
            {
              "default": true,
              "title": "Enable Sentry",
              "type": "boolean",
              "name": "enable_sentry",
              "required": false
            },
            {
              "default": "virtool/virtool-hmm",
              "title": "Hmm Slug",
              "type": "string",
              "name": "hmm_slug",
              "required": false
            },
            {
              "default": 8,
              "title": "Minimum Password Length",
              "type": "integer",
              "name": "minimum_password_length",
              "required": false
            },
            {
              "default": true,
              "title": "Sample All Read",
              "type": "boolean",
              "name": "sample_all_read",
              "required": false
            },
            {
              "default": false,
              "title": "Sample All Write",
              "type": "boolean",
              "name": "sample_all_write",
              "required": false
            },
            {
              "default": "none",
              "title": "Sample Group",
              "type": "string",
              "name": "sample_group",
              "required": false
            },
            {
              "default": true,
              "title": "Sample Group Read",
              "type": "boolean",
              "name": "sample_group_read",
              "required": false
            },
            {
              "default": false,
              "title": "Sample Group Write",
              "type": "boolean",
              "name": "sample_group_write",
              "required": false
            }
          ],
          "path": "/settings",
          "title": "Update settings",
          "errors": [
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "example": {
              "default_source_types": [
                "strain"
              ],
              "enable_api": true,
              "enable_sentry": true,
              "hmm_slug": "virtool/virtool-hmm",
              "minimum_passsword_length": 12,
              "sample_all_read": false,
              "sample_unique_names": true
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "spaces",
      "endpoints": [
        {
          "description": "Get a list of all spaces that the requesting user is a member or owner of.",
          "method": "get",
          "parameters": [],
          "path": "/spaces",
          "title": "List spaces",
          "errors": [],
          "response": {
            "example": [
              {
                "description": "The default space.",
                "id": 0,
                "name": "Space 0"
              }
            ],
            "status": "200"
          }
        },
        {
          "description": "Fetches the complete representation of a space.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}",
          "title": "Get a space",
          "errors": [
            {
              "status": "404",
              "description": "User not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2015-10-06T20:00:00Z",
              "created_by": "test",
              "description": "",
              "id": 0,
              "members": [
                {
                  "administrator": true,
                  "handle": "bob",
                  "id": "test",
                  "label": null,
                  "project": null,
                  "reference": null,
                  "role": "owner",
                  "sample": null,
                  "subtraction": null,
                  "upload": null
                }
              ],
              "name": "Space 0",
              "updated_at": "2015-10-06T20:00:00Z"
            },
            "status": "200"
          }
        },
        {
          "description": "Changes the name or description of a space.",
          "example": {
            "name": "My Space"
          },
          "method": "patch",
          "parameters": [
            {
              "description": "the description for the space",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "the unique display name for the space",
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}",
          "title": "Update a space",
          "errors": [
            {
              "status": "404",
              "description": "User not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2015-10-06T20:00:00Z",
              "created_by": "test",
              "description": "",
              "id": 0,
              "members": [
                {
                  "administrator": true,
                  "handle": "bob",
                  "id": "test",
                  "label": null,
                  "project": null,
                  "reference": null,
                  "role": "owner",
                  "sample": null,
                  "subtraction": null,
                  "upload": null
                }
              ],
              "name": "My Space",
              "updated_at": "2015-10-06T20:00:00Z"
            },
            "status": "201"
          }
        },
        {
          "description": "Lists all sample labels on the instance. Pagination is not supported; all labels\nare included in the response.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/labels",
          "title": "List labels",
          "errors": [
            {
              "status": "400",
              "description": "Invalid query"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new sample label.\n\nThe color must be a valid hexadecimal code.",
          "example": {
            "color": "#374151",
            "description": "dsRNA/binding protein",
            "name": "Binding protein"
          },
          "method": "post",
          "parameters": [
            {
              "default": "#A0AEC0",
              "description": "color of the label",
              "title": "Color",
              "type": "string",
              "name": "color",
              "required": false
            },
            {
              "default": "",
              "description": "description of the document",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "unique name for the label document",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            }
          ],
          "path": "/spaces/{space_id}/labels",
          "title": "Create a label",
          "errors": [
            {
              "status": "400",
              "description": "Invalid Input"
            }
          ],
          "response": {
            "example": {
              "color": "#374151",
              "count": 0,
              "description": "dsRNA/binding protein",
              "id": 23,
              "name": "Binding protein"
            },
            "status": "201"
          }
        },
        {
          "description": "Deletes an existing sample label.",
          "method": "delete",
          "parameters": [],
          "path": "/spaces/{space_id}/labels/{label_id}",
          "title": "Delete a label",
          "errors": []
        },
        {
          "description": "Fetches the details for a sample label.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/labels/{label_id}",
          "title": "Get a label",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "color": "#6B7280",
              "count": 0,
              "description": "dsRNA/Ab",
              "id": 22,
              "name": "Ab"
            },
            "status": "200"
          }
        },
        {
          "description": "Updates an existing sample label.",
          "example": {
            "color": "#93C5FD",
            "description": "Field samples from 2022 harvest",
            "name": "Blueberry 2022"
          },
          "method": "patch",
          "parameters": [
            {
              "description": "A hexadecimal color for the label",
              "title": "Color",
              "type": "string",
              "name": "color",
              "required": false
            },
            {
              "description": "A longer description for the label",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "A short display name",
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/labels/{label_id}",
          "title": "Update a label",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "color": "#93C5FD",
              "count": 0,
              "description": "Field samples from 2022 harvest",
              "id": 22,
              "name": "Blueberry 2022"
            },
            "status": "200"
          }
        },
        {
          "description": "Lists the members of a space and their roles.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/members",
          "title": "List members",
          "errors": [],
          "response": {
            "example": {
              "available_roles": [
                {
                  "description": "Full control over space a and all resources and members.\n- Remove or add members.\n- Cancel any job.",
                  "id": "owner",
                  "name": "Owner"
                },
                {
                  "description": "Access a space.",
                  "id": "member",
                  "name": "Member"
                },
                {
                  "description": "Create, edit, or delete labels.",
                  "id": "label_manager",
                  "name": "Label_manager"
                },
                {
                  "description": "Create, edit, or delete projects.",
                  "id": "project_manager",
                  "name": "Project_manager"
                },
                {
                  "description": "Create or edit projects.",
                  "id": "project_editor",
                  "name": "Project_editor"
                },
                {
                  "description": "View projects.",
                  "id": "project_viewer",
                  "name": "Project_viewer"
                },
                {
                  "description": "Edit, build, contribute to (modify otus), or delete any reference. Modify access\ncontrol and settings for any reference.",
                  "id": "reference_manager",
                  "name": "Reference_manager"
                },
                {
                  "description": "Edit, build, and contribute to any reference.",
                  "id": "reference_builder",
                  "name": "Reference_builder"
                },
                {
                  "description": "Edit or contribute to any reference.",
                  "id": "reference_editor",
                  "name": "Reference_editor"
                },
                {
                  "description": "Create, edit, or delete (modify) OTUs in any reference.",
                  "id": "reference_contributor",
                  "name": "Reference_contributor"
                },
                {
                  "description": "View any and use any reference.",
                  "id": "reference_viewer",
                  "name": "Reference_viewer"
                },
                {
                  "description": "Create, edit, or delete samples.",
                  "id": "sample_manager",
                  "name": "Sample_manager"
                },
                {
                  "description": "Create or edit samples.",
                  "id": "sample_editor",
                  "name": "Sample_editor"
                },
                {
                  "description": "Analyze samples.",
                  "id": "sample_analyzer",
                  "name": "Sample_analyzer"
                },
                {
                  "description": "View samples.",
                  "id": "sample_viewer",
                  "name": "Sample_viewer"
                },
                {
                  "description": "Create, edit, or delete subtractions.",
                  "id": "subtraction_manager",
                  "name": "Subtraction_manager"
                },
                {
                  "description": "Edit subtractions.",
                  "id": "subtraction_editor",
                  "name": "Subtraction_editor"
                },
                {
                  "description": "View or use subtractions.",
                  "id": "subtraction_viewer",
                  "name": "Subtraction_viewer"
                },
                {
                  "description": "Create, use, or delete uploads.",
                  "id": "upload_manager",
                  "name": "Upload_manager"
                },
                {
                  "description": "View or use uploads.",
                  "id": "upload_viewer",
                  "name": "Upload_viewer"
                }
              ],
              "items": [
                {
                  "administrator": true,
                  "handle": "bob",
                  "id": "test",
                  "label": null,
                  "project": null,
                  "reference": null,
                  "role": "owner",
                  "sample": null,
                  "subtraction": null,
                  "upload": null
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Removes a member from the space.\nThey will no longer have access to any data in the space.",
          "method": "delete",
          "parameters": [],
          "path": "/spaces/{space_id}/members/{member_id}",
          "title": "Remove a member",
          "errors": []
        },
        {
          "description": "Changes the roles of the space member.",
          "example": {
            "role": "member"
          },
          "method": "patch",
          "parameters": [
            {
              "$ref": "#/components/schemas/SpaceLabelRole",
              "name": "label",
              "required": false
            },
            {
              "$ref": "#/components/schemas/SpaceProjectRole",
              "name": "project",
              "required": false
            },
            {
              "$ref": "#/components/schemas/SpaceReferenceRole",
              "name": "reference",
              "required": false
            },
            {
              "$ref": "#/components/schemas/SpaceRole",
              "name": "role",
              "required": false
            },
            {
              "$ref": "#/components/schemas/SpaceSampleRole",
              "name": "sample",
              "required": false
            },
            {
              "$ref": "#/components/schemas/SpaceSubtractionRole",
              "name": "subtraction",
              "required": false
            },
            {
              "$ref": "#/components/schemas/SpaceUploadRole",
              "name": "upload",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/members/{member_id}",
          "title": "Update a member",
          "errors": [
            {
              "status": "404",
              "description": "User not found"
            }
          ],
          "response": {
            "example": [
              {
                "administrator": true,
                "handle": "bob",
                "id": "test",
                "label": null,
                "project": null,
                "reference": null,
                "role": "member",
                "sample": null,
                "subtraction": null,
                "upload": null
              }
            ],
            "status": "200"
          }
        },
        {
          "description": "Lists references that match the find term.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/refs",
          "title": "Find references",
          "errors": [],
          "response": {
            "example": {
              "documents": [
                {
                  "cloned_from": {
                    "id": "pat6xdn3",
                    "name": "Plant Viruses"
                  },
                  "created_at": "2022-01-28T23:42:48.321000Z",
                  "data_type": "genome",
                  "groups": [
                    {
                      "build": false,
                      "created_at": "2022-06-10T20:00:34.129000Z",
                      "id": "sidney",
                      "modify": false,
                      "modify_otu": false,
                      "remove": false
                    }
                  ],
                  "id": "d19exr83",
                  "internal_control": null,
                  "latest_build": {
                    "created_at": "2022-07-05T17:41:51.857000Z",
                    "has_json": false,
                    "id": "u3lm1rk8",
                    "user": {
                      "administrator": true,
                      "handle": "mrott",
                      "id": "ihvze2u9"
                    },
                    "version": 14
                  },
                  "name": "New Plant Viruses",
                  "organism": "virus",
                  "otu_count": 2102,
                  "task": {
                    "id": 331
                  },
                  "unbuilt_change_count": 4,
                  "user": {
                    "id": "igboyes"
                  },
                  "users": [
                    {
                      "build": true,
                      "id": "igboyes",
                      "modify": true,
                      "modify_otu": true,
                      "remove": true
                    }
                  ]
                }
              ],
              "found_count": 2,
              "official_installed": true,
              "page": 1,
              "page_count": 1,
              "per_page": 25,
              "total_count": 2
            },
            "status": "200"
          }
        },
        {
          "description": "Creates an empty reference.",
          "example": {
            "data_type": "genome",
            "name": "Plant Viruses",
            "organism": "viruses"
          },
          "method": "post",
          "parameters": [
            {
              "description": "a valid ref_id that the new reference should be cloned from",
              "title": "Clone From",
              "type": "string",
              "name": "clone_from",
              "required": false
            },
            {
              "default": "genome",
              "description": "the sequence data type",
              "title": "Data Type",
              "type": "string",
              "name": "data_type",
              "required": false
            },
            {
              "default": "",
              "description": "a longer description for the reference",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "a valid file_id that the new reference should be imported from",
              "title": "Import From",
              "type": "string",
              "name": "import_from",
              "required": false
            },
            {
              "default": "",
              "description": "the virus name",
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "default": "",
              "description": "the organism",
              "title": "Organism",
              "type": "string",
              "name": "organism",
              "required": false
            },
            {
              "default": 11447367,
              "description": "the id of the GitHub release to install",
              "title": "Release Id",
              "type": "string",
              "name": "release_id",
              "required": false
            },
            {
              "description": "a valid GitHub slug to download and update the new reference from",
              "title": "Remote From",
              "type": "string",
              "name": "remote_from",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/refs",
          "title": "Create a reference",
          "errors": [
            {
              "status": "400",
              "description": "Source reference does not exist"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "502",
              "description": "Could not reach GitHub"
            }
          ],
          "response": {
            "example": {
              "cloned_from": {
                "id": "pat6xdn3",
                "name": "Plant Viruses"
              },
              "contributors": [
                {
                  "administrator": true,
                  "count": 6,
                  "handle": "reece",
                  "id": "hjol9wdt"
                },
                {
                  "administrator": true,
                  "count": 7906,
                  "handle": "mrott",
                  "id": "ihvze2u9"
                },
                {
                  "administrator": true,
                  "count": 1563,
                  "handle": "igboyes",
                  "id": "igboyes"
                },
                {
                  "administrator": true,
                  "count": 2483,
                  "handle": "jasper",
                  "id": "1kg24j7t"
                }
              ],
              "created_at": "2022-01-28T23:42:48.321000Z",
              "data_type": "genome",
              "description": "",
              "groups": [
                {
                  "build": false,
                  "created_at": "2022-06-10T20:00:34.129000Z",
                  "id": "sidney",
                  "modify": false,
                  "modify_otu": false,
                  "remove": false
                }
              ],
              "id": "d19exr83",
              "internal_control": null,
              "latest_build": {
                "created_at": "2022-07-05T17:41:51.857000Z",
                "has_json": false,
                "id": "u3lm1rk8",
                "user": {
                  "administrator": true,
                  "handle": "mrott",
                  "id": "ihvze2u9"
                },
                "version": 14
              },
              "name": "Plant Viruses",
              "organism": "viruses",
              "otu_count": 2102,
              "restrict_source_types": false,
              "source_types": [
                "isolate",
                "strain"
              ],
              "task": {
                "id": 331
              },
              "unbuilt_change_count": 4,
              "user": {
                "administrator": true,
                "handle": "igboyes",
                "id": "igboyes"
              },
              "users": [
                {
                  "administrator": true,
                  "build": true,
                  "handle": "igboyes",
                  "id": "igboyes",
                  "modify": true,
                  "modify_otu": true,
                  "remove": true
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Deletes a reference and its associated OTUs, history, and indexes. Deleting a\nreference does not break dependent analyses and other resources.",
          "method": "delete",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}",
          "title": "Delete a reference",
          "errors": []
        },
        {
          "description": "Fetches the details of a reference.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}",
          "title": "Get a reference",
          "errors": [
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "cloned_from": {
                "id": "pat6xdn3",
                "name": "Plant Viruses"
              },
              "created_at": "2022-01-28T23:42:48.321000Z",
              "data_type": "genome",
              "groups": [
                {
                  "build": false,
                  "created_at": "2022-06-10T20:00:34.129000Z",
                  "id": "sidney",
                  "modify": false,
                  "modify_otu": false,
                  "remove": false
                }
              ],
              "id": "d19exr83",
              "internal_control": null,
              "latest_build": {
                "created_at": "2022-07-05T17:41:51.857000Z",
                "has_json": false,
                "id": "u3lm1rk8",
                "user": {
                  "administrator": true,
                  "handle": "mrott",
                  "id": "ihvze2u9"
                },
                "version": 14
              },
              "name": "New Plant Viruses",
              "organism": "virus",
              "otu_count": 2102,
              "task": {
                "id": 331
              },
              "unbuilt_change_count": 4,
              "user": {
                "id": "igboyes"
              },
              "users": [
                {
                  "build": true,
                  "id": "igboyes",
                  "modify": true,
                  "modify_otu": true,
                  "remove": true
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Updates an existing reference.",
          "example": {
            "internal_control": "ah4m5jqz",
            "name": "Regulated Pests",
            "organism": "phytoplasma"
          },
          "method": "patch",
          "parameters": [
            {
              "description": "a longer description for the reference",
              "title": "Description",
              "type": "string",
              "name": "description",
              "required": false
            },
            {
              "description": "set the OTU identified by the passed id as the internal control for the reference",
              "title": "Internal Control",
              "type": "string",
              "name": "internal_control",
              "required": false
            },
            {
              "description": "the virus name",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "description": "the organism",
              "title": "Organism",
              "type": "string",
              "name": "organism",
              "required": false
            },
            {
              "description": "option to restrict source types",
              "title": "Restrict Source Types",
              "type": "boolean",
              "name": "restrict_source_types",
              "required": false
            },
            {
              "description": "source types",
              "items": {
                "minLength": 1,
                "type": "string"
              },
              "title": "Source Types",
              "type": "array",
              "name": "source_types",
              "required": false
            },
            {
              "description": "list of target sequences",
              "items": {
                "$ref": "#/components/schemas/ReferenceTargetRequest"
              },
              "title": "Targets",
              "type": "array",
              "name": "targets",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/refs/{ref_id}",
          "title": "Update a reference",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "cloned_from": {
                "id": "pat6xdn3",
                "name": "Plant Viruses"
              },
              "created_at": "2022-01-28T23:42:48.321000Z",
              "data_type": "genome",
              "groups": [
                {
                  "build": false,
                  "created_at": "2022-06-10T20:00:34.129000Z",
                  "id": "sidney",
                  "modify": false,
                  "modify_otu": false,
                  "remove": false
                }
              ],
              "id": "d19exr83",
              "internal_control": "ah4m5jqz",
              "latest_build": {
                "created_at": "2022-07-05T17:41:51.857000Z",
                "has_json": false,
                "id": "u3lm1rk8",
                "user": {
                  "administrator": true,
                  "handle": "mrott",
                  "id": "ihvze2u9"
                },
                "version": 14
              },
              "name": "Regulated Pests",
              "organism": "phytoplasma",
              "otu_count": 2102,
              "task": {
                "id": 331
              },
              "unbuilt_change_count": 4,
              "user": {
                "id": "igboyes"
              },
              "users": [
                {
                  "build": true,
                  "id": "igboyes",
                  "modify": true,
                  "modify_otu": true,
                  "remove": true
                }
              ]
            },
            "status": "200"
          }
        },
        {
          "description": "Lists changes made to OTUs in the reference.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}/history",
          "title": "List history",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "documents": [
                {
                  "created_at": "2022-01-28T23:28:53.881000Z",
                  "description": "Removed Betaflexivirus from Camelia #1 (BFV_CAM1)",
                  "id": "1wfc5x6e.removed",
                  "index": {
                    "id": "s7frhn8n",
                    "version": 1
                  },
                  "method_name": "remove",
                  "otu": {
                    "id": "1wfc5x6e",
                    "name": "Betaflexivirus from Camelia #1",
                    "version": "removed"
                  },
                  "reference": {
                    "id": "pat6xdn3"
                  },
                  "user": {
                    "administrator": true,
                    "handle": "igboyes",
                    "id": "igboyes"
                  }
                }
              ],
              "found_count": 1419,
              "page": 1,
              "page_count": 710,
              "per_page": 1,
              "total_count": 1419
            },
            "status": "200"
          }
        },
        {
          "description": "Lists indexes that have been created for the reference.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}/indexes",
          "title": "List indexes",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "change_count": 12,
              "documents": [
                {
                  "change_count": 4,
                  "created_at": "2015-10-06T20:00:00Z",
                  "has_files": true,
                  "id": "bar",
                  "job": {
                    "id": "bar"
                  },
                  "modified_otu_count": 3,
                  "ready": false,
                  "reference": {
                    "id": "bar"
                  },
                  "user": {
                    "administrator": false,
                    "handle": "leeashley",
                    "id": "bf1b993c"
                  },
                  "version": 1
                },
                {
                  "change_count": 2,
                  "created_at": "2015-10-06T20:00:00Z",
                  "has_files": true,
                  "id": "foo",
                  "job": {
                    "id": "foo"
                  },
                  "modified_otu_count": 2,
                  "ready": false,
                  "reference": {
                    "id": "foo"
                  },
                  "user": {
                    "administrator": false,
                    "handle": "leeashley",
                    "id": "bf1b993c"
                  },
                  "version": 0
                }
              ],
              "found_count": 2,
              "modified_otu_count": 3,
              "page": 1,
              "page_count": 1,
              "per_page": 25,
              "total_count": 2,
              "total_otu_count": 123
            },
            "status": "200"
          }
        },
        {
          "description": "Starts a job to rebuild the otus Bowtie2 index on disk.\n\nDoes a check to make sure there are no unverified OTUs in the collection\nand updates otu history to show the version and id of the new index.",
          "method": "post",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}/indexes",
          "title": "Create an index",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "change_count": 0,
              "created_at": "2015-10-06T20:00:00Z",
              "has_files": true,
              "id": "fb085f7f",
              "job": {
                "id": "bf1b993c"
              },
              "modified_otu_count": 0,
              "ready": false,
              "reference": {
                "id": "foo"
              },
              "user": {
                "administrator": false,
                "handle": "bob",
                "id": "test"
              },
              "version": 9
            },
            "status": "201"
          }
        },
        {
          "description": "Lists OTUs by name or abbreviation. Results are paginated.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}/otus",
          "title": "Find OTUs",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "documents": [
                {
                  "abbreviation": "ABTV",
                  "id": "k77wgf8x",
                  "name": "Abaca bunchy top virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 18
                },
                {
                  "abbreviation": "AbBV",
                  "id": "7hpwj4yh",
                  "name": "Abutilon Brazil virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 4
                },
                {
                  "abbreviation": "",
                  "id": "p9ohme8k",
                  "name": "Abutilon golden mosaic Yucatan virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "AbMBoV",
                  "id": "qrspg5w3",
                  "name": "Abutilon mosaic Bolivia virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 6
                },
                {
                  "abbreviation": "AbMoBrV",
                  "id": "yb7kpm43",
                  "name": "Abutilon mosaic Brazil virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 4
                },
                {
                  "abbreviation": "AbMV",
                  "id": "8540rw7b",
                  "name": "Abutilon mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 9
                },
                {
                  "abbreviation": "",
                  "id": "3zwrpu3y",
                  "name": "Abutilon yellow mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "AcLV",
                  "id": "30n6qo2x",
                  "name": "Aconitum latent virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "",
                  "id": "x5qw901r",
                  "name": "Actinidia chlorotic ringspot associated virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 5
                },
                {
                  "abbreviation": "",
                  "id": "ss6bios9",
                  "name": "Actinidia emaravirus 2",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 13
                },
                {
                  "abbreviation": "",
                  "id": "nn5gt7db",
                  "name": "Actinidia seed borne latent virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "",
                  "id": "xo3khtnd",
                  "name": "Actinidia virus 1",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 2
                },
                {
                  "abbreviation": "AVA",
                  "id": "qg8optks",
                  "name": "Actinidia virus A",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "AVB",
                  "id": "fnhtwiux",
                  "name": "Actinidia virus B",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "AVX",
                  "id": "5uh1jzzk",
                  "name": "Actinidia virus X",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 1
                },
                {
                  "abbreviation": "AYV1",
                  "id": "7ag9wwrr",
                  "name": "Actinidia yellowing virus 1",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "AYV2",
                  "id": "f87f3cs7",
                  "name": "Actinidia yellowing virus 2",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "",
                  "id": "e2xpkmgy",
                  "name": "Adonis mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "",
                  "id": "3ly2pqbk",
                  "name": "Aeonium ringspot virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 0
                },
                {
                  "abbreviation": "",
                  "id": "3xa1dbt0",
                  "name": "African cassava mosaic Burkina Faso virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 5
                },
                {
                  "abbreviation": "ACMV",
                  "id": "0ommwgyh",
                  "name": "African cassava mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 9
                },
                {
                  "abbreviation": "",
                  "id": "iyw0y3ta",
                  "name": "African eggplant mosaic virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "",
                  "id": "set9w2zc",
                  "name": "African eggplant yellowing virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 3
                },
                {
                  "abbreviation": "AOPRV",
                  "id": "taecz4c9",
                  "name": "African oil palm ringspot virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 2
                },
                {
                  "abbreviation": "",
                  "id": "zgsytbul",
                  "name": "Agave tequilana leaf virus",
                  "reference": {
                    "id": "d19exr83"
                  },
                  "verified": true,
                  "version": 2
                }
              ],
              "found_count": 2102,
              "modified_count": 1,
              "page": 1,
              "page_count": 85,
              "per_page": 25,
              "total_count": 2102
            },
            "status": "200"
          }
        },
        {
          "description": "Creates an OTU.",
          "method": "post",
          "parameters": [
            {
              "default": "",
              "title": "Abbreviation",
              "type": "string",
              "name": "abbreviation",
              "required": false
            },
            {
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            },
            {
              "items": {
                "$ref": "#/components/schemas/OTUSegment"
              },
              "title": "Schema",
              "type": "array",
              "name": "schema",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/refs/{ref_id}/otus",
          "title": "Create OTU",
          "errors": [
            {
              "status": "400",
              "description": ""
            },
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Lists all updates made to the reference.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}/updates",
          "title": "List updates",
          "errors": [],
          "response": {
            "example": [
              {
                "body": "#### Fixed\r\n- fixed uploading to GitHub releases in `.travis.yml`",
                "created_at": "2018-06-14T18:37:54.242000Z",
                "filename": "reference.json.gz",
                "html_url": "https://github.com/virtool/ref-plant-viruses/releases/tag/v0.1.1",
                "id": 11447367,
                "name": "v0.1.1",
                "published_at": "2018-06-12T19:20:57Z",
                "ready": true,
                "size": 3695872,
                "user": {
                  "id": "igboyes"
                }
              }
            ],
            "status": "200"
          }
        },
        {
          "description": "Updates the reference to the last version of the linked remote reference.",
          "method": "post",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}/updates",
          "title": "Update a reference",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "body": "The release consists of a gzipped JSON file containing:\r\n\r\n- a `data_type` field with value _genome_\r\n- an `organism` field with value _virus_\r\n- the `version` name (eg. *v0.2.0*)\r\n- a timestamp with the key `created_at`\r\n- virus data compatible for import into Virtool v2.0.0+\r\n\r\nScripts have been updated to follow upcoming convention changes in Virtool v3.0.0.",
              "content_type": "application/gzip",
              "download_url": "https://github.com/virtool/virtool-database/releases/download/v0.3.0/reference.json.gz",
              "etag": "W/\"ef123d746a33f88ee44203d3ca6bc2f7\"",
              "filename": "reference.json.gz",
              "html_url": "https://api.github.com/repos/virtool/virtool-database/releases/10742520",
              "id": 10742520,
              "name": "v0.3.0",
              "newer": true,
              "published_at": "2018-04-26T19:35:33Z",
              "retrieved_at": "2018-04-14T19:52:17.465000Z",
              "size": 3709091
            },
            "status": "201"
          }
        },
        {
          "description": "Adds a user to the reference. Users can view, use, and modify the reference.",
          "example": {
            "modify_otu": true,
            "user_id": "sidney"
          },
          "method": "post",
          "parameters": [
            {
              "description": "allow members to build new indexes for the reference",
              "title": "Build",
              "type": "boolean",
              "name": "build",
              "required": false
            },
            {
              "description": "allow members to modify the reference metadata and settings",
              "title": "Modify",
              "type": "boolean",
              "name": "modify",
              "required": false
            },
            {
              "description": "allow members to modify the reference’s member OTUs",
              "title": "Modify Otu",
              "type": "boolean",
              "name": "modify_otu",
              "required": false
            },
            {
              "description": "allow members to remove the reference",
              "title": "Remove",
              "type": "boolean",
              "name": "remove",
              "required": false
            },
            {
              "description": "the id of the user to add",
              "title": "User Id",
              "type": "string",
              "name": "user_id",
              "required": true
            }
          ],
          "path": "/spaces/{space_id}/refs/{ref_id}/users",
          "title": "Add a user",
          "errors": [
            {
              "status": "400",
              "description": "Bad request"
            },
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Removes a user from the reference.",
          "method": "delete",
          "parameters": [],
          "path": "/spaces/{space_id}/refs/{ref_id}/users/{user_id}",
          "title": "Remove a user",
          "errors": []
        },
        {
          "description": "Updates the access rights a user has on the reference.",
          "example": {
            "build": true,
            "modify": true
          },
          "method": "patch",
          "parameters": [
            {
              "description": "allow members to build new indexes for the reference",
              "title": "Build",
              "type": "boolean",
              "name": "build",
              "required": false
            },
            {
              "description": "allow members to modify the reference metadata and settings",
              "title": "Modify",
              "type": "boolean",
              "name": "modify",
              "required": false
            },
            {
              "description": "allow members to modify the reference’s member OTUs",
              "title": "Modify Otu",
              "type": "boolean",
              "name": "modify_otu",
              "required": false
            },
            {
              "description": "allow members to remove the reference",
              "title": "Remove",
              "type": "boolean",
              "name": "remove",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/refs/{ref_id}/users/{user_id}",
          "title": "Update a user",
          "errors": [
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "build": true,
              "created_at": "2022-06-10T20:00:34.129000Z",
              "id": 4,
              "modify": true,
              "modify_otu": false,
              "remove": false
            },
            "status": "200"
          }
        },
        {
          "description": "Lists samples, filtering by data passed as URL parameters.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/samples",
          "title": "Find samples",
          "errors": [
            {
              "status": "400",
              "description": "Invalid query"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new sample with the given name, labels and subtractions.",
          "method": "post",
          "parameters": [
            {
              "items": {},
              "maxItems": 2,
              "minItems": 1,
              "title": "Files",
              "type": "array",
              "name": "files",
              "required": true
            },
            {
              "title": "Group",
              "type": "integer",
              "name": "group",
              "required": false
            },
            {
              "default": "",
              "title": "Host",
              "type": "string",
              "name": "host",
              "required": false
            },
            {
              "default": "",
              "title": "Isolate",
              "type": "string",
              "name": "isolate",
              "required": false
            },
            {
              "items": {},
              "title": "Labels",
              "type": "array",
              "name": "labels",
              "required": false
            },
            {
              "allOf": [
                {
                  "$ref": "#/components/schemas/LibraryType"
                }
              ],
              "default": "normal",
              "name": "library_type",
              "required": false
            },
            {
              "default": "",
              "title": "Locale",
              "type": "string",
              "name": "locale",
              "required": false
            },
            {
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            },
            {
              "default": "",
              "title": "Notes",
              "type": "string",
              "name": "notes",
              "required": false
            },
            {
              "items": {},
              "title": "Subtractions",
              "type": "array",
              "name": "subtractions",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/samples",
          "title": "Create a sample",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "example": {
              "all_read": false,
              "all_write": false,
              "artifacts": [],
              "created_at": "2022-05-20T23:48:00.901000Z",
              "format": "fastq",
              "group": {
                "id": 4,
                "name": "Sidney"
              },
              "group_read": true,
              "group_write": true,
              "hold": true,
              "host": "Malus domestica",
              "id": "9zn468u9",
              "is_legacy": false,
              "isolate": "",
              "labels": [],
              "library_type": "normal",
              "locale": "",
              "name": "HX8",
              "notes": "",
              "nuvs": false,
              "paired": true,
              "pathoscope": true,
              "quality": {
                "bases": [
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ],
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ]
                ],
                "composition": [
                  [
                    29,
                    18,
                    15,
                    36.5
                  ],
                  [
                    25.5,
                    19,
                    31.5,
                    22
                  ]
                ],
                "count": 94601674,
                "encoding": "Sanger / Illumina 1.9\n",
                "gc": 43,
                "length": [
                  150,
                  150
                ],
                "sequences": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  18,
                  298
                ]
              },
              "reads": [
                {
                  "download_url": "/samples/9zn468u9/reads/reads_1.fq.gz",
                  "id": 713,
                  "name": "reads_1.fq.gz",
                  "name_on_disk": "reads_1.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3540467819,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:10:27.418000Z"
                },
                {
                  "download_url": "/samples/9zn468u9/reads/reads_2.fq.gz",
                  "id": 714,
                  "name": "reads_2.fq.gz",
                  "name_on_disk": "reads_2.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3321721014,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:11:10.743000Z"
                }
              ],
              "ready": true,
              "subtractions": [
                {
                  "id": "0nhpi36p",
                  "name": "Malus domestica"
                }
              ],
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflows": {
                "aodp": "incompatible",
                "nuvs": "none",
                "pathoscope": "none"
              }
            },
            "status": "201"
          }
        },
        {
          "description": "Removes a sample document and all associated analyses.",
          "method": "delete",
          "parameters": [],
          "path": "/spaces/{space_id}/samples/{sample_id}",
          "title": "Delete a sample",
          "errors": []
        },
        {
          "description": "Fetches the details for a sample.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/samples/{sample_id}",
          "title": "Get a sample",
          "errors": [
            {
              "status": "403",
              "description": ""
            },
            {
              "status": "404",
              "description": ""
            }
          ],
          "response": {
            "example": {
              "all_read": false,
              "all_write": false,
              "artifacts": [],
              "created_at": "2022-05-20T23:48:00.901000Z",
              "format": "fastq",
              "group": {
                "id": 4,
                "name": "Sidney"
              },
              "group_read": true,
              "group_write": true,
              "hold": true,
              "host": "Malus domestica",
              "id": "9zn468u9",
              "is_legacy": false,
              "isolate": "",
              "labels": [],
              "library_type": "normal",
              "locale": "",
              "name": "HX8",
              "notes": "",
              "nuvs": false,
              "paired": true,
              "pathoscope": true,
              "quality": {
                "bases": [
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ],
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ]
                ],
                "composition": [
                  [
                    29,
                    18,
                    15,
                    36.5
                  ],
                  [
                    25.5,
                    19,
                    31.5,
                    22
                  ]
                ],
                "count": 94601674,
                "encoding": "Sanger / Illumina 1.9\n",
                "gc": 43,
                "length": [
                  150,
                  150
                ],
                "sequences": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  18,
                  298
                ]
              },
              "reads": [
                {
                  "download_url": "/samples/9zn468u9/reads/reads_1.fq.gz",
                  "id": 713,
                  "name": "reads_1.fq.gz",
                  "name_on_disk": "reads_1.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3540467819,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:10:27.418000Z"
                },
                {
                  "download_url": "/samples/9zn468u9/reads/reads_2.fq.gz",
                  "id": 714,
                  "name": "reads_2.fq.gz",
                  "name_on_disk": "reads_2.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3321721014,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:11:10.743000Z"
                }
              ],
              "ready": true,
              "subtractions": [
                {
                  "id": "0nhpi36p",
                  "name": "Malus domestica"
                }
              ],
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflows": {
                "aodp": "incompatible",
                "nuvs": "none",
                "pathoscope": "none"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Updates a sample using its 'sample id'.",
          "example": {
            "host": "Tobacco",
            "labels": [
              1,
              5,
              6
            ],
            "name": "Tobacco mosaic viru"
          },
          "method": "patch",
          "parameters": [
            {
              "title": "Host",
              "type": "string",
              "name": "host",
              "required": false
            },
            {
              "title": "Isolate",
              "type": "string",
              "name": "isolate",
              "required": false
            },
            {
              "items": {},
              "title": "Labels",
              "type": "array",
              "name": "labels",
              "required": false
            },
            {
              "title": "Locale",
              "type": "string",
              "name": "locale",
              "required": false
            },
            {
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "title": "Notes",
              "type": "string",
              "name": "notes",
              "required": false
            },
            {
              "items": {},
              "title": "Subtractions",
              "type": "array",
              "name": "subtractions",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/samples/{sample_id}",
          "title": "Update a sample",
          "errors": [
            {
              "status": "400",
              "description": "Sample name is already in use"
            },
            {
              "status": "403",
              "description": "Insufficient rights"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "all_read": false,
              "all_write": false,
              "artifacts": [],
              "created_at": "2022-05-20T23:48:00.901000Z",
              "format": "fastq",
              "group": {
                "id": 4,
                "name": "Sidney"
              },
              "group_read": true,
              "group_write": true,
              "hold": true,
              "host": "Tobacco",
              "id": "9zn468u9",
              "is_legacy": false,
              "isolate": "",
              "labels": [
                1,
                5,
                6
              ],
              "library_type": "normal",
              "locale": "",
              "name": "Tobacco mosaic viru",
              "notes": "",
              "nuvs": false,
              "paired": true,
              "pathoscope": true,
              "quality": {
                "bases": [
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ],
                  [
                    36,
                    37,
                    37,
                    37,
                    37,
                    37
                  ]
                ],
                "composition": [
                  [
                    29,
                    18,
                    15,
                    36.5
                  ],
                  [
                    25.5,
                    19,
                    31.5,
                    22
                  ]
                ],
                "count": 94601674,
                "encoding": "Sanger / Illumina 1.9\n",
                "gc": 43,
                "length": [
                  150,
                  150
                ],
                "sequences": [
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  0,
                  18,
                  298
                ]
              },
              "reads": [
                {
                  "download_url": "/samples/9zn468u9/reads/reads_1.fq.gz",
                  "id": 713,
                  "name": "reads_1.fq.gz",
                  "name_on_disk": "reads_1.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3540467819,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:10:27.418000Z"
                },
                {
                  "download_url": "/samples/9zn468u9/reads/reads_2.fq.gz",
                  "id": 714,
                  "name": "reads_2.fq.gz",
                  "name_on_disk": "reads_2.fq.gz",
                  "sample": "9zn468u9",
                  "size": 3321721014,
                  "upload": null,
                  "uploaded_at": "2022-05-21T00:11:10.743000Z"
                }
              ],
              "ready": true,
              "subtractions": [
                {
                  "id": "0nhpi36p",
                  "name": "Malus domestica"
                }
              ],
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              },
              "workflows": {
                "aodp": "incompatible",
                "nuvs": "none",
                "pathoscope": "none"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Lists subtractions by their `name` or `nickname` by providing a `term` as a\nquery parameter. Partial matches are supported.\n\nSupports pagination unless the `short` query parameter is set. In this case, an\narray of objects containing the `id` and `name` of every subtraction is\nreturned.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/subtractions",
          "title": "Find subtractions",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new subtraction.\n\nA job is started to build the data necessary to make the subtraction usable in\nanalyses. The subtraction is usable when the `ready` property is `true`.",
          "example": {
            "name": "Foobar",
            "nickname": "foo",
            "upload_id": 1234
          },
          "method": "post",
          "parameters": [
            {
              "description": "A unique name for the host (eg. Arabidopsis)",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            },
            {
              "default": "",
              "description": "A nickname of the host",
              "title": "Nickname",
              "type": "string",
              "name": "nickname",
              "required": false
            },
            {
              "description": "The unique id of the file",
              "title": "Upload Id",
              "type": "integer",
              "name": "upload_id",
              "required": true
            }
          ],
          "path": "/spaces/{space_id}/subtractions",
          "title": "Create a subtraction",
          "errors": [
            {
              "status": "400",
              "description": "Upload does not exist"
            },
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "example": {
              "created_at": "2015-10-06T20:00:00Z",
              "deleted": false,
              "file": {
                "id": 1234,
                "name": "test_upload"
              },
              "files": [],
              "id": "abc123",
              "linked_samples": [],
              "name": "Foobar",
              "nickname": "foo",
              "ready": false,
              "user": {
                "administrator": false,
                "handle": "bob",
                "id": "test"
              }
            },
            "status": "201"
          }
        },
        {
          "description": "Deletes an existing subtraction.",
          "method": "delete",
          "parameters": [],
          "path": "/spaces/{space_id}/subtractions/{subtraction_id}",
          "title": "Delete a subtraction",
          "errors": [
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            },
            {
              "status": "409",
              "description": "Has linked samples"
            }
          ],
          "response": {
            "status": "204"
          }
        },
        {
          "description": "Fetches the details of a subtraction.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/subtractions/{subtraction_id}",
          "title": "Get a subtraction",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "count": 9,
              "created_at": "2021-12-21T23:52:13.185000Z",
              "deleted": false,
              "file": {
                "id": 58,
                "name": "arabidopsis_thaliana_+_plastids.fa.gz"
              },
              "files": [
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.1.bt2",
                  "id": 39,
                  "name": "subtraction.1.bt2",
                  "size": 44200803,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.2.bt2",
                  "id": 37,
                  "name": "subtraction.2.bt2",
                  "size": 30000964,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.3.bt2",
                  "id": 42,
                  "name": "subtraction.3.bt2",
                  "size": 3275,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.4.bt2",
                  "id": 40,
                  "name": "subtraction.4.bt2",
                  "size": 30000958,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.fa.gz",
                  "id": 36,
                  "name": "subtraction.fa.gz",
                  "size": 36160657,
                  "subtraction": "q0ek30si",
                  "type": "fasta"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.rev.1.bt2",
                  "id": 41,
                  "name": "subtraction.rev.1.bt2",
                  "size": 44200803,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.rev.2.bt2",
                  "id": 38,
                  "name": "subtraction.rev.2.bt2",
                  "size": 30000964,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                }
              ],
              "gc": {
                "a": 0.319,
                "c": 0.18,
                "g": 0.18,
                "n": 0.002,
                "t": 0.319
              },
              "id": "q0ek30si",
              "linked_samples": [
                {
                  "id": "2izth91q",
                  "name": "21BP074"
                },
                {
                  "id": "noni4fpk",
                  "name": "21BP075"
                },
                {
                  "id": "o3ldvwpm",
                  "name": "22SP001-M"
                },
                {
                  "id": "gobtw98t",
                  "name": "22SP001-R"
                }
              ],
              "name": "Arabidopsis thaliana",
              "nickname": "",
              "ready": true,
              "user": {
                "administrator": true,
                "handle": "igboyes",
                "id": "igboyes"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Updates the name or nickname of an existing subtraction.",
          "example": {
            "name": "Arabidopsis",
            "nickname": "Thale cress"
          },
          "method": "patch",
          "parameters": [
            {
              "description": "A unique name for the host",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "description": "A nickname for the host",
              "title": "Nickname",
              "type": "string",
              "name": "nickname",
              "required": false
            }
          ],
          "path": "/spaces/{space_id}/subtractions/{subtraction_id}",
          "title": "Update a subtraction",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "count": 9,
              "created_at": "2021-12-21T23:52:13.185000Z",
              "deleted": false,
              "file": {
                "id": 58,
                "name": "arabidopsis_thaliana_+_plastids.fa.gz"
              },
              "files": [
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.1.bt2",
                  "id": 39,
                  "name": "subtraction.1.bt2",
                  "size": 44200803,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.2.bt2",
                  "id": 37,
                  "name": "subtraction.2.bt2",
                  "size": 30000964,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.3.bt2",
                  "id": 42,
                  "name": "subtraction.3.bt2",
                  "size": 3275,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.4.bt2",
                  "id": 40,
                  "name": "subtraction.4.bt2",
                  "size": 30000958,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.fa.gz",
                  "id": 36,
                  "name": "subtraction.fa.gz",
                  "size": 36160657,
                  "subtraction": "q0ek30si",
                  "type": "fasta"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.rev.1.bt2",
                  "id": 41,
                  "name": "subtraction.rev.1.bt2",
                  "size": 44200803,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.rev.2.bt2",
                  "id": 38,
                  "name": "subtraction.rev.2.bt2",
                  "size": 30000964,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                }
              ],
              "gc": {
                "a": 0.319,
                "c": 0.18,
                "g": 0.18,
                "n": 0.002,
                "t": 0.319
              },
              "id": "q0ek30si",
              "linked_samples": [
                {
                  "id": "2izth91q",
                  "name": "21BP074"
                },
                {
                  "id": "noni4fpk",
                  "name": "21BP075"
                },
                {
                  "id": "o3ldvwpm",
                  "name": "22SP001-M"
                },
                {
                  "id": "gobtw98t",
                  "name": "22SP001-R"
                }
              ],
              "name": "Arabidopsis",
              "nickname": "Thale cress",
              "ready": true,
              "user": {
                "administrator": true,
                "handle": "igboyes",
                "id": "igboyes"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Lists JSON details of all files uploaded to the instance.",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/uploads",
          "title": "List uploads",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Accepts file uploads as multipart requests. The request should contain a single\nfield ``file`` containing the file data.\n\nA file ``name`` and ``type`` must be included in the query string.",
          "method": "post",
          "parameters": [],
          "path": "/spaces/{space_id}/uploads",
          "title": "Upload a file",
          "errors": [
            {
              "status": "401",
              "description": "Requires authorization"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2022-01-22T17:28:21.491000Z",
              "id": 106,
              "name": "MPI19_L3_2.fq.gz",
              "name_on_disk": "106-MPI19_L3_2.fq.gz",
              "ready": true,
              "removed": false,
              "removed_at": null,
              "reserved": true,
              "size": 3356803271,
              "type": "reads",
              "uploaded_at": "2022-01-22T17:31:59.801000Z",
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              }
            },
            "status": "201"
          }
        },
        {
          "description": "Deletes an upload using its 'upload id'.",
          "method": "delete",
          "parameters": [],
          "path": "/spaces/{space_id}/uploads/{upload_id}",
          "title": "Delete an upload",
          "errors": [
            {
              "status": "401",
              "description": "Requires authorization"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "204"
          }
        },
        {
          "description": "Downloads a previously uploaded file.\n\nHeaders:\n    Content-Disposition: attachment; filename=<name>\n    Content-Type: application/octet-stream",
          "method": "get",
          "parameters": [],
          "path": "/spaces/{space_id}/uploads/{upload_id}",
          "title": "Download an upload",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "subtractions",
      "endpoints": [
        {
          "description": "Lists subtractions by their `name` or `nickname` by providing a `term` as a\nquery parameter. Partial matches are supported.\n\nSupports pagination unless the `short` query parameter is set. In this case, an\narray of objects containing the `id` and `name` of every subtraction is\nreturned.",
          "method": "get",
          "parameters": [],
          "path": "/subtractions",
          "title": "Find subtractions",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new subtraction.\n\nA job is started to build the data necessary to make the subtraction usable in\nanalyses. The subtraction is usable when the `ready` property is `true`.",
          "example": {
            "name": "Foobar",
            "nickname": "foo",
            "upload_id": 1234
          },
          "method": "post",
          "parameters": [
            {
              "description": "A unique name for the host (eg. Arabidopsis)",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": true
            },
            {
              "default": "",
              "description": "A nickname of the host",
              "title": "Nickname",
              "type": "string",
              "name": "nickname",
              "required": false
            },
            {
              "description": "The unique id of the file",
              "title": "Upload Id",
              "type": "integer",
              "name": "upload_id",
              "required": true
            }
          ],
          "path": "/subtractions",
          "title": "Create a subtraction",
          "errors": [
            {
              "status": "400",
              "description": "Upload does not exist"
            },
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "example": {
              "created_at": "2015-10-06T20:00:00Z",
              "deleted": false,
              "file": {
                "id": 1234,
                "name": "test_upload"
              },
              "files": [],
              "id": "abc123",
              "linked_samples": [],
              "name": "Foobar",
              "nickname": "foo",
              "ready": false,
              "user": {
                "administrator": false,
                "handle": "bob",
                "id": "test"
              }
            },
            "status": "201"
          }
        },
        {
          "description": "Deletes an existing subtraction.",
          "method": "delete",
          "parameters": [],
          "path": "/subtractions/{subtraction_id}",
          "title": "Delete a subtraction",
          "errors": [
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            },
            {
              "status": "409",
              "description": "Has linked samples"
            }
          ],
          "response": {
            "status": "204"
          }
        },
        {
          "description": "Fetches the details of a subtraction.",
          "method": "get",
          "parameters": [],
          "path": "/subtractions/{subtraction_id}",
          "title": "Get a subtraction",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "count": 9,
              "created_at": "2021-12-21T23:52:13.185000Z",
              "deleted": false,
              "file": {
                "id": 58,
                "name": "arabidopsis_thaliana_+_plastids.fa.gz"
              },
              "files": [
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.1.bt2",
                  "id": 39,
                  "name": "subtraction.1.bt2",
                  "size": 44200803,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.2.bt2",
                  "id": 37,
                  "name": "subtraction.2.bt2",
                  "size": 30000964,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.3.bt2",
                  "id": 42,
                  "name": "subtraction.3.bt2",
                  "size": 3275,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.4.bt2",
                  "id": 40,
                  "name": "subtraction.4.bt2",
                  "size": 30000958,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.fa.gz",
                  "id": 36,
                  "name": "subtraction.fa.gz",
                  "size": 36160657,
                  "subtraction": "q0ek30si",
                  "type": "fasta"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.rev.1.bt2",
                  "id": 41,
                  "name": "subtraction.rev.1.bt2",
                  "size": 44200803,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.rev.2.bt2",
                  "id": 38,
                  "name": "subtraction.rev.2.bt2",
                  "size": 30000964,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                }
              ],
              "gc": {
                "a": 0.319,
                "c": 0.18,
                "g": 0.18,
                "n": 0.002,
                "t": 0.319
              },
              "id": "q0ek30si",
              "linked_samples": [
                {
                  "id": "2izth91q",
                  "name": "21BP074"
                },
                {
                  "id": "noni4fpk",
                  "name": "21BP075"
                },
                {
                  "id": "o3ldvwpm",
                  "name": "22SP001-M"
                },
                {
                  "id": "gobtw98t",
                  "name": "22SP001-R"
                }
              ],
              "name": "Arabidopsis thaliana",
              "nickname": "",
              "ready": true,
              "user": {
                "administrator": true,
                "handle": "igboyes",
                "id": "igboyes"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Updates the name or nickname of an existing subtraction.",
          "example": {
            "name": "Arabidopsis",
            "nickname": "Thale cress"
          },
          "method": "patch",
          "parameters": [
            {
              "description": "A unique name for the host",
              "minLength": 1,
              "title": "Name",
              "type": "string",
              "name": "name",
              "required": false
            },
            {
              "description": "A nickname for the host",
              "title": "Nickname",
              "type": "string",
              "name": "nickname",
              "required": false
            }
          ],
          "path": "/subtractions/{subtraction_id}",
          "title": "Update a subtraction",
          "errors": [
            {
              "status": "400",
              "description": "Invalid input"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "count": 9,
              "created_at": "2021-12-21T23:52:13.185000Z",
              "deleted": false,
              "file": {
                "id": 58,
                "name": "arabidopsis_thaliana_+_plastids.fa.gz"
              },
              "files": [
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.1.bt2",
                  "id": 39,
                  "name": "subtraction.1.bt2",
                  "size": 44200803,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.2.bt2",
                  "id": 37,
                  "name": "subtraction.2.bt2",
                  "size": 30000964,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.3.bt2",
                  "id": 42,
                  "name": "subtraction.3.bt2",
                  "size": 3275,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.4.bt2",
                  "id": 40,
                  "name": "subtraction.4.bt2",
                  "size": 30000958,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.fa.gz",
                  "id": 36,
                  "name": "subtraction.fa.gz",
                  "size": 36160657,
                  "subtraction": "q0ek30si",
                  "type": "fasta"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.rev.1.bt2",
                  "id": 41,
                  "name": "subtraction.rev.1.bt2",
                  "size": 44200803,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                },
                {
                  "download_url": "/subtractions/q0ek30si/files/subtraction.rev.2.bt2",
                  "id": 38,
                  "name": "subtraction.rev.2.bt2",
                  "size": 30000964,
                  "subtraction": "q0ek30si",
                  "type": "bowtie2"
                }
              ],
              "gc": {
                "a": 0.319,
                "c": 0.18,
                "g": 0.18,
                "n": 0.002,
                "t": 0.319
              },
              "id": "q0ek30si",
              "linked_samples": [
                {
                  "id": "2izth91q",
                  "name": "21BP074"
                },
                {
                  "id": "noni4fpk",
                  "name": "21BP075"
                },
                {
                  "id": "o3ldvwpm",
                  "name": "22SP001-M"
                },
                {
                  "id": "gobtw98t",
                  "name": "22SP001-R"
                }
              ],
              "name": "Arabidopsis",
              "nickname": "Thale cress",
              "ready": true,
              "user": {
                "administrator": true,
                "handle": "igboyes",
                "id": "igboyes"
              }
            },
            "status": "200"
          }
        },
        {
          "description": "Downloads a Bowtie2 index or FASTA file for the given subtraction.\n\nFiles are attached to the subtraction as part of the creation job. They aren't\navailable for download until the job has completed and the `ready` field is\n`true`.",
          "method": "get",
          "parameters": [],
          "path": "/subtractions/{subtraction_id}/files/{filename}",
          "title": "Download a subtraction file",
          "errors": [
            {
              "status": "400",
              "description": ""
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "tasks",
      "endpoints": [
        {
          "description": "Lists all tasks active on the instance. Pagination is not\nsupported.",
          "method": "get",
          "parameters": [],
          "path": "/tasks",
          "title": "List all tasks",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Fetches the details of a task.",
          "method": "get",
          "parameters": [],
          "path": "/tasks/{task_id}",
          "title": "Retrieve a task",
          "errors": [
            {
              "status": "400",
              "description": ""
            }
          ],
          "response": {
            "example": {
              "complete": true,
              "context": {
                "user_id": "virtool"
              },
              "created_at": "2021-11-24T19:40:03.320000Z",
              "error": null,
              "file_size": null,
              "id": 2,
              "progress": 100,
              "step": "remove_referenced_otus",
              "type": "delete_reference"
            },
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "uploads",
      "endpoints": [
        {
          "description": "Lists JSON details of all files uploaded to the instance.",
          "method": "get",
          "parameters": [],
          "path": "/uploads",
          "title": "List uploads",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Accepts file uploads as multipart requests. The request should contain a single\nfield ``file`` containing the file data.\n\nA file ``name`` and ``type`` must be included in the query string.",
          "method": "post",
          "parameters": [],
          "path": "/uploads",
          "title": "Upload a file",
          "errors": [
            {
              "status": "401",
              "description": "Requires authorization"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "example": {
              "created_at": "2022-01-22T17:28:21.491000Z",
              "id": 106,
              "name": "MPI19_L3_2.fq.gz",
              "name_on_disk": "106-MPI19_L3_2.fq.gz",
              "ready": true,
              "removed": false,
              "removed_at": null,
              "reserved": true,
              "size": 3356803271,
              "type": "reads",
              "uploaded_at": "2022-01-22T17:31:59.801000Z",
              "user": {
                "administrator": true,
                "handle": "mrott",
                "id": "ihvze2u9"
              }
            },
            "status": "201"
          }
        },
        {
          "description": "Deletes an upload using its 'upload id'.",
          "method": "delete",
          "parameters": [],
          "path": "/uploads/{upload_id}",
          "title": "Delete an upload",
          "errors": [
            {
              "status": "401",
              "description": "Requires authorization"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "204"
          }
        },
        {
          "description": "Downloads a previously uploaded file.\n\nHeaders:\n    Content-Disposition: attachment; filename=<name>\n    Content-Type: application/octet-stream",
          "method": "get",
          "parameters": [],
          "path": "/uploads/{upload_id}",
          "title": "Download an upload",
          "errors": [
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        }
      ]
    },
    {
      "title": "users",
      "endpoints": [
        {
          "description": "Find all Virtool users.\n\nThe ``active`` query parameter can be used to filter users by their active\nstatus.\n\nThe ``find`` query parameter can be used to filter users by partial matches to\ntheir handles.",
          "method": "get",
          "parameters": [],
          "path": "/users",
          "title": "Find users",
          "errors": [],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Creates a new user.",
          "method": "post",
          "parameters": [
            {
              "default": true,
              "description": "forces a password reset next time the user logs in",
              "title": "Force Reset",
              "type": "boolean",
              "name": "force_reset",
              "required": false
            },
            {
              "description": "the unique handle for the user",
              "minLength": 1,
              "title": "Handle",
              "type": "string",
              "name": "handle",
              "required": true
            },
            {
              "description": "the password for the user",
              "minLength": 1,
              "title": "Password",
              "type": "string",
              "name": "password",
              "required": true
            }
          ],
          "path": "/users",
          "title": "Create a user",
          "errors": [
            {
              "status": "400",
              "description": "Password does not meet length requirement"
            },
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Creates the first user for the instance. This endpoint will not succeed more\nthan once.\n\nAfter calling this endpoint, authenticate as the first user and use those\ncredentials to continue interacting with the API.",
          "method": "put",
          "parameters": [
            {
              "description": "the unique handle for the user",
              "minLength": 1,
              "title": "Handle",
              "type": "string",
              "name": "handle",
              "required": true
            },
            {
              "description": "the password for the user",
              "minLength": 1,
              "title": "Password",
              "type": "string",
              "name": "password",
              "required": true
            }
          ],
          "path": "/users/first",
          "title": "Create a first user",
          "errors": [
            {
              "status": "400",
              "description": "Bad request"
            },
            {
              "status": "403",
              "description": "Not permitted"
            }
          ],
          "response": {
            "status": "201"
          }
        },
        {
          "description": "Fetches the details for a user.",
          "method": "get",
          "parameters": [],
          "path": "/users/{user_id}",
          "title": "Retrieve a user",
          "errors": [
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Updates and existing user with the provided parameters.  Users cannot modify\ntheir own administrative status.",
          "method": "patch",
          "parameters": [
            {
              "description": "make a user active or not",
              "title": "Active",
              "type": "boolean",
              "name": "active",
              "required": false
            },
            {
              "description": "forces a password reset next time the user logs in",
              "title": "Force Reset",
              "type": "boolean",
              "name": "force_reset",
              "required": false
            },
            {
              "description": "sets the IDs of groups the user belongs to",
              "items": {
                "anyOf": [
                  {
                    "type": "integer"
                  },
                  {
                    "type": "string"
                  }
                ]
              },
              "title": "Groups",
              "type": "array",
              "name": "groups",
              "required": false
            },
            {
              "description": "the new password",
              "title": "Password",
              "type": "string",
              "name": "password",
              "required": false
            },
            {
              "description": "set the ID of the user's primary group",
              "title": "Primary Group",
              "type": "integer",
              "name": "primary_group",
              "required": false
            }
          ],
          "path": "/users/{user_id}",
          "title": "Update a user",
          "errors": [
            {
              "status": "400",
              "description": "Bad request"
            },
            {
              "status": "403",
              "description": "Not permitted"
            },
            {
              "status": "404",
              "description": "Not found"
            },
            {
              "status": "409",
              "description": "User is not member of group"
            }
          ],
          "response": {
            "status": "200"
          }
        },
        {
          "description": "Lists all roles that a user has on the space.",
          "method": "get",
          "parameters": [],
          "path": "/users/{user_id}/permissions",
          "title": "List user roles",
          "errors": [],
          "response": {
            "example": [
              "create_ref",
              "create_sample"
            ],
            "status": "200"
          }
        },
        {
          "description": "Removes a permission for a user.",
          "method": "delete",
          "parameters": [],
          "path": "/users/{user_id}/permissions/{role}",
          "title": "Delete user permission",
          "errors": [],
          "response": {
            "example": true,
            "status": "200"
          }
        },
        {
          "description": "Adds a role for a user.",
          "method": "put",
          "parameters": [],
          "path": "/users/{user_id}/permissions/{role}",
          "title": "Add user role",
          "errors": [],
          "response": {
            "example": true,
            "status": "200"
          }
        }
      ]
    }
  ],
  "sectionTitles": [
    "account",
    "admin",
    "analyses",
    "groups",
    "history",
    "hmms",
    "indexes",
    "instance_message",
    "jobs",
    "labels",
    "ml",
    "otus",
    "refs",
    "samples",
    "settings",
    "spaces",
    "subtractions",
    "tasks",
    "uploads",
    "users"
  ],
  "version": "1.0.0"
}