{
  "openapi": "3.0.1",
  "info": {
    "title": "PANORAMA",
    "description": "API con autenticaci�n m�ltiple (Basic, JWT, Azure AD)",
    "version": "v1"
  },
  "paths": {
    "/Auth": {
      "post": {
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "userName",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "password",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/SignUp": {
      "post": {
        "tags": [
          "Auth"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/SignUpRequestDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SignUpRequestDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/SignUpRequestDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/SignUpRequestDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ValidPassword": {
      "post": {
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "password",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ForgotPassword": {
      "post": {
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/ResetPassword": {
      "post": {
        "tags": [
          "Auth"
        ],
        "parameters": [
          {
            "name": "username",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "password",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "token",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateDashboard": {
      "post": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Registra un nuevo Dashboard de Power BI en la plataforma.\r\nEl dashboard queda asociado a un reporte y workspace de Power BI\r\na través de una parametrización de Azure existente.",
        "requestBody": {
          "description": "Datos del Dashboard a registrar, incluyendo `ReportId`, `GroupId`,\r\n            `ParameterizationAzureId` y `Description`.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateDashboard": {
      "put": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Actualiza los datos de un Dashboard de Power BI existente en la plataforma.\r\nPermite modificar el reporte, workspace, parametrización de Azure y descripción asociados.",
        "requestBody": {
          "description": "Datos actualizados del Dashboard, incluyendo el `DashboardId` del registro a modificar.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteDashboard": {
      "delete": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Elimina un Dashboard de Power BI registrado en la plataforma según su identificador.",
        "parameters": [
          {
            "name": "dashboardId",
            "in": "query",
            "description": "Identificador único del Dashboard a eliminar.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListDashboards": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Obtiene una lista paginada de los Dashboards de Power BI registrados en la plataforma.",
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetDashboardById": {
      "get": {
        "tags": [
          "Dashboard"
        ],
        "summary": "Obtiene el detalle de un Dashboard de Power BI específico a partir de su identificador.",
        "parameters": [
          {
            "name": "dashboardId",
            "in": "query",
            "description": "Identificador único del Dashboard a consultar.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateDashboardAssignment": {
      "post": {
        "tags": [
          "DashboardAssignment"
        ],
        "summary": "Creates a new dashboard assignment.",
        "requestBody": {
          "description": "The dashboard assignment details.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardAssignmentDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardAssignmentDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardAssignmentDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardAssignmentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateDashboardAssignment": {
      "put": {
        "tags": [
          "DashboardAssignment"
        ],
        "summary": "Updates an existing dashboard assignment.",
        "requestBody": {
          "description": "The updated dashboard assignment details.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardAssignmentDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardAssignmentDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardAssignmentDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/DashboardAssignmentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteDashboardAssignment": {
      "delete": {
        "tags": [
          "DashboardAssignment"
        ],
        "summary": "Deletes a dashboard assignment.",
        "parameters": [
          {
            "name": "dashboardAssignmentId",
            "in": "query",
            "description": "The ID of the dashboard assignment to delete.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListDashboardAssignments": {
      "get": {
        "tags": [
          "DashboardAssignment"
        ],
        "summary": "Gets a list of dashboard assignments.",
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetDashboardAssignmentById": {
      "get": {
        "tags": [
          "DashboardAssignment"
        ],
        "summary": "Gets a dashboard assignment by ID.",
        "parameters": [
          {
            "name": "dashboardAssignmentId",
            "in": "query",
            "description": "The ID of the dashboard assignment.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetAllDashboardAssignmentByUserId": {
      "get": {
        "tags": [
          "DashboardAssignment"
        ],
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateLicense": {
      "post": {
        "tags": [
          "License"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateLicense": {
      "put": {
        "tags": [
          "License"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteLicense": {
      "delete": {
        "tags": [
          "License"
        ],
        "parameters": [
          {
            "name": "licenseId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListLicenses": {
      "get": {
        "tags": [
          "License"
        ],
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetLicenseById": {
      "get": {
        "tags": [
          "License"
        ],
        "parameters": [
          {
            "name": "licenseId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateLicenseConfiguration": {
      "post": {
        "tags": [
          "LicenseConfiguration"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseConfigurationDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseConfigurationDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseConfigurationDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseConfigurationDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateLicenseConfiguration": {
      "put": {
        "tags": [
          "LicenseConfiguration"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseConfigurationDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseConfigurationDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseConfigurationDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/LicenseConfigurationDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteLicenseConfiguration": {
      "delete": {
        "tags": [
          "LicenseConfiguration"
        ],
        "parameters": [
          {
            "name": "licenseConfigurationId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListLicenseConfigurations": {
      "get": {
        "tags": [
          "LicenseConfiguration"
        ],
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetLicenseConfigurationById": {
      "get": {
        "tags": [
          "LicenseConfiguration"
        ],
        "parameters": [
          {
            "name": "licenseConfigurationId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateMenu": {
      "post": {
        "tags": [
          "Menu"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MenuDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MenuDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MenuDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MenuDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateMenu": {
      "put": {
        "tags": [
          "Menu"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/MenuDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/MenuDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/MenuDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/MenuDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteMenu": {
      "delete": {
        "tags": [
          "Menu"
        ],
        "parameters": [
          {
            "name": "menuId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListMenus": {
      "get": {
        "tags": [
          "Menu"
        ],
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetMenuById": {
      "get": {
        "tags": [
          "Menu"
        ],
        "parameters": [
          {
            "name": "menuId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateModule": {
      "post": {
        "tags": [
          "Module"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateModule": {
      "put": {
        "tags": [
          "Module"
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ModuleDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteModule": {
      "delete": {
        "tags": [
          "Module"
        ],
        "parameters": [
          {
            "name": "moduleId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListModules": {
      "get": {
        "tags": [
          "Module"
        ],
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetModuleById": {
      "get": {
        "tags": [
          "Module"
        ],
        "parameters": [
          {
            "name": "moduleId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetOdooData": {
      "post": {
        "tags": [
          "Odoo"
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/QueryDto"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QueryDto"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/QueryDto"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/QueryDto"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetOdooDataV2": {
      "get": {
        "tags": [
          "Odoo"
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "model",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "fields",
            "in": "query",
            "schema": {
              "type": "array",
              "items": {
                "type": "string"
              }
            }
          },
          {
            "name": "limit",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "filters",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "offset",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32",
              "default": 0
            }
          },
          {
            "name": "order",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetModels": {
      "get": {
        "tags": [
          "Odoo"
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetModelFields": {
      "get": {
        "tags": [
          "Odoo"
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "modelName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetAllData": {
      "get": {
        "tags": [
          "Odoo"
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "modelName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetModelRelations": {
      "get": {
        "tags": [
          "Odoo"
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "modelName",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetCombinedData": {
      "post": {
        "tags": [
          "Odoo"
        ],
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "requestBody": {
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/CombinedQueryDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CombinedQueryDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/CombinedQueryDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/CombinedQueryDTO"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateParameterizationAzure": {
      "post": {
        "tags": [
          "ParameterizationAzure"
        ],
        "summary": "Creates a new Azure parameterization.",
        "requestBody": {
          "description": "The Azure parameterization details.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationAzureDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationAzureDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationAzureDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationAzureDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateParameterizationAzure": {
      "put": {
        "tags": [
          "ParameterizationAzure"
        ],
        "summary": "Updates an existing Azure parameterization.",
        "requestBody": {
          "description": "The Azure parameterization details.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationAzureDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationAzureDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationAzureDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationAzureDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteParameterizationAzure": {
      "delete": {
        "tags": [
          "ParameterizationAzure"
        ],
        "summary": "Deletes an Azure parameterization.",
        "parameters": [
          {
            "name": "parameterizationAzureId",
            "in": "query",
            "description": "The ID of the Azure parameterization to delete.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListParameterizationAzures": {
      "get": {
        "tags": [
          "ParameterizationAzure"
        ],
        "summary": "Gets a list of Azure parameterizations.",
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetParameterizationAzureById": {
      "get": {
        "tags": [
          "ParameterizationAzure"
        ],
        "summary": "Gets an Azure parameterization by ID.",
        "parameters": [
          {
            "name": "parameterizationAzureId",
            "in": "query",
            "description": "The ID of the Azure parameterization.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateParameterizationOdoo": {
      "post": {
        "tags": [
          "ParameterizationOdoo"
        ],
        "summary": "Creates a new ParameterizationOdoo.",
        "requestBody": {
          "description": "The ParameterizationOdoo data transfer object.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationOdooDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationOdooDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationOdooDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationOdooDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateParameterizationOdoo": {
      "put": {
        "tags": [
          "ParameterizationOdoo"
        ],
        "summary": "Updates an existing ParameterizationOdoo.",
        "requestBody": {
          "description": "The ParameterizationOdoo data transfer object.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationOdooDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationOdooDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationOdooDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/ParameterizationOdooDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteParameterizationOdoo": {
      "delete": {
        "tags": [
          "ParameterizationOdoo"
        ],
        "summary": "Deletes an existing ParameterizationOdoo.",
        "parameters": [
          {
            "name": "parameterizationOdooId",
            "in": "query",
            "description": "The ID of the ParameterizationOdoo to delete.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListParameterizationOdoo": {
      "get": {
        "tags": [
          "ParameterizationOdoo"
        ],
        "summary": "Gets a list of ParameterizationOdoo.",
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetParameterizationOdooById": {
      "get": {
        "tags": [
          "ParameterizationOdoo"
        ],
        "summary": "Gets a ParameterizationOdoo by ID.",
        "parameters": [
          {
            "name": "parameterizationOdooId",
            "in": "query",
            "description": "The ID of the ParameterizationOdoo to retrieve.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetDashboardEmbed": {
      "get": {
        "tags": [
          "PowerBI"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetGroupById": {
      "get": {
        "tags": [
          "PowerBI"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetGroups": {
      "get": {
        "tags": [
          "PowerBI"
        ],
        "parameters": [
          {
            "name": "parameterizationAzureId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetReports": {
      "get": {
        "tags": [
          "PowerBI"
        ],
        "parameters": [
          {
            "name": "parameterizationAzureId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetPowerBIReportUrlAsync": {
      "get": {
        "tags": [
          "PowerBI"
        ],
        "parameters": [
          {
            "name": "groupId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "reportId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "tenantId",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "datasetId",
            "in": "query",
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateRoleAssignment": {
      "post": {
        "tags": [
          "RoleAssignment"
        ],
        "summary": "Crea una nueva asignación de rol.",
        "requestBody": {
          "description": "DTO de asignación de roles.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RolesAssignmentDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RolesAssignmentDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RolesAssignmentDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RolesAssignmentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateRoleAssignment": {
      "put": {
        "tags": [
          "RoleAssignment"
        ],
        "summary": "Actualiza una asignación de rol existente.",
        "requestBody": {
          "description": "DTO de asignación de roles.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/RolesAssignmentDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RolesAssignmentDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/RolesAssignmentDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/RolesAssignmentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteRoleAssignment": {
      "delete": {
        "tags": [
          "RoleAssignment"
        ],
        "summary": "Elimina una asignación de rol.",
        "parameters": [
          {
            "name": "rolesAssignmentId",
            "in": "query",
            "description": "ID de la asignación de roles.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListRoleAssignments": {
      "get": {
        "tags": [
          "RoleAssignment"
        ],
        "summary": "Obtiene una lista de asignaciones de roles.",
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetRoleAssignmentById": {
      "get": {
        "tags": [
          "RoleAssignment"
        ],
        "summary": "Obtiene una asignación de rol por ID.",
        "parameters": [
          {
            "name": "rolesAssignmentId",
            "in": "query",
            "description": "ID de la asignación de roles.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateTenant": {
      "post": {
        "tags": [
          "Tenant"
        ],
        "summary": "Crea un nuevo inquilino.",
        "requestBody": {
          "description": "Datos del inquilino a crear.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TenantDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TenantDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TenantDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TenantDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateTenant": {
      "put": {
        "tags": [
          "Tenant"
        ],
        "summary": "Actualiza un inquilino existente.",
        "requestBody": {
          "description": "Datos del inquilino a actualizar.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/TenantDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TenantDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/TenantDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/TenantDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteTenant": {
      "delete": {
        "tags": [
          "Tenant"
        ],
        "summary": "Elimina un inquilino.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "ID del inquilino a eliminar.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListTenants": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "summary": "Obtiene una lista de inquilinos.",
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetTenantById": {
      "get": {
        "tags": [
          "Tenant"
        ],
        "summary": "Obtiene un inquilino por su ID.",
        "parameters": [
          {
            "name": "tenantId",
            "in": "query",
            "description": "ID del inquilino.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateUser": {
      "post": {
        "tags": [
          "User"
        ],
        "summary": "Crea un nuevo usuario.",
        "requestBody": {
          "description": "Datos del usuario a crear.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UserDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateUser": {
      "put": {
        "tags": [
          "User"
        ],
        "summary": "Actualiza un usuario existente.",
        "requestBody": {
          "description": "Datos del usuario a actualizar.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UserDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UserDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UserDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UserDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteUser": {
      "delete": {
        "tags": [
          "User"
        ],
        "summary": "Elimina un usuario.",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "ID del usuario a eliminar.",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListUsers": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Obtiene una lista de usuarios.",
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetUserById": {
      "get": {
        "tags": [
          "User"
        ],
        "summary": "Obtiene un usuario por su ID.",
        "parameters": [
          {
            "name": "userId",
            "in": "query",
            "description": "ID del usuario a obtener.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/CreateUserAssignment": {
      "post": {
        "tags": [
          "UserAssignment"
        ],
        "summary": "Creates a new user assignment.",
        "requestBody": {
          "description": "The user assignment details.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UsersAssignmentDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UsersAssignmentDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UsersAssignmentDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UsersAssignmentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/UpdateUserAssignment": {
      "put": {
        "tags": [
          "UserAssignment"
        ],
        "summary": "Updates an existing user assignment.",
        "requestBody": {
          "description": "The user assignment details.",
          "content": {
            "application/json-patch+json": {
              "schema": {
                "$ref": "#/components/schemas/UsersAssignmentDTO"
              }
            },
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UsersAssignmentDTO"
              }
            },
            "text/json": {
              "schema": {
                "$ref": "#/components/schemas/UsersAssignmentDTO"
              }
            },
            "application/*+json": {
              "schema": {
                "$ref": "#/components/schemas/UsersAssignmentDTO"
              }
            }
          },
          "required": true
        },
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/DeleteUserAssignment": {
      "delete": {
        "tags": [
          "UserAssignment"
        ],
        "summary": "Deletes a user assignment.",
        "parameters": [
          {
            "name": "userAssignmentId",
            "in": "query",
            "required": true,
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetListUserAssignments": {
      "get": {
        "tags": [
          "UserAssignment"
        ],
        "summary": "Gets a list of user assignments.",
        "parameters": [
          {
            "name": "PageIndex",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          },
          {
            "name": "PageSize",
            "in": "query",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    },
    "/GetUserAssignmentById": {
      "get": {
        "tags": [
          "UserAssignment"
        ],
        "summary": "Gets a user assignment by ID.",
        "parameters": [
          {
            "name": "usersAssignmentId",
            "in": "query",
            "description": "The ID of the user assignment.",
            "schema": {
              "type": "integer",
              "format": "int32"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "OK"
          }
        }
      }
    }
  },
  "components": {
    "schemas": {
      "CombinedQueryDTO": {
        "type": "object",
        "properties": {
          "models": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ModelQueryDTO"
            },
            "nullable": true
          },
          "relations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/RelationDTO"
            },
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "DashboardAssignmentDTO": {
        "type": "object",
        "properties": {
          "dashboardAssignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "dashboardId": {
            "type": "integer",
            "format": "int32"
          },
          "tenantId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "DashboardDTO": {
        "type": "object",
        "properties": {
          "dashboardId": {
            "type": "integer",
            "format": "int32"
          },
          "parameterizationAzureId": {
            "type": "integer",
            "format": "int32"
          },
          "reportId": {
            "type": "string",
            "nullable": true
          },
          "groupId": {
            "type": "string",
            "nullable": true
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "LicenseConfigurationDTO": {
        "type": "object",
        "properties": {
          "licenseConfigurationId": {
            "type": "integer",
            "format": "int32"
          },
          "startDate": {
            "type": "string",
            "format": "date-time"
          },
          "endDate": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "lifeLong": {
            "type": "boolean"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "menuId": {
            "type": "integer",
            "format": "int32"
          },
          "status": {
            "type": "integer",
            "format": "int32"
          },
          "licenseId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "LicenseDTO": {
        "type": "object",
        "properties": {
          "licenseId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "MenuDTO": {
        "type": "object",
        "properties": {
          "menuId": {
            "type": "integer",
            "format": "int32"
          },
          "moduleId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModelQueryDTO": {
        "type": "object",
        "properties": {
          "name": {
            "type": "string",
            "nullable": true
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "array",
              "items": { }
            },
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "order": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ModuleDTO": {
        "type": "object",
        "properties": {
          "moduleId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "icon": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "ParameterizationAzureDTO": {
        "type": "object",
        "properties": {
          "parameterizationAzureId": {
            "type": "integer",
            "format": "int32"
          },
          "clientId": {
            "type": "string",
            "nullable": true
          },
          "tenantId": {
            "type": "string",
            "nullable": true
          },
          "secret": {
            "type": "string",
            "nullable": true
          },
          "tenantAppId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "ParameterizationOdooDTO": {
        "type": "object",
        "properties": {
          "parameterizationOdooId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "tenantId": {
            "type": "integer",
            "format": "int32"
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "dataBase": {
            "type": "string",
            "nullable": true
          },
          "userName": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "salt": {
            "type": "string",
            "nullable": true
          },
          "version": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "QueryDto": {
        "type": "object",
        "properties": {
          "model": {
            "type": "string",
            "nullable": true
          },
          "fields": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "nullable": true
          },
          "limit": {
            "type": "integer",
            "format": "int32"
          },
          "filters": {
            "type": "array",
            "items": {
              "type": "array",
              "items": { }
            },
            "nullable": true
          },
          "offset": {
            "type": "integer",
            "format": "int32"
          },
          "order": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RelationDTO": {
        "type": "object",
        "properties": {
          "modelA": {
            "type": "string",
            "nullable": true
          },
          "keyA": {
            "type": "string",
            "nullable": true
          },
          "modelB": {
            "type": "string",
            "nullable": true
          },
          "keyB": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "RolesAssignmentDTO": {
        "type": "object",
        "properties": {
          "roleAssignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "roleId": {
            "type": "integer",
            "format": "int32"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      },
      "SignUpRequestDTO": {
        "type": "object",
        "properties": {
          "userName": {
            "type": "string",
            "nullable": true
          },
          "names": {
            "type": "string",
            "nullable": true
          },
          "documentNumber": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "tenantDescription": {
            "type": "string",
            "nullable": true
          },
          "logo": {
            "type": "string",
            "nullable": true
          },
          "colorPrimary": {
            "type": "string",
            "nullable": true
          },
          "odooDescription": {
            "type": "string",
            "nullable": true
          },
          "url": {
            "type": "string",
            "nullable": true
          },
          "dataBase": {
            "type": "string",
            "nullable": true
          },
          "odooUserName": {
            "type": "string",
            "nullable": true
          },
          "odooPassword": {
            "type": "string",
            "nullable": true
          },
          "version": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "TenantDTO": {
        "type": "object",
        "properties": {
          "tenantId": {
            "type": "integer",
            "format": "int32"
          },
          "description": {
            "type": "string",
            "nullable": true
          },
          "logo": {
            "type": "string",
            "nullable": true
          },
          "colorPrimary": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UserDTO": {
        "type": "object",
        "properties": {
          "userId": {
            "type": "integer",
            "format": "int32"
          },
          "userName": {
            "type": "string",
            "nullable": true
          },
          "names": {
            "type": "string",
            "nullable": true
          },
          "email": {
            "type": "string",
            "nullable": true
          },
          "documentNumber": {
            "type": "string",
            "nullable": true
          },
          "password": {
            "type": "string",
            "nullable": true
          },
          "salt": {
            "type": "string",
            "nullable": true
          }
        },
        "additionalProperties": false
      },
      "UsersAssignmentDTO": {
        "type": "object",
        "properties": {
          "userAssignmentId": {
            "type": "integer",
            "format": "int32"
          },
          "tenantId": {
            "type": "integer",
            "format": "int32"
          },
          "userId": {
            "type": "integer",
            "format": "int32"
          }
        },
        "additionalProperties": false
      }
    },
    "securitySchemes": {
      "Basic": {
        "type": "http",
        "description": "Autenticaci�n b�sica con usuario y contrase�a.",
        "scheme": "basic"
      },
      "Bearer": {
        "type": "http",
        "description": "Autenticaci�n con token JWT.",
        "scheme": "bearer",
        "bearerFormat": "JWT"
      }
    }
  },
  "security": [
    {
      "Basic": [ ],
      "Bearer": [ ]
    }
  ]
}