{
  "swagger": "2.0",
  "info": {
    "description": "The Investigators API was introduced to manage Project Investigators listings across all projects in XNAT.",
    "version": "1.7.4.1",
    "title": "Investigators API"
  },
  "tags": [
    {
      "name": "investigators-api",
      "description": "Investigators API"
    }
  ],
  "definitions": {
    "Investigator": {
      "type": "object",
      "properties": {
        "department": {"type": "string"},
        "email": {"type": "string"},
        "firstname": {"type": "string"},
        "id": {"type": "string"},
        "institution": {"type": "string"},
        "investigatorProjects": {
          "type": "array",
          "items": {"type": "string"}
        },
        "lastname": {"type": "string"},
        "phone": {"type": "string"},
        "primaryProjects": {
          "type": "array",
          "items": {"type": "string"}
        },
        "title": {"type": "string"},
        "xnatInvestigatordataId": {
          "type": "integer",
          "format": "int32"
        }
      }
    }

  },
  "paths": {
    "/xapi/investigators": {
      "get": {
        "tags": ["investigators-api"],
        "summary": "Get list of investigators.",
        "description": "The investigators function returns a list of all investigators configured in the XNAT system.",
        "operationId": "getInvestigatorsUsingGET",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "responses": {
          "200": {
            "description": "Returns a list of all of the currently configured investigators.",
            "schema": {
              "type": "array",
              "items": {"$ref": "#/definitions/Investigator"}
            }
          },
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected or unknown error occurred"},
          "403": {"description": "Forbidden"},
          "404": {"description": "Not Found"}
        }
      },
      "post": {
        "tags": ["investigators-api"],
        "summary": "Creates a new investigator from the submitted attributes.",
        "description": "Returns the newly created investigator with the submitted attributes.",
        "operationId": "createInvestigatorUsingPOST",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "parameters": [{
          "in": "body",
          "name": "investigator",
          "description": "investigator",
          "required": true,
          "schema": {"$ref": "#/definitions/Investigator"}
        }],
        "responses": {
          "200": {
            "description": "Returns the newly created investigator.",
            "schema": {"$ref": "#/definitions/Investigator"}
          },
          "201": {"description": "Created"},
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected or unknown error occurred."},
          "403": {"description": "Insufficient privileges to create the submitted investigator."},
          "404": {"description": "The requested investigator wasn't found."}
        }
      }
    },
    "/xapi/investigators/{investigatorId}": {
      "get": {
        "tags": ["investigators-api"],
        "summary": "Gets the requested investigator.",
        "description": "Returns the investigator with the specified ID.",
        "operationId": "getInvestigatorUsingGET",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "parameters": [{
          "name": "investigatorId",
          "in": "path",
          "description": "investigatorId",
          "required": true,
          "type": "integer",
          "format": "int32"
        }],
        "responses": {
          "200": {
            "description": "Returns the requested investigator.",
            "schema": {"$ref": "#/definitions/Investigator"}
          },
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected or unknown error occurred."},
          "403": {"description": "Forbidden"},
          "404": {"description": "The requested investigator wasn't found."}
        }
      },
      "put": {
        "tags": ["investigators-api"],
        "summary": "Updates the requested investigator from the submitted attributes.",
        "description": "Returns the updated investigator.",
        "operationId": "updateInvestigatorUsingPUT",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "parameters": [
          {
            "name": "investigatorId",
            "in": "path",
            "description": "investigatorId",
            "required": true,
            "type": "integer",
            "format": "int32"
          },
          {
            "in": "body",
            "name": "investigator",
            "description": "investigator",
            "required": true,
            "schema": {"$ref": "#/definitions/Investigator"}
          }
        ],
        "responses": {
          "200": {
            "description": "Returns the updated investigator.",
            "schema": {"$ref": "#/definitions/Investigator"}
          },
          "201": {"description": "Created"},
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected or unknown error occurred."},
          "304": {"description": "The requested investigator is the same as the submitted investigator."},
          "403": {"description": "Insufficient privileges to edit the requested investigator."},
          "404": {"description": "The requested investigator wasn't found."}
        }
      },
      "delete": {
        "tags": ["investigators-api"],
        "summary": "Deletes the requested investigator.",
        "description": "Returns true if the requested investigator was successfully deleted. Returns false otherwise.",
        "operationId": "deleteInvestigatorUsingDELETE",
        "consumes": ["application/json"],
        "produces": ["application/json"],
        "parameters": [{
          "name": "investigatorId",
          "in": "path",
          "description": "investigatorId",
          "required": true,
          "type": "integer",
          "format": "int32"
        }],
        "responses": {
          "200": {
            "description": "Returns true to indicate the requested investigator was successfully deleted.",
            "schema": {"type": "boolean"}
          },
          "401": {"description": "Unauthorized"},
          "500": {"description": "An unexpected or unknown error occurred."},
          "204": {"description": "No Content"},
          "403": {"description": "The user doesn't have permission to delete investigators."},
          "404": {"description": "The requested investigator wasn't found."}
        }
      }
    },
  }
}