{
  "openapi": "3.0.0",
  "info": {
    "title": "sips-back",
    "version": "0.0.1",
    "description": "EnerAgen SIPS backend",
    "contact": {
      "name": "Juan Costa",
      "email": "juancosta@alialabs.com"
    }
  },
  "paths": {
    "/auth/whoAmI": {
      "get": {
        "x-controller-name": "UserController",
        "x-operation-name": "whoAmI",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "Return current user",
            "content": {
              "application/json": {
                "schema": {
                  "type": "string"
                }
              }
            }
          }
        },
        "operationId": "UserController.whoAmI"
      }
    },
    "/cnmc/cron/download": {
      "post": {
        "x-controller-name": "CnmcImportController",
        "x-operation-name": "donwload",
        "tags": [
          "CnmcImportController"
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Process started; the result goes to the log and, on issues, by email"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Not started: a SIPS process is already running"
                }
              }
            }
          }
        },
        "operationId": "CnmcImportController.donwload"
      }
    },
    "/cnmc/cron/process-original": {
      "post": {
        "x-controller-name": "CnmcImportController",
        "x-operation-name": "process",
        "tags": [
          "CnmcImportController"
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Process started; the result goes to the log and, on issues, by email"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Not started: a SIPS process is already running"
                }
              }
            }
          }
        },
        "operationId": "CnmcImportController.process"
      }
    },
    "/cnmc/cron/sync-masters": {
      "post": {
        "x-controller-name": "CnmcImportController",
        "x-operation-name": "syncMasters",
        "tags": [
          "CnmcImportController"
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Process started; the result goes to the log and, on issues, by email"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Not started: a master data sync is running"
                }
              }
            }
          }
        },
        "operationId": "CnmcImportController.syncMasters"
      }
    },
    "/cnmc/echo": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "echo",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Echo"
          }
        },
        "operationId": "CnmcGatewayController.echo"
      }
    },
    "/cnmc/echoSecure": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "echoSecure",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Echo"
          }
        },
        "operationId": "CnmcGatewayController.echoSecure"
      }
    },
    "/cnmc/procedure/sips-common/catalog/table-values": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "getMasterTableValues",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Get available files for procedure sips electricity"
          }
        },
        "parameters": [
          {
            "name": "tableName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "operationId": "CnmcGatewayController.getMasterTableValues"
      }
    },
    "/cnmc/procedure/sips-electricity/catalog/file-types": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "getElectricityFileTypes",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Get file types fot procedure sips electricity"
          }
        },
        "operationId": "CnmcGatewayController.getElectricityFileTypes"
      }
    },
    "/cnmc/procedure/sips-electricity/catalog/tables": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "getElectricityMasterTables",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Get available files for procedure sips electricity"
          }
        },
        "operationId": "CnmcGatewayController.getElectricityMasterTables"
      }
    },
    "/cnmc/procedure/sips-electricity/files": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "getElectricityFiles",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Get available files for procedure sips electricity"
          }
        },
        "operationId": "CnmcGatewayController.getElectricityFiles"
      }
    },
    "/cnmc/procedure/sips-gas/catalog/file-types": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "getGasFileTypes",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Get file types for procedure sips gas"
          }
        },
        "operationId": "CnmcGatewayController.getGasFileTypes"
      }
    },
    "/cnmc/procedure/sips-gas/catalog/tables": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "getGasMasterTables",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Get available files for procedure sips electricity"
          }
        },
        "operationId": "CnmcGatewayController.getGasMasterTables"
      }
    },
    "/cnmc/procedure/sips-gas/files": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "getGasFiles",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Get available files for procedure sips electricity"
          }
        },
        "operationId": "CnmcGatewayController.getGasFiles"
      }
    },
    "/cnmc/procedures": {
      "get": {
        "x-controller-name": "CnmcGatewayController",
        "x-operation-name": "getProcedures",
        "tags": [
          "CnmcGatewayController"
        ],
        "responses": {
          "200": {
            "description": "Echo"
          }
        },
        "operationId": "CnmcGatewayController.getProcedures"
      }
    },
    "/inventory/count": {
      "get": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "count",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "200": {
            "description": "Inventory model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Inventory.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Inventory>"
                }
              }
            }
          }
        ],
        "operationId": "InventoryController.count"
      }
    },
    "/inventory/{id}": {
      "put": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "replaceById",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Inventory PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Inventory"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InventoryController.replaceById"
      },
      "patch": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "updateById",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Inventory PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InventoryController.updateById"
      },
      "get": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "findById",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "200": {
            "description": "Inventory model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Inventory.Filter"
                }
              }
            }
          }
        ],
        "operationId": "InventoryController.findById"
      },
      "delete": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "deleteById",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Inventory DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "InventoryController.deleteById"
      }
    },
    "/inventory": {
      "post": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "create",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "200": {
            "description": "Inventory model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Inventory"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewInventory"
              }
            }
          }
        },
        "operationId": "InventoryController.create"
      },
      "patch": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "updateAll",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "200": {
            "description": "Inventory PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Inventory.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Inventory>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryPartial"
              }
            }
          }
        },
        "operationId": "InventoryController.updateAll"
      },
      "get": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "find",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "200": {
            "description": "Array of Inventory model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Inventory.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "InventoryController.find"
      }
    },
    "/inventory-export/cnmc/{consumptionType}": {
      "get": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "exportCnmcFile",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "200": {
            "description": "Export inventory to a CNMC-remission file",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "consumptionType",
            "in": "path",
            "schema": {
              "type": "string",
              "enum": [
                "electricity",
                "gas"
              ]
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Inventory.Filter"
                }
              }
            }
          }
        ],
        "operationId": "InventoryController.exportCnmcFile"
      }
    },
    "/inventory-import": {
      "post": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "uploadAndProcess",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "200": {
            "description": "Upload a new inventory file and process it",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryImport"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "multipart/form-data": {
              "x-parser": "stream",
              "schema": {
                "type": "object",
                "properties": {
                  "file": {
                    "type": "string",
                    "format": "binary"
                  },
                  "partial": {
                    "type": "boolean",
                    "default": false
                  },
                  "consumptionType": {
                    "type": "string",
                    "enum": [
                      "electricity",
                      "gas"
                    ]
                  }
                }
              }
            }
          },
          "description": "multipart/form-data",
          "required": true
        },
        "operationId": "InventoryImportController.uploadAndProcess"
      }
    },
    "/inventory-imports/count": {
      "get": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "count",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "200": {
            "description": "InventoryImport model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "InventoryImport.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<InventoryImport>"
                }
              }
            }
          }
        ],
        "operationId": "InventoryImportController.count"
      }
    },
    "/inventory-imports/{id}": {
      "put": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "replaceById",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "InventoryImport PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryImport"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InventoryImportController.replaceById"
      },
      "patch": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "updateById",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "InventoryImport PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryImportPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "InventoryImportController.updateById"
      },
      "get": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "findById",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "200": {
            "description": "InventoryImport model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryImportWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryImport.Filter"
                }
              }
            }
          }
        ],
        "operationId": "InventoryImportController.findById"
      },
      "delete": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "deleteById",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "InventoryImport DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "InventoryImportController.deleteById"
      }
    },
    "/inventory-imports": {
      "post": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "create",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "200": {
            "description": "InventoryImport model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryImport"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewInventoryImport"
              }
            }
          }
        },
        "operationId": "InventoryImportController.create"
      },
      "patch": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "updateAll",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "200": {
            "description": "InventoryImport PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "InventoryImport.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<InventoryImport>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InventoryImportPartial"
              }
            }
          }
        },
        "operationId": "InventoryImportController.updateAll"
      },
      "get": {
        "x-controller-name": "InventoryImportController",
        "x-operation-name": "find",
        "tags": [
          "InventoryImportController"
        ],
        "responses": {
          "200": {
            "description": "Array of InventoryImport model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/InventoryImportWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InventoryImport.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "InventoryImportController.find"
      }
    },
    "/inventory-send/cnmc/{consumptionType}": {
      "get": {
        "x-controller-name": "InventoryController",
        "x-operation-name": "reportToCnmc",
        "tags": [
          "InventoryController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Sent inventory export file to CNMC"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "consumptionType",
            "in": "path",
            "schema": {
              "type": "string",
              "enum": [
                "electricity",
                "gas"
              ]
            },
            "required": true
          }
        ],
        "operationId": "InventoryController.reportToCnmc"
      }
    },
    "/notify/aggregated-reports": {
      "post": {
        "x-controller-name": "NotificationsController",
        "x-operation-name": "generateSipsAggregated",
        "tags": [
          "NotificationsController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SIPS aggregated reports has been successfully notified via email"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "dateFrom"
                ],
                "properties": {
                  "dateFrom": {
                    "type": "string",
                    "description": "Fetch files from this date"
                  }
                }
              }
            }
          },
          "description": "Notify request body",
          "required": true
        },
        "operationId": "NotificationsController.generateSipsAggregated"
      }
    },
    "/organisms/count": {
      "get": {
        "x-controller-name": "OrganismController",
        "x-operation-name": "count",
        "tags": [
          "OrganismController"
        ],
        "responses": {
          "200": {
            "description": "Organism model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Organism.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Organism>"
                }
              }
            }
          }
        ],
        "operationId": "OrganismController.count"
      }
    },
    "/organisms/{id}": {
      "put": {
        "x-controller-name": "OrganismController",
        "x-operation-name": "replaceById",
        "tags": [
          "OrganismController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Organism PUT success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/Organism"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "OrganismController.replaceById"
      },
      "patch": {
        "x-controller-name": "OrganismController",
        "x-operation-name": "updateById",
        "tags": [
          "OrganismController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Organism PATCH success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganismPartial"
              }
            }
          },
          "x-parameter-index": 1
        },
        "operationId": "OrganismController.updateById"
      },
      "get": {
        "x-controller-name": "OrganismController",
        "x-operation-name": "findById",
        "tags": [
          "OrganismController"
        ],
        "responses": {
          "200": {
            "description": "Organism model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OrganismWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organism.Filter"
                }
              }
            }
          }
        ],
        "operationId": "OrganismController.findById"
      },
      "delete": {
        "x-controller-name": "OrganismController",
        "x-operation-name": "deleteById",
        "tags": [
          "OrganismController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Organism DELETE success"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "OrganismController.deleteById"
      }
    },
    "/organisms": {
      "post": {
        "x-controller-name": "OrganismController",
        "x-operation-name": "create",
        "tags": [
          "OrganismController"
        ],
        "responses": {
          "200": {
            "description": "Organism model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organism"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/NewOrganism"
              }
            }
          }
        },
        "operationId": "OrganismController.create"
      },
      "patch": {
        "x-controller-name": "OrganismController",
        "x-operation-name": "updateAll",
        "tags": [
          "OrganismController"
        ],
        "responses": {
          "200": {
            "description": "Organism PATCH success count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "Organism.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<Organism>"
                }
              }
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OrganismPartial"
              }
            }
          }
        },
        "operationId": "OrganismController.updateAll"
      },
      "get": {
        "x-controller-name": "OrganismController",
        "x-operation-name": "find",
        "tags": [
          "OrganismController"
        ],
        "responses": {
          "200": {
            "description": "Array of Organism model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/OrganismWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Organism.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "OrganismController.find"
      }
    },
    "/ping": {
      "get": {
        "x-controller-name": "PingController",
        "x-operation-name": "ping",
        "tags": [
          "PingController"
        ],
        "responses": {
          "200": {
            "description": "Ping Response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PingResponse"
                }
              }
            }
          }
        },
        "operationId": "PingController.ping"
      }
    },
    "/populate/organisms": {
      "post": {
        "x-controller-name": "PopulateController",
        "x-operation-name": "populateOrganisms",
        "tags": [
          "PopulateController"
        ],
        "responses": {
          "204": {
            "description": "No Content",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Populate masters success"
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object"
              }
            }
          }
        },
        "operationId": "PopulateController.populateOrganisms"
      }
    },
    "/sips/aggregated/{consumptionType}": {
      "post": {
        "x-controller-name": "CnmcImportController",
        "x-operation-name": "generateSipsAggregated",
        "tags": [
          "CnmcImportController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SIPS aggregated report has been successfully generated"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Not started: a SIPS process is already running"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "consumptionType",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CnmcImportController.generateSipsAggregated"
      }
    },
    "/sips/cron/process-content": {
      "post": {
        "x-controller-name": "CnmcImportController",
        "x-operation-name": "processSips",
        "tags": [
          "CnmcImportController"
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Process started; the result goes to the log and, on issues, by email"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Not started: a SIPS process is already running"
                }
              }
            }
          }
        },
        "operationId": "CnmcImportController.processSips"
      }
    },
    "/sips/cycle": {
      "post": {
        "x-controller-name": "CnmcImportController",
        "x-operation-name": "startCycle",
        "tags": [
          "CnmcImportController"
        ],
        "responses": {
          "202": {
            "description": "Accepted",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Process started; the result goes to the log and, on issues, by email"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Not started: a SIPS process is already running"
                }
              }
            }
          }
        },
        "operationId": "CnmcImportController.startCycle"
      },
      "get": {
        "x-controller-name": "CnmcImportController",
        "x-operation-name": "cycleState",
        "tags": [
          "CnmcImportController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Whether a SIPS process is running"
                }
              }
            }
          }
        },
        "operationId": "CnmcImportController.cycleState"
      }
    },
    "/sips/import/{importId}/process": {
      "post": {
        "x-controller-name": "CnmcImportController",
        "x-operation-name": "processSipsImport",
        "tags": [
          "CnmcImportController"
        ],
        "responses": {
          "200": {
            "description": "OK",
            "content": {
              "application/json": {
                "schema": {
                  "description": "SIPS import has been successfully processed"
                }
              }
            }
          },
          "409": {
            "description": "Conflict",
            "content": {
              "application/json": {
                "schema": {
                  "description": "Not started: a SIPS process is already running"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "importId",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "CnmcImportController.processSipsImport"
      }
    },
    "/sips-files/count": {
      "get": {
        "x-controller-name": "SipsFileController",
        "x-operation-name": "count",
        "tags": [
          "SipsFileController"
        ],
        "responses": {
          "200": {
            "description": "SipsFile model count",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/loopback.Count"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "where",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "title": "SipsFile.WhereFilter",
                  "additionalProperties": true,
                  "x-typescript-type": "@loopback/repository#Where<SipsFile>"
                }
              }
            }
          }
        ],
        "operationId": "SipsFileController.count"
      }
    },
    "/sips-files/download/{id}": {
      "get": {
        "x-controller-name": "SipsFileController",
        "x-operation-name": "downloadFile",
        "tags": [
          "SipsFileController"
        ],
        "responses": {
          "200": {
            "description": "The file content",
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          }
        ],
        "operationId": "SipsFileController.downloadFile"
      }
    },
    "/sips-files/{id}": {
      "get": {
        "x-controller-name": "SipsFileController",
        "x-operation-name": "findById",
        "tags": [
          "SipsFileController"
        ],
        "responses": {
          "200": {
            "description": "SipsFile model instance",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SipsFileWithRelations"
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "schema": {
              "type": "string"
            },
            "required": true
          },
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SipsFile.Filter"
                }
              }
            }
          }
        ],
        "operationId": "SipsFileController.findById"
      }
    },
    "/sips-files": {
      "get": {
        "x-controller-name": "SipsFileController",
        "x-operation-name": "find",
        "tags": [
          "SipsFileController"
        ],
        "responses": {
          "200": {
            "description": "Array of SipsFile model instances",
            "content": {
              "application/json": {
                "schema": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/SipsFileWithRelations"
                  }
                }
              }
            }
          }
        },
        "parameters": [
          {
            "name": "filter",
            "in": "query",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SipsFile.Filter1"
                }
              }
            }
          }
        ],
        "operationId": "SipsFileController.find"
      }
    },
    "/users/login": {
      "post": {
        "x-controller-name": "UserController",
        "x-operation-name": "login",
        "tags": [
          "UserController"
        ],
        "responses": {
          "200": {
            "description": "Token",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "token": {
                      "type": "string"
                    }
                  }
                }
              }
            }
          }
        },
        "requestBody": {
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "username",
                  "password"
                ],
                "properties": {
                  "username": {
                    "type": "string"
                  },
                  "password": {
                    "type": "string",
                    "minLength": 4
                  }
                }
              }
            }
          },
          "description": "The input of login function",
          "required": true
        },
        "operationId": "UserController.login"
      }
    }
  },
  "servers": [
    {
      "url": "https://api.sips.alialabs.com"
    }
  ],
  "components": {
    "schemas": {
      "UserCredentialsWithRelations": {
        "title": "UserCredentialsWithRelations",
        "type": "object",
        "description": "(tsType: UserCredentialsWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "password": {
            "type": "string"
          },
          "userId": {
            "type": "string"
          }
        },
        "required": [
          "password",
          "userId"
        ],
        "additionalProperties": true,
        "x-typescript-type": "UserCredentialsWithRelations"
      },
      "UserWithRelations": {
        "title": "UserWithRelations",
        "type": "object",
        "description": "(tsType: UserWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "realm": {
            "type": "string"
          },
          "username": {
            "type": "string"
          },
          "email": {
            "type": "string"
          },
          "emailVerified": {
            "type": "boolean"
          },
          "level": {
            "type": "number"
          },
          "roles": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "admin",
                "organism"
              ]
            }
          },
          "organismId": {
            "type": "string"
          },
          "userCredentials": {
            "$ref": "#/components/schemas/UserCredentialsWithRelations"
          },
          "organism": {
            "$ref": "#/components/schemas/OrganismWithRelations"
          }
        },
        "required": [
          "username",
          "roles"
        ],
        "additionalProperties": true,
        "x-typescript-type": "UserWithRelations"
      },
      "InventoryImportMessageWithRelations": {
        "title": "InventoryImportMessageWithRelations",
        "type": "object",
        "description": "(tsType: InventoryImportMessageWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "message": {
            "type": "string",
            "description": "Describe the issue"
          },
          "observations": {
            "type": "string",
            "description": "Add more info about the issue"
          },
          "info": {
            "type": "object"
          },
          "category": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "correction": {
            "type": "string",
            "description": "Info about the performed correction"
          },
          "importId": {
            "type": "string"
          },
          "inventoryId": {
            "type": "string",
            "nullable": true
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "import": {
            "$ref": "#/components/schemas/InventoryImportWithRelations"
          },
          "inventory": {
            "$ref": "#/components/schemas/InventoryWithRelations"
          },
          "organism": {
            "$ref": "#/components/schemas/OrganismWithRelations"
          }
        },
        "required": [
          "date",
          "message",
          "category",
          "type"
        ],
        "additionalProperties": true,
        "x-typescript-type": "InventoryImportMessageWithRelations"
      },
      "InventoryImportWithRelations": {
        "title": "InventoryImportWithRelations",
        "type": "object",
        "description": "(tsType: InventoryImportWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "originalFileName": {
            "type": "string"
          },
          "mimeType": {
            "type": "string"
          },
          "inputFileSize": {
            "type": "number"
          },
          "inputPath": {
            "type": "string"
          },
          "inputUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "outputPath": {
            "type": "string"
          },
          "outputUrl": {
            "type": "string"
          },
          "consumptionType": {
            "type": "string"
          },
          "reportPath": {
            "type": "string"
          },
          "reportUrl": {
            "type": "string"
          },
          "reportsByOrganism": {
            "type": "object"
          },
          "overview": {
            "type": "object"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "inputFileId": {
            "type": "string"
          },
          "reportFileId": {
            "type": "string"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryImportMessageWithRelations"
            }
          },
          "organism": {
            "$ref": "#/components/schemas/OrganismWithRelations"
          },
          "inputFile": {
            "$ref": "#/components/schemas/SipsFileWithRelations"
          },
          "reportFile": {
            "$ref": "#/components/schemas/SipsFileWithRelations"
          }
        },
        "required": [
          "originalFileName",
          "mimeType",
          "inputFileSize",
          "inputPath",
          "inputUrl",
          "status",
          "consumptionType",
          "overview"
        ],
        "additionalProperties": true,
        "x-typescript-type": "InventoryImportWithRelations"
      },
      "InventoryWithRelations": {
        "title": "InventoryWithRelations",
        "type": "object",
        "description": "(tsType: InventoryWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "cups": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "consumptionType": {
            "type": "string"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "importId": {
            "type": "string"
          },
          "organism": {
            "$ref": "#/components/schemas/OrganismWithRelations"
          },
          "import": {
            "$ref": "#/components/schemas/InventoryImportWithRelations"
          },
          "messages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryImportMessageWithRelations"
            }
          }
        },
        "required": [
          "cups",
          "createdAt",
          "consumptionType"
        ],
        "additionalProperties": true,
        "x-typescript-type": "InventoryWithRelations"
      },
      "OrganismWithRelations": {
        "title": "OrganismWithRelations",
        "type": "object",
        "description": "(tsType: OrganismWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "acronym": {
            "type": "string"
          },
          "level": {
            "type": "number"
          },
          "contactEmail": {
            "type": "string"
          },
          "parentId": {
            "type": "string",
            "nullable": true
          },
          "parent": {
            "$ref": "#/components/schemas/OrganismWithRelations"
          },
          "children": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/OrganismWithRelations"
            }
          },
          "users": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UserWithRelations"
            }
          },
          "inventory": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InventoryWithRelations"
            }
          }
        },
        "required": [
          "code",
          "name",
          "acronym",
          "level"
        ],
        "additionalProperties": false,
        "x-typescript-type": "OrganismWithRelations"
      },
      "SipsImportWithRelations": {
        "title": "SipsImportWithRelations",
        "type": "object",
        "description": "(tsType: SipsImportWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "original": {
            "type": "object"
          },
          "originalFileName": {
            "type": "string"
          },
          "originalFileDate": {
            "type": "string",
            "format": "date-time"
          },
          "consumptionType": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "sipsFileType": {
            "type": "string"
          },
          "formatVersion": {
            "type": "string"
          },
          "errorMessage": {
            "type": "string"
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "filePath": {
            "type": "string"
          },
          "createAt": {
            "type": "string",
            "format": "date-time"
          },
          "processAt": {
            "type": "string",
            "format": "date-time"
          },
          "externalId": {
            "type": "string"
          }
        },
        "required": [
          "original",
          "originalFileDate",
          "consumptionType",
          "status"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SipsImportWithRelations"
      },
      "SipsFileWithRelations": {
        "title": "SipsFileWithRelations",
        "type": "object",
        "description": "(tsType: SipsFileWithRelations, schemaOptions: { includeRelations: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "date": {
            "type": "string",
            "format": "date-time"
          },
          "name": {
            "type": "string"
          },
          "createAt": {
            "type": "string",
            "format": "date-time"
          },
          "path": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "type": {
            "type": "string"
          },
          "consumptionType": {
            "type": "string"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "sipsImportId": {
            "type": "string"
          },
          "organism": {
            "$ref": "#/components/schemas/OrganismWithRelations"
          },
          "sipsImport": {
            "$ref": "#/components/schemas/SipsImportWithRelations"
          }
        },
        "required": [
          "name",
          "path",
          "url",
          "type",
          "consumptionType"
        ],
        "additionalProperties": false,
        "x-typescript-type": "SipsFileWithRelations"
      },
      "Organism": {
        "title": "Organism",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "acronym": {
            "type": "string"
          },
          "level": {
            "type": "number"
          },
          "contactEmail": {
            "type": "string"
          },
          "parentId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "code",
          "name",
          "acronym",
          "level"
        ],
        "additionalProperties": false
      },
      "NewOrganism": {
        "title": "NewOrganism",
        "type": "object",
        "description": "(tsType: Omit<Organism, 'id'>, schemaOptions: { title: 'NewOrganism', exclude: [ 'id' ] })",
        "properties": {
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "acronym": {
            "type": "string"
          },
          "level": {
            "type": "number"
          },
          "contactEmail": {
            "type": "string"
          },
          "parentId": {
            "type": "string",
            "nullable": true
          }
        },
        "required": [
          "code",
          "name",
          "acronym",
          "level"
        ],
        "additionalProperties": false,
        "x-typescript-type": "Omit<Organism, 'id'>"
      },
      "OrganismPartial": {
        "title": "OrganismPartial",
        "type": "object",
        "description": "(tsType: Partial<Organism>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "code": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "acronym": {
            "type": "string"
          },
          "level": {
            "type": "number"
          },
          "contactEmail": {
            "type": "string"
          },
          "parentId": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "Partial<Organism>"
      },
      "Inventory": {
        "title": "Inventory",
        "type": "object",
        "properties": {
          "cups": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "consumptionType": {
            "type": "string"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "importId": {
            "type": "string"
          }
        },
        "required": [
          "cups",
          "createdAt",
          "consumptionType"
        ],
        "additionalProperties": true
      },
      "NewInventory": {
        "title": "NewInventory",
        "type": "object",
        "description": "(tsType: Inventory, schemaOptions: { title: 'NewInventory' })",
        "properties": {
          "cups": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "consumptionType": {
            "type": "string"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "importId": {
            "type": "string"
          }
        },
        "required": [
          "cups",
          "createdAt",
          "consumptionType"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Inventory"
      },
      "InventoryPartial": {
        "title": "InventoryPartial",
        "type": "object",
        "description": "(tsType: Partial<Inventory>, schemaOptions: { partial: true })",
        "properties": {
          "cups": {
            "type": "string"
          },
          "createdAt": {
            "type": "string",
            "format": "date-time"
          },
          "updatedAt": {
            "type": "string",
            "format": "date-time"
          },
          "consumptionType": {
            "type": "string"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "importId": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<Inventory>"
      },
      "InventoryImport": {
        "title": "InventoryImport",
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "originalFileName": {
            "type": "string"
          },
          "mimeType": {
            "type": "string"
          },
          "inputFileSize": {
            "type": "number"
          },
          "inputPath": {
            "type": "string"
          },
          "inputUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "outputPath": {
            "type": "string"
          },
          "outputUrl": {
            "type": "string"
          },
          "consumptionType": {
            "type": "string"
          },
          "reportPath": {
            "type": "string"
          },
          "reportUrl": {
            "type": "string"
          },
          "reportsByOrganism": {
            "type": "object"
          },
          "overview": {
            "type": "object"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "inputFileId": {
            "type": "string"
          },
          "reportFileId": {
            "type": "string"
          }
        },
        "required": [
          "originalFileName",
          "mimeType",
          "inputFileSize",
          "inputPath",
          "inputUrl",
          "status",
          "consumptionType",
          "overview"
        ],
        "additionalProperties": true
      },
      "NewInventoryImport": {
        "title": "NewInventoryImport",
        "type": "object",
        "description": "(tsType: Omit<InventoryImport, 'id'>, schemaOptions: { title: 'NewInventoryImport', exclude: [ 'id' ] })",
        "properties": {
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "originalFileName": {
            "type": "string"
          },
          "mimeType": {
            "type": "string"
          },
          "inputFileSize": {
            "type": "number"
          },
          "inputPath": {
            "type": "string"
          },
          "inputUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "outputPath": {
            "type": "string"
          },
          "outputUrl": {
            "type": "string"
          },
          "consumptionType": {
            "type": "string"
          },
          "reportPath": {
            "type": "string"
          },
          "reportUrl": {
            "type": "string"
          },
          "reportsByOrganism": {
            "type": "object"
          },
          "overview": {
            "type": "object"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "inputFileId": {
            "type": "string"
          },
          "reportFileId": {
            "type": "string"
          }
        },
        "required": [
          "originalFileName",
          "mimeType",
          "inputFileSize",
          "inputPath",
          "inputUrl",
          "status",
          "consumptionType",
          "overview"
        ],
        "additionalProperties": true,
        "x-typescript-type": "Omit<InventoryImport, 'id'>"
      },
      "InventoryImportPartial": {
        "title": "InventoryImportPartial",
        "type": "object",
        "description": "(tsType: Partial<InventoryImport>, schemaOptions: { partial: true })",
        "properties": {
          "id": {
            "type": "string"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time"
          },
          "originalFileName": {
            "type": "string"
          },
          "mimeType": {
            "type": "string"
          },
          "inputFileSize": {
            "type": "number"
          },
          "inputPath": {
            "type": "string"
          },
          "inputUrl": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "outputPath": {
            "type": "string"
          },
          "outputUrl": {
            "type": "string"
          },
          "consumptionType": {
            "type": "string"
          },
          "reportPath": {
            "type": "string"
          },
          "reportUrl": {
            "type": "string"
          },
          "reportsByOrganism": {
            "type": "object"
          },
          "overview": {
            "type": "object"
          },
          "organismId": {
            "type": "string",
            "nullable": true
          },
          "inputFileId": {
            "type": "string"
          },
          "reportFileId": {
            "type": "string"
          }
        },
        "additionalProperties": true,
        "x-typescript-type": "Partial<InventoryImport>"
      },
      "loopback.Count": {
        "type": "object",
        "title": "loopback.Count",
        "x-typescript-type": "@loopback/repository#Count",
        "properties": {
          "count": {
            "type": "number"
          }
        }
      },
      "Inventory.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Inventory.ScopeFilter"
      },
      "Inventory.IncludeFilter.Items": {
        "title": "Inventory.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "organism",
              "import",
              "messages"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Inventory.ScopeFilter"
          }
        }
      },
      "Inventory.Filter": {
        "type": "object",
        "title": "Inventory.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "cups": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "consumptionType": {
                    "type": "boolean"
                  },
                  "organismId": {
                    "type": "boolean"
                  },
                  "importId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "cups"
                },
                "uniqueItems": true
              }
            ],
            "title": "Inventory.Fields"
          },
          "include": {
            "title": "Inventory.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Inventory.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Inventory>"
      },
      "Inventory.Filter1": {
        "type": "object",
        "title": "Inventory.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Inventory.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "cups": {
                    "type": "boolean"
                  },
                  "createdAt": {
                    "type": "boolean"
                  },
                  "updatedAt": {
                    "type": "boolean"
                  },
                  "consumptionType": {
                    "type": "boolean"
                  },
                  "organismId": {
                    "type": "boolean"
                  },
                  "importId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "cups"
                },
                "uniqueItems": true
              }
            ],
            "title": "Inventory.Fields"
          },
          "include": {
            "title": "Inventory.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Inventory.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Inventory>"
      },
      "InventoryImport.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "InventoryImport.ScopeFilter"
      },
      "InventoryImport.IncludeFilter.Items": {
        "title": "InventoryImport.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "messages",
              "organism",
              "inputFile",
              "reportFile"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/InventoryImport.ScopeFilter"
          }
        }
      },
      "InventoryImport.Filter": {
        "type": "object",
        "title": "InventoryImport.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "startDate": {
                    "type": "boolean"
                  },
                  "endDate": {
                    "type": "boolean"
                  },
                  "originalFileName": {
                    "type": "boolean"
                  },
                  "mimeType": {
                    "type": "boolean"
                  },
                  "inputFileSize": {
                    "type": "boolean"
                  },
                  "inputPath": {
                    "type": "boolean"
                  },
                  "inputUrl": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "outputPath": {
                    "type": "boolean"
                  },
                  "outputUrl": {
                    "type": "boolean"
                  },
                  "consumptionType": {
                    "type": "boolean"
                  },
                  "reportPath": {
                    "type": "boolean"
                  },
                  "reportUrl": {
                    "type": "boolean"
                  },
                  "reportsByOrganism": {
                    "type": "boolean"
                  },
                  "overview": {
                    "type": "boolean"
                  },
                  "organismId": {
                    "type": "boolean"
                  },
                  "inputFileId": {
                    "type": "boolean"
                  },
                  "reportFileId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "InventoryImport.Fields"
          },
          "include": {
            "title": "InventoryImport.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/InventoryImport.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<InventoryImport>"
      },
      "InventoryImport.Filter1": {
        "type": "object",
        "title": "InventoryImport.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "InventoryImport.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "startDate": {
                    "type": "boolean"
                  },
                  "endDate": {
                    "type": "boolean"
                  },
                  "originalFileName": {
                    "type": "boolean"
                  },
                  "mimeType": {
                    "type": "boolean"
                  },
                  "inputFileSize": {
                    "type": "boolean"
                  },
                  "inputPath": {
                    "type": "boolean"
                  },
                  "inputUrl": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "boolean"
                  },
                  "outputPath": {
                    "type": "boolean"
                  },
                  "outputUrl": {
                    "type": "boolean"
                  },
                  "consumptionType": {
                    "type": "boolean"
                  },
                  "reportPath": {
                    "type": "boolean"
                  },
                  "reportUrl": {
                    "type": "boolean"
                  },
                  "reportsByOrganism": {
                    "type": "boolean"
                  },
                  "overview": {
                    "type": "boolean"
                  },
                  "organismId": {
                    "type": "boolean"
                  },
                  "inputFileId": {
                    "type": "boolean"
                  },
                  "reportFileId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "InventoryImport.Fields"
          },
          "include": {
            "title": "InventoryImport.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/InventoryImport.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<InventoryImport>"
      },
      "Organism.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "Organism.ScopeFilter"
      },
      "Organism.IncludeFilter.Items": {
        "title": "Organism.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "parent",
              "children",
              "users",
              "inventory"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/Organism.ScopeFilter"
          }
        }
      },
      "Organism.Filter": {
        "type": "object",
        "title": "Organism.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "code": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "acronym": {
                    "type": "boolean"
                  },
                  "level": {
                    "type": "boolean"
                  },
                  "contactEmail": {
                    "type": "boolean"
                  },
                  "parentId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "code",
                    "name",
                    "acronym",
                    "level",
                    "contactEmail",
                    "parentId"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Organism.Fields"
          },
          "include": {
            "title": "Organism.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Organism.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Organism>"
      },
      "Organism.Filter1": {
        "type": "object",
        "title": "Organism.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "Organism.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "code": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "acronym": {
                    "type": "boolean"
                  },
                  "level": {
                    "type": "boolean"
                  },
                  "contactEmail": {
                    "type": "boolean"
                  },
                  "parentId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "code",
                    "name",
                    "acronym",
                    "level",
                    "contactEmail",
                    "parentId"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "Organism.Fields"
          },
          "include": {
            "title": "Organism.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/Organism.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<Organism>"
      },
      "PingResponse": {
        "type": "object",
        "title": "PingResponse",
        "properties": {
          "greeting": {
            "type": "string"
          },
          "date": {
            "type": "string"
          },
          "url": {
            "type": "string"
          },
          "headers": {
            "type": "object",
            "properties": {
              "Content-Type": {
                "type": "string"
              }
            },
            "additionalProperties": true
          }
        }
      },
      "SipsFile.ScopeFilter": {
        "type": "object",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {},
                "additionalProperties": true
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                },
                "uniqueItems": true
              }
            ]
          },
          "include": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {},
              "additionalProperties": true
            }
          }
        },
        "additionalProperties": false,
        "title": "SipsFile.ScopeFilter"
      },
      "SipsFile.IncludeFilter.Items": {
        "title": "SipsFile.IncludeFilter.Items",
        "type": "object",
        "properties": {
          "relation": {
            "type": "string",
            "enum": [
              "organism",
              "sipsImport"
            ]
          },
          "scope": {
            "$ref": "#/components/schemas/SipsFile.ScopeFilter"
          }
        }
      },
      "SipsFile.Filter": {
        "type": "object",
        "title": "SipsFile.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "date": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "createAt": {
                    "type": "boolean"
                  },
                  "path": {
                    "type": "boolean"
                  },
                  "url": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "consumptionType": {
                    "type": "boolean"
                  },
                  "organismId": {
                    "type": "boolean"
                  },
                  "sipsImportId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "date",
                    "name",
                    "createAt",
                    "path",
                    "url",
                    "type",
                    "consumptionType",
                    "organismId",
                    "sipsImportId"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "SipsFile.Fields"
          },
          "include": {
            "title": "SipsFile.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SipsFile.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<SipsFile>"
      },
      "SipsFile.Filter1": {
        "type": "object",
        "title": "SipsFile.Filter",
        "properties": {
          "offset": {
            "type": "integer",
            "minimum": 0
          },
          "limit": {
            "type": "integer",
            "minimum": 1,
            "example": 100
          },
          "skip": {
            "type": "integer",
            "minimum": 0
          },
          "order": {
            "oneOf": [
              {
                "type": "string"
              },
              {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            ]
          },
          "where": {
            "title": "SipsFile.WhereFilter",
            "type": "object",
            "additionalProperties": true
          },
          "fields": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "id": {
                    "type": "boolean"
                  },
                  "date": {
                    "type": "boolean"
                  },
                  "name": {
                    "type": "boolean"
                  },
                  "createAt": {
                    "type": "boolean"
                  },
                  "path": {
                    "type": "boolean"
                  },
                  "url": {
                    "type": "boolean"
                  },
                  "type": {
                    "type": "boolean"
                  },
                  "consumptionType": {
                    "type": "boolean"
                  },
                  "organismId": {
                    "type": "boolean"
                  },
                  "sipsImportId": {
                    "type": "boolean"
                  }
                },
                "additionalProperties": false
              },
              {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "id",
                    "date",
                    "name",
                    "createAt",
                    "path",
                    "url",
                    "type",
                    "consumptionType",
                    "organismId",
                    "sipsImportId"
                  ],
                  "example": "id"
                },
                "uniqueItems": true
              }
            ],
            "title": "SipsFile.Fields"
          },
          "include": {
            "title": "SipsFile.IncludeFilter",
            "type": "array",
            "items": {
              "anyOf": [
                {
                  "$ref": "#/components/schemas/SipsFile.IncludeFilter.Items"
                },
                {
                  "type": "string"
                }
              ]
            }
          }
        },
        "additionalProperties": false,
        "x-typescript-type": "@loopback/repository#Filter<SipsFile>"
      }
    },
    "securitySchemes": {
      "jwt": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "jwt": []
    }
  ]
}